Yuita A. Sari

“If you want to be a writer, you must do two things : read a lot and write a lot. There's no way around these two things that I'm aware of, no shortcut.” ― Stephen King

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

6 Comments

Pagi-pagi sambil nge-air putih (minum air putih maksudnya) sambil menikmati dinginnya Surabaya yang tumben-tumbenan. Alhamdulillah😀. 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😀.  Baiklah kita sapa dulu Betha Nurina Sari😀. Salam #semangat pagi dari Surabaya😀.

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.

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("");
        }
    }

}

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!😀

6 thoughts on “[Java] Baca Teks dan Simpan ke dalam Array Dua Dimensi

  1. Ini, Sar, sesuai permintaan aku sharing juga versi modifikasiku:

    https://www.dropbox.com/s/l6zmvd46aff7a6i/TextToArray.java

    Semoga bermanfaat😀

  2. @mas data : maturnuwun sharing-nya😀
    Program dari mas data lebih hemat baris rupanya.
    Gak kepikiran soal parsing dari CSV ke Java😀 .
    Sip.. sip.. #mantab

  3. selamat malam.. boleh sharing gak utk simpan dan baca array satu dimensi ke txt.
    saya kurang mengerti ttg arraytotxt
    mohon bantuannya, terimakasih🙂

  4. Mungkin bisa kasih contoh? tipe data array-nya String atau integer? atau yang lain?

  5. itu file txt nya bisa disimpan dimana aja ya ?

  6. @ika
    letakkan file text nya jadi satu folder sama projectnya.
    Kalau mau disimpan dimana aja juga bisa, tinggal menggunakan relative path atau absolute path..🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s