[Java] Baca Teks dan Simpan ke dalam Array Dua Dimensi

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 :

Screen Shot 2013-12-31 at 8.15.20 am

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).

  1. Fungsi baca file teks, return value Arraylist<String>. Disini nama fungsi-nya saya namakan readTeks, dengan input parameter berupa nama file teks.
  2. 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) ūüėÄ ).
  3. 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 :

Screen Shot 2013-12-31 at 8.31.24 am

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! ūüėÄ

Hasil UAP Basis Data I-C

Berikut ini adalah hasil dari UTP yang dilaksanakan teman-teman angkatan 2008 secara live selama 90 menit pada tanggal 7 Mei 2010. Hasil ini telah disepakati oleh asisten 1 dan asisten 2. Selamat kepada yang memperoleh nilai bagus, dan yang belum, dapat belajar lagi. Pelajari lagi bagaimana cara mendesign database agar UAP nya nanti juga lancar. Happy Study Basis Data ^.^

0810960001 ALFIAN ARDHI 84
0810960003 ARDHIYAN SYAHRULLAH 83
0810960011 JIHAN RIZKI D.T 82
0810960017 NURTIKA ANGGRAINI 83
0810960031 ANDREAS NUGROHO S 83
0810960041 DIMAS PRASETYO ADI S 80
0810960043 EKO ALFIYANTO 0
0810960047 GUMILANG AJIE 84
0810960049 IKHWAN EKO SETIAWAN 85
0810960051 KHOIRUL ROZIQIN 71
0810960053 M.RIZKY W.P 83
0810960059 NUZULIANTI TSULUSIA 80
0810963023 RACHMANITA M.K 73
0810963053 MILA FEBRI WIJAYA 80
0810963067 RIZKHY AYUNING T. 80
0810963069 ROSI CAHYANING PUTRI 79
0810963075 YANITA CAHYANINGTYAS 74

Praktikum Pemrograman II-A

Alhamdulillah Praktikum Pemrograman II-A telah diakhiri pada 3 Juni kemarin.
Praktikum Pemrograman II-A meliputi 2 project.
Project I     : Kalkukator (40%)
Project II    : Paint (60%)
Penilaian dari masing-masing project meliputi
Penguasaan coding :35 %
Keberhasilan progran : 40%
Tampilan program : 15%
Absensi :10%
Berikut adalah nilai Praktikum Pemrograman II-A

Muhammad Arief Y    78,07775 (B+)
Aries Kurniawan          72,32665 (B)
Rendi Ivan                    6,725 (terkena 80%)
Eko Alfiyanto               85,3433 (A)
David Effendi                84,5383 (A)
M.Anwar Hanaf            73,59335 (B)
Amirul Mu’minin¬†¬† ¬†¬†¬† ¬†83,7333 (A)
Nandra Adi Y               64,66665 (C)
R.Moh.Dwi Prasetyo  64,6 (C)
Rochmat Hidayat        74,0478 (B)

Selamat atas usaha yang telah dicapai dan hasil yang telah didapatkan.Tentang rincian penilaian bisa langsung menghubungi Asisten I atau Asisten II.Mohon maaf apabila ada yang tidak berkenan.Selamat belajar untuk UAS yawh… (^_^)