SlideShare a Scribd company logo
1 of 7
Download to read offline
J.E.N.I.




                                   BAB 5
                     Aplikasi Berbasis Teks


5.1 Tujuan
Pembahasan kali ini akan menitikberatkan pada bahasan penggunaan argument
command-line. Selebihnya, Anda akan mempelajari mengenai penggunaan streams
untuk mendapatkan nilai input dari user pada saat runtime, sekaligus dalam proses
manipulasi file.
Pada akhir pembahasan, diharapkan pembaca dapat :

    1. Mendapatkan input dari command-line
    2. Mengetahui cara untuk memanipulasi properties dari sistem
    3. Membaca standart input
    4. Membaca dan menulis file




5.2 Argument Command-Line dan System Properties
Seperti yang telah Anda ketahui pada pembahasan sebelumnya, JAVA mengijinkan
user untuk memasukkan data dari command-line. Sebagai contoh, untuk
meneruskan argument 1 dan 2 kepada program Java bernama Calculate, anda dapat
menuliskan baris berikut pada command prompt

              java Calculate 1 2

Pada contoh berikut ini, data 1 disimpan pada variabel args[0], begitu pula dengan
data 2 yang disimpan pada args[1]. Sehingga, tujuan dari deklarasi String args[]
sebagai sebuah parameter pada method utama menjadi jelas.

Selain melewatkan argument menuju method utama, Anda juga dapat memanipulasi
system properties dari command-line.

System properties hampir menyamai environment variables, namun tidak memiliki
ketergantungan pada spesifikasi platform yang digunakan. Sebuah property secara
sederhana berupa pemetaan antara property name dan value yang dimilikinya. Hal
ini ditunjukkan pada Java dalam class Properties. Class System menyediakan sebuah
method untuk menentukan system properties yang digunakan, method getProperties
yang menghasilkan sebuah object Properties. Class yang sama juga menyediakan
method getProperty yang memiliki dua buah bentuk.




Pengenalan Pemrograman 2                                                         1
J.E.N.I.




public static String getProperty(String key)

Bentuk ini menghasilkan nilai String dari System Properties yang ditunjukkan oleh
key yang ditentukan. Jika hasil menunjukkan nilai null, berarti tidak terdapat property
dengan key yang ditentukan.

public static String getProperty(String key, String def)

Bentuk ini juga menghasilkan nilai String dari System Properties sesuai key yang
ditentukan. Akan menghasilkan nilai def, sebuah nilai default, jika tidak terdapat
property dengan key yang sesuai.



                       Tabel 1.1: getProperty() method dari class System


Kita tidak dapat cukup berhenti pada detail dari system properties, namun
dilanjutkan dengan memanipulasi system properties yang digunakan. Jika Anda
tertarik mempelajari lebih lanjut tentang system properties, Anda dapat menelusuri
dokumentasi API yang disediakan.

Anda dapat menggunakan argument opsional –D pada perintah Java dalam
command-line untuk menambahkan property baru.

               java -D<name>=value

Sebagai contoh, untuk mengatur system property dengan nama user.home bernilai
phillipines, gunakan perintah berikut :

               java -Duser.home=philippines

Untuk menampilkan daftar system properties yang tersedia pada sistem Anda,
gunakan method getProperties seperti yang ditunjukkan sebagai berikut :

               System.getProperties().list(System.out);




5.3 Membaca Standard Input
Dibandingkan dengan mendapatkan masukan user dari command-line, sebagian user
lebih memilih untuk memasukkan data bilamana diminta oleh program pada saat
eksekusi. Satu cara dalam melakukan hal ini adalah dengan menggunakan stream.
Sebuah stream adalah abstraksi dari sebuah file atau sebuah perangkat yang
mengijinkan beberapa set item untuk dibaca atau ditulis. Streams terhubung dengan
physical devices seperti keyboards, consoles dan files. Terdapat dua bentuk umum
dari streams, byte streams dan character streams. Byte streams digunakan pada
data biner, sedangkan character streams digunakan pada karakter Unicode.
System.in dan System.out adalah dua contoh dari byte streams yang digunakan




Pengenalan Pemrograman 2                                                             2
J.E.N.I.



dalam Java. Contoh pertama mereferensikan pada keyboard, kemudian contoh
kedua mereferensikan pada console.

Untuk membaca karakter dari keyboard, Anda dapat menggunakan byte stream
System.in yang terdapat pada object BufferedReader. Baris berikut menunjukkan
bagaimana untuk melakukan hal tersebut :


           BufferedReader br = new BufferedReader(new InputStreamReader(System.in));




Method read dari object BufferedReader selanjutnya digunakan untuk membaca nilai
input dari perangkat input.

                 ch=(int)br.read(); //method read menghasilkan nilai integer




Cobalah contoh kode berikut :


import java.io.*;

class FavoriteCharacter {
       public static void main(String args[]) throws IOException {
              System.out.println("Hi, what's your favorite character?");
              char favChar;
              BufferedReader br = new BufferedReader(new
              InputStreamReader(System.in));
              favChar = (char) br.read();
              System.out.println(favChar + " is a good choice!");
       }
}




Jika Anda lebih memilih untuk membaca keseluruhan baris daripada membaca satu
karakter tiap waktu, gunakan method readLine :

                 str = br.readLine();




Berikut ini sebuah program yang hampir menyerupai contoh sebelumnya, namun
membaca keseluruhan string, bukan satu karakter.


           import java.io.*;

           class GreetUser {
                  public static void main(String args[]) throws IOException {
                         System.out.println("Hi, what's your name?");
                         String name;



Pengenalan Pemrograman 2                                                           3
J.E.N.I.



                      BufferedReader br = new BufferedReader(new
                      InputStreamReader(System.in));
                      name = br.readLine();
                      System.out.println("Nice to meet you, " + name + "! :)");
               }
           }

Pada saat menggunakan streams, jangan lupa untuk mengimport package java.io
seperti yang ditunjukkan dibawah ini :

               import java.io.*;

Satu hal lagi yang perlu untuk diingat, pembacaan dari streams dapat menyebabkan
terjadinya exception. Jangan lupa untuk menangani exception tersebut
menggunakan perintah try-catch atau dengan mengindikasikan exception pada
klausa throws dalam method.




5.4 Menangani File
Pada beberapa kasus, masukan data disimpan pada sebuah file. Selanjutnya,
terdapat beberapa cara jika Anda ingin menyimpan output dari program pada sebuah
file. Pada sistem terkomputerisasi, data dari Siswa yang dapat digunakan sebagai
input oleh sistem umumnya tersimpan pada sebuah file terpisah. Kemudian, salah
satu kemungkinan output dari sistem adalah informasi tentang mata pelajaran yang
diikuti oleh siswa. Sekali lagi, output dalam hal ini dapat disimpan dalam sebuah file.
Seperti yang terlihat pada aplikasi, terdapat suatu kebutuhan untuk membaca dan
menulis sebuah file. Anda akan mempelajari tentang file input dan output pada
bagian ini.




5.4.1 Membaca sebuah File

Untuk membaca sebuah file, Anda dapat menggunakan class FileInputStream.
Berikut ini adalah salah satu constructor dari class tersebut :

                           FileInputStream(String filename)


Constructor tersebut membuat sebuah koneksi terhadap file dimana nama dari file
tersebut    ditunjukkan   sebagai    sebuah       argument.    Exception     berupa
FileNotFoundException akan muncul jika file tidak ditemukan atau tidak dapat dibuka
dan kemudian dibaca.

Setelah membuat sebuah input stream, Anda kemudian dapat menggunakannya
untuk membaca sebuah file dengan menggunakan method read. Method read
menghasilkan sebuah nilai integer, dan akan menunjukkan nilai 1 jika telah
mencapai batas akhir file.




Pengenalan Pemrograman 2                                                              4
J.E.N.I.




Berikut ini contohnya :


       import java.io.*;

       class ReadFile {
         public static void main(String args[]) throws IOException {
               System.out.println("What is the name of the file to read
               from?");
               String filename;
               BufferedReader     br      =      new     BufferedReader(new
               InputStreamReader(System.in));
               filename = br.readLine();
               System.out.println("Now reading from " + filename + "...");
               FileInputStream fis = null;
               try {
                     fis = new FileInputStream(filename);
               } catch (FileNotFoundException ex) {
                     System.out.println("File not found.");
               }
               try {
                     char data;
                     int temp;
                     do {
                           temp = fis.read();
                           data = (char) temp;
                     if (temp != -1) {
                           System.out.print(data);
                     }
                    } while (temp != -1);
               } catch (IOException ex) {
                     System.out.println("Problem   in   reading  from   the
               file.");
               }
         }
       }




5.4.2 Menulis sebuah file

Untuk menuliskan sebuah file, Anda dapat menggunakan class FileOutputStream.
Berikut ini salah satu constructor yang dapat Anda gunakan.

              FileOutputStream(String filename)




Pengenalan Pemrograman 2                                                   5
J.E.N.I.



Contructor tersebut menyediakan jalur output stream terhadap sebuah file yang
akan ditulis. Sebuah Exception berupa FileNotFoundException akan muncul jika file
yang dimaksud tidak dapat dibuka untuk ditulis.


Jika output stream telah dibuat, Anda dapat menggunakannya untuk menulis file
yang dituju menggunakan method write. Method tersebut menggunakan penandaan
sebagai berikut :

                 void write(int b)

Parameter b mereferensikan data yang akan dituliskan pada file sesuai dengan hasil
output stream.


Program berikut menunjukkan contoh penulisan terhadap file :


           import java.io.*;

           class WriteFile {
                  public static void main(String args[]) throws IOException {
                         System.out.println("What is the name of the file to be
                         written         to?");
                         String filename;
                         BufferedReader br = new BufferedReader(new
                              InputStreamReader(System.in));
                         filename = br.readLine();
                         System.out.println("Enter data to write to " + filename +
                              "...");
                         System.out.println("Type q$ to end.");
                         FileOutputStream fos = null;
                         try {
                                 fos = new FileOutputStream(filename);
                         } catch (FileNotFoundException ex) {
                                 System.out.println("File cannot be opened for
                                      writing.");
                         }
                         try {
                                 boolean done = false;
                                 int data;
                         do {
                                 data = br.read();
                                 if ((char)data == 'q') {
                                        data = br.read();
                                        if ((char)data == '$') {
                                               done = true;
                                        } else {
                                               fos.write('q');
                                               fos.write(data);
                                        }
                                 } else {
                                        fos.write(data);
                                 }
                              } while (!done);
                         } catch (IOException ex) {
                                 System.out.println("Problem in reading from the
                         file.");
                         }



Pengenalan Pemrograman 2                                                             6
J.E.N.I.



               }
           }




5.5 Latihan

5.5.1 Spasi menjadi Underscore ( _ )

Buatlah sebuah program yang memuat dua String sebagai argument, sumber dan
nama file tujuan. Kemudian, baca file sumber dan tuliskan isi dari file tersebut
terhadap file tujuan, seluruh spasi yang ada (‘ ‘) diubah menjadi underscore (‘ _ ‘).




Pengenalan Pemrograman 2                                                            7

More Related Content

What's hot

Laporan 14 Sistem Operasi Linux
Laporan 14 Sistem Operasi LinuxLaporan 14 Sistem Operasi Linux
Laporan 14 Sistem Operasi LinuxIbrahim Naki
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasiHidayatullah Aldy
 
Poss upi-python-dasar-part1
Poss upi-python-dasar-part1Poss upi-python-dasar-part1
Poss upi-python-dasar-part1Poss Upi
 
Pelatihan Python Dasar Part 1 - POSS UPI
Pelatihan Python Dasar Part 1 - POSS UPIPelatihan Python Dasar Part 1 - POSS UPI
Pelatihan Python Dasar Part 1 - POSS UPIRidwan Fadjar
 
Jeni Intro1 Bab05 Mendapatkan Input Dari Keyboard
Jeni Intro1 Bab05 Mendapatkan Input Dari KeyboardJeni Intro1 Bab05 Mendapatkan Input Dari Keyboard
Jeni Intro1 Bab05 Mendapatkan Input Dari KeyboardIndividual Consultants
 
2 file dan directory
2  file dan directory2  file dan directory
2 file dan directoryFajar Baskoro
 
Modul so praktikum
Modul so praktikumModul so praktikum
Modul so praktikumjoko2016
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan javaAntara BoyKean
 
Algoritma dan Struktur Data (Python) - Struktur I/O
Algoritma dan Struktur Data (Python) - Struktur I/OAlgoritma dan Struktur Data (Python) - Struktur I/O
Algoritma dan Struktur Data (Python) - Struktur I/OAndiNurkholis1
 
Kelompok 7 2ka04
Kelompok 7 2ka04Kelompok 7 2ka04
Kelompok 7 2ka04Nugroho W
 
Pelatihan Python Standard Library
Pelatihan Python Standard LibraryPelatihan Python Standard Library
Pelatihan Python Standard LibraryRidwan Fadjar
 
20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinux20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinuxWahyu W
 
Praktikum Sistem Operasi Linux
Praktikum Sistem Operasi LinuxPraktikum Sistem Operasi Linux
Praktikum Sistem Operasi LinuxMirza Afrizal
 
20101119 perintah dasar_sistem_operasi_linux
20101119 perintah dasar_sistem_operasi_linux20101119 perintah dasar_sistem_operasi_linux
20101119 perintah dasar_sistem_operasi_linuxsetyarico
 

What's hot (18)

Laporan 14 Sistem Operasi Linux
Laporan 14 Sistem Operasi LinuxLaporan 14 Sistem Operasi Linux
Laporan 14 Sistem Operasi Linux
 
L I N U X
L I N U XL I N U X
L I N U X
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasi
 
Poss upi-python-dasar-part1
Poss upi-python-dasar-part1Poss upi-python-dasar-part1
Poss upi-python-dasar-part1
 
ikp321-03
ikp321-03ikp321-03
ikp321-03
 
Pelatihan Python Dasar Part 1 - POSS UPI
Pelatihan Python Dasar Part 1 - POSS UPIPelatihan Python Dasar Part 1 - POSS UPI
Pelatihan Python Dasar Part 1 - POSS UPI
 
Jeni Intro1 Bab05 Mendapatkan Input Dari Keyboard
Jeni Intro1 Bab05 Mendapatkan Input Dari KeyboardJeni Intro1 Bab05 Mendapatkan Input Dari Keyboard
Jeni Intro1 Bab05 Mendapatkan Input Dari Keyboard
 
2 file dan directory
2  file dan directory2  file dan directory
2 file dan directory
 
Praktikum 3
Praktikum 3Praktikum 3
Praktikum 3
 
Modul so praktikum
Modul so praktikumModul so praktikum
Modul so praktikum
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan java
 
Algoritma dan Struktur Data (Python) - Struktur I/O
Algoritma dan Struktur Data (Python) - Struktur I/OAlgoritma dan Struktur Data (Python) - Struktur I/O
Algoritma dan Struktur Data (Python) - Struktur I/O
 
Set instruksi
Set instruksiSet instruksi
Set instruksi
 
Kelompok 7 2ka04
Kelompok 7 2ka04Kelompok 7 2ka04
Kelompok 7 2ka04
 
Pelatihan Python Standard Library
Pelatihan Python Standard LibraryPelatihan Python Standard Library
Pelatihan Python Standard Library
 
20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinux20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinux
 
Praktikum Sistem Operasi Linux
Praktikum Sistem Operasi LinuxPraktikum Sistem Operasi Linux
Praktikum Sistem Operasi Linux
 
20101119 perintah dasar_sistem_operasi_linux
20101119 perintah dasar_sistem_operasi_linux20101119 perintah dasar_sistem_operasi_linux
20101119 perintah dasar_sistem_operasi_linux
 

Similar to Aplikasi Berbasis Teks

Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptTashidFafri1
 
10_STREAM DAN FILE.pdf
10_STREAM DAN FILE.pdf10_STREAM DAN FILE.pdf
10_STREAM DAN FILE.pdfJurnal IT
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekimam arifin
 
Laporan1
Laporan1Laporan1
Laporan1Sa Lam
 
Pemrograman C++ - Operasi Berkas
Pemrograman C++ - Operasi BerkasPemrograman C++ - Operasi Berkas
Pemrograman C++ - Operasi BerkasKuliahKita
 
Notasi algoritmik & programming style
Notasi algoritmik & programming styleNotasi algoritmik & programming style
Notasi algoritmik & programming styleTenia Wahyuningrum
 
Jeni intro1-bab05-mendapatkan input dari keyboard
Jeni intro1-bab05-mendapatkan input dari keyboardJeni intro1-bab05-mendapatkan input dari keyboard
Jeni intro1-bab05-mendapatkan input dari keyboardKristanto Wijaya
 
Class system_kelompok 2_SMK TELKOM MALANG
Class system_kelompok 2_SMK TELKOM MALANGClass system_kelompok 2_SMK TELKOM MALANG
Class system_kelompok 2_SMK TELKOM MALANGLailatul Fitriyah
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul viiDevi Apriansyah
 
Praktikum 1 - Prolan.pdf
Praktikum 1 - Prolan.pdfPraktikum 1 - Prolan.pdf
Praktikum 1 - Prolan.pdfirwansyah122
 
Pengantar Sistem Berkas
Pengantar Sistem BerkasPengantar Sistem Berkas
Pengantar Sistem Berkasformatik
 
Modul Praktikum PW 2016 Bab 4 - OperasiFile
Modul Praktikum PW 2016 Bab 4 - OperasiFileModul Praktikum PW 2016 Bab 4 - OperasiFile
Modul Praktikum PW 2016 Bab 4 - OperasiFileleni_istikomah
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxBBXSQUAD
 
STACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknikSTACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknikkoamik4
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekKuncara Laksana
 
Dasar pemrograman-python
Dasar pemrograman-pythonDasar pemrograman-python
Dasar pemrograman-pythonnamasaja
 

Similar to Aplikasi Berbasis Teks (20)

Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.ppt
 
10_STREAM DAN FILE.pdf
10_STREAM DAN FILE.pdf10_STREAM DAN FILE.pdf
10_STREAM DAN FILE.pdf
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
 
Laporan1
Laporan1Laporan1
Laporan1
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 
Pemrograman C++ - Operasi Berkas
Pemrograman C++ - Operasi BerkasPemrograman C++ - Operasi Berkas
Pemrograman C++ - Operasi Berkas
 
Notasi algoritmik & programming style
Notasi algoritmik & programming styleNotasi algoritmik & programming style
Notasi algoritmik & programming style
 
Jeni intro1-bab05-mendapatkan input dari keyboard
Jeni intro1-bab05-mendapatkan input dari keyboardJeni intro1-bab05-mendapatkan input dari keyboard
Jeni intro1-bab05-mendapatkan input dari keyboard
 
Class system_kelompok 2_SMK TELKOM MALANG
Class system_kelompok 2_SMK TELKOM MALANGClass system_kelompok 2_SMK TELKOM MALANG
Class system_kelompok 2_SMK TELKOM MALANG
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul vii
 
Praktikum 1 - Prolan.pdf
Praktikum 1 - Prolan.pdfPraktikum 1 - Prolan.pdf
Praktikum 1 - Prolan.pdf
 
Pengantar Sistem Berkas
Pengantar Sistem BerkasPengantar Sistem Berkas
Pengantar Sistem Berkas
 
Modul Praktikum PW 2016 Bab 4 - OperasiFile
Modul Praktikum PW 2016 Bab 4 - OperasiFileModul Praktikum PW 2016 Bab 4 - OperasiFile
Modul Praktikum PW 2016 Bab 4 - OperasiFile
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
 
Prak 1
Prak 1Prak 1
Prak 1
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
 
STACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknikSTACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknik
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
 
Dasar pemrograman-python
Dasar pemrograman-pythonDasar pemrograman-python
Dasar pemrograman-python
 
Python Programming Basic
Python Programming BasicPython Programming Basic
Python Programming Basic
 

More from Individual Consultants

O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...Individual Consultants
 
Sistem Penyadapan Intruder In The Darkness
Sistem  Penyadapan  Intruder In  The  DarknessSistem  Penyadapan  Intruder In  The  Darkness
Sistem Penyadapan Intruder In The DarknessIndividual Consultants
 
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...Individual Consultants
 
Jeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyJeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyIndividual Consultants
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternIndividual Consultants
 
Jeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcJeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcIndividual Consultants
 
Jeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfJeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfIndividual Consultants
 
Jeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcJeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcIndividual Consultants
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsIndividual Consultants
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsIndividual Consultants
 
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebJeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebIndividual Consultants
 

More from Individual Consultants (20)

24602905 Karsten Nohl
24602905  Karsten  Nohl24602905  Karsten  Nohl
24602905 Karsten Nohl
 
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
 
Sistem Penyadapan Intruder In The Darkness
Sistem  Penyadapan  Intruder In  The  DarknessSistem  Penyadapan  Intruder In  The  Darkness
Sistem Penyadapan Intruder In The Darkness
 
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
 
Jeni Web Programming Cover
Jeni Web Programming CoverJeni Web Programming Cover
Jeni Web Programming Cover
 
Jeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyJeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case Study
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design Pattern
 
Jeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcJeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan Jdbc
 
Jeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfJeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced Jsf
 
Jeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 JsfJeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 Jsf
 
Jeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcJeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced Mvc
 
Jeni Web Programming Bab 7 Mvc Intro
Jeni Web Programming Bab 7 Mvc IntroJeni Web Programming Bab 7 Mvc Intro
Jeni Web Programming Bab 7 Mvc Intro
 
Jeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar JspJeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar Jsp
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced Servlets
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic Servlets
 
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebJeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
 
Jeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik TambahanJeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik Tambahan
 
Jeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 PackagesJeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 Packages
 
Jeni J2 Me Bab09 Optimisasi
Jeni J2 Me Bab09 OptimisasiJeni J2 Me Bab09 Optimisasi
Jeni J2 Me Bab09 Optimisasi
 
Jeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web ServicesJeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web Services
 

Aplikasi Berbasis Teks

  • 1. J.E.N.I. BAB 5 Aplikasi Berbasis Teks 5.1 Tujuan Pembahasan kali ini akan menitikberatkan pada bahasan penggunaan argument command-line. Selebihnya, Anda akan mempelajari mengenai penggunaan streams untuk mendapatkan nilai input dari user pada saat runtime, sekaligus dalam proses manipulasi file. Pada akhir pembahasan, diharapkan pembaca dapat : 1. Mendapatkan input dari command-line 2. Mengetahui cara untuk memanipulasi properties dari sistem 3. Membaca standart input 4. Membaca dan menulis file 5.2 Argument Command-Line dan System Properties Seperti yang telah Anda ketahui pada pembahasan sebelumnya, JAVA mengijinkan user untuk memasukkan data dari command-line. Sebagai contoh, untuk meneruskan argument 1 dan 2 kepada program Java bernama Calculate, anda dapat menuliskan baris berikut pada command prompt java Calculate 1 2 Pada contoh berikut ini, data 1 disimpan pada variabel args[0], begitu pula dengan data 2 yang disimpan pada args[1]. Sehingga, tujuan dari deklarasi String args[] sebagai sebuah parameter pada method utama menjadi jelas. Selain melewatkan argument menuju method utama, Anda juga dapat memanipulasi system properties dari command-line. System properties hampir menyamai environment variables, namun tidak memiliki ketergantungan pada spesifikasi platform yang digunakan. Sebuah property secara sederhana berupa pemetaan antara property name dan value yang dimilikinya. Hal ini ditunjukkan pada Java dalam class Properties. Class System menyediakan sebuah method untuk menentukan system properties yang digunakan, method getProperties yang menghasilkan sebuah object Properties. Class yang sama juga menyediakan method getProperty yang memiliki dua buah bentuk. Pengenalan Pemrograman 2 1
  • 2. J.E.N.I. public static String getProperty(String key) Bentuk ini menghasilkan nilai String dari System Properties yang ditunjukkan oleh key yang ditentukan. Jika hasil menunjukkan nilai null, berarti tidak terdapat property dengan key yang ditentukan. public static String getProperty(String key, String def) Bentuk ini juga menghasilkan nilai String dari System Properties sesuai key yang ditentukan. Akan menghasilkan nilai def, sebuah nilai default, jika tidak terdapat property dengan key yang sesuai. Tabel 1.1: getProperty() method dari class System Kita tidak dapat cukup berhenti pada detail dari system properties, namun dilanjutkan dengan memanipulasi system properties yang digunakan. Jika Anda tertarik mempelajari lebih lanjut tentang system properties, Anda dapat menelusuri dokumentasi API yang disediakan. Anda dapat menggunakan argument opsional –D pada perintah Java dalam command-line untuk menambahkan property baru. java -D<name>=value Sebagai contoh, untuk mengatur system property dengan nama user.home bernilai phillipines, gunakan perintah berikut : java -Duser.home=philippines Untuk menampilkan daftar system properties yang tersedia pada sistem Anda, gunakan method getProperties seperti yang ditunjukkan sebagai berikut : System.getProperties().list(System.out); 5.3 Membaca Standard Input Dibandingkan dengan mendapatkan masukan user dari command-line, sebagian user lebih memilih untuk memasukkan data bilamana diminta oleh program pada saat eksekusi. Satu cara dalam melakukan hal ini adalah dengan menggunakan stream. Sebuah stream adalah abstraksi dari sebuah file atau sebuah perangkat yang mengijinkan beberapa set item untuk dibaca atau ditulis. Streams terhubung dengan physical devices seperti keyboards, consoles dan files. Terdapat dua bentuk umum dari streams, byte streams dan character streams. Byte streams digunakan pada data biner, sedangkan character streams digunakan pada karakter Unicode. System.in dan System.out adalah dua contoh dari byte streams yang digunakan Pengenalan Pemrograman 2 2
  • 3. J.E.N.I. dalam Java. Contoh pertama mereferensikan pada keyboard, kemudian contoh kedua mereferensikan pada console. Untuk membaca karakter dari keyboard, Anda dapat menggunakan byte stream System.in yang terdapat pada object BufferedReader. Baris berikut menunjukkan bagaimana untuk melakukan hal tersebut : BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Method read dari object BufferedReader selanjutnya digunakan untuk membaca nilai input dari perangkat input. ch=(int)br.read(); //method read menghasilkan nilai integer Cobalah contoh kode berikut : import java.io.*; class FavoriteCharacter { public static void main(String args[]) throws IOException { System.out.println("Hi, what's your favorite character?"); char favChar; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); favChar = (char) br.read(); System.out.println(favChar + " is a good choice!"); } } Jika Anda lebih memilih untuk membaca keseluruhan baris daripada membaca satu karakter tiap waktu, gunakan method readLine : str = br.readLine(); Berikut ini sebuah program yang hampir menyerupai contoh sebelumnya, namun membaca keseluruhan string, bukan satu karakter. import java.io.*; class GreetUser { public static void main(String args[]) throws IOException { System.out.println("Hi, what's your name?"); String name; Pengenalan Pemrograman 2 3
  • 4. J.E.N.I. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); name = br.readLine(); System.out.println("Nice to meet you, " + name + "! :)"); } } Pada saat menggunakan streams, jangan lupa untuk mengimport package java.io seperti yang ditunjukkan dibawah ini : import java.io.*; Satu hal lagi yang perlu untuk diingat, pembacaan dari streams dapat menyebabkan terjadinya exception. Jangan lupa untuk menangani exception tersebut menggunakan perintah try-catch atau dengan mengindikasikan exception pada klausa throws dalam method. 5.4 Menangani File Pada beberapa kasus, masukan data disimpan pada sebuah file. Selanjutnya, terdapat beberapa cara jika Anda ingin menyimpan output dari program pada sebuah file. Pada sistem terkomputerisasi, data dari Siswa yang dapat digunakan sebagai input oleh sistem umumnya tersimpan pada sebuah file terpisah. Kemudian, salah satu kemungkinan output dari sistem adalah informasi tentang mata pelajaran yang diikuti oleh siswa. Sekali lagi, output dalam hal ini dapat disimpan dalam sebuah file. Seperti yang terlihat pada aplikasi, terdapat suatu kebutuhan untuk membaca dan menulis sebuah file. Anda akan mempelajari tentang file input dan output pada bagian ini. 5.4.1 Membaca sebuah File Untuk membaca sebuah file, Anda dapat menggunakan class FileInputStream. Berikut ini adalah salah satu constructor dari class tersebut : FileInputStream(String filename) Constructor tersebut membuat sebuah koneksi terhadap file dimana nama dari file tersebut ditunjukkan sebagai sebuah argument. Exception berupa FileNotFoundException akan muncul jika file tidak ditemukan atau tidak dapat dibuka dan kemudian dibaca. Setelah membuat sebuah input stream, Anda kemudian dapat menggunakannya untuk membaca sebuah file dengan menggunakan method read. Method read menghasilkan sebuah nilai integer, dan akan menunjukkan nilai 1 jika telah mencapai batas akhir file. Pengenalan Pemrograman 2 4
  • 5. J.E.N.I. Berikut ini contohnya : import java.io.*; class ReadFile { public static void main(String args[]) throws IOException { System.out.println("What is the name of the file to read from?"); String filename; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); filename = br.readLine(); System.out.println("Now reading from " + filename + "..."); FileInputStream fis = null; try { fis = new FileInputStream(filename); } catch (FileNotFoundException ex) { System.out.println("File not found."); } try { char data; int temp; do { temp = fis.read(); data = (char) temp; if (temp != -1) { System.out.print(data); } } while (temp != -1); } catch (IOException ex) { System.out.println("Problem in reading from the file."); } } } 5.4.2 Menulis sebuah file Untuk menuliskan sebuah file, Anda dapat menggunakan class FileOutputStream. Berikut ini salah satu constructor yang dapat Anda gunakan. FileOutputStream(String filename) Pengenalan Pemrograman 2 5
  • 6. J.E.N.I. Contructor tersebut menyediakan jalur output stream terhadap sebuah file yang akan ditulis. Sebuah Exception berupa FileNotFoundException akan muncul jika file yang dimaksud tidak dapat dibuka untuk ditulis. Jika output stream telah dibuat, Anda dapat menggunakannya untuk menulis file yang dituju menggunakan method write. Method tersebut menggunakan penandaan sebagai berikut : void write(int b) Parameter b mereferensikan data yang akan dituliskan pada file sesuai dengan hasil output stream. Program berikut menunjukkan contoh penulisan terhadap file : import java.io.*; class WriteFile { public static void main(String args[]) throws IOException { System.out.println("What is the name of the file to be written to?"); String filename; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); filename = br.readLine(); System.out.println("Enter data to write to " + filename + "..."); System.out.println("Type q$ to end."); FileOutputStream fos = null; try { fos = new FileOutputStream(filename); } catch (FileNotFoundException ex) { System.out.println("File cannot be opened for writing."); } try { boolean done = false; int data; do { data = br.read(); if ((char)data == 'q') { data = br.read(); if ((char)data == '$') { done = true; } else { fos.write('q'); fos.write(data); } } else { fos.write(data); } } while (!done); } catch (IOException ex) { System.out.println("Problem in reading from the file."); } Pengenalan Pemrograman 2 6
  • 7. J.E.N.I. } } 5.5 Latihan 5.5.1 Spasi menjadi Underscore ( _ ) Buatlah sebuah program yang memuat dua String sebagai argument, sumber dan nama file tujuan. Kemudian, baca file sumber dan tuliskan isi dari file tersebut terhadap file tujuan, seluruh spasi yang ada (‘ ‘) diubah menjadi underscore (‘ _ ‘). Pengenalan Pemrograman 2 7