IF34348 - PEMROGRAMAN LANJUT
KONVERSI DATA DAN INPUT DATA
Oleh : Andri Heryandi, M.T.
07
MATERI IF34348 - Pemrograman Lanjut
Konversi Tipe Data String Ke Number Number Ke String
Berbasis Text Menggunakan class BufferedReader
Berbasis GUI Menggunakan JOptionPane
Baca Data Dari File
Oleh : Andri Heryandi, M.T.
2
KONVERSI DATA
Oleh : Andri Heryandi, M.T.
3
KONVERSI DATA IF34348 - Pemrograman Lanjut
Kenapa butuh konversi data. Ketika anda membuat program, banyak sekali pembacaan data yang hanya mereturnkan nilai berupa string, padahal data tersebut akan diolah sebagai angka. Ketika anda ingin menampilkan data angka ke sebuah objek yang hanya bisa menerima string.
Oleh : Andri Heryandi, M.T.
4
KONVERSI DATA IF34348 - Pemrograman Lanjut
Konversi data dari string ke number Gunakan class Byte, Short, Integer, Long Gunakan class Float, Double (class-class tersebut bukanlah tipe data primitif. Namanya diawali dengan huruf kapital)
Setiap class-class tersebut mempunyai method bernama parseXXXX (di mana XXXX adalah nama jenis tipe datanya), misalnya : parseInt, parseLong, parseDouble Method-method tersebut merupakan method static yang bisa anda panggil kapan saja tanpa harus diinstansiasikan.
Oleh : Andri Heryandi, M.T.
5
KONVERSI DATA IF34348 - Pemrograman Lanjut public class KonversiStringToNumber { p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { Hasil RUN: byte b; -------------------------short s; Byte : 101 int i; Short : 30000 long l; Int : 1234512 double d; float f; Long : 1234567890123456789 String stangka="100"; Double : 123.5678 b=Byte.parseByte(stangka); Float : 12.3456 b++; s=Short.parseShort("30000"); i=Integer.parseInt("12345"+"12");// diconcat dahulu, l=Long.parseLong("1234567890123456789"); d=Double.parseDouble("123.5678"); f=Float.parseFloat("12.3456"); System.out.println("Byte : "+b); System.out.println("Short : "+s); System.out.println("Int : "+i); System.out.println("Long : "+l); System.out.println("Double : "+d); System.out.println("Float : "+f); } }
Oleh : Andri Heryandi, M.T.
6
KONVERSI DATA IF34348 - Pemrograman Lanjut
Konversi data dari number ke string Gunakan class Byte, Short, Integer, Long Gunakan class Float, Double
Setiap class-class tersebut mempunyai method bernama toString yang akan mereturnkan string dari parameternya. Method tersebut merupakan method static yang bisa anda panggil kapan saja tanpa harus diinstansiasikan.
Oleh : Andri Heryandi, M.T.
7
KONVERSI DATA IF34348 - Pemrograman Lanjut
p u bli c c lass Konv ers iNumb erTo Str ing { p ubli c s tatic v oi d m ain(S trin g[] a r g s ) { b yte b=5 0; i nt i =50 00; i nt j ; S trin g s ; j = i + b ; / / ari tmat ika s = Int ege r.toS trin g (i )+ Byt e.to Str ing (b ); / / c oncat S yste m.o ut.pr intl n (" J : " +j); S yste m.o ut.pr intl n (" S : " +s); } }
Hasil RUN: -------------------------J : 5050 S : 500050
Oleh : Andri Heryandi, M.T.
8
INPUT DATA
Oleh : Andri Heryandi, M.T.
9
MENGGUNAKAN CLASS BUFFEREDREADER IF34348 - Pemrograman Lanjut
Class Buf feredReader adalah sebuah class yang digunakan untuk membaca text dari sebuah character-input stream (aliran input-karakter). Class Buf feredReader berada di package java.io; Character-input stream bisa berupa keyboard atau file. Method yang ada di dalam class tersebut adalah : int read() : Mereturnkan sebuah integer yang berisi sebuah karakter 2 byte. Jika telah mencapai akhir akan mereturnkan -1. String readLine() : Mereturnkan sebuah string. Method lain bisa dibaca di referensi/javadoc.
Oleh : Andri Heryandi, M.T.
10
MENGGUNAKAN CLASS BUFFEREDREADER IF34348 - Pemrograman Lanjut
Membaca string
Keyboard
i mpor t j ava.i o.*; p u bli c c lass Read Dat aText 1 { pub lic stat ic v oid main (Str ing [] ar gs ) { S trin g n ama ; B uffe red Reade r kb ; k b=ne w B uffer ed Re ade r (new Inp utS tream Read er ( Syste m.in )); t ry{ S yste m.o ut.pr int ( " Na ma : "); n ama = kb. readL ine ( ); S yste m.o ut.pr intl n ( " Selam at d ata ng " + n a m a ) ; } catc h( I OExce pt io n e ){ S yste m.o ut.pr intl n (" Ada e rror pe mbaca an d ata "); } Hasil RUN: } -------------------------}
Nama : Mila Marlina Selamat datang Mila Marlina
Oleh : Andri Heryandi, M.T.
Dibaca dari keyboard
11
MENGGUNAKAN CLASS BUFFEREDREADER IF34348 - Pemrograman Lanjut
Membaca Angka import java.io.*; public class ReadDataText2 { public static void main(String[] args) { String temp; double radius,luas; BufferedReader kb; kb=new BufferedReader(new InputStreamReader(System.in)); try{ System.out.print("Radius : "); temp=kb.readLine(); // baca string radius=Double.parseDouble(temp); // konversikan ke double luas=Math.PI*radius*radius; // proses System.out.println("Luas : "+luas); // output }catch(IOException e){ System.out.println("Ada error pembacaan data"); } Hasil RUN: } -------------------------}
Radius : 12 Luas : 452.3893421169302
Oleh : Andri Heryandi, M.T.
Dibaca dari keyboard
12
MENGGUNAKAN CLASS JOPTIONPANE IF34348 - Pemrograman Lanjut
Class JOptionPane adalah sebuah class yang digunakan untuk membaca text dengan cara menampilkan sebuah dialog berbasis GUI yang digunakan untuk meminta input dari user. Method yang ada di dalam class tersebut adalah : String showInputDialog() : menampilkan dialog input data dan akan mereturnkan string jika mengklik tombol OK, dan akan mereturnkan null jika menekan tombol Cancel. Method ini method static. void showMessageDialog() : menampilkan message dialog. Method lain baca di javadoc/referensi.
Oleh : Andri Heryandi, M.T.
13
MENGGUNAKAN CLASS JOPTIONPANE IF34348 - Pemrograman Lanjut
Membaca String i mpor t j avax. swin g.J Optio nPan e ; p u bli c c lass Read Dat aGUI { pub lic stat ic v oid main (Str ing [] ar gs ) { S trin g n ama ; n ama = JOp tionP an e. sho wInpu tDia log (null ," Na ma A n d a : ") ; S yste m.o ut.pr intl n (" Nama Anda : "+ nam a ); } Hasil RUN: }
-------------------------Nama Anda : Wiro Sableng
Dibaca dari keyboard Oleh : Andri Heryandi, M.T.
14
MENGGUNAKAN CLASS JOPTIONPANE IF34348 - Pemrograman Lanjut
Membaca Angka i mpor t j avax. swin g.J Optio nPan e ; p u bli c c lass Read Dat aGUI2 { pub lic stat ic v oid main (Str ing [] ar gs ) { S trin g t emp; i nt r adi us; d oubl e l uas ; t emp= JOp tionP ane. sho wInpu tDia log (null ,"Ra diu s : " ); r adiu s= I ntege r. pa rse Int (t emp) ; l uas = Mat h.PI * ra di us* radiu s ; J Opti onP ane.s ho wM ess ageDi alog (nu ll , " L uas : " + l u a s ) ; } }
Oleh : Andri Heryandi, M.T.
15
BACA DATA DARI FILE
Oleh : Andri Heryandi, M.T.
16
BACA DATA DARI FILE IF34348 - Pemrograman Lanjut
Pembacaan data dari file bisa dilakukan dengan menggunakan class Buf feredReader, yang berbeda adalah streamnya yang berasal dari file bukan dari keyboard. Penggunaannya mirip dengan membaca data dari keyboard.
Oleh : Andri Heryandi, M.T.
17
BACA DATA DARI FILE IF34348 - Pemrograman Lanjut
Persiapan : Buat file bernama : lagu.txt di drive D:\ dengan isi : Balonku ada lima Rupa-rupa warnanya Hijau, kuning, kelabu Merah muda dan biru Meletus balon hijau DOR Hatiku sangat kacau Balonku tinggal empat Kupegang erat-erat
Buat file bernama : data.txt di drive D:\ dengan isi : 56 78 45 70 90 26 Oleh : Andri Heryandi, M.T.
18
BACA DATA DARI FILE IF34348 - Pemrograman Lanjut
Membaca String
Hasil RUN: --------------------------
1 >> Balonku ada lima i mpor t j ava.i o.*; 2 >> Rupa-rupa warnanya p u b l i c c lass Baca Str ingDa riFi le { 3 >> Hijau, kuning, kelabu pu b lic stat ic v oid main (Str ing [] ar gs ) { 4 >> Merah muda dan biru 5 >> S trin g t emp; 6 >> Meletus balon hijau DOR i nt b ari s ; 7 >> Hatiku sangat kacau 8 >> Balonku tinggal empat B uffe red Reade r kb ; 9 >> Kupegang erat-erat t ry{ k b=ne w B uffer edRe ade r (new Fil eRe ader ( "D: \ \ la gu.tx t")) ; b aris = 0 ; / / ul ang i sam pai rea dLine tid ak l a g i mend apa tkan data . w hile ((t emp= k b.re adL ine () )!=n ull ) S yste m.o ut.pr intf ("% 3d >> %s \ n", ++ bar is,t emp ) ; } catc h( I OExce ptio n e ){ S yste m.o ut.pr intl n (" Error : " + e. getMe ssag e () ); } } } Oleh : Andri Heryandi, M.T.
19
BACA DATA DARI FILE IF34348 - Pemrograman Lanjut
Membaca Angka dari File
Hasil RUN:
import java.io.*; -------------------------public class BacaAngkaDariFile { Angka : 56 Total => 56 public static void main(String[] args) { Angka : 78 Total => 134 String temp; Angka : 45 Total => 179 int angka; Angka : 70 Total => 249 int total; Angka : 90 Total => 339 BufferedReader kb; Angka : 26 Total => 365 try{ kb=new BufferedReader(new FileReader("D:\\data.txt")); total=0; while((temp=kb.readLine())!=null){ // baca 1 baris string angka=Integer.parseInt(temp); // konversikan ke integer total+=angka; // tambahkan ke total System.out.printf("Angka : %3d Total => %4d\n",angka,total); } }catch(IOException e){ System.out.println("Error : "+e.getMessage()); } } }
Oleh : Andri Heryandi, M.T.
20