Sunday, January 5, 2020

Buku Pemrograman Matlab - Export Import Data


Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link


kalian bisa lanjut baca lagi di  http://softscients.com/2020/03/29/buku-pemrograman-matlab-export-import-data-dan-format-table/




Sinopsis Dasar-Dasar Pemrograman Matlab - Export Import Data

Kalian pasti sudah sering menggunakan format penyimpanan data tabel dengan Excel yang terdiri dari baris dan kolom yang sudah banyak digunakan, ada juga format pertukaran yang bersifat terbuka seperti JSON, XML, SQLITE, CSV, dan yang lainnya. Kalau kalian menggunakan bahasa yang lain untuk menyimpan data menggunakan format binary atau disebut teknik serialisasi dan deserialisasi, maka di Matlab menggunakan format *.mat yang sangat mudah digunakan bahkan semua variabel yang ada di memory langsung bisa di save lho. Untuk versi R2009a keatas Matlab sudah dilengkapi dengan library seperti di Pandas (Python) yaitu readtable. Kalian ikuti saja point-point dibawah ini
  1. Format Binary Data IO di Matlab
  2. Membaca file CSV, Excel
  3. Bekerja dengan Format Currency dan Datenum
Dua point diatas akan sering kalian gunakan untuk menyimpan data yang efektif di Matlab.

Dasar-Dasar Pemrograman Matlab - Export Import Data



Jangan lupa ya Follow dan Subcribe ya


Terima kasih

Format Binary Data IO di Matlab

Kalau kalian cek di Workspace Window yang menampilkan informasi Variable

Dasar-Dasar Pemrograman Matlab - Export Import Data

Bisa disimpan dengan perintah save

Dasar-Dasar Pemrograman Matlab - Export Import Data
Dengan perintah save file.mat maka semua variabel yang ada di memory akan tersimpan dalam sebuah disk/file. Untuk meload kembali, cukup perintah load() dengan struct sebagai penampung variabelnya.

data = load('dataku.mat')


Dasar-Dasar Pemrograman Matlab - Export Import Data

Untuk akses variabel a cukup perintah berikut

a = data.a

Dasar-Dasar Pemrograman Matlab - Export Import Data

Coba kalian pelajari lagi mengenai struct di Bab sebelumnya. Sedangkan untuk akses variabel b pun juga sama koq.

b = data.b

Tentu adakalanya kalian tidak ingin menyimpan semua variabel tapi hanya tertentu saja, misalkan ada 4 variabel dibawah ini, hanya 2 saja disimpan.

clc;clear all;close all
a = 1;
b = [2,3]
c = [4,5;6,7]
d = 'persamaan kecepatan'
 
save('dataku.mat','c','d')

Perintah diatas akan menyimpan variabel c  dan  d saja dan untuk load sama juga koq dengan sebelumnya cukup perintah load




Dasar-Dasar Pemrograman Matlab - Export Import Data

Sangat bermanfaat bukan? Format *.mat mampu menyimpan beragam jenis variabel di Matlab dan memudahkan kalian mengatur pertukaran data dengan cepat. Tapi kalau orang lain tidak punya Matlab gimana? Sebenarnya format *.mat bisa dibaca koq menggunakan Octave, Net Framework, Java, serta Python dengan pustaka yang banyak disediakan oleh komunitas kalau pun tidak mau menggunakan format*.mat kalian bisa menggunakan  pertukaran data yang umum yang bersifat open seperti CSV, Excel bisa kalian gunakan seperti tulisan selanjutnya.

Membaca file CSV, Excel

Excel sangat banyak digunakan oleh kalangan umum sebagai format penyimpanan data berjenis tabel ataupun CSV. Kalian bisa menggunakan perintah readtable() untuk aksesnya yang banyak mendukung beragam format data seperti:
  1. .txt, .dat, or .csv for delimited text files
  2. .xls, .xlsb, .xlsm, .xlsx, .xltm, .xltx, or .ods for spreadsheet files

Penulis kasih contoh data excel saja yang lebih mudah.

Dasar-Dasar Pemrograman Matlab - Export Import Data
Kalian bisa akses dengan perintah berikut

clc;clear all;close all;
data = readtable('data excel.xlsx')


Dasar-Dasar Pemrograman Matlab - Export Import Data

Tentu untuk akses perkolom sangat mudah juga seperti struct sesuai dengan nama kolomnya

Dasar-Dasar Pemrograman Matlab - Export Import Data

Akses sesuai dengan kolom yang dipilih

Kalian juga bisa memilih nama kolom tertentu yang ingin di import menggunakan perintah berikut

clc;clear all;close all
opts = detectImportOptions('data excel.xlsx');
opts.SelectedVariableNames = {'no','jumlah'};
data = readtable('data excel.xlsx',opts)


Dasar-Dasar Pemrograman Matlab - Export Import Data

Mengubah Tabel ke Array

Seperti contoh diatas dengan tabel yang berisi angka semuanya, kalian bisa gunakan function table2array untuk menghasilkan array dari sebuah tabel

Dasar-Dasar Pemrograman Matlab - Export Import Data

Memilih Data Perbaris

Atau hanya menampilkan baris tertentu saja

data.barang(3:4)

Dasar-Dasar Pemrograman Matlab - Export Import Data

Memilih Data Perbaris dan Kolom

Kalian juga bisa memilih data berdasarkan baris dan kolom yang diinginkan

data(3:4,{'barang','jumlah'})


 

Menyimpan data ke excel dan CSV


Kalau kalian ingin menyimpan data dalam bentuk excel ataupun CSV sangat gampang koq menggunakan perintah berikut:

clc;clear all;close all;
no = reshape([1:5],5,1);
nama = {'bejo';'pamungkas';'bagus';'tika';'eko'};
tinggi = [176;163;131;133;119];
 
T = table(no,nama,tinggi);
writetable(T,'data ku.txt','Delimiter',',')  
writetable(T,'data ku.xlsx') 


Dasar-Dasar Pemrograman Matlab - Export Import Data

Array2Table

Array juga bisa kalian konvert menjadi Table, tapi ingat ya, susunan table lebih kepada urutan baris dan kolom, jadi jangan lupa transpose

clc;clear all;close all;
tinggi = [145,146,156,157,167,168];
berat_badan = [45,41,40,50,51,45];

data = array2table(transpose([tinggi;berat_badan]),...
    'VariableNames',{'tinggi','berat_badan'})

Hasilnya

data =
  6×2 table
    tinggi    berat_badan
    ______    ___________
     145          45     
     146          41     
     156          40     
     157          50     
     167          51     
     168          45  

Atau kalian kelupaan untuk menambahkan kolom no, maka berikan perintah addvars seperti berikut

%kalian lupa untuk menambahkan no
no = transpose([1:length(tinggi)]);
data = addvars(data,no,'Before','tinggi');
%tampilkan data
head(data)

Hasil

ans =
  6×3 table
    no    tinggi    berat_badan
    __    ______    ___________
    1      145          45     
    2      146          41     
    3      156          40     
    4      157          50     
    5      167          51     
    6      168          45   

atau mungkin malah mau delete column dengan perintah removevars


data = removevars(data,{'tinggi'});
head(data)

Hasil

ans =
  6×2 table
    no    berat_badan
    __    ___________
    1         45     
    2         41     
    3         40     
    4         50     
    5         51     
    6         45   

Bekerja dengan Format Currency dan Date

Data dengan format Currency dan Date banyak ditemui kalau kalian bekerja dengan analisis saham ataupun Forecasting Time Series Data. Ada beberapa function penting yang kalian harus pahami yaitu
  1. Datestr : mengubah format tanggal menjadi string/huruf
  2. Datenum: mengubah format tanggal menjadi angka
  3. Serta currency menggunakan regex
Pada dasarnya format penyajian date/tanggal adalah char dalam Matlab dengan banyak variasi penyajian seperti
  1. dd/mm/yy
  2. dd/mm/yyyy
  3. dd-mm-yyy
  4. mm-dd-yy
  5. mm-dd-yyy
  6. jan-19,1988

Mengubah Format Date dan Currency

ada banyak sekali format penyajian date diatas yang disesuaikan oleh konsumen. Nah untuk handle beragam format penyajian tersebut, kalian bisa menggunakan datestr sebagai pengolah date.



Perhatikan kolom Date dengan format point 6, oiya kalau ada nama kolom sama dengan keyword maka akan di rename otomatis oleh Matlab, misalkan nama kolom Date akan direname menjadi x___Date_



Dengan perintah

data =readtable('TLKM Historical Data.csv');

Terdapat beberapa format yang harus kalian cermati yaitu Date dan Currency, kalian bisa ubah format Date menggunakan teknik berikut

data =readtable('TLKM Historical Data.csv');
formatOut = 'mm/dd/yy'; %format keluaran yang diinginkan 
data.x____Date_ = datestr(data.x____Date_,formatOut);
data

Menghasilkan format mm/dd/yy sesuai yang kita inginkan



Tentu format Currency harus kalian ubah (format sepator ribuan masih menggunakan american standar yaitu penggunaan pemisah koma), kalian berikan saja perintah regex().

data =readtable('TLKM Historical Data.csv');
formatOut = 'mm/dd/yy'; %format keluaran yang diinginkan
 
tanggal = datestr(data.x____Date_,formatOut);
data.x____Date_ = datestr(data.x____Date_,formatOut)
data.Price = regexprep(data.Price,',','');
data.Open = regexprep(data.Open,',','');
data.High = regexprep(data.High,',','');
data.Low = regexprep(data.Low,',','');
data



Mengubah format date tidak harus dilakukan, ini hanya contoh saja agar mudah dilihat oleh kita yang terbiasa dengan format indonesia.

Seleksi Date

Terkadang dalam melakukan pengolahan data berbasis time series hanya memerlukan sebagian bulan atau tahun tertentu saja, misalkan saja hanya ingin menampilkan data untuk tahun 2020 saja, menggunakan perintah day(), month(), dan year() dalam operasi seleksi data.


clc;clear all;close all;
data =readtable('TLKM Historical Data.csv');
 
data.Price = regexprep(data.Price,',','');
data.Open = regexprep(data.Open,',','');
data.High = regexprep(data.High,',','');
data.Low = regexprep(data.Low,',','');
 
 
 
%untuk menampilkan 1 seleksi saja
seleksi = year(data.x____Date_)==2020;
 
disp('Data tahun 2020')
disp(data(seleksi,{'x____Date_','Price','Open'}))
 
%jika menampilkan lebih dari 1 seleksi
tahun = year(data.x____Date_)==2019 ;
bulan = month(data.x____Date_)<=2;
seleksi = logical(tahun.*bulan);
disp('Data 2 bulan pertama tahun 2019')
disp(data(seleksi,{'x____Date_','Price','Open'}));


Hasil

Data tahun 2020
    x____Date_     Price      Open 
    ___________    ______    ______

    Jan 5, 2020    '3940'    '3930'

Data 2 bulan pertama tahun 2019
     x____Date_     Price      Open 
    ____________    ______    ______

    Feb 24, 2019    '3910'    '3900'
    Feb 17, 2019    '3840'    '3830'
    Feb 10, 2019    '3790'    '3870'
     Feb 3, 2019    '3850'    '3890'
    Jan 27, 2019    '3870'    '3880'
    Jan 20, 2019    '3880'    '4040'
    Jan 13, 2019    '4020'    '3810'

Sumber Dataset

Kalian harus paham ya karena sangat membantu kalau kalian bekerja dengan time series data. Oiya untuk data *.csv nya didapatkan dari www.investing.com Sebagai contoh saham emitem TLKM indonesia https://www.investing.com/equities/telkom-indones-historical-data



Ntar kalian pelajari juga ya mengenai https://www.softscients.web.id/2020/01/dasar-dasar-pemrograman-matlab-grafik.html agar lebih bagus buat visualisasi datanya.










No comments:

Post a Comment