IF34348 - PEMROGRAMAN LANJUT KONVERSI DATA DAN INPUT DATA 07 Oleh : Andri Heryandi, M.T.
MATERI 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 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 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 p u b l i c c l a s s K o n v e r s i S t r i n g T o N u m b e r { 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 ) { b y t e b ; s h o r t s ; int i; l o n g l ; d o u b l e d ; f l o a t f ; S t r i n g s t a n g k a = " 1 0 0 " ; b=b y t e. p a r s e B y t e ( s t a n g k a ); b + + ; s=s h o r t. p a r s e S h o r t ( " 3 0 0 0 0 " ) ; Hasil RUN: -------------------------- Byte : 101 Short : 30000 Int : 1234512 Long : 1234567890123456789 Double : 123.5678 Float : 12.3456 i=i n t e g e r. p a r s e I n t ( " 1 2 3 4 5 " + " 1 2 " ) ; / / d i c o n c a t d a h u l u, l=l o n g. p a r s e L o n g ( " 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 " ) ; d=d o u b l e. p a r s e D o u b l e ( " 1 2 3. 5 6 7 8 " ) ; f=f l o a t. p a r s e F l o a t ( " 1 2. 3 4 5 6 " ) ; S y s t e m. o u t. p r i n t l n ( " B y t e : " + b ) ; S y s t e m. o u t. p r i n t l n ( " S h o r t : " + s ) ; S y s t e m. o u t. p r i n t l n ("Int : " + i ) ; S y s t e m. o u t. p r i n t l n ( " L o n g : " + l ) ; S y s t e m. o u t. p r i n t l n ( " D o u b l e : " + d ) ; S y s t e m. o u t. p r i n t l n ( " F l o a t : " + f ) ; Oleh : Andri Heryandi, M.T. 6
KONVERSI DATA 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 public class KonversiNumberToString { public static void main(string[] args) { byte b=50; int i=5000; int j; String s; j=i+b; // aritmatika s=integer.tostring(i)+byte.tostring(b); // concat System.out.println("J : "+j); System.out.println("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 Class BufferedReader adalah sebuah class yang digunakan untuk membaca text dari sebuah character-input stream (aliran input-karakter). Class BufferedReader 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
Membaca string import java.io.*; public class ReadDataText1 { MENGGUNAKAN CLASS BUFFEREDREADER public static void main(string[] args) { String nama; BufferedReader kb; kb=new BufferedReader(new InputStreamReader(System.in)); try{ System.out.print("Nama : "); nama=kb.readline(); System.out.println("Selamat datang "+nama); catch(ioexception e){ System.out.println("Ada error pembacaan data"); Hasil RUN: -------------------------- Nama : Mila Marlina Selamat datang Mila Marlina Keyboard Dibaca dari keyboard Oleh : Andri Heryandi, M.T. 11
Membaca Angka MENGGUNAKAN CLASS BUFFEREDREADER import j a v a. i o.*; public c l a s s ReadDataText2 { public s t a t ic void main(string[] args) { String temp; double r a d i u s,luas ; BufferedReader kb; kb=new B u f f e r edreader (new I nputstreamreader (System.in)); try{ System.out.print("Radius : "); temp=kb.readline(); // baca string radius=d o u b l e.parsedouble ( t emp); // k o n v e rsikan ke d o u b le luas= Math.PI* radius*radius ; // proses System.out.println("Luas : "+luas); / / o u tput catch(i O E x c e ption e){ System.out.println("Ada error pembacaan d ata"); Hasil RUN: -------------------------- Radius : 12 Luas : 452.3893421169302 Dibaca dari keyboard Oleh : Andri Heryandi, M.T. 12
MENGGUNAKAN CLASS JOPTIONPANE 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 Membaca String import javax.swing.joptionpane; public class ReadDataGUI { public static void main(string[] args) { String nama; nama=joptionpane.showinputdialog (null,"nama Anda : "); System.out.println("Nama Anda : "+nama); Hasil RUN: -------------------------- Nama Anda : Wiro Sableng Dibaca dari keyboard Oleh : Andri Heryandi, M.T. 14
MENGGUNAKAN CLASS JOPTIONPANE Membaca Angka import javax.swing.joptionpane; public class ReadDataGUI2 { public static void main(string[] args) { String temp; int radius; double luas; temp=joptionpane.showinputdialog (null,"radius : "); radius=integer.parseint(temp); luas=math.pi*radius*radius; JOptionPane.showMessageDialog (null,"luas : "+luas); Oleh : Andri Heryandi, M.T. 15
BACA DATA DARI FILE Oleh : Andri Heryandi, M.T. 16
BACA DATA DARI FILE Pembacaan data dari file bisa dilakukan dengan menggunakan class BufferedReader, 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 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 Membaca String import java.io.*; public class BacaStringDariFile { public static void main(string[] args) { String temp; int baris; BufferedReader kb; try{ kb=new BufferedReader(new FileReader("D:\\lagu.txt")); baris=0; // ulangi sampai readline tidak lagi mendapatkan data. while((temp=kb.readline())!=null) System.out.printf ("%3d >> %s\n",++baris,temp); catch(ioexception e){ System.out.println("Error : "+e.getmessage()); Hasil RUN: -------------------------- 1 >> Balonku ada lima 2 >> Rupa-rupa warnanya 3 >> Hijau, kuning, kelabu 4 >> Merah muda dan biru 5 >> 6 >> Meletus balon hijau DOR 7 >> Hatiku sangat kacau 8 >> Balonku tinggal empat 9 >> Kupegang erat-erat Oleh : Andri Heryandi, M.T. 19
BACA DATA DARI FILE Membaca Angka dari File i m p o r t j a v a. i o. * ; p u b l i c c l a s s B a c a A n g k a D a r i F i l e { 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 ) { S t r i n g t e m p ; int a n g k a ; int t o t a l ; B u f f e r e d R e a d e r kb; try{ k b = n e w B u f f e r e d R e a d e r ( n e w F i l e R e a d e r ( " D : \ \ d a t a. t x t " ) ) ; t o t a l = 0 ; w h i l e ( ( t e m p = k b. r e a d L i n e ( ) )! = n u l l ) { / / b a c a 1 baris s t r i n g a n g k a = I n t e g e r. p a r s e I n t ( t e m p ) ; / / k o n v e r s i k a n ke i n t e g e r t o t a l +=a n g k a ; / / t a m b a h k a n ke t o t a l Hasil RUN: -------------------------- Angka : 56 Total => 56 Angka : 78 Total => 134 Angka : 45 Total => 179 Angka : 70 Total => 249 Angka : 90 Total => 339 Angka : 26 Total => 365 S y s t e m. o u t. p r i n t f ("Angka : % 3 d T o t a l = > % 4 d \ n",angka, t o t a l ); c a t c h ( I O E x c e p t i o n e ) { S y s t e m. o u t. p r i n t l n ( " E r r o r : " + e. g e t M e s s a g e ( ) ) ; Oleh : Andri Heryandi, M.T. 20