Home > C, Code, Java, Perl, PHP, Programming > Contoh Program Untuk Membaca Text File

Contoh Program Untuk Membaca Text File

Beberapa hari yang lalu saya perlu membuat program yang membaca suatu file text dengan bahasa Java. Hanya saja karena udah lama gak menggunakan bahasa Java untuk membaca file text, akhirnya saya perlu gugling2 lagi karena udah lupa sama class dan method-nya. Udah gitu sekalian saja saya tampilin potongan program untuk membaca file text disini. Sebelumnya, kalo saya sendiri, membaca file itu dibutuhkan untuk mendapatkan konfigurasi atau database yang berupa text, misal saja database user seperti file passwd pada Unix OS. Nah, dalam postingan kali ini misal saja saya ingin membaca file tes.txt yang isinya sebagai berikut ini:

johan:password:/usr/home/johan:tcsh
alibasa:asdf:/etc/alibasa:nologin

Disini saya ingin mendapatkan array dua dimensi bernama config yang berisi data sebelumnya. Dalam hal ini array config[x][y], x adalah index dari data per line, dan y adalah index dari per kolom yang dipisahkan oleh tanda “:”. Misal saja config[0][0] berisi “johan”, config[0][1] berisi “password”, config[1][2] berisi “/etc/alibasa”, dan config[1][3] berisi “nologin”. Langsung saja berikut program untuk membaca file text tersebut dengan bahasa Java:

import java.io.*;
import java.util.StringTokenizer;

public class BacaFile {
	public static void main(String[] args) {
		try {
			BufferedReader br = new BufferedReader(new FileReader("tes.txt"));
			String[][] config = new String[2][4]; int i = 0; String baris;
			while ((baris = br.readLine()) != null) {
				StringTokenizer st = new StringTokenizer(baris, ":");
				config[i][0] = st.nextToken(); config[i][1] = st.nextToken();
				config[i][2] = st.nextToken(); config[i][3] = st.nextToken();
				i++;
			}
			System.out.println("");
		} catch (Exception e) {
			System.out.println("Tidak Dapat Membaca File tes.txt");
		}
	}
}

Maaf sebelumnya, soalnya saya gak memberi comment pada program yang saya tulis disini, tapi misal ada yang belum jelas di bagian tertentu, silahkan bertanya, dengan suka hati saya akan menjawabnya. Inti programnya sih setelah kita mendapatkan objek BufferedReader, kita bisa gunakan method readLine() yang sudah sering dipakai. Mungkin ada yang belum mengenal class StringTokenizer disini, intinya sih sebagai pemisah dari suatu String, dalam kasus ini dipisahkan oleh tanda “:”.
Sekalian juga saya kasih bonus program dengan bahasa yang lain, disini misal saya kasih contoh bahasa C, bahasa yang sepertinya paling banyak orang yang bisa. Berikut source code-nya:

#include <stdio.h>

int main() {
	FILE *file; char baca[2][64]; char config[2][4][16]; int line = 0;
	if (file = fopen("tes.txt", "r")) {
		while (fgets(baca[line], 64*sizeof(char), file)) { line++; }
		fclose(file); int i = 0;
		while (i < line) {
			int j = 0; char* pbc = baca[i]; char* pcf = config[i][j];
			while (*pbc) {
				if (*pbc == ':' || *pbc == '\n') {
					*pcf = '\0'; pcf = config[i][++j]; *pbc++;
				} else {
					*pcf++ = *pbc++;
				}
			}
			*pcf = '\0'; i++;
		}
		printf("<%s - %s>\n", config[0][0], config[1][3]);
	} else {
		printf("Tidak Dapat Membaca File tes.txt\n");
	}
	return 0;
}

Mungkin ada beberapa orang yang belum terbiasa dengan pointer oleh karena itu saya kasih contoh program yang tidak menggunakan pointer.

#include <stdio.h>

int main() {
	FILE *file; char baca[2][64]; char config[2][4][16]; int line = 0;
	file = fopen("tes.txt", "r");
	while (fgets(baca[line], 64*sizeof(char), file)) { line++; }
	fclose(file); int i = 0;
	while (i < line) {
		int j = 0; int k1 = 0; int k2 = 0;
		while (baca[i][k1] != '\0') {
			if (baca[i][k1] == ':' || baca[i][k1] == '\n') {
				config[i][j][k2] = '\0'; j++; k1++; k2 = 0;
			} else {
				config[i][j][k2] = baca[i][k1]; k1++; k2++;
			}
		}
		config[i][j][k2] = '\0'; i++;
	}
	printf("<%s - %s>\n", config[0][0], config[1][3]);
	return 0;
}

Semoga cukup mudah dimengerti, sekalian juga saya kasih bonus source code dengan bahasa Perl maupun bahasa PHP. Yang jelas semua program akan mengeluarkan output yang sama yaitu “<johan – nologin>”. Semoga bermanfaat😀

use strict;
open(BACA, "<tes.txt") or die "Tidak Dapat Membaca File tes.txt\n";
my @baca = <BACA>; close(BACA); my @config;
for(my $i=0;$i<=$#baca;$i++) {
	@{$config[$i]} = split /:/, $baca[$i];
}
print "<$config[0][0] - $config[1][3]>\n";

 

<?php
	if ($file=fopen("tes.txt", "r")) {
		while($line = (fgets($file, 64))) {
			$config[] = split(":", $line);
		}
		echo ("<".$config[0][0]." - ".$config[1][3].">\n");
	} else {
		echo ("Tidak Dapat Membaca File tes.txt\n");
	}
?>
Categories: C, Code, Java, Perl, PHP, Programming
  1. April 27, 2012 at 12:54 am

    <stdio.h> -nya ilang

    • April 27, 2012 at 8:54 am

      wew iya, baru nyadar, thx wan

  2. October 25, 2012 at 10:16 am

    hmmmmm bisa gak mas bantuin post mencari kata dalam file text.txt? gmana source nya tuh?
    seperti layaknya kamus…. tq sebelumnya….

  3. October 25, 2012 at 11:58 am

    mau pake bahasa apa dulu nih? kalo mau prosessing text pake perl gampang banget tuh

    • rakhaagung
      May 14, 2016 at 12:08 pm

      Pake Java mas.
      Program pencarian kata pada file txt atau .dat denga java, saya udah buat kaya di internet2, cuman gabisa baca enter.
      Misal ada kata
      ka
      mu
      terus kita cari kata KAMU itu gabisa, kan harusnya bisa. thx

  1. No trackbacks yet.

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

%d bloggers like this: