BAHASA PEMROGRAMAN JAVA
GUI, ERROR EXCEPTION EXCEPTION,, THREAD, THREAD, I/O (INPUT/O (INPUT/OUTPUT UTPUT), ), DATABASE & PEMBUATAN LAPORAN
1
KATA PENGANTAR Dengan Dengan berkem berkemban bangn gnya ya teknolo teknologi, gi, bahasa bahasa pemrog pemrogram raman an Java tampil tampil dengan dengan gaya gaya yang berbeda dengan bahasa pemrograman sebelumnya. Dengan keunggulan yang tidak dimiliki oleh bahasa pemrograman pemrograman lainnya, yaitu multiplatform. multiplatform. Java dengan dengan motonya motonya “Write Once Use Every Where” telah dibuktikan dengan banyaknya peralatan dewasa ini yang menggunakan bahasa pemrograman Java. Java Java juga juga meru merupak pakan an baha bahasa sa pemro pemrogr gram aman an bebas bebas atau atau tanpa tanpa biaya biaya,, sehing sehingga ga memu memudah dahka kan n para para peng pengem emban bang g untuk untuk meng mengem emba bang ngka kan n aplik aplikasi asi,, maup maupun un dari dari sisi sisi pengguna aplikasi, dapat mengefesienkan biaya yang harus dikeluarkan. Untu Untuk k memp mempel elaj ajar arii baha bahasa sa pemr pemrog ogra ram man Java Java,, khus khusus usny nyaa tamp tampil ilan an lay layar Client/ Server Server tidakla tidaklah h mudah mudah,, banya banyak k kendala kendala yang dihadapi dihadapi,, oleh karena karena itu penulis penulis merasa terdorong untuk membuat buku yang lebih detail beserta contoh dan latihan. Buku ini selain selain membah membahas as tentang tentang pemgrog pemgrogram raman an GUI (Grafik (Grafik User Interface Interface), ), pembaha pembahasan san lainny lainnyaa adalah adalah pengg pengguna unaan an dan penang penangana anan n kesalah kesalahan an program program ( Error Exception ), penggunaan penggunaan program program dengan dengan proses parallel parallel ( thread ), ), penanganan file input dan output, baga bagaim iman anaa cara cara meny menyim impa pan n data data pada pada database, membua membuatt laporan laporan menggunak menggunakan an JFreeReport dan Pentaho, Pentaho, dan menyingg menyinggung ung sedikit mengenai mengenai penggunaan penggunaan editor bahasa pemrograman pemrograman Java, yaitu NetBeans dan JBuilder. Pembuatan buku ini dibuat dan ditujukan kepada pengembang program, mahasiswa informatika, Sekolah Menengah Kejuruan (SMK) informatika, dan buat masyarakat luas yang yang tertarik tertarik menge mengeneai neai informa informatika tika khususny khususnyaa bidang bidang pembuat pembuatan an aplikas aplikasii progra program m dengan dengan mengg mengguna unakan kan bahasa bahasa pemrog pemrogram raman an Java. Java. Dengan Dengan tujuan tujuan dapat dapat diterapk diterapkan an dan dimanfaatkan secara luas di masyarakat. Penulis Penulis telah telah semaks semaksima imall mungk mungkin in untuk untuk menulis menulis buku buku Bahasa Bahasa Pemrog Pemrogram raman an Java Java ini, ini, seba sebaga gaii penga pengabd bdian ian penul penulis is terha terhada dap p Negara Negara untuk untuk turut turut serta serta menc mencer erdas daska kan n masyarakat luas. Walaup Walaupun un sudah sudah semaks semaksima imall mungk mungkin in penulis penulis tetap tetap membutu membutuhka hkan n kritis kritis dan saran saran dari dari teman teman-te -tema man n yang telah telah memb membac acaa tulisa tulisan n ini denga dengan n meng mengiri irimk mkan an email email ke
[email protected] atau
[email protected] [email protected].. Akhir kata saya ucapkan terima kasih, semoga Bangsa dan Negara Indonesia semakin maju maju diseluru diseluruh h bidang bidang dan semaki semakin n memper memperhati hatikan kan dibidan dibidang g pendidik pendidikan an Indones Indonesia ia khususnya bidang Informatika. Jakarta, Jakarta, Desember Desember 2005
Penulis
2
DAFTAR DAFTAR ISI
3
PENDAHULUAN Teknologi Teknologi Java dibuat sebagai sebagai bahasa pemrograman pemrograman kecil kecil pada tahun 1991 oleh Sun Microsystem. Microsystem. Pada saat itu proyek pembuatan pembuatan bahasa pemrogram pemrograman an Java disebut “The Green Project”. “The Green Project” yang merupakan proyek rahasia saat itu beranggotakan 13 (tiga belas) orang dan dipimpin oleh James Gosling yang berkantor tersembunyi di Sand Sand Hill Hill Road Road di Menlo Menlo Park Park.. Seca Secara ra teknis teknis terpu terputus tus dari dari peru perusah sahaan aan SUN dan dan dikerjakan dikerjakan sekitar 18 (delapan belas) bulan lamanya. lamanya. Mereka berusaha untuk mengantisipasi dengan merancang aplikasi atau perangkat lunak lunak lanjut lanjutan an pada pada kompute komputer. r. Hasilny Hasilnyaa sangat sangat berbeda berbeda dengan dengan sistem sistem kompute komputerr yang telah ada. Nama bahasa pemrograman dikenal dengan nama “Oak”. Pengenalan bahasa pemrograman baru tersebut dikenalkan pada industri televisi kabel kabel digital digital,, tetapi tetapi ide mereka mereka terlalu terlalu jauh dan tidak tidak dapat dapat diterap diterapkan kan pada waktu waktu dekat dekat,, sehing sehingga ga indust industri ri televi televisi si belum belum siap siap mene meneri rima ma tekno teknolog logii yang merek merekaa tawarkan. Saat teknologi internet sudah dikenal luas, bahasa pemrograman “Oak” berubah menjadi menjadi bahasa bahasa pemrog pemrogram raman an Java dan dipublik dipublikasi asi tahun tahun 1995. 1995. Aplikasi Aplikasi pertam pertamaa yang yang mengg mengguna unakan kan teknolo teknologi gi Java adalah adalah Netscap Netscapee Navigat Navigator, or, yang yang merupak merupakan an Selancar Internet. Saat ini, dalam waktu 10 tahun, penggunaan penggunaan Java sudah dilakukan dilakukan oleh 4 (empat) juta pengem pengembang bang sistem aplikas aplikasii kompute komputerr secara secara keselur keseluruhan uhan di dunia, dunia, dan telah telah memasuki memasuki segmen segmen industri besar serta penggunaannya penggunaannya serta kertekaitanny kertekaitannyaa dengan dengan peralatan, komputer dan jaringan. Terbu Terbukt ktii deng dengan an keun keungg ggula ulan, n, efesi efesien ensi, si, pengg penggun unaan aan bany banyak platfo platform rm,, dan dan keamanan keamanan membuat membuat teknologi Java Java digunakan digunakan untuk penanganan penanganan 2.5 (dua setengah) miliar peralatan yang terdiri dari lebih 700 (tujuh ratus) juta komputer, lebih dari 1 (satu) miliar peralatan bergerak (data berdasarkan dari Ovum), 1.25 (satu seperempat) miliar miliar kartu kartu pintar, pintar, printer, printer, kamera kamera Web , permaina permainan, n, naviga navigasi si kendar kendaraan aan seperti seperti mobil, aplikasi pembayaran parkir dan banyak lagi. Pada saat ini, kita dapat menemukan menemukan Teknologi Teknologi Java pada jaringan jaringan komputer dan peralatan peralatan yang yang berhubun berhubungan gan dengan dengan Intern Internet et dan kompute komputerr superce supercepat pat para ahli hingga laptop dan handphone. Dari pengguna di jalan-jalan hingga pemain permainan (game ) dan kartu kredit, sebagai bukti bahwa teknologi teknologi Java ada dimana-mana. dimana-mana. Kenapa pengembang aplikasi memilih Teknologi Java ?. Karena bahasa program Java telah telah berulan berulang g-ulang -ulang dikaji dikaji ulang, ulang, pengemban pengembangan gan,, penguj pengujian ian langsung langsung dan dibuktikan dengan komunitas lebih dari 4 (empat) juta pengembang perangkat lunak dan aplikasi. aplikasi. Alasan lain adalah bahasa pemrograman Java dapat dikembangkan pada 1 (satu) platform atau jenis sistem operasi dan dapat dijalankan pada platform lainnya, dan tidak tergantung pada aplikasi web, server client, penyimpanan data HTML dan lainlain. Dengan Dengan kombina kombinasi si teknolo teknologi gi yang yang dimiliki dimiliki oleh oleh Java menjadik menjadikan an aplikasi aplikasi yang yang dapat dan mudah diubah suatu saat serta meringankan sisi pengguna produk aplikasi.
4
Buku Bahasa Bahasa Pemrog Pemrogram raman an JAVA-GUI, JAVA-GUI, yang yang ada dihadapa dihadapan n anda anda sekarang sekarang,, menggunakan bahasa pemrograman Java standard J2SDK yang dikembangkan oleh Sun Microsystem (www.sun.com (www.sun.com). ). Selain itu, buku ini disusun menggunakan konsep praktik langsung ( learning by doing) yang dilengkapi pembahasan contoh program dengan menggunakan beberapa objek Java , lengkap lengkap dengan pembahasanny pembahasannya. a. Harapann Harapannya ya,, buku buku ini bisa menga mengantar ntarkan kan pembaca pembaca mampu mampu mengem mengemban bangka gkan n Interface) layakn program GUI (Grafik User Interface layaknya ya form dan objek objek lainny lainnya. a. Sekalig Sekaligus us dapat digunakan dalam form, grafik 2 (dua) dimensi, event handling, error handling, file akses, akses, multithread , dan databas databasee (mysql) (mysql) serta serta pengg pengguna unaan an JBuilder JBuilder,, Netbean Netbeanss dan JfreeReport dan Pentaho. Pentaho. Dikarenakan buku ini diperuntukkan pada pembaca yang sudah mengenal dasardasar algoritma algoritma dan dasar-dasar dasar-dasar bahasa pemrograman pemrograman Java . Pembahasannya terdiri dari 14 (empat belas) bab, yaitu : BAB I Pengenalan GUI dan cara menggunakan Jframe. BAB II Penggunaan grafik 2D pada Jframe. BAB III Contoh Contoh program program input mahasis mahasiswa wa mengg mengguna unakan kan objek objek JLabe JLabel, l, JTextFi JTextField, eld, JCheck JCheckBox, Box, JRadioBu JRadioButton tton,, JComb JComboBox, oBox, JButton, JButton, Action Action Listene Listenerr dan Layout Layout (FlowLayout dan Border Layout). BAB IV Merubah contoh program input pada bab III dengan merubah objek JCheck box dengan dengan JList JList Multi Multi Select Selected ed , dan dan obje objek k JRad JRadio ioBu Butt tton on deng dengan an JLis JListt Single Selected . Sedangkan Sedangkan layout yang yang digunakan digunakan adalah Border Layout Layout BAB V Bab ini menera menerangk ngkan an bagaim bagaimana ana mengg mengguna unakan kan peralat peralatan an mouse mouse dan keyboa keyboard rd dengan fasilitas Java objek MouseMotionListener, MouseMotionListener, MouseListener MouseListener,, KeyListene KeyListener, r, dan ActionListener. BAB VI Membuat program konversi suhu menggunakan objek JSlider BAB VII Mem Membuat buat prog progra ram m edit editor or beri berita ta meng menggu guna naka kan n obje objek k JMen JMenuB uBar ar,, JMen JMenu, u, JPopupMenu, JMenuItem, JTextArea, dan Box BAB VIII Mengenal penggunaan JInternalFrame BAB IX Mengenal penggunaan tampilan group berupa tab dengan objek JTabbedPane BAB X Mengenal model desain tampilan pada standar Java BAB XI Bagaimana cara mengatasi kesalahan program atau yang kita kenal dengan Error Excption. BAB XII
5
Mengenal Penggunaan Thread BAB XIII Menge Mengena nall cara cara meng mengak akses ses file file dan dan meng mengem emba bang ngka kan n prog progra ram m pada pada bab bab VII VII menggunakan fasilitas akses file. BAB XIV Cara menggunakan database mysql dan interface koneksi database JDBC BAB XV Membuat laporan dengan menggunakan jFreeReport BAB XVI Jawaban Soal Latihan BAB XVI Penutup
6
BAB I
GUI (Grafik User Interface) Pertanyaan Pertanyaan mendasar mengenai mengenai penggunaan penggunaan tampilan atau GUI dalam program adalah seberapa penting hal itu dilakukan. Bukankah program sudah berjalan sesuai dengan permintaan? Pertanyaan itu biasanya menghantui setiap pengembang program ( programmer ) pada saat membuat program. Tentu Tentu saja kepentin kepentingan gan penggu penggunaan naan tampila tampilan n akan akan berpula berpulang ng pada pada penemp penempatan atan program program itu sendiri. Untuk program program yang yang hanya hanya ditempa ditempatka tkan n pada sisi komput komputer er server server yang yang jarang jarang berinteraksi dengan pengguna, maka fungsi dasar program dirasa cukup memadai. Tetapi Tetapi apabila apabila progra program m tersebut tersebut diperki diperkirak rakan an akan akan banya banyak k berinte berinterak raksi si denga dengan n pengguna, pengguna, maka ada baiknya baiknya jika program menggunakan menggunakan tampilan. Beberapa alasan bahwa program harus menggunakan tampilan, yaitu - Dengan Dengan tampilan, tampilan, program program akan nampak jauh lebih menarik menarik - Inter nterak akti tif f - User Friendly atau mudah dalam penggunaannya - Dapat berinterak berinteraksi si dengan dengan peralatan peralatan seperti seperti mouse, mouse, joystick joystick dan peralatan peralatan lainnya. lainnya. Jika pengem pengembang bang program program peduli peduli terhadap terhadap tampila tampilan, n, biasany biasanyaa progra program m yang yang dihasilkan akan lebih diterima oleh pengguna. Bahkan sering karena tampilan yang menarik, program itu memiliki nilai yang lebih tinggi dibandingkan dengan program lain dengan tampilan yang sederhana. Saat Saat ini, ini, terd terdap apat at bebe bebera rapa pa mode modell Frame rame GUI GUI yang ang dapa dapatt digu diguna naka kan n saat saat mengembang mengembangkan kan program program Java yaitu java.awt.* java.awt.* dan javax.swing.*. javax.swing.*. Di dalam dalam buku buku ini, untuk untuk tampila tampilan n GUI, penulis menggun menggunaka akan n javax.sw javax.swing ing.*, .*, yaitu JFrame, Jlabel, JTextField, JRadioButton, JCheckBox, JComboBox, JTextArea, JSlider, JMenuBar, JPopUpMenu, JMenuItem, JMenuItem, dan tools lainnya. Disertak Disertakan an pula cara cara instalas instalasii dan pengg pengguna unaan an Borland Borland JBuilder JBuilder dan Netbean Netbean dalam pembuatan aplikasi GUI. JFRAME
Saat kita membuat program Java GUI, yang pertama pertama kali kita harus kuasai kuasai adalah pengg penggun unaan aan JFra JFrame me.. Jfram Jframee digu diguna naka kan n untuk untuk mende mendesai sainmo nmode dell tampil tampilan an yang yang didalamnya dapat kita tempatkan komponen-komponen lainnya. Contoh penggunaa penggunaan n tampilan frame pada pada program Java Java : //program //program pertama //Tidak Menggunakan Menggunakan Construktor Construktor
import javax.swing.JFr javax.swing.JFrame; ame; class class frame1{ frame1{ public public static static void void main(St main(String ring args []){ JFrame JFrame tampi tampil l = new new JFra JFrame( me(); ); tampil.show(); } }
7
Atau //progra //program m kedua kedua mengguna menggunakan kan konstru konstrukto ktor r import javax.swing.*; javax.swing.*;
class class frame21 frame21 extends extends JFrame{ JFrame{ frame21(){ //construktor show(); } } class class frame22 frame22{ { public public static static void main(St main(String ring args[]){ args[]){ new frame21 frame21(); (); } }
Apabila kedua program tersebut dikompilasi dan dijalankan maka akan terdapat tampilan seperti dibawah ini :
Gambar 1.1. JFrame Untuk membuat frame dengan tulisan “Universitas Budi Luhur”, pada posisi x = 10 dan Y = 100, lebar = 300, tinggi = 200, Resizable false, dan akan terhapus di alokasi memori setelah aplikasi di tutup seperti pada gambar 1.2 sebagai berikut :
setLocation (10,100 (10,100); );
uper("Universitas Budi Luhur");
setResizable(false);
this.setSize(300,200 this.setSize(300,200))
Gambar 1.2. JFrame Dan Property //program //program ketiga import javax.swing.*; javax.swing.*; class class frame61 frame61 extends extends JFrame{ JFrame{
8
frame61(){
super("Universi super("Universitas tas Budi Luhur"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocatio this.setLocation n (10,100); (10,100); this.setSize(300,200); setResizable(false); show(); } } class class frame62 frame62{ { publ public ic static static void void main main (Str (String ing args[ args[]){ ]){ new frame61 frame61(); (); } }
9
BAB II
GRAFIK DUA DIMENSI (2D) PADA JFRAME Grafik dua dimensi (2D) menggunakan class yang terdapat pada java.awt.*, yaitu Canvas. Komponen Canvas tersebut berbentuk kotak kosong pada layar. Di dalam Canv Canvas as ters terseb ebut ut dapa dapatt kita kita gunak unakan an seba sebaga gaii medi mediaa gamba ambarr 2 (dua (dua)) dime dimens nsi. i. Pengg Penggunaa unaan n Canvas Canvas harus harus dibaren dibarengi gi dengan dengan sub class class paint paint sebaga sebagaii media media gamba gambarr yang berupa perintah. Cara menggabungkan penggunaan Canvas dan Jframe adalah sebagai berikut :
Gambar 2.1. 2.1. Grafik dua Dimensi Dimensi (2D) Dan JFRAME JFRAME
//program //program ke empat empat import javax.swing.*; javax.swing.*; import java.awt.*; java.awt.*; //Class //Class Canvas Canvas extends Canvas Canvas{ class class grap1 grap1 extends
pub publi lic c void void paint paint (Grap (Graphic hics s g){ //(x,y,width,height) g.drawRect(1,5,50,20); g.drawLine(35,50,100,70); //(x,y,width,height,arcwidth,archeight g.drawRoundRect(1,50,30,40,5,100); g.se g.setC tCol olor or(C (Col olor or.Y .YEL ELLO LOW) W); ; //se //set t warn warna a g.drawOval(110,50,40,30); g.setFont(new g.setFont(new Font("Tahoma",F Font("Tahoma",Font.ITAL ont.ITALIC,20)) IC,20)); ; g.drawString("9511500134",80,15); g.setColor(Color. g.setColor(Color.BLUE); BLUE); //set warna g.fillRect(1,110,30,20); g.fillOval(50,110,30,20); } }
10
//Class //Class frame frame class class grap11 grap11 extends extends JFrame{ JFrame{ private private Containe Container r konten= konten=new new Contain Container() er(); ;
priva private te grap1 grap1 duaD =new grap1() grap1(); ; grap11(){ super("Universita super("Universitas s Budi Luhur"); setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); this.setLocation(10,100); this.setSize(250,200); kont konten en= = getC getCo onten ntentP tPan ane e(); ();
konten.add(duaD); show(); } public public static static void main(Str main(String ing args[]) args[]){ { new grap11() grap11(); ; } }
Contoh tampilan pada gambar ke II.1, terdapat 2 (dua) class, yaitu class grap1 grap1 extend extends s Ca Canv nvas as - class class grap1 grap11 1 ex exten tends ds JFram JFrame e - class Pada Pada class class pertam pertama, a, class class yang yang bernama bernama grap1, grap1, merupa merupakan kan turunan turunan dari objek objek Canvas Canvas yang yang berasa berasall dari java.awt java.awt yang yang diguna digunakan kan untuk untuk melaku melakukan kan design design grafik grafik 2D. Adap Adapun un stru strukt ktur ur dasa dasarr dari dari canva canvass bers bersif ifat at abst abstra rak k deng dengan an bent bentuk uk dasa dasarr pemrogramannya adalah sebagai berikut : [public| [public|pri private vate] ] class class
extend extends s Canv Canvas{ as{ public public void void paint(Gr paint(Graph aphics ics < objectname>){ ….. } }
Perumpamaan Perumpamaan membuat gambar 2D menggunak menggunakan an objek Canvas adalah seperti meng mengga gamb mbar ar pada pada sebu sebuah ah kert kertas as koso kosong ng deng dengan an pens pensil il gamba ambar. r. Hany Hanyaa saja saja penggunaan objek Canvas menggunakan posisi piksel pada frame. Posisi Posisi 0 pada pada horizont horizontal al (X=0) dan posisi posisi 0 pada vertikal vertikal (Y=0), (Y=0), menunju menunjuka kan n posisi tersebut berada pada posisi ujung paling kiri dan paling atas dari frame. Jika X > 0 maka posisi berada ke arah kanan dari frame, sedangkan jika Y > 0 maka posisi berada ke arah bawah dari frame. Banyak objek yang dapat digunakan untuk menggambar 2D pada Canvas, yaitu bulat, kotak, kotak, garis dan dan lain-lain. Pada Gambar Gambar 2.1 terdapat terdapat beberapa beberapa objek, yaitu : - Kotak drawRe drawRect ct (x,y,w (x,y,widt idth, h, height) height)
11