fopen dan fprintf di Octave


Tulisan ini sedikit akan membahas bagaimana cara membaca file text atau sejenisnya menggunakan octave kemudian memodifikasi dan menyimpannya sebagai file baru. Berikut di bawah ini adalah data, "datagempa.csv", yang akan dibaca oleh Octave

Waktu Kejadian,Lintang,Bujur,Magnitude,Kedalaman,Wilayah,Shakemap
2014-01-27 23:14:02 WIB,8.16 LS,109.26 BT,5.3 SR,33 Km,Jawa Tengah ,Shakemap
2014-01-26 21:43:11 WIB,4.78 LU,95.3 BT,3.7 SR,10 Km,Aceh ,Shakemap
2014-01-25 23:58:02 WIB,8.33 LS,109.22 BT,4.8 SR,73 Km,Jawa Tengah ,Shakemap
2014-01-25 12:14:20 WIB,8.48 LS,109.17 BT,6.5 SR,48 Km,Jawa Tengah ,Shakemap
2014-01-24 21:36:22 WIB,4.4 LU,95.31 BT,4.8 SR,10 Km,NAD ,Shakemap
2014-01-24 20:37:46 WIB,8.15 LS,124.83 BT,4.9 SR,10 Km,NTT ,Shakemap
2014-01-23 14:29:23 WIB,5.16 LU,95.39 BT,4.2 SR,109 Km,NAD ,Shakemap
2014-01-22 13:00:17 WIB,2.07 LS,115.53 BT,3.6 SR,10 Km,Kalimantan Selatan ,Shakemap
2014-01-18 07:19:55 WIB,2.5 LS,136.33 BT,4.8 SR,12 Km,Papua ,Shakemap
2014-01-09 23:16:48 WIB,7.12 LS,105.37 BT,5.2 SR,10 Km,BANTEN ,Shakemap
2014-01-09 19:05:48 WIB,0.88 LS,100.66 BT,4.1 SR,10 Km,Sumatera Barat ,Shakemap
2014-01-05 10:42:12 WIB,0.69 LS,131.24 BT,3.2 SR,12 Km,Papua Barat ,Shakemap

Singkat cerita, kita akan menggunakan fungsi fopen untuk membuka file di atas, kemudian membacanya baris per baris menggunakan fgetl. Dengan menggunakan strsplit, data di atas akan dipisahkan berdasarkan koma ','. Hasil pemisahan akan dipilah kembali untuk diambil data lintang dan bujur saja. Hasil akhir akan disimpan ke dalam file baru menggunakan fprintf.

Dalam octave, penjelasan di atas dapat dituliskan sebagai berikut:

close all
clear
clc


% Baca file datagempa.csv
File_ori = fopen('datagempa.csv','r');


% Buat file baru data_lintang_bujur.csv
File_new = fopen('data_lintang_bujur.csv','w');
 

% Baca datagempa.csv baris per baris
while ischar(Line = fgetl(File_ori))

  % Pisahkan data berdasarkan koma ','
   temp = strsplit(Line,',');
 
  % Simpan data lintang dan bujur
  % pada file baru data_lintang_bujur.csv

  fprintf(File_new,[temp{2} ',' temp{3} "\n"])
end


% Tutup semua file yang terbuka
fclose(File_ori);
fclose(File_new);


Simpan program di atas dengan nama main.m kemudian jalankan program tersebut, dan kita akan mendapatkan data seperti di bawah ini.

Lintang,Bujur
8.16 LS,109.26 BT
4.78 LU,95.3 BT
8.33 LS,109.22 BT
8.48 LS,109.17 BT
4.4 LU,95.31 BT
8.15 LS,124.83 BT
5.16 LU,95.39 BT
2.07 LS,115.53 BT
2.5 LS,136.33 BT
7.12 LS,105.37 BT
0.88 LS,100.66 BT
0.69 LS,131.24 BT


Program dapat pula didownload di sini.