Sunday, January 5, 2020

Buku Pemrograman Matlab - Export Import Data



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

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: