Pagi-pagi sambil nge-air putih (minum air putih maksudnya) sambil menikmati dinginnya Surabaya yang tumben-tumbenan. Alhamdulillah :D. Postingan ini muncul karena terinspirasi dari seorang kawan baik nun jauh disana, yang juga sedang menimba ilmu di kampus seberang. Sebuah pertanyaan darinya hingga lahirlah postingan ini :D. Baiklah kita sapa dulu Betha Nurina Sari :D. Salam #semangat pagi dari Surabaya :D.
Oke langsung aja, jadi diperkirakan ada sebuah kasus semacam demikian :
Gambar diaatas adalah sebuah file plain text, yang berisi informasi seperti diatas, yang tersimpan dalam file kamar.txt. Nah, sekarang bagaimana caranya agar informasi-informasi diatas dapat disimpan ke dalam sebuah tipe data array 2 dimensi ???. Oke kita rancang dulu kebutuhan yang digunakan untuk menyelesaikan permasalahan di atas. Kebutuhan yag dirinci dapat dibuat sebuah fungsi atau method untuk memudahkan kita dalam mengutak-atik code. Kata suhu-suhu istilah kerennya OOP (Object Oriented Programming).
- Fungsi baca file teks, return value Arraylist<String>. Disini nama fungsi-nya saya namakan readTeks, dengan input parameter berupa nama file teks.
- Fungsi untuk menyimpan kata/item dari masing-masing baris, dengan menggunakan pemisah/delimiter spasi. Nama fungsi dinamakan token, dengan input parameter berupa String kalimat (anggap aja per baris itu sebuah kalimat 😀 *alibi bingung ngasih nama variabel) 😀 ).
- Fungsi untuk menyimpan semua informasi dalam bentuk array 2 dimensi. Disini saya namakan saveToArray.
Kurang lebih itu fungsi-funsgi yang dibutuhkan, sekarang mari saatnya kita menjahit. Nah dibawah ini kurang lebih jahitan saya.
[code language=”java”]
package TeksProcessing;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
/**
*
* @author yuitaarumsari
*/
public class ReadTextSaveToArray {
public static ArrayList<String> readTeks(String bacateks) throws FileNotFoundException, IOException {
File bacafile = new File(bacateks);
FileReader inputDokumen = new FileReader(bacafile);
BufferedReader bufferBaca = new BufferedReader(inputDokumen);
StringBuffer content = new StringBuffer();
String barisData;
ArrayList<String> data = new ArrayList<String>();
while ((barisData = bufferBaca.readLine()) != null) {
content.append(barisData);
content.append(System.getProperty(“line.separator”));
data.add(barisData);
}
return data;
}
public static ArrayList<String> token(String kalimat) throws FileNotFoundException, IOException {
ArrayList<String> listKata = new ArrayList<String>();
StringTokenizer token = new StringTokenizer(kalimat, ” “);//pemisahan kata dengan delimiter spasi
while (token.hasMoreTokens()) {
listKata.add(token.nextToken());
}
return listKata;
}
public static String[][] saveToArray(ArrayList<String> input) throws FileNotFoundException, IOException{
String[][] data=new String[input.size()][4];
for (int i = 0; i < input.size(); i++) {
ArrayList<String> item=token(input.get(i));
for (int j = 0; j < item.size(); j++) {
data[i][j]=item.get(j);//memasukkan data ke dalam array
}
}
return data;
}
public static void main(String[] args) throws FileNotFoundException, IOException {
ArrayList<String> listData=readTeks(“kamar.txt”);
String[][] array=saveToArray(listData);
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]+”\t”);
}
System.out.println(“”);
}
}
}
[/code]
Hasil program ketika dijalankan akan muncul seperti ini :
Okey, kurang lebih demikian pendapat dan cuap-cuap saya pada pagi ini. Sangat mungkin sekali masih ada banyak cara, selain cara yang saya gunakan, baik melihat dari sisi keefisienan, kompleksitas, dan efektifitas. So, discussions are welcomed :).
Well, terima kasih, semangat pagi, dan salam Java! 😀