M O D U L P RA R A K TI T IK U M
PEMROGRAMAN APLIKASI JAVA
Disusun Oleh :
Eka rahayu, S.Kom
SEKOLAH TINGGI TEKNIK HARAPAN JURUSAN SISTEM INFORMASI INFORMASI MEDAN 2013 i
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa yang telah memberikan waktu dan kesempatan, sehingga modul praktikum pemrograman aplikasi java ini dapat terselesaikan seperti yang diharapkan. Modul praktikum ini terdiri dari 16 modul, yang tiap modul saling berkaitan satu dengan yang lainnya. Modul yang membahas tentang pemrograman dasar java dan contoh membuat aplikasi sampai membuat laporan. Modul ini akan dikenalkan dengan bahasa java dengan editor NetBeans IDE 7.0.1 dan iReport-4.0.2 yang akan membantu didalam pembuatan program. Semoga modul pemrograman ini dapat menjadi tutorial yang bermanfaat bagi praktikan yang ingin memahami pemrograman pemrograman bahasa java
Medan, 17 Oktober 2013
Penulis
ii
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa yang telah memberikan waktu dan kesempatan, sehingga modul praktikum pemrograman aplikasi java ini dapat terselesaikan seperti yang diharapkan. Modul praktikum ini terdiri dari 16 modul, yang tiap modul saling berkaitan satu dengan yang lainnya. Modul yang membahas tentang pemrograman dasar java dan contoh membuat aplikasi sampai membuat laporan. Modul ini akan dikenalkan dengan bahasa java dengan editor NetBeans IDE 7.0.1 dan iReport-4.0.2 yang akan membantu didalam pembuatan program. Semoga modul pemrograman ini dapat menjadi tutorial yang bermanfaat bagi praktikan yang ingin memahami pemrograman pemrograman bahasa java
Medan, 17 Oktober 2013
Penulis
ii
DAFTAR ISI
Judul ................................. .................................................. .................................. .................................. .................................. .................................. ...................... .....
i
Kata Pengantar Pengantar................................ ................................................. .................................. .................................. .................................. ......................... ........
ii
Daftar Isi................................. ................................................. .................................. ................................... .................................. ................................. ................
iii
Daftar Tabel................................. .................................................. .................................. .................................. ................................... ............................ ..........
5
Daftar Gambar Gambar ................................ ................................................. .................................. .................................. .................................. ......................... ........
6
MODUL 1 PEMROGRAMAN DASAR DENGAN NETBEANS ................... .......... .................. ............ ...
1
1.1
Pengertian Pengertian Java .................................. ................................................... .................................. .................................. ......................... ........
1
1.2 NetBeans ................... ......... ................... .................. .................. ................... ................... .................. .................. ................... ................... ...........
1
MODUL 2 PROGRAM DENGAN TIPE DATA DATA DAN VARIABEL.................. ......... .................. .........
5
2.1
Tipe Data ................................... .................................................... .................................. .................................. ................................. ................
5
2.2
Variabel Variabel .................................. ................................................... .................................. .................................. .................................. ................... ..
6
MODUL 3 PROGRAM DENGAN OPERATOR .................. ........ ................... .................. .................. ................... ............
8
3.1
Operator .................................. ................................................... .................................. .................................. .................................. ................... ..
8
3.2
Pernyataan Masukan Dan Keluaran Dalam Java .................. ......... .................. ................... ................. .......
8
MODUL 4 PROGRAM DENGAN KONDISI ................... ......... ................... .................. .................. ................... .............. ....
12
4.1
Statemen Statemen If ................................. .................................................. .................................. .................................. ................................. ................
12
4.2
Statemen Statemen If – Else ................................. .................................................. .................................. .................................. ...................... .....
12
4.3
Statemen Statemen Switch – Case ................................. .................................................. .................................. .............................. .............
13
MODUL 5 PROGRAM DENGAN PERULANGAN .................. ......... .................. .................. ................... .............. ....
16
5.1
Perulangan (While) .................. ......... .................. .................. ................... ................... .................. .................. ................... .............. ....
16
5.2
Perulangan Do – While .................. ......... .................. ................... ................... .................. .................. ................... ................. .......
16
5.3
Perulangan Perulangan For ................................ ................................................. ................................... .................................. ........................... ...........
16
MODUL 6 PROGRAM DENGAN FUNGSI (METHOD) .................. ........ ................... .................. ............... ......
20
6.1
Fungsi (Method) .................. ......... ................... ................... .................. .................. .................. ................... ................... .................. .........
20
6.2
Fungsi Yang Menghasilkan Nilai.................. Nilai......... .................. .................. ................... ................... .................. ............ ...
20
6.3
Fungsi Yang Menerima Nilai............... Nilai...... ................... ................... .................. .................. ................... ................... ...........
21
6.4
Fungsi Fungsi Rekursif Rekursif .................................. ................................................... .................................. .................................. ......................... ........
21
MODUL 7 PROGRAM DENGAN ARRAY................... ......... ................... .................. .................. ................... ................. .......
25
7.1
Array................................. .................................................. .................................. .................................. .................................. ......................... ........
25
7.1.1 Array Satu Dimensi Dimensi .................................. ................................................... .................................. .................................. ................... ..
25
7.1.2 Array Dua Dimensi .................................. ................................................... .................................. .................................. ................... ..
26 iii
7.1.3 Array Tiga Dimensi .......................................................................................
26
MODUL 8 PROGRAM DENGAN STRING ..............................................................
30
8.1 Fungsi String ...................................................................................................
30
MODUL 9 PEMROGRAMAN JAVA APPLICATION ................................ ........................
33
9.1
GUI (Grafic User Interface)...........................................................................
33
9.2
Dasar User Interface Dengan Swing ..............................................................
34
9.3
Java Application............................................................................................
34
MODUL 10 PEMROGRAMAN JAVA DESKTOP APPLICATION....................................
39
10.1 Java Desktop Application ...............................................................................
39
MODUL 11 Mengenal jLabel, jTextField, jRadioButton dan jTextArea .........
45
MODUL 12 Mengenal ChekBox, ComboBox dan jList .........................................
48
MODUL 13 Mengenal jMenuBar dan jMenuItem ..................................................
53
MODUL 14 MEMBUAT LOGIN DATABASE ...............................................
56
14.1 Database .........................................................................................................
56
14.2 JDBC .............................................................................................................
56
A. Membuat database Admin.........................................................................
56
B. Membuat Class Koneksi ...........................................................................
56
C. Membuat form Login ................................................................................
57
MODUL 15 MEMBUAT APLIKASI DATA PASIEN ................................ .........................
60
A. Membuat tabel .........................................................................................
60
B. Membuat form data Dokter .......................................................................
61
C. Membuat form data Pasien........................................................................
66
MODUL 16 MEMBUAT LAPORAN DATA PASIEN ................................ ........................
74
16.1 Jasperreports .................................................................................................
74
16.2 iReport ..........................................................................................................
74
A. Integrasi Jasperreports dan NetBeans. .......................................................
74
B. Membuat Folder iReport ...........................................................................
76
C. Memasang Koneksi di iReport ..................................................................
77
D. Membuat Report Pasien ............................................................................
78
E. Membuat Frame Form Laporan.................................................................
83
DAFTAR PUSTAKA .................................................................................................
86
iv
DAFTAR TABEL
Tabel 2.1 Tipe data dasar pada bahasa pemrograman Java .......................................... Tabel 2.2 Tipe data bentuk (reference) pada Java ....................................................... Tabel 3.1 Operator keutamaan.................................................................................... Tabel 4.1 Sintaks If ..................................................................................................... Tabel 4.2 Eksperesi logika .......................................................................................... Tabel 4.3 Sintaks If-Else ............................................................................................. Tabel 4.4 Sintaks Switch – Case.................................................................................. Tabel 5.1 Sintaks while ............................................................................................... Tabel 5.2 Sintaks Do-While ........................................................................................ Tabel 5.3 Sintaks For .................................................................................................. Tabel 6.1 Sintak mendeklarasikan fungsi .................................................................... Tabel 8.1 Konstruktor Klas String ............................................................................... Tabel 11.1 komponen................................................................................................. Tabel 14.1 Admin ....................................................................................................... Tabel 15.1 Dokter ....................................................................................................... Tabel 15.2 Pasien ........................................................................................................
5 5 8 12 12 12 13 16 16 16 20 30 46 56 60 60
v
DAFTAR GAMBAR
Gambar 1.1 Tampilan jendela New Project ................................................................. Gambar 1.2 Tampilan jendela New Java Application .................................................. Gambar 1.3 Tampilan Project Prak_01 ........................................................................ Gambar 1.4 Tampilan Output Class latihan_01 .......................................................... Gambar 1.5 Tampilan Output Class latihan_02 .......................................................... Gambar 2.1 Tampilan Output Class tipe_data............................................................. Gambar 2.2 Tampilan Output Class variable .............................................................. Gambar 3.1 Tampilan Output Class Prak_01 .............................................................. Gambar 3.2 Tampilan Output Class Jumlah ............................................................... Gambar 4.1 Tampilan Output Class if ........................................................................ Gambar 4.2 Tampilan Output Class if – else .............................................................. Gambar 4.3 Tampilan Output Class CaseJurusan ....................................................... Gambar 5.1 Tampilan Output Class perulangan_01..................................................... Gambar 5.2 Tampilan Output Class perulangan_02..................................................... Gambar 5.3 Tampilan Output Class perulangan_03..................................................... Gambar 6.1 fungsi mengasilkan/mengirimkan nilai ke program utama ........................ Gambar 6.2 Tampilan Output Class method_01 .......................................................... Gambar 6.3 Tampilan Output Class method_02 .......................................................... Gambar 6.4 Tampilan Output Class rekursif_03 .......................................................... Gambar 7.1 Array satu-dimensi dengan 10 elemen ...................................................... Gambar 7.2 Array dua-dimensi ukuran 3x4 ................................................................. Gambar 7.3 Ilustrasi array tiga-dimensi ....................................................................... Gambar 7.4 Tampilan Output Class array_01 .............................................................. Gambar 7.5 Tampilan Output Class array_02 .............................................................. Gambar 8.1 Tampilan Output Class string_01 ............................................................. Gambar 8.2 Tampilan Output Class string_02 ............................................................. Gambar 9.1 Tampilan Hirarki komponen Swing ......................................................... Gambar 9.2 Tahapan membuat Class baru................................................................... Gambar 9.3 Tampilan Output Class swing_01............................................................. Gambar 9.4 Tampilan Output Class gui_swing01........................................................ Gambar 10.1 Tampilan New Desktop Application ...................................................... Gambar 10.2 Tampilan Form JavaGUIView ............................................................... Gambar 10.3 Tampilan Form JavaGUIApp ................................................................. Gambar 10.4 Tampilan Form JavaGUIView saat di jalankan ...................................... Gambar 10.5 Tampilan Form latihan1 ......................................................................... Gambar 10.6 Tampilan Design Form latihan1 ............................................................. Gambar 10.7 Tampilan seleksi Form latihan1 ............................................................. Gambar 10.8 Tampilan Design Form JavaGUIView ................................................... Gambar 10.9 Tampilan jMenuItem1........................................................................... Gambar 10.10 Tampilan Form JavaGUIView saat d ijalankan ....................................
2 2 3 3 4 6 7 10 11 14 14 15 17 18 18 21 22 23 23 25 26 27 28 29 31 32 33 35 35 38 39 40 40 41 41 42 42 43 43 42 vi
Gambar 11.1 Tampilan Form latihan_01 ..................................................................... Gambar 11.2 Tampilan Design Form latihan_01 ......................................................... Gambar 11.3 Tampilan jendela Rename ...................................................................... Gambar 11.4 Tampilan Design Form latihan_01 ......................................................... Gambar 11.5 Tampilan Form latihan_01 saat dijalankan ............................................. Gambar 12.1 Tampilan Design Form latihan02 ........................................................... Gambar 12.2 Tampilan tab Inspector........................................................................... Gambar 12.3 Tampilan Form latihan02 saat di jalankan .............................................. Gambar 12.4 Tampilan Design Form latihan03 ........................................................... Gambar 12.5 Tampilan Model pada komponen jList1 ................................................. Gambar 12.6 Tampilan tab Inspector........................................................................... Gambar 12.7 Tampilan Form latihan_03 saat di jalankan ............................................ Gambar 13.1 Tampilan awal Form Menu Bar.............................................................. Gambar 13.2 Tampilan jendela Accelerator................................................................. Gambar 13.3 Tampilan Design Form Menu Bar .......................................................... Gambar 13.4 Tampilan tab Inspector........................................................................... Gambar 13.5 Tampilan tab Properties ......................................................................... Gambar 13.6 Tampilan Form Menu Bar saat di jalankan ............................................. Gambar 14.1 Tampilan Design Form Login ................................................................ Gambar 14.2 Tampilan tab Inspector pada form login ................................................. Gambar 14.3 Tampilan form login saat di jalankan ..................................................... Gambar 14.4 Tampilan form Menu Utama .................................................................. Gambar 15.1 relasi antar tabel Dokter dan tabel Pasien ............................................... Gambar 15.2 Tampilan desain form data dokter .......................................................... Gambar 15.3 Tampilan cara menggunakan JTable ...................................................... Gambar 15.4 Cara mengganti name pada jScrollPane1................................................ Gambar 15.5 Tampilan Customer Dialog. ................................................................... Gambar 15.6 Tampilan tab Inspector data dokter ........................................................ Gambar 15.7 Tampilan desain form data pasien .......................................................... Gambar 15.8 Tampilan tab Inspector data pasien ........................................................ Gambar 15.9 Desain Form Menu Utama ..................................................................... Gambar 15.10 Desain tab Inspector ............................................................................. Gambar 15.11 Project Aplikasi Pasien ........................................................................ Gambar 15.12 Script Form PasienApp ........................................................................ Gambar 15.13 Tampilan Form Login .......................................................................... Gambar 15.14 Tampilan Form Menu Utama ............................................................... Gambar 15.15 Tampilan Form Data Dokter ................................................................ Gambar 15.16 Tampilan Form Data Pasien ................................................................. Gambar 16.1 Tampilan jendela New Library ............................................................... Gambar 16.2 Tampilan Jendela Library jasperreport tab Classpath.............................. Gambar 16.3 Tampilan Jendela Library jasperreport tab Sources ................................ Gambar 16.4 Tampilan Jendela Library jasperreport tab Javadoc ................................ Gambar 16.5 Tampilan library .................................................................................... Gambar 16.6 Tampilan Package Report ......................................................................
45 45 46 46 47 48 48 50 51 51 51 52 53 54 54 54 55 55 57 58 59 59 60 61 61 61 62 62 66 66 71 71 72 72 72 73 73 73 74 75 75 76 76 76 vii
Gambar 16.7 Tampilan Utama iReport ........................................................................ Gambar 16.8 Tampilan Jendela Datasource ................................................................. Gambar 16.9 Tampilan Jendela Database JDBC connection ........................................ Gambar 16.10 Tampilan Jendela Library jasperreport tab Classpath ............................ Gambar 16.11 Tampilan Jendela Layout report ........................................................... Gambar 16.12 Tampilan Jendela koneksi database ...................................................... Gambar 16.13 Tampilan Jendela Relasi Tabel ............................................................. Gambar 16.14 Tampilan kotak Field yang digunakan .................................................. Gambar 16.15 Tampilan kotak Desain ........................................................................ Gambar 16.16 Tampilan Jendela Rename Parameter ................................................... Gambar 16.17 Tampilan Desain Laporan .................................................................... Gambar 16.18 Tampilan Desain Laporan .................................................................... Gambar 16.19 Tampilan Desain Laporan .................................................................... Gambar 16.20 Tampilan Jendela Report query ............................................................ Gambar 16.21 Tampilan Preview Form Parameter ...................................................... Gambar 16.22 Tampilan Preview Form Laporan Data Pasien ...................................... Gambar 16.23 Tampilan desain form laporan_p .......................................................... Gambar 16.24 Tampilan tab Inspector form laporan_p ................................................ Gambar 16.25 Tampilan desain form menu utama....................................................... Gambar 16.26 Tampilan form laporan_p ..................................................................... Gambar 16.27 Tampilan laporan data pasien ...............................................................
77 77 77 78 78 79 79 80 80 80 81 81 82 82 83 83 83 84 85 85 85
viii
MODUL 1 PEMROGRAMAN DASAR DENGAN NETBEANS Mahasiswa
mampu
memahami
tentang
dasar-dasar
pemrograman
dan
mengimplementasikan program sederhana dengan Netbeans. 1.1 Pengertian Java
Java merupakan bahasa pemrograman berorientasi objek dan bebas platform, dikembangkan oleh SUN Micro System dengan sejumlah keunggulan yang memungkinkan java dijadikan sebagai bahasa pengembangan enterprise. Teknologi java yang dibahas pada modul ini adalah J2SE (Standard Edition), yaitu pemrograman java pada PC. J2SE merupakan teknologi yang dirancang untuk berjalan di atas PC dan workstation yang dapat berjalan di latform system operasi Linux, Windows, dll. 1.2 NetBeans
NetBeans adalah Integrated Development Environment (IDE) berbasiskan Java dari Sun Microsystems yang berjalan di atas Swing. Swing sebuah teknologi Java untuk pengembangan aplikasi Desktop yang dapat berjalan di berbagai macam platforms seperti Windows, Linux, Mac OS X and Solaris. Suatu IDE adalah lingkup pemrograman yang diintegrasikan kedalam suatu aplikasi perangkat lunak yang menyediakan pembangun Graphical User Interface (GUI), suatu text atau kode editor, suatu compiler atau interpreter dan suatu debugger. Netbeans merupakan software development yang Open Source, dengan kata lain software ini di bawah pengembangan bersama dan bebas biaya. Beberapa fungsi yang terdapat dalam pemrograman java, yaitu : -
Public : mengidikasikan anggota kelas dapat diakses dari manapun di dalam program tersebut.
-
Void : menjelaskan kepada compiler bahwa fungsi tidak mengembalikan nilai apapun manakala melakukan eksekusi.
-
Static : mengijinkan main untuk di panggil tanpa harus menciptakan dan kejadian (instance0 kelas itu.
-
Main : fungsi yang melaksanakan tugas tertantu dan hal ini merupakan titik awal dari semua aplikasi java 1
1.3 Pelaksanaan Praktikum
Langkah – langkah praktikum 1. Pilih Start Program NetBeands 2. Muncul tampilan awal. Kemudian pilih menu bar File New Project mucul layar dibawah ini :
Gambar 1.1 Tampilan jendela New Project 3. Pilih Categories: Java dan Projects: Java Application Next
Akan mucul layar sebagai berikut :
Gambar 1.2 Tampilan jendela New Java Application 4. Tulis nama project pada sisian Project Name 5. Pilih lokasi penyimpanan pada isian Projeck Location. Bisa menuliskan lokasinya atau menggunakan tombol Browser.
2
6. Centang Set as Main Project, ini digunakan untuk menjadi project utama. 7. Centang Create Main Class, ini digunakan jika langsung membuat kelas main dan bisa mengganti nama kelasnya. 8. Kemudian klik finish.
Gambar 1.3 Tampilan Project Prak_01 9. Kemudian ketikkan program di dalam blok main() System.out.println(“Program Pertama Saya !!”);
10. pilih run Akan terjadi proses kompilasi. Perhatikan bagian tab Output. Jika berhasil, tidak ada kesalahan akan muncul tampilan sebagai berikut :
Gambar 1.4 Tampilan Output Class latihan_01 11. Untuk menambah kelas baru. Klik kanan ;project Prak_01 New java clas. 12. Kemudian tuliskan nama kelasnya. Dalam contoh ini diberi nama latihan_02 Finish 13. Ketikan program di bawah ini pada blok main()
3
14. kemudian jalankan dengan cara klik kanan kelas latihan_02 Run. Tampilan program setelah di run main project
Gambar 1.5 Tampilan Output Class latihan_02 Berikut gambar penjelasan dari listing program :
1.4 Tugas
1. Buatlah project baru dengan nama Praktikum1 dan kelas baru dengan nama Prog_01. Ketikkan program berikut : BI ODATA PRI BADI ============================= Nama : Eka Rahayu NPM : 08370026 J ur usan : Si st em I nf or masi Mat a Kul i ah : Pemr ogr aman J ava
2. Lengkapi program diatas dengan menambah jenis kelamin, alamat. 4
MODUL 2 PROGRAM DENGAN TIPE DATA DAN VARIABEL
Modul 2 membahas tentang statement output dengan print dan println dan mengenal penggunaan variable. 2.1 Tipe Data
Bahasa Pemrograman Java adalah bahasa pemrograman yang selalu menggunakan tipe data untuk setiap variabelnya. Itu berarti bahwa semua variabel harus dideklarasikan terlebih dahulu sebelum mereka digunakan. Tipe data dibedakan menjadi dua ketegori :
Tipe data dasar (Primitive)
Tipe data bentukan ( Reference) Tabel 2.1 Tipe data dasar pada bahasa pemrograman Java Nama tipe data
Memori
Keyword
Integer
4 byte
Int
Short integer
2 byte
Short
Long integer
8 byte
Long
Byte-length integer
1 byte
Byte
Single-precision floating-point
4 byte
Float
Double-precision floating-point
8 byte
Double
Single character
1 byte
Char
True or false
Boolean
Boolean value (true or false)
Tabel 2.2 Tipe data bentuk (reference) pada Java Nama tipe data Array
Uraian Suatu koleksi dari beberapa materi menyangkut tipe data yang sama. Sebagai contoh :
Class
Nama para siswa Suhu udara dalam 1 minggu
Suatu koleksi metode dan variable. Sebagai contoh :
Kelas siswa, berisi tentang rincian yang lengkap
5
menyangkut
siswa,
dan
metode
yang
membedahkan/beroperasi pada rincian itu.
Kelas pelanggan, berisi tentang rincian yang lengkap menyangkut
pelanggan,
membedah/beroperasi
pada
dan
metode
rincian
itu,
yang seperti
pencetakan faktur. Interface
Suatu kelas abstrak yang diciptakan untuk menerapkan berbagai warisan di program java.
Latiahan_01 :
public class tipe_data{ public static void main(String args[]){ float a = 3.14f; Konversikan nilai int b = (int) a + 10; System.out.println("Hasil penjumlahan a dan b adalah "+b); } } Program diatas contoh konversi tipe data float menjadi integer. Pengkonversian ini menggunakan konsep tipe data. Nilai float di dalam a dikonversikan untuk suatu bilangan bulat : 3.14 dan nilai a menambahkan dengan 10, hingga menghasilkan nilai 13, yang disimpan di dalam variable b. Hasil Output :
Gambar 2.1 Tampilan Output Class tipe_data 2.2 Variabel Variabel digunakan dalam program untuk menyimpam suatu nilai, dan nilai yang
ada padanya dapat diubah selama ekseskusi berlangsung. Di dalam java, untuk menyimpan suatu nilai, seperti numeric, konstanta atau string harus melalui nama variabel yang harus di deklarasikan. Deklarasikan variabel merupakan suatu bentuk pemberitahuan kepada compiler tentang nama variabel. Tipe_data nama_variabel [=nilai];
Contoh : float jumlah; const float PHI = 3.14; 6
Latiahan_02 : publ i c cl ass var i abl e{ publ i c st at i c voi d mai n( St r i ng ar gs[ ] ) { / / Dekl ar asi Var i abel i nt i ; l ong x; doubl e y; f l oat c ; / / Pengi s i an Ni l ai i = 12423; x = 738; y = 14. 576; c = 34. 123f ; / / Mencet ak Ni l ai Sys t em. out . pr i nt l n( " Ni l ai i : " +i ) ; Syst em. out . pr i nt l n( "Ni l ai x : "+x) ; Syst em. out . pr i nt l n( "Ni l ai y : "+y) ; Sys t e m. out . pr i nt l n( " Ni l ai c : " +c ) ; } }
Hasil Output :
Gambar 2.2 Tampilan Output Class variable
7
MODUL 3 PROGRAM DENGAN OPERATOR Modul 3 membahas tentang proses dengan mengenal operator pada pemrograman java dan mengenal statement input. 3.1 Operator
Operator merupakan tanda/symbol operasi. Operator digunakan untuk menuliskan suatu statemen dalam bahasa pemrograman. Dalam program keberadaan operator dalam suatu ungkapan dievaluasi. Hal ini di maksud untuk menetukan operator mana yang harus dikerjakan terlebih dahulu dan operator mana yang terakhir dikerjakan. Penetapan pekerjaan operator tersebut sudah diatur dalam operator keutamaan. Tabel 3.1 Operator keutamaan Order
Operator
Contoh
1
Operator unary
+, -, + +, - - dan %
2
Operator aritmatika dan geser
*, /, +, -, < <, > >
3
Operator relasional
>, <, > =, < =, = =, ! =
4
Operator logis dan bitwise
&&, ||, &, |, ^
5
Operator tugas
=, * =, / =, + =, - =
Contoh : X=2+3*4
Berapakah nilai ungkapan itu? 14 atau 20? Berdasarkan table operator bisa kita tebak hasil ungkapan 2 + 3 * 4 adalah 14. Hal ini dikarenakan operator perkalian memiliki keutamaan yang lebih tinggi dibandingkan operator penjumlahan. Sehingga 3 * 4 dikerjakan terlebih dahulu, kemudian hasil ditambahkan dengan 2. X = (2 + 3) * 4
Apabila sebuah operator ingin dikerjakan terlebih dahulu, maka letakkan operasi itu di dalam tanda kurung. Dengan demikian, nilai ungkapan X = 2 + 3 * 4 tidak lagi 14 melainkan 20. 3.2 Pernyataan Masukan Dan Keluaran Dalam Java
Dalam bahasa pemrograman Java, kita akan menggunakan pernyataan masukan dan keluaran. Pernyataan masukan adalah pernyataan untuk mendapatkan masukan dari 8
keyboard. Sedangkan pernyataan keluaran adalah pernyataan untuk menampilkan sesuatu nilai ke layar. 1.
Komponen keluaran Untuk menampilkan ke layar secara tekstual, java mempunyai fasilitas output, yaitu dengan perintah : System.out.print( hal yang akan ditampilkan, bisa lebih dari satu);
untuk menampilkan ke layar dan setelah selesai tidak berpindah baris. Akibatnya perintah keluaran berikutnya akan ditampilkan pada baris yang sama. Dan perintah: System.out.println(hal yang akan ditampilkan, bisa lebih dari satu);
untuk menampilkan ke layar dan setelah selesai berpindah baris. Akibatnya perintah keluaran setelah itu akan ditampilkan pada baris berikutnya. System.out.println(“Hasil penjumlahan “+hasil);
Untuk menampilkan isi variabel hasil. 2.
Komponen masukan Untuk memasukkan sebuah nilai ke variabel yang sudah didefinisikan digunakan kelas Scanner.
Input data bertipe Integer Untuk menginputkan data dengan tipe integer digunakan method nextInt di dalam kelas Scanner.
Input data bertipe String Untuk menginputkan data dengan tipe integer digunakan method nextInt di dalam kelas Scanner.
Input tipe yang lain Untuk input data dari keyboard dengan tipe yang lain dan disediakan oleh kelas Scannr adalah sebagai berikut
nextBoolean
: input tipe boolean (true atau false saja)
nextShort
: input tipe short integer
nextLong
: input tipe long integer
nextFloat
: input tipe float
nextDouble
: input tipe double
3.3 Pelaksanaan Praktikum
Buatlah program seperti berikut :
9
Latihan 1_1 :
1. Buka project baru. Kemudian buat class dengan nama Prak_02 2. Ketikkan lah listing program dibawah ini : //Program aritmatika untuk menjumlahkan 3 buah bilangan publ i c cl ass Prak_01 { publ i c st at i c voi d mai n ( St r i ng[ ] ar gs) i nt A, B, C, has i l 1, has i l 2; A = 5; B = 9; C = 2; hasi l 1 = 5 + 9 * 2; hasi l 2 = ( 5 + 9) * 2; Sys t em. out . pr i nt l n( " Di ber i kan ni l ai i nt eger Syst em. out . pr i nt l n( " A = " +A) ; Syst em. out . pr i nt l n( " B = " +B) ; Syst em. out . pr i nt l n( " C = " +C) ; Syst em. out . pr i nt l n( " Ni l ai 5 + 9 * 2 adal ah " Syst em. out . pr i nt l n( "Ni l ai ( 5 + 9) * 2 adal ah } }
{
: ") ;
+hasi l 1) ; " +hasi l 2) ;
Hasil Output :
Gambar 3.1 Tampilan Output Class Prak_01 Latihan 1_2 :
1. Buatlah class baru dengan nama Jumlah 2. Kemudian ketikkan lah listing program dibawah ini : // Program aritmatika untuk mengitung 2 buah bilangan yang diinput dari keyboard i mpor t j ava. ut i l . Scanner ; publ i c cl ass J uml ah{ publ i c st at i c voi d mai n( St r i ng ar gs[ ] ) { Scanner masuk = new Scanner ( Syst em. i n) ; i nt A, B ; Syst em. out . pr i nt ( "Bi l angan 1 : ") ; A = masuk. next I nt ( ) ; Syst em. out . pr i nt ( "Bi l angan 2 : ") ; B = masuk. next I nt ( ) ; Syst em. out . pr i nt l n( " J uml ah = " + ( A + B) ) ; } } 10
Hasil Output :
Gambar 3.2 Tampilan Output Class Jumlah
3.4 Tugas
Dengan menggunkan operator aritmatika buatlah untuk menjumlahkan, mengalikan, membagi dan sisa pembagian dari 2 bilangan yang disimpan dan diinpukan dengan keyboard, output yang diingikan sebagai berikut : 1. Hasil Output
2. Hasil Ouput
3. Buat program yang meminta inputan jari-jari, yang kemudian dihitung dan ditampilkan luas dan keliling lingkaran tersebut. (mis : input jari-jari = 4)
11
MODUL 4 PROGRAM DENGAN KONDISI Modul 4 membahas tentang pernyataan seleksi dalam pemrograman java dengan menggunakan statemen If, If – Else, dan Switch – Case. 4.1 Statemen If Statemen if digunakan untuk menguji hasil dari suatu kondisi. Pada statemen if ini, hasil pengujian yang diharapkan adalah ungkapan Boolean yang benar (True) saja.
Tabel 4.1 Sintaks If Sintaks if
If (ekspresi-kondisi) { Pernyataan; }
I f ( a == 1) { Syst em. out . pr i nt l n ( “Ni l ai A = 1”) ;
Penjelasan : A merupakan kondisi yang diperiksa oleh if untuk menentukan apakah blok pada if dijalankan atau tidak, perintah-perintah pada blok if dijalankan jika kondisi A bernilai benar.
Tabel 4.2 Eksperesi logika Ekspresi logika Bernilai true jika a==1 a bernilai 1 a >= 1 a lebih besar atau sama dengan 1 4.2 Statemen If – Else
Penyeleksian if-else digunakan untuk mengecek kebenaran nilai sebuah ekspresi logika. Blok IF akan dijalankan jika ekspresi yang bernilai TRUE. Tapi jika salah, blok ELSE-lah yang akan dijalankan. Tabel 4.3 Sintaks If-Else Sintak if-else if (ekspresi-kondisi) { Pernyataan; } else{ Pernyataan; } Penjelasan : Perintah dijalankan jika kondisi yang diperiksa IF benar ditempatkan pada blok IF(). Adapun perintah yang akan dijalankan jika kondisi yang diperiksa oleh IF tidak benar ditempatkan pada blok ELSE. 12
4.3 Statemen Switch – Case
Penyeleksian swich digunakan untuk memeriksa nilai-nilai yang mungkin dari sebuah ekspresi. Ekspresi yang diperiksa haruslah bertipe int, short, char. Sintak penyeleksian kondisi dengan swich adalah : Tabel 4.4 Sintaks Switch – Case Sintak switch case switch ( ungkapan) { case ungkapan1: per nyat aan1; break; case ungkapan2: per nyat aan2; break; ................. default : pernyat aan_x; } Penjelasan : - ungkapan1, ungkapan2 dan seterusnya dilakukan secara berurutan dimulai dari yang pertama, sekiranyanya cocok pernyataan yang mengikuti case dijalankan. - break ditemukan dari eksekusi pernyataan switch berakhir - default hanya akan dijalankan jika ungkapan pada bagian case tidak ada yang cocok. 4.4 Pelaksanaan Praktikum Buatlah program berikut ini : Latihan kondisi_01 :
1. Buatlah Project baru. Dan class baru dengan nama Prak_02 2. Kemudian ketikkan lah listing program dibawah ini : // Program untuk menyeleksi nilai akhir mata kuliah dengan menggunakan if - else i mpor t j ava. ut i l . Scanner ; publ i c cl as s i f { publ i c stat i c voi d mai n ( St r i ng[ ] ar gs) { Scanner masukan = new Scanner ( Syst em. i n) ; i nt ni l ai ; Syst em. out . pr i nt ( " Masukkan ni l ai akhi r mat a kul i ahnya : ") ; ni l ai = masukan. next I nt ( ) ; i f ( ni l ai < 55) Syst em. out . pr i nt l n( "Mahasi wa t er sebut t i dak l ul us") ; el se Syst em. out . pr i nt l n( " Mahasi wa t er sebut l ul us") ; }}
13
Hasi Ouput :
Gambar 4.1 Tampilan Output Class if Penjelasan program : Jika diinputkan nilai < 55, maka akan muncul keterangan mahasiswa tersebut tidak lulus, tetapi jika nilai > atau = 55, maka muncul keterangan mahasiswa tersebut lulus. Latihan kondisi_02: // Program untuk menyeleksi nilai akhir mata kuliah menggunakan if - else i mpor t j ava. ut i l . Scanner ; publ i c cl as s i f - el s e { publ i c stati c voi d mai n ( St r i ng[ ] ar gs) { Scanner masukan = new Scanner ( Syst em. i n) ; Syst em. out . pr i nt ( " Masukkan ni l ai mat a kul i ahnya : ") ; i nt ni l ai = masukan. next I nt ( ) ; i f ( ni l ai >= 80) Syst em. out . pr i nt l n( "Ni l ai nya A") ; el se i f ( ni l ai >= 70) Syst em. out . pr i nt l n( "Ni l ai nya B") ; el se i f ( ni l ai >= 55) Syst em. out . pr i nt l n( "Ni l ai nya C") ; el se i f ( ni l ai >= 40) Syst em. out . pr i nt l n( "Ni l ai nya D") ; el se Syst em. out . pr i nt l n( "Ni l ai nya E") ; }}
Hasil output :
Gambar 4.2 Tampilan Output Class if - else Latihan kondisi_03 : // Program untuk menyeleksi dengan menu pilihan menggunakan Switch - Case i mpor t j ava. ut i l . Scanner ; publ i c cl ass CaseJ ur usan { publ i c st at i c voi d mai n( St r i ng ar gs[ ] ) { Scanner masuk = new Scanner ( Syst em. i n) ; 14
i nt pi l ; Syst em. out . pr i nt ( "Masukkan pi l i han : ") ; pi l = masuk. next I nt ( ) ; s wi t ch ( pi l ) { case 1: Syst em. out . pr i nt l n( "J ur usan SI / D3") ; br eak; case 2: Syst em. out . pr i nt l n( " J ur usan TK/ D3") ; br eak; case 3: Syst em. out . pr i nt l n( " J ur usan KA/ D3") ; br eak; case 4: Syst em. out . pr i nt l n( "J ur usan TI / S1") ; br eak; case 5: Syst em. out . pr i nt l n( "J ur usan SI / S1") ; br eak; def aul t : Sys t em. out . pr i nt l n( " Pi l i han Sal ah! ! ! " ) ; br eak; } } }
Hasil Output :
Gambar 4.3 Tampilan Output Class CaseJurusan
4.5 Tugas
1. Buatlah program inputan memilih menu empat persegi panjang dan melakukan proses perhitungan menggunakan perulangan switch case. Output seperti gambar dibawah ini :
2. Buatlah 2 program input-an dengan menentukan 7 buah bilangan terbesar & terkecil, dan 2 buah bilangan bulat & ganjil dengan menggunakan kondisi IF – ELSE.
15
MODUL 5 PROGRAM DENGAN PERULANGAN Modul 5 membahas tentang pemrograman java menggunakan perulangan While, Do – While, dan For. 5.1 Perulangan (While)
Perulangan while digunakan untuk mengulangi eksekusi sebuah blok selama kondisi tertentu masih berlaku (bernilai TRUE). Sintaks bentuk perulangan while dinyatakan sebagai berikut : Tabel 5.1 Sintaks while whi l e ( kondi si ) { / / body whi l e } Penjelasan : Kondisi menentukan kapan looping while berhenti. Looping akan terus dilakukan sampai kondisi bernilai salah. Body while isi dari statement-statement yang ingin di looping 5.2 Perulangan Do – While
Perulangan do-while digunakan untuk mengeksekusi sebuah blok selama kondisi tertentu. Perulangan ini mirip dengan perulangan while. Bedanya adalah pada perulangan do-while tidak diperiksa dulu. Perulangan while, semua perulangan diperiksa, termasuk perulangan yang pertama kali. Tabel 5.2 Sintaks Do-While do { / / body whi l e } Whi l e ( A) ; Penjelasan : A merupakan kondisi (ekspresi logika) yang menentukan kapan looping while berhenti. Selama A bernilai benar, looping akan terus dilakukan. Body while isi dengan statement-statement yang ingin di looping. 5.3 Perulangan For
Perulangan for digunakan untuk mengulang eksekusi sebuah blok beberapa kali. Tabel 5.3 Sintaks For For ( ekspr esi awal , kondi si , ekspr esi peni l ai an) { 16
St at ement aksi ; : : } Penjelasan : ekspr esi awal merupakan perintah yang pertama kali dijalankan oleh for sebelum melakukan looping. Kondi si merupakan kondisi untuk menentukan kapan looping for berhenti. Looping akan terus terjadi sampai kondisi bernilai salah. ekspr esi peni l ai an digunakan untuk menaikkan nilai variable perulangan.. St at ement aksi blok tempat dimana untuk menulis program yang ingin di looping.
5.4 Pelaksanaan Praktikum Latihan perulangan_01 : // Program perulangan untuk mengurutkan nilai bilangan genap dari 2 – 10 menggunakan While
i mpor t j ava. ut i l . Scanner ; publ i c cl ass per ul angan_01 { publ i c st at i c voi d mai n( St r i ng ar gs[ ] ) { Scanner masuk = new Scanner ( Syst em. i n) ; i nt bi l ; bi l =2; whi l e ( bi l <=10) { Sys t em. out . pr i nt l n( bi l ) ; bi l +=2; } } } Hasil Output :
Gambar 5.1 Tampilan Output Class perulangan_01 Latihan perulangan_02 : // Program perulangan untuk mengitung nilai factorial yang diinput dari keyboard menggunakan Do - While
i mpor t j ava. ut i l . Scanner ; publ i c cl ass per ul angan_02 { publ i c st at i c voi d mai n( St r i ng ar gs[ ] ) i nt N, i , j uml ah;
{
17
i = 1; j uml ah = 0; Scanner masuk = new Scanner ( Syst em. i n) ; Syst em. out . pr i nt ( " Masukkan j uml ah N = " ) ; N = masuk. next I nt ( ) ; do {
}
j uml ah = j uml ah + i ; i ++; } whi l e ( i <= N) ; Syst em. out . pr i nt l n( " J uml ah der et " +N+" Adal ah = " +j uml ah) ; }
Hasil Output :
Gambar 5.2 Tampilan Output Class perulangan_02 Latihan perulangan_03 // Program perulangan untuk mengitung nilai yang diinput dari keyboard menggunakan For
i mpor t j ava. ut i l . Scanner ; publ i c cl ass per ul angan_03 { publ i c st at i c voi d mai n ( St r i ng[ ] ar gs) { Scanner masukan = new Scanner ( Syst em. i n) ; Syst em. out . pr i nt ( " Masukkan bat as bi l angannya : " ) ; i nt bat as = masukan. next I nt ( ) ; i nt hasi l = 0; f or ( i nt i =1; i <=bat as; i ++) hasi l += i ; Syst em. out . pr i nt l n( " Tot al j uml ahnya adal ah : " + hasi l ) ; } } Hasil Output :
Gambar 5.3 Tampilan Output Class perulangan_03
18
5.5 Tugas 1. Buatlah program mencetak konversi suhu dari celcius ke fahreinhet mulai dari 1
sampai 10 dengan membuat tabel. Hasil output seperti gambar dibawah ini :
2. Buatlah sebuah program untuk menampilkan deret bilangan prima, dengan
memasukkan batas atas dan batas bawah.
19
MODUL 6 PROGRAM DENGAN FUNGSI (METHOD)
Modul 6 membahas tentang fungsi pada program Java dan fungsi yang mengembalikan suatu nilai, tidak mengembalikan nilai dan fungsi rekursi. 6.1 Fungsi (Method)
Fungsi adalah satuan-satuan, seperti program untuk melakukan tugas-tugas tertentu yang menghasilkan suatu nilai untuk dikembalikan ke program pemanggil. Dalam suatu program, fungsi dibuat terpisah dengan program pemanggil (main()). Tabel 6.1 Sintak mendeklarasikan fungsi Access_ speci f i er modi f i er ( par amet er _l i st ) { / / badan f ungsi }
dat at ype
met hod_ name
Penjelasan : Access_specifier : batas akses untuk fungsi. Batas akses bias berupa (public,
protected, private). Modifier : penetapan kita tentang perilaku tugas untuk fungsi itu. Seperti (static, abstract, final, native. Datatype : tipe data dari nilai yang dikembalikan fungsi. Jika tidak ada nilai yang dikembalikan, tipe data ditulis void. method_name : nama dari fungsi parameter_list : berisi nama parameter yang sedang diberikan kepada fungsi, dan tipe datanya. Tanda koma memisahkan berbagai parameter.
6.2 Fungsi Yang Menghasilkan Nilai
Fungsi yang bias menghasilkan nilai merupakan suatu fungsi yang tidak membutuhkan argument, tetapi fungsi itu bias menghasilkan nilai. Untuk membuat fungsi seperti itu, maka didalam fungsi yang bisa menghasilkan nilai itu perlu ditambahkan satu bari untuk statement return(). Fungsi yang menghasilkan nilai sama dengan fungsion yang mengembalikan nilai adalah suatu sub rutin yang bila dipanggil oleh suatu program (argumen) maka argumen tersebut akan memperoleh nilai balikan dari function tersebut. Atau dengan kata lain, suatu function yang mempunyai nilai.
20
main()
fungsi()
{
{
st at ement 1 : j wb = f ungsi ( ) ; st at ement 2 : }
st at ement 1 X = 5; r et ur n ( x) ; } Nilai x yaitu 5, dikirim kembali ke program panggilan dan dimasukkan ke jwb
Gambar 6.1 fungsi mengasilkan/mengirimkan nilai ke program utama Statement return() Kegunaan statemen return() ada dua, yaitu :
1. Pelaksanaan statemen ini akan langsung mangalihkan control dari fungsi ke program panggilannya. 2. Apapun yang ada didalam tanda kurung buka-tutup dibelakang return akan dikirim kembali sebagai suatu nilai kepada program pemanggilnya. 6.3 Fungsi Yang Menerima Nilai
Fungsi yang menerima nilai yaitu fungsi yang bias menerima nilai dari fungsi lain. Fungsi yang menerima nilai sama dengan fungsi yang tidak mengembalikan nilai bentuknya sangat mirip dengan function yang mengembalikan nilai. Perbedaannya adalah penggunaan kata kunci atau klausa void pada fungsi yang tidak mengembalikan nilai baik pada bahasa C++ maupun bahasa Java. 6.4 Fungsi Rekursif Rekursi merupakan kemampuan yang memiliki suatu fungsi untuk memanggil
dirinya sendiri, secara langsung maupun tidak langsung. Pemanggilan dirinya sendiri mempunyai arti bahwa didalam fungsi tersebut terdapat statemen yang memanggi. Dirinya sendiri. Berikut ini adalah contoh dari konsep recurse() yang berkemampuan untuk memanggil dirinya sendiri secara langsung dan tidak langsung. Fungsi rekursi secara langsung r ecur se ( [ par amet er ] ) { / / st at emen; Recur ce( [ par amet er ] ) / / st at emen; }
Fungsi rekursi secara tidak langsung r ecur se ( [ par amet er ] ) { / / st at emen; t est ( [ par amet er ] ) / / st at emen; }
21
6.5 Pelaksanaan Prektikum Latihan_01 : / / PROGRAM METHOD YANG MENGEMBALI KAN SUATU NI LAI i mpor t j ava. ut i l . * ; publ i c cl ass met hod_ 01 { publ i c stati c voi d mai n ( St r i ng[ ] ar gs) { Scanner masukan = new Scanner ( Syst em. i n) ; i nt bi l 1, bi l 2, bi l 3; Syst em. out . pr i nt l n( " Pr ogr am Menj uml ahkan 3 bi l angan") ; Syst em. out . pr i nt ( " Masukkan bi l angan 1 : " ) ; bi l 1 = masukan. next I nt ( ) ; Syst em. out . pr i nt ( " Masukkan bi l angan 2 : " ) ; bi l 2 = masukan. next I nt ( ) ; Syst em. out . pr i nt ( " Masukkan bi l angan 3 : " ) ; bi l 3 = masukan. next I nt ( ) ; Syst em. out . pr i nt l n( ) ; Syst em. out . pr i nt l n( " HASI L BI LANGAN : " ) ; Syst em. out . pr i nt l n( " ==================== " ) ; Syst em. out . pr i nt l n( ) ; Syst em. out . pr i nt l n( "J uml ah bi l 1 + bi l 2 " +( j uml ah( bi l 1, bi l 2) ) ) ; Syst em. out . pr i nt l n( "J uml ah bi l 2 + bi l 3 " +( j uml ah( bi l 2, bi l 3) ) ) ; Syst em. out . pr i nt l n( "J uml ah bi l 1 + bi l 3 " +( j uml ah( bi l 1, bi l 3) ) ) ; } pr i vat e s t at i c i nt j uml ah( i nt a, i nt b) { i nt hasi l = a + b; r et ur n has i l ; } }
: : :
Hasil Output :
Gambar 6.2 Tampilan Output Class method_01 Latihan_02 : / / PROGRAM METHOD YANG TI DAK MENGEMBALI KAN SUATU NI LAI i mpor t j ava. ut i l . * ; publ i c cl ass met hod_ 02 { s t at i c voi d l uas Kot ak( i nt s i s i ) { Syst em. out . pr i nt l n( "Luas Kot ak : Untuk Menghitung Luas Kotak }
"+Mat h. pow( si si , 2) ) ; / /
22
publ i c st at i c voi d mai n( St r i ng[ ] ar gs) { Scanner i nput =new Scanner ( Syst em. i n) ; Syst em. out . pr i nt l n( "Progr am hi t ung l uas kot ak") ; Syst em. out . pr i nt ( "Panj ang si si : ") ; i nt s =i nput . next I nt ( ) ; l uasKot ak( s) ; } }
Hasil Output :
Gambar 6.3 Tampilan Output Class method_02 Latihan_03 : / / PROGRAM FUNGSI RAKURSI i mpor t j ava. ut i l . Scanner ; publ i c cl ass rekur si f _03 { publ i c st at i c l ong r ekur s i f ( i nt a, i nt b) { i f ( b==0) { r et ur n 0; } el se { r et ur n a+r ekur si f ( a, b- 1) ; } } publ i c stat i c voi d mai n ( St r i ng[ ] ar gs) { i nt a, b; / / dekl ar asi var i abel a dan b Scanner i nput = new Scanner( Syst em. i n) ; / / pr oses i nput dat a dengan scanner Syst em. out . pr i nt ( " Masukkan angka: " ) ; a=i nput . next I nt ( ) ; / / pengambi l an dat a a Syst em. out . pr i nt ( " Masukkan angka: " ) ; b=i nput . next I nt ( ) ; / / pengambi l an dat a b Syst em. out . pr i nt l n( a+" *" +b+" =" + r ekur si f ( a, b) ) ; / / t ampi l an out put } }
Hasil Output :
Gambar 6.4 Tampilan Output Class rekursif_03
23
6.5 Tugas
1. Buatlah sebuah program menu yang terdiri sub-sub menu pilihan yang dapat menjelaskan cirri-ciri dari sub menu yang dipilih. Hasil output seperti gambar dibawah ini :
2. Buatlah program untuk mengitung nilai akhir mata kuliah ditentukan oleh komposisi empat nilai : a. 25 % TUGAS, b. 20 % QUIZ c. 20 % MID, d. 35 % UAS, Dan buatlah Grade Nilai 0 - 39 dengan grade = E nilai 40 - 55 dengan grade = D nilai 56 - 79 dengan grade = C nilai 80 - 89 dengan grade = B nilai 90 - 100 dengan grade = A
24
MODUL 7 PROGRAM DENGAN ARRAY
Modul 7 membahas tentang penggunaan Array untuk dapat mendukung sejumlah metode dalam pemanipulasian array.
7.1 Array
Array dibagi menjadi beberapa dimensi, diantaranya sebagai berikut : 7.1.1
Array Satu Dimensi
Array adalah sebuah struktur data yang terdiri dari data yang bertipe sama. Ukuran larik bersifat tetap, larik akan mempunyai ukuran yang sama pada saat sekali dibuat. Larik dalam Java adalah obyek, disebut juga sebagai tipe referensi. Sedangkan elemen dalam larik Java bisa primitif atau referensi. Posisi dari larik biasa disebut sebagai elemen. Elemen larik dimulai dari 0 (nol). Penyebutan larik diberikan dengan cara menyebutkan nama lariknya dan diikuti dengan indeksnya, dimana indeks dituliskan diantara tanda kurung siku. Gambar 1. memperlihatkan gambaran larik dengan 10 elemen, dimana setiap elemennya bertipe integer, dengan nama A. Nama
A[0]
A[1]
A[2]
A[3]
A[4]
A[5]
A[6]
A[7]
A[8]
A[9]
Isi larik
12
-56
23
45
-16
-2
85
41
15
20
Gambar 7.1 Array satu-dimensi dengan 10 elemen A. Deklarasi Dan Menciptakan Larik
Sebagai sebuah obyek, larik harus diciptakan dengan menggunakan kata cadang new. Deklarasi dan penciptaan variabel larik gambar 1 adalah sebagai berikut. int A[] = new int[10]; larik dideklarasikan dan langsung diciptakan . Atau int A[]; A = new int[10]; larik dideklarasikan, baru pada pernyataan berikutnya larik diciptakan.
25
7.1.2
Array Dua Dimensi
Array dua dimensi merupakan suatu array yang dibangun menurut format baris dn kolom. Seperti gambar dibawah ini, untuk mengakses variable dua dimensi diawali baris ke 0 hingga ke ko lom 3, selanjutnya dari baris ke 1 bergerak kekolom 0 hingga ke kolom 3, dan seterusnya hingga baris ke 2. Array dua dimensi seperti gambar dibawah ini mempunyai baris sebanyak 3 dan kolom sebanyak 4. Two_D
0
1
2
3
0
1
3
2
1
1
2
1
3
2
2
3
2
1
5
Baris
Kolom
Gambar 7.2 Array dua-dimensi ukuran 3x4 Variable elemen array dua dimensi berjenis integer, maka deklarasikan dua dimensi dengan cara inisialisasikan nilai-nilai elemen array bias kita tuliskan sebagai berikut : I nt t wo_D [ ] [ ] = { {1, 3, 2, {2, 1, 3, {3, 2, 1,
1}, 2}, 5} };
Artinyan bahwa two_D [0] [0] elemen array_nya akan mempunyai nilai 1, two_D[1] [2] elemen array nya akan mempunyai nilai 3, dan two_D[2] [3] elemen array_nya akan mempunyai_niali 5. 7.1.3
Array Tiga Dimensi
Array tiga dimensi merupakan suatu array dari array dari array. Array dari array itu sendiri tidak lain merupakan array dua-dimensi. Sehingga array tiga-dimensi dapat dinyatakan juga sebagai array dari array dua dimensi.
26
Kolom Subskrip 0 0 0 S u b s k r i p
1
1 2
3
0
1
2 2
3
0
1
2
1
2
3
4
7
9
3
2
7
2
6
5
5
6
7
8
4
6
8
3
0
4
7
8
2
Kolom Subskrip 2
Kolom Subskrip 2
Kolom Subskrip 2
Gambar 7.3 Ilustrasi array tiga-dimensi Deklarasi array tiga dimensi dengan cara pemberian nilai awal kita tuliskan sebagai berikut : i nt t hr ee_D [ ] [ ] = { { {1, 2, 3, 4}, {5, 6, 7, 8}, }, { {7, 9, 3, 2}, {4, 6, 8, 3}, }, { {7, 2, 6, 5}, {0, 1, 9, 4}, } } Artinya bahwa jika kita mendklarasikan array t hr ee_D[ 0] [ 0] [ 0] maka elemen array_nya mempunyai nilai integer 1. Selanjutnya, jika kita mendklarasikan array t hr ee_D [ 1] [ 1] [ 1] maka elemen array_nya mempunyai nilai integer 6 dan jika kita mendklarasikan array t hr ee_D[ 2] [ 0] [ 1] maka elemen array_nya mempunyai nilai integer 2. 7.2 Pelaksanaan Praktikum Latihan Array_01 : // Program untuk menghitung deret bilangan yang diinput dari keyboard menggunakan array satu dimensi i mpor t j ava. ut i l . Scanner ; publ i c cl ass arr ay_01 { publ i c stati c voi d mai n ( St r i ng[ ] ar gs) { Scanner masukan = new Scanner ( Syst em. i n) ; i nt j um_ bi l , t ot al =0; doubl e r at a2; 27
3 a r i s
Syst em. out . pr i nt ( " Ber apa banyaknya bi l angan ? " ) ; j um_bi l = masukan. next I nt ( ) ; i nt dat a[ ] = new i nt [ j um_bi l ] ; f or ( i nt i =0; i
Hasil Output :
Gambar 7.4 Tampilan Output Class array_01 Latihan Array_02 : //program untuk menampilkan nilai matrik dengan menggunakan array 2 dimensi i mpor t j ava. ut i l . Scanner ; publ i c cl ass arr ay_02 { publ i c st at i c voi d mai n( St r i ng ar gs[ ] ) { Scanner masuk = new Scanner ( Syst em. i n) ; i nt j um_bi l 1, j um_bi l 2; Syst em. out . pr i nt ( " Masukkan Bi l angan 1: ") ; j um_ bi l 1 = masuk. next I nt ( ) ; Syst em. out . pr i nt ( " Masukkan Bi l angan 2: ") ; j um_ bi l 2 = masuk. next I nt ( ) ; i nt has i l [ ] [ ] = new i nt [ j um_ bi l 1] [ j um_ bi l 2] ; Syst em. out . pr i nt l n( "Masukkan dat a ni l ai ") ; f or ( i nt i = 0; i < j um_bi l 1; i ++) { f or ( i nt j = 0; j < j um_bi l 2; j ++) { Syst em. out . pr i nt ( " ( " + ( i + 1 ) +" , "+ ( j +1) +") "+ " : " ) ; has i l [ i ] [ j ] =mas uk. next I nt ( ) ; } } Syst em. out . pr i nt l n( " Dat a ni l ai yang di masukan") ; f or ( i nt i = 0; i < j um_bi l 1; i ++) { f or ( i nt j = 0; j < j um_bi l 2; j ++) Sys t em. out . pr i nt ( has i l [ i ] [ j ] +" " ) ; Syst em. out . pr i nt l n( ) ; } } }
28
Hasil Output :
Gambar 7.5 Tampilan Output Class array_02 7.3 Tugas 1. Buatlah sebuat program penjumlahan matriks menggunakan array dua dimensi.
2. Buatlah program inputan pemakaian array dua dimensi untuk menghitung perkalian dua bilangan integer yang sama. Untuk hasil output seperti gambar dibawah ini :
29
MODUL 8 PROGRAM DENGAN STRING Modul 8 membahas tentang penggunaan string untuk dapat mendukung sejumlah metode dalam pemanipulasian string.
8.1 Fungsi String
String merupakan suatu bentuk array satu dimensi bertipe data character. Biasanya string digunakan untuk mengurutkan dan memanipulasi teks, misalnya kata-kata, nama dan berbagai kalimat. Tabel 8.1 Konstruktor Klas String Konstruktor String()
Keterangan Menciptakan obyek string yg berisi string kosong (jumlah karakter = 0)
String(char [ ] v) Menciptakan obyek string yg berisi string yg berasal dari array yg dirujuk oleh v String(String v)
Menciptakan obyek string yg isinya sama dengan obyek string argumennya
Metode dalam klas string memperlihatkan sejumlah metode penting dalam klas string, seperti : - copyValueOf(char data[ ]) -
copyValueOf(char data[ ], int offset, int jum)
-
valueOf(boolean b)
-
valueOf(double c)
-
concat(String s)
-
length()
-
trim(), dan lain-lain.
Klas StringBuffer adalah klas yg menyimpan string yang konstan, begitu obyek string telah diciptakan maka string tidak dapat diubah. Konstruktor klas ini antara lain : -
StringBuffer() digunakan untuk menciptakan StringBuffer yang kosong
-
StringBuffer(int n) digunakan untuk menciptakan StringBuffer dengan n karakter
-
StringBuffer(String s) digunakan untuk menciptakan StringBuffer dengan string berupa s
30
Fungsi – fungsi pengelolaan string : -
toUpperCase() digunakan untuk menghasilkan string yang disusun dalam huruf
kecil menjadi string dengan huruf besar (KAPITAL). -
toLowerCase() digunakan untuk menghasilkan string yang disusun dengan huruf
besar menjadi string dengan huruf kecil. -
Equals() digunakan untuk membandingkan 2 obyek string dengan pengambilan true
atau false. 8.2 Pelaksanaan Praktikum
Tuliskan program berikut ini : Latihan String_01 : // Program untuk memasukkan nilai string publ i c cl ass st r i ng_01 { publ i c st at i c voi d mai n( St r i ng ar gs[ ] ) { byt e dat a[ ] = new byt e[ 6] ; dat a[ 0] = 64; dat a[ 1] = 65; dat a[ 2] = 66; dat a[ 3] = 67; dat a[ 4] = 68; dat a[ 5] = 69; St r i ng s1 = " Sel amat Pagi " ; St r i ng s2 = new St r i ng( " Good Mor ni ng" ) ; St r i ng s3 = new St r i ng( dat a) ; St r i ng s4 = new St r i ng( dat a, 2, 3) ; Syst em. out . pr i nt l n( " s1 = " + s1) ; Syst em. out . pr i nt l n( " s2 = " + s2) ; Syst em. out . pr i nt l n( " s3 = " + s3) ; Syst em. out . pr i nt l n( " s4 = " + s4) ; } }
Hasil Output :
Gambar 8.1 Tampilan Output Class string_01 Pada program di atas, pernyataan seperti : St r i ng s1 = " Sel amat Pagi " ;
Sebenarnya identik dengan : 31
St r i ng s1 = new St r i ng( " Sel amat Pagi " ) ; St r i ng s3 = new St r i ng( dat a) ;
Akan membuat string yang tersusun atas karakter-karakter yang nilainya sama seperti elemen-elemen pada array data, maka s3 berisi string @ABCDE adalah karakter @ = 64, A=65 dan seterusnya. St r i ng s4 = new St r i ng( dat a, 2, 3) ;
Angka 3 menyatakan jumlah karakter yg menyusun string dan angka 2 menyatakan karakter pertama pada string, hasil diambil pada indeks ke-2 array. Latihan String_02 // Program untuk menggabungkan 2 buah string dan menghitung panjang string publ i c cl ass st r i ng_02 { publ i c st at i c voi d mai n( St r i ng ar gs[ ] ) { St r i ng st r 1, st r 2, gabung ; st r 1 = "Sel amat Bel aj ar " ; st r 2 = "Pr ogr am J ava" ; gabung = st r 1. concat ( st r 2) ; Syst em. out . pr i nt l n( "Di ber i St r i ng : "+st r 1) ; Syst em. out . pr i nt l n( "Di ber i St r i ng : "+st r 2) ; Syst em. out . pr i nt l n( "Di ber i St r i ng : "+gabung) ; Syst em. out . pr i nt l n( "Panj ang St r i ng Adal ah : "+st r 1. l engt h( ) ) ; } }
Untuk menggabungkan string str1 dan str2 menggunakan fungsi concat() gabung = st r 1. concat ( st r 2) ; length() :
digunakan untuk menghasilkan panjang suatu string
Hasil Output :
Gambar 8.2 Tampilan Output Class string_02
8.3 Tugas
1.
Buatlah
sebuah
program
string
dengan
mengimplementasikan
fungsi
toUpperCase() dan toLowerCase()
32
MODUL 9 PEMROGRAMAN JAVA APPLICATION Modul 9 membahas tentang penerapan menggunakan interface secara graphis (GUI) memanfaatkan method SWING dalam pembuatan komponen dengan pemrograman java application. 9.1 GUI (Grafic User Interface)
GUI (Grafic User Interface) yang merupakan istilah model interface berbentuk grafik yang memfasilitasi interaksi antara pengguna dengan program aplikasi. Beberapa elemen pada GUI, sebagai berikut : 1. Container adalah wadah untuk meletakkan komponen-komponen GUI. 2. Komponen – komponen GUI, antara lain (tombol, combbobox, list, menu, label, text field, table. 3. Event yaitu sinyal yang dibangkitkan untuk merespon aksi dari user. Contoh aksi user ini adalah mengklik mouse. 4. Dialog yaitu windows kecil untuk menampilkan informasi sederhana pada user. 5. Layaot yaitu sebuah windows utama dapat terdiri dari banyak komponen dengan menggunakan layout yang sesuai. 6. Menu merupakan sekumpulan perintah yang dapat dipilih user untuk menjalankan perintah tertentu. Salah satu komponen dalam bahasa pemrograman Java untuk membangun GUI adalah Swi ng. Komponen ini didefinisikan di dalam paket j avax. swi ng. Swi ng diturunkan dari Abstract Windowing Toolkit dalam paket j ava. awt . Hirarki dari komponen Swi ng adalah sebagai berikut j ava. l ang. Obj ect j ava. awt . Component j ava. awt . Cont ai ner j ava. swi ng. J Component Gambar 9.1 Tampilan Hirarki komponen Swing
33
9.2 Dasar User Interface Dengan Swing
Swing merupakan bagian dari java Foundation Class (JFC). GUI yang terdapat pada swing diakses dengan mengimport package. beberapa komponen dasar antarmuka pengguna (user interface) yang disediakan oleh Swing: 1.
Top level containers: adalah container dasar untuk meletakkan komponen-
komponen lain. Contohnya adalah JFrame, JDialog, dll. 2. Intermediate level containers: merupakan container perantara. Umumnya digunakan hanya untuk meletakkan atau mengelompokkan komponen-komponen yang digunakan, baik itu container atau berupa atomic component. Contoh dari Intermediate level container adalah JPanel (panel).
3. Atomic component : merupakan komponen yang memiliki fungsi khusus. Umumnya pengguna langsusng berinteraksi dengan komponen ini. Contohnya adalah JButton (tombol), JLabel (label), JTextField, JTextArea (area untuk menulis teks), dll. 9.3 Java Application
Modul 1 kita sudah mempelajari java application dengan dasar pemrograman java. Di modul ini kita akan membahas java application, pemrograman aplikasi berbasis GUI menggunakan Netbeans. 9.4 Pelaksanaan Praktikum Latihan_01 : Membuat Top level containers, yaitu JFrame dan JDialog 1. Pilih Start Program NetBeands
2. Pilih menu bar File New Project 3. Pilih Categories: Java dan Projects: Java Application Next 4. Tulis nama project pada isian Project Name, dalam contoh Prak_02 5. Pilih lokasi penyimpanan pada isian Project Location. Bisa menuliskan lokasinya atau menggunakan tombol Browser. 6. Centang Set as Main Project, ini digunakan untuk menjadi project utama. 7. Centang Create Main Class, ini digunakan jika langsung membuat kelas main dan bisa mengganti nama kelasnya. 8. Kemudian klik finish. 9. Tampil jendela wizard Prak_02, setelah itu klik kanan project Prak_02 New
Java Class. Untuk lebih jelasnya lihat gambar dibawah ini
34
Gambar 9.2 Tahapan membuat Class baru 10. Tampil wizard New Java Class. Isi kan pada Class Name dengan nama swing_01
11. Kemudia buah lah program yang ada dibawah ini : i mpor t j avax. swi ng. *; publ i c cl ass swi ng_01 { publ i c st at i c voi d mai n( St r i ng[ ] ar gs) { St r i ng Panj ang; St r i ng Lebar ; i nt l , p; f l oat hasi l ; / / Meminta Input dari User hanya memiliki 1 parameter Panj ang = J Opt i onPane. showI nput Di al og( " Panj ang" ) ; Lebar = J Opt i onPane. showI nput Di al og( " Lebar " ) ; //Fungsi untuk merubah dari string menjadi Integer l = I nt eger . par seI nt ( Lebar ) ; p = I nt eger . par seI nt ( Panj ang) ; has i l = p * l ; J Opt i onPane. showMess ageDi al og( nul l , " Luas Per segi Panj ang adal ah " + hasi l , " Resul t s" , J Opt i onPane. PLAI N_MESSAGE) ; Syst em. exi t ( 0) ; } }
Hasil Output :
Klik Tombol Ok
Klik Tombol Ok
Gambar 9.3 Tampilan Output Class swing_01
35
Program diatas merupakan contoh java application, kode program untuk memunculkan sebuah dialog. Beberapa lambing yang digunakan :
1. JOptionPane.ERROR_MESSAGE 2. JOptionPane.INFORMATION _MESSAGE 3. JOptionPane.WARNING _MESSAGE 4. JOptionPane.QUESTION _MESSAGE 5. JOptionPane.ERROR_MESSAGE. Contoh : JOptionPane.showMessageDialog(null, “Selamat Belajar”,”Pemrograman Java”,JOptionPane.ERROR_MESSAGE); Latihan_02 : Membuat Top level containers, yaitu 1. Buat class baru dengan nama gui_swing01
2. Kemudian ketikkanlah listing program dibawah ini : package GUI _ swi ng; i mpor t j avax. swi ng. *; i mpor t j ava. awt . *; i mpor t j ava. awt . event . *; publ i c cl ass gui _swi ng01 { pr i vat e J But t on b1, b2; Komponen pada GUI pr i vat e J Text Fi el d t 1, t 2; pr i vat e J Label l 1, l 2; pr i vat e J Frame f ; pr i vat e doubl e a, b, c; pr i vat e J Panel panel 1, panel 2; / / Tempat untuk mengkelompokkan komponen GUI pr i vat e St r i ng konv1 = " Suhu dal am Cel ci us adal ah. . . " ; pr i vat e St r i ng konv2 = " Suhu dal am Fahr enhei t adal ah. . . "; publ i c gui _swi ng01( ) { f = new J Fr ame( " Konver si Suhu" ) ; b1 = new J But t on( " Konver si ke Fahr enhei t " ) ; Edit text pada komponen b2 = new J But t on( " Konver si ke Cel ci us" ) ; l 1 = new J Label ( "Suhu dal am Cel ci us") ; l 2 = new J Label ( "Suhu dal am Fahr enhei t " ) ; t 1 = new J Text Fi el d( 10) ; t 2 = new J Text Fi el d( 10) ; } publ i c voi d hi t ungSuhu( ) { panel 1 = new J Panel ( ) ; panel 2 = new J Panel ( ) ; b1. addAct i onLi st ener ( new Fahr enhei t Handl er ( ) ) ; / / untuk memanggil fungsi FahrenheitHandler b2. addAct i onLi st ener ( new Cel ci usHandl er ( ) ) ; //untuk memanggil fungsi CelciusHandler panel 1. add( l 1) ; panel 1. add( t 1) ; panel 1. add( b1) ; panel 2. add( l 2) ; panel 2. add( t 2) ; 36
panel 2. add( b2) ; J TabbedPane t ab = new J TabbedPane( ) ; t ab. add( panel 1, " Cel ci us ke Fahr enhei t ") ; t ab. add( panel 2, " Fahr enhei t ke Cel ci us") ; f . get Cont ent Pane( ) . add( t ab, Border Layout . NORTH) ; //layout ini untuk
menempatkan pada posisi north, ada beberapa posisi (south, west, center, east) f . set Def aul t Cl oseOperat i on( J Fr ame. EXI T_ON_CLOSE) ; //untuk menghentikan eksekusi program. f . set Si ze( 600, 100) ; f . set Vi s i bl e( t r ue) ; } / / membuat kelas Fahrenheit pr i vat e cl ass Fahr enhei t Handl er i mpl ement s Act i onLi st ener { publ i c voi d act i onPer f or med( Act i onEvent e) { try{ a = Doubl e. par seDoubl e( t 1. get Text ( ) ) ; b = a*1. 8+32; J Opt i onPane. showConf i r mDi al og( nul l , konv2+b, " Hasi l " , J Opt i onPane. OK_CANCEL_ OPTI ON, J Opt i onPane. I NFORMATI ON_ MESSAGE) ; }cat ch( Except i on j ) { J Opt i onPane. showConf i r mDi al og( nul l , " Masukkan Angka! " , " Er r or " , J Opt i onPane. OK_CANCEL_ OPTI ON, J Opt i onPane. I NFORMATI ON_ MESSAGE) ; } } } / / membuat kelas Celcius pr i vat e cl ass Cel ci usHandl er i mpl ement s Act i onLi st ener { publ i c voi d act i onPer f or med( Act i onEvent e) { try{ a = Doubl e. par seDoubl e( t 2. get Text ( ) ) ; b = ( a- 32) / 1. 8; J Opt i onPane. showConf i r mDi al og( nul l , konv1+b, " Hasi l " , J Opt i onPane. OK_CANCEL_ OPTI ON, J Opt i onPane. I NFORMATI ON_ MESSAGE) ; }cat ch( Except i on j ) { J Opt i onPane. showConf i r mDi al og( nul l , " Masukkan Angka! " , " Er r or " , J Opt i onPane. OK_CANCEL_ OPTI ON, J Opt i onPane. I NFORMATI ON_ MESSAGE) ; } } } publ i c st at i c voi d mai n( St r i ng[ ] ar gs) { gui _swi ng01 ce = new gui _s wi ng01( ) ; ce. hi t ungSuhu( ) ; } }
# Act i onEvent : turunan dari kelas AWTEvent , dijalankan ketika sebuah tombol ditekan, melakukan double click pada daftar item, atau memilih menu. # Act i onLi st ener : listener yang bereaksi jika terjadi event pada mouse atau keyboard.
37
Hasil Output :
a. Menghitung nilai celcius ke fahrenheit
b. Menghitung nilai Fahrenheit ke celcius
Gambar 9.4 Tampilan Output Class gui_swing01
9.5 Tugas
Buatlah program berbasis GUI yang menerima inputan dua buah bilangan dan dapat melakukan operasi penjumlahan, pengurangan, perkalian, dan pembagian dua bilangan tersebut, lalu menampilkan hasilnya! Hasil Output seperti gambar dibawah ini :
38
MODUL 10 PEMROGRAMAN JAVA DESKTOP APPLICATION Modul 10 membahas tentang pembuatan dan pengaplikasian Graphical User Interface dengan Swing dan pemrograman java desktop application. 10.1 Java Desktop Application
Java Desktop Application atau bisa juga disebut sebagai pemograman berbasis GUI merupakan pemograman yang menggunakan library Swing dan AWT. Pada pemograman berbasis GUI, kita bisa membuat suatu aplikasi yang berbasis pada form. Langkah-langkah membuka project nya sama dengan java application, bedanya saat kita membuat kelas baru. Caranya sebagai berikut :
12. Pilih Start Program NetBeands 13. Pilih menu bar File New Project 14. Pilih Categories: Java dan Projects: Java Desktop Application
Next
Next 15. Kemudian tampil wizard New Desktop Application. Tulisan pada Project Name dengan nama JavaGUI
Gambar 10.1 Tampilan New Desktop Application 16. Pilih lokasi penyimpanan pada isian Project Location. Bisa menuliskan lokasinya atau menggunakan tombol Browser. 17. Kemudian klik finish. Akan tampil layar seperti gambar dibawah ini :
39
Gambar 10.2 Tampilan Form JavaGUIView 18. Terdapat 3 frame : JavaGUIAboutBox, JavaGUIApp, JavaGUIView 19. Pada frame JavaGUIAboutBox : sebagai penjelasan program, JavaGUIView : sebagai menu utama, JavaGUIApp : program untuk memanggil frame tertentu saat pertama kali dijalankan. Disini yang dipanggil frame JavaGUIView
Gambar 10.3 Tampilan Form JavaGUIApp 20. Jalankan program dengan cara klik kanan project JavaGUI Run
40
Gambar 10.4 Tampilan Form JavaGUIView saat di jalnkan 21. Maka yang tampil terlebih dahulu frame JavaGUIView. Didalam frame terdapat 2 menu bar, menu bar File terdapat sub menu Exit dan menu bar Help terdapat sub menu About 10.2 Pelaksanaan Praktikum Latihan_01 :
Sekarang kita akan menambah frame baru. Langkah-langkah sebagai berikut : 1. Klik kanan package javagui jFarme Form 2. Pada Class Name tuliskan dengan nama : latihan1 Finish 3. Tampil layar seperti gamabar dibawah ini :
Gambar 10.5 Tampilan Form latihan1 4. Desain frame dengan meletakkan jLabel, jTextField dan jButton
41
Edit Text
Gambar 10.6 Tampilan Design Form latihan1 5. Ubah text jLebal menjadi Output.
jButton menjadi Clear dan jTextField
kosongkan. 6. Klik kanan pada jTextField Events Key KeyRelease.
Gambar 10.7 Tampilan seleksi Form latihan1 7. Ketikkan listing program dibawah ini : jLabel1.setText(jTextField1.getText());
8. Klik kanan pada tombol Clear Events Action ActionPerformed 42
jLabel1.setText("Output"); jTextField1.setText("");
9. Buka form JavaGUIView. Klik kanan menu bar file Add From Palette Menu
Item
Gambar 10.8 Tampilan Design Form JavaGUIView
Gambar 10.9 Tampilan jMenuItem1 10. Untuk memindahkan menu jMenuItem keatas menu Exit. Klik kanan jMenuItem
Move Up. 11. Ubah jMenuItem menjadi latihan1.
12. Klik kanan pada tombol latihan1 Events Action ActionPerformed 13. Ketikkan program dibawah ini : latihan1 form1 = new latihan1(); form1.setVisible(true); 14. Kemudian jalankan program. Klik kanan project JavaGUI Run
43
Gambar 10.10 Tampilan Form JavaGUIView saat d ijalankan 15. Setelah program dijalankan. Pilih File latihan1 16. Tampil layar latihan1. Ketikkan kalimat pada TextField, secara kebersamaan
kalimat tersebut muncul di kotak jLabel. 17. Kemudian klik tombol Clear ini untuk menghapus kalimat pada TextField dan
Label.
10.3 TUGAS
Tambahkan frame diatas dengan menambahkan frame menjadi latihan2 isinya sama denga latihan1, kemudian tambahkan sebagai menu item pada menu bar file.
44
MODUL 11 Mengenal jLabel, jTextField, jRadioButton dan jTextArea Modul 11 membahas tentang pengaplikasian jTextFiled, jLabel, jRadioButton dan jTextArea. 11.1 Pelaksanaan Praktikum Latihan 01 :
1. Buat project baru, pilih menu bar File New Projeck 2. Untuk project saya buat Prak_03, 3. Kemudian klik kanan project Prak_03 New jFrame From. 4. Tampil wizard New Java Class. Isi kan pada Class Name dengan nama latihan_01.
5. Kemudian tampil layar seperti gambar dibawah ini :
Gambar 11.1 Tampilan Form latihan_01 6. Desain form seperti gambar dibawah ini :
Gambar 11.2 Tampilan Design Form latihan_01
45
7. Merubah nama komponen dengan cara : klik kanan salah satu komponen
Change Variable Name.
Gambar 11.3 Tampilan jendela Rename Tabel 11.1 komponen Komponen
Edit Text
Variable name
jLabel1
jLabel1
Data Mahasiswa
jLabel1
jLabel1
Nama
jLabel1
jLabel1
Npm
jLabel1
jLabel1
Jenis Kelamin
jTextField1
-
Txtnama
jTextField2
-
Txtnim
jRadioButton1
Laki-laki
Rblaki
jRadioButton2
Perempuan
Rbperempuan
jButton1
Tampil
btTampil
jButton2
Keluar
btKeluar
Text Area
-
txtArea
Gambar 11.4 Tampilan Design Form latihan_01 8. Klik kanan tombol Tampil Action actionPerformed
Kemudian tuliskan listing program dibawah ini : 46
pr i vat e voi d bt Tampi l Act i onPer f or med( j ava. awt . event . Act i onEvent evt) { St r i ng nama, j eni s, ni m; nama = t xt nama. get Text ( ) ; ni m = t xt ni m. get Text ( ) ; i f ( r bl aki . i sSel ect ed( ) ) { j eni s = r bl aki . get Text ( ) ; } el se { j eni s = r bper empuan. get Text ( ) ; } t xt Ar ea. set Text ( " Nama = " +nama+" \ n NI M =" +ni m+" \ nJ eni s Kel ami n =" +j eni s) ; }
9. Selanjutnya klik kanan tombol Keluar Action actionPerformed
Kemudian tuliskan listing program dibawah ini : pr i vat e voi d bt Kel uar Act i onPer f or med( j ava. awt . event . Act i onEvent evt) { Syst em. exi t ( 0) ; }
10. Jalankan program latihan_01. Klik kanan latihan_01
Run
Gambar 11.5 Tampilan Form latihan_01 saat dijalankan 11. Isi text nama dan Npm, pilih salah satu jenis kelamin. Kemudian klik tombol
tampil. Maka text tampil pada TextArea.
11.2 Tugas
Buatlah sebuah program data penduduk. Tampilan program seperti gambar dibawah ini:
47
MODUL 12 Mengenal ChekBox, ComboBox dan jList
Modul 12 membahas tentang pengaplikasian ChekBox, ComboBox dan jList. 12.1 Pelaksanaan Praktikum Latihan 01 :
Tambahkan form baru didalam project Prak_03, 1. Klik kanan project Prak_03 New jFrame From . 2. Class Name : latihan02 3. Silahkan desain form seperti gambar dibawah ini:
jComboBox Change variable menjadi bWarna
Gambar 12.1 Tampilan Design Form latihan02 Isi pilihan pada comboBox. Pilih tab Properties model. Pada comboBox Font (Arial, Verdana, Tahoma), pilihan warna (Merah, Hijau, Biru), pilihan ukuran (14, 16, 38) 4. Penjelasan komponen yang digunakan :
Gambar 12.2 Tampilan tab Inspector
48
5. Ketikkan listing program dibawah ini : i mpor t j ava. awt . Col or ; i mpor t j ava. awt . Font ; publ i c cl ass l at i han_03 ext ends j avax. swi ng. J Fr ame { publ i c l at i han_03( ) { i ni t Component s( ) ; } pr i vat e voi d j But t on1MouseCl i cked( j ava. awt . event . MouseEvent evt ) { Font t ebal = new Font ( " Monospaced" , Font . BOLD, 12) ; Font bi asa = new Font ( " Monospaced" , Font . PLAI N, 12) ; i f ( r bLaki . i s Sel ect ed( ) ) { i f ( j CheckBox1. i sSel ect ed( ) ) { j Text Ar ea1. set Text ( " Nama : " +t xt nama. get Text ( ) + ", J eni s Kel ami n : "+r bLaki . get Text ( ) ) ; j Text Ar ea1. set Font ( t ebal ) ; } el se{ j Text Ar ea1. set Text ( " Nama : " +t xt nama. get Text ( ) + ", J eni s Kel ami n : "+r bLaki . get Text ( ) ) ; j Text Ar ea1. set Font ( bi asa) ; } } el se i f ( r bPer empuan. i sSel ect ed( ) ) { i f ( j CheckBox1. i sSel ect ed( ) ) { j Text Ar ea1. set Text ( " Nama : " +t xt nama. get Text ( ) + ", J eni s Kel ami n : " +r bPer empuan. get Text ( ) ) ; j Text Ar ea1. set Font ( t ebal ) ; } el se{ j Text Ar ea1. set Text ( " Nama : " +t xt nama. get Text ( ) + ", J eni s Kel ami n : " +r bPer empuan. get Text ( ) ) ; j Text Ar ea1. set Font ( bi asa) ; } } } pr i vat e voi d j CheckBox1St at eChanged( j avax. swi ng. event . ChangeEvent evt ) { i f ( j CheckBox1. i sSel ect ed( ) ) { j CheckBox1. set Text ( " YA" ) ; } el se{ j CheckBox1. set Text ( " TI DAK") ; } } pr i vat e voi d bFont Act i onPer f or med( j ava. awt . event . Act i onEvent evt) { i f ( bFont . get Sel ect edI t em( ) =="Ar i al " ) { j Text Ar ea1. set Font ( new Font ( " Ar i al " , Font . PLAI N, 12) ) ; } el se i f ( bFont . get Sel ect edI t em( ) =="Ver dana") { j Text Ar ea1. set Font ( new Font ( " Ver dana" , Font . PLAI N, 12) ) ; } el se i f ( bFont . get Sel ect edI t em( ) ==" Tahoma" ) { j Text Ar ea1. set Font ( new Font ( " Tahoma" , Font . PLAI N, 12) ) ; } 49
} pr i vat e voi d bUkur anAct i onPer f or med( j ava. awt . event . Act i onEvent evt) { i f ( bUkur an. get Sel ect edI t em( ) ==" 14" ) { j Text Ar ea1. set Font ( new Font ( j Text Ar ea1. get Font ( ) . get Name( ) , j Text Ar ea1. get Font ( ) . get St yl e( ) , 14) ) ; } el se i f ( bUkur an. get Sel ect edI t em( ) ==" 16" ) { j Text Ar ea1. set Font ( new Font ( j Text Ar ea1. get Font ( ) . get Name( ) , j Text Ar ea1. get Font ( ) . get St yl e( ) , 16) ) ; } el se i f ( bUkur an. get Sel ect edI t em( ) ==" 38" ) { j Text Ar ea1. set Font ( new Font ( j Text Ar ea1. get Font ( ) . get Name( ) , j Text Ar ea1. get Font ( ) . get St yl e( ) , 38) ) ; } } pr i vat e voi d bWarnaAct i onPer f ormed( j ava. awt . event . Act i onEvent evt) { i f ( bWar na. get Sel ect edI t em( ) ==" Mer ah" ) { j Text Ar ea1. set For egr ound( Col or . RED) ; } el se i f ( bWar na. get Sel ect edI t em( ) ==" Hi j au" ) { j Text Ar ea1. set For egr ound( Col or . GREEN) ; } el se i f ( bWar na. get Sel ect edI t em( ) ==" Bi r u") { j Text Ar ea1. set For egr ound( Col or . BLUE) ; } }
6. Jalankan program dengan menge-klik kanan frame latihan_02 Run
Gambar 12.3 Tampilan Form latihan02 saat di jalankan Latihan_02 :
Tambahkan form baru didalam project Prak_03, 1. Klik kanan project Prak_03 New jFrame From. 2. Class Name : latihan03 3. Silahkan desain form seperti gambar dibawah ini:
50
Gambar 12.4 Tampilan Design Form latihan03 4. Untuk membuat list pada kotak pekerjaan. Klik jList1 Properties, pilih model
kemudian
pada tab
double klik model
5. Tampil jendela jList1. Isikan kotak jList1 sebagai berikut :
Gambar 12.5 Tampilan Model pada komponen jList1 6. Komponen yang digunakan :
Gambar 12.6 Tampilan tab Inspector 7. Double klik tombol tampil. Kemudian ketikkan listing program dibawah ini: i f ( j Li st 1. get Sel ect edI ndex( ) ==0) { j Text Ar ea1. set Text ( j Text Fi el d1. get Text ( ) +" seor ang mahasi swa" ) ; 51
} el se i f ( j Li st 1. get Sel ect edI ndex( ) ==1) { j Text Ar ea1. set Text ( j Text Fi el d1. get Text ( ) +" seor ang PNS") ; } el se i f ( j Li st 1. get Sel ect edI ndex( ) ==2) { j Text Ar ea1. set Text ( j Text Fi el d1. get Text ( ) +" seor ang kar yawan swast a") ; } el se i f ( j Li st 1. get Sel ect edI ndex( ) ==3) { j Text Ar ea1. set Text ( j Text Fi el d1. get Text ( ) +" seor ang pengusaha" ) ; } el se{ j Text Ar ea1. set Text ( j Text Fi el d1. get Text ( ) +" Seor ang yang bel um mendapat kan peker j aan : ) " ) ; }
8. Jalankan program dengan menge-klik kanan form latihan_03 Run
Gambar 12.7 Tampilan Form latihan_03 saat di jalankan Isi text pada nama dan pilih salah satu list pekerjaan. Kemudian klik tombol tampil.
52
MODUL 13 Mengenal jMenuBar dan jMenuItem Modul 13 membahas tentang pengaplikasian jMenuBar, jMenuItem, jPanel. 13.1 Pelaksanaan Praktikum Latihan 03 :
Tambahkan form baru didalam project Prak_03, 7. Kemudian klik kanan project Prak_03 New jFrame From. 8. Class Name : latihan04 9. Drag komponen Menu Bar ke dalam frame.
Gambar 13.1 Tampilan awal Form Menu Bar 10. Membuat sub menu pada munu bar. Klik kanan File pada form
Add
From
Palette Menu Item.
11. Ganti sub menu jMenuItem1 : klik kanan
Edit Text dengan nama
latihan_03 (form yang sudah ada untuk dipanggil)
12. Double klik Short out pada sub menu Latihan_03 . Akan tampil layar seperti
gambar dibawah ini:
53
Gambar 13.2 Tampilan jendela Accelerator 13. Centang Ctrl Virtual Key : VK_L OK. 14. Tambahkan 1 menu item lagi dengan nama Simpan 15. Drag jPanel ke dalam frame 16. Drag komponen jScrollPane1 dan drag jTextArea1 ke dalam frame
Gambar 13.3 Tampilan Design Form Menu Bar 17. Komponen yang digunakan :
Gambar 13.4 Tampilan tab Inspector 18. Kemudian ketikkan listing program dibawah ini untuk memanggil form Latihan_03 dan menyimpan data yang diketikaan di text area ke dalam
komputer. i mpor t j ava. i o. Fi l eWr i t er ; i mpor t j ava. i o. I OExcept i on; publ i c cl ass l at i han_04 ext ends j avax. swi ng. J Fr ame { publ i c l at i han_04( ) { i ni t Component s( ) ; } pr i vat e voi d j MenuI t em2Act i onPer f ormed( j ava. awt . event . Act i onEvent evt) { Fi l eWr i t er si mpan = nul l ; 54
try { si mpan = new Fi l eWr i t er ( "c: / gui Swi ng. t xt ") ; / / untuk menyimpan data j Text Ar ea1. ea1. wr i t e( s i mpan) pan) ; } cat cat ch ( I OExcep xcept i on exce excep pt i on) { excep cept i on. pr i nt St ackT ckTr ace( ce( ) ; } f i nal l y { i f ( si mpan ! = nul l ) { try { si mpan. cl ose( se( ) ; } cat cat ch ( I OExcep xcept i on exce excep pt i on) { excep cept i on. pr i nt St ackT ckTr ace( ce( ) ; } } } } pr i vat vat e voi voi d j MenuI t em1Act i onPe onPerr f ormed( j ava. ava. awt . eve event . Act i onE onEven vent evt) { l at i han_03 f orm1 = new l at i han_03 an_03(( ) ; f or m1. s et et Vi s i bl e( t r ue u e) ; } 19. Memberi nama pada frame. frame. Klik frame, pada tab properties dan pada bagian bagian title ketikkan “Program Java ”.
Gambar 13.5 Tampilan tab Properties 20. Jalankan program
Gambar 13.6 Tampilan Form Menu Bar saat di jalankan 21. Ketikkan text didalam TextArea klik File pilih Simpan.
Maka text tersebut tersimpan didalam drive C:/guiSwing.txt 22. Klik File pilih latihan_03. Maka Frame latihan_03 akan tampil.
55
MODUL 14 MEMBUAT LOGIN DATABASE
Modul 14 membahas tentang konsep basis data dengan JDBC dan mampu mengimplementasikannya. 14.1 Database
Database merupakan pangkalan data (tempat data) yang disusun sedemikian rupa, dengan tujuan database tersebut efisien dan efektif, serta mengikuti aturan – aturan alat desain database dari perangkat lunak yang digunakan. 14.2 JDBC
JDBC API (Java DataBase Connectivity Application Programming Interface) yang berfungsi melakukan pengaksesan terhadap data tabular dalam basis data. 14.3 Pelaksanaan Praktikum A. Membuat database Admin
1. Buat Database Pasien dengan nama db_pasien dan table admin 2. Dalam bab ini kita membuat form Login dan Form Menu Utama 3. Untuk rincian tabel admin sebagai berikut : Tabel 14.1 Admin Field Type Username char Password char 4. Isi data table admin : B.
Size 20 20 user : admin1 Password : 123
Membuat Class Koneksi
Langkah membuat form aplikasi : 1.
Pilih menu bar File New Project Categori : Java dan Projects : Java Dekstop Application Project Name : Dt_pasien Finish
2.
Pada project pasien pilih Libraries, kemudian klik k lik kanan Add Library
3.
Tampil wizard Add Library, pada Available Libraries : pilih MySQL JDBC Driver Add Library ( ini untuk mengubungkan database ke java) 56
4.
Membuat class baru untuk koneksi database : Klik kanan project pasien New Java Class
5.
Untuk kelas saya buat koneksi
6.
Delete Frame JavaGUIAbout dan Frame JavaGUIView kemudian ketikkan listing program pada Class koneksi dibawah ini :
package ackage pasi en; i mpor t j ava. s ql ql . * ; publ i c cl ass kon koneksi { publ i c kon koneksi ksi ( ) { } publ publ i c Con Conn nect i on OpenC penCon onne nect ct ( ) t hr ows SQ SQLExcep LExceptt i on{ on{ Conne onnect ct i on con1 con1 = nul l ; try { Cl ass. f or Name( "com. mysql sql . j dbc. Dr i ver ver ") ; con con1=Dr i ver ver Manager . get Connect i on( " j dbc: mysql ysql : / / l ocal cal host / db_pasi _pasi e n" , " r oot ", "123 "12345678" ) ; r et ur n con con1; } cat ch ( SQLExce LExcep pt i on se) { Syst em. out . pr i nt l n( "Per "Per i nt ah SQL Sal ah! ! ! ") ; r et e t ur n nul l ; } cat cat ch ( Excep xcept i on ex) ex) { Syst em. out . pr i nt l n( "Dr "Dr i ver Ti dak Ter Ter hubung! ! ! ") ; r et ur n nul l ; } } }
7. Setelah selesai, silahkan compile class koneksi C. Membuat form Login
Klik kanan project pasien New jFrame Form 8. Sekarang silahkan desain form login seperti gambar dibawah ini :
Gambar 14.1 Tampilan Design Form Login 9. Sesuaikan dengan komponen dan name sebagai berikut :
57
Gambar 14.2 Tampilan tab Inspector pada form login 10. Kemudian ketikkan listing program seperti dibawah ini : package pasi en; i mpor t j ava. s ql . * ; i mpor t j avax. swi ng. J Opt i onPane; publ i c cl ass l ogi n ext ends j avax. swi ng. J Frame { publ i c l ogi n( ) { i ni t Component s( ) ; } pr i vat e voi d cbBat al Act i onPer f or med( j ava. awt . event . Act i onEvent evt) { Syst em. exi t ( 0) ; } pr i vat e voi d cbLogi nAct i onPer f or med( j ava. awt . event . Act i onEvent evt) { i f ( t xt us er . get Text ( ) . equal s ( " " ) ) { } el se { try{ koneksi ObHr goneksi 1 = new koneksi ( ) ; Connect i on con1 = ObHr goneksi 1. OpenConnect ( ) ; St at ement st 1 = con1. cr eat eSt at ement ( ) ; St r i ng sql 1 = " SELECT * FROM admi n WHERE user name =' " +t xt user . get Text ( ) +" ' and passwor d=' " + t xt pass. get Text ( ) + "'"; Resul t Set r s1 = st 1. execut eQuer y( sql 1) ; i f ( r s1. next ( ) ) { J Opt i onPane. showMess ageDi al og( nul l , " Logi n Sukses, masuk ke menu ut ama! " ) ; / / new menuUt ama( ) . show( ) ; / / untuk memanggil form menuUtama t hi s . di s pos e( ) ; } el se{ J Opt i onPane. showMess ageDi al og( nul l , " Maaf Anda t i dak dapat masuk ke si st em i ni , I d dan Passwor d anda sal ah") ; t hi s . di s pos e( ) ; } r s 1. cl os e( ) ; con1. cl ose( ) ; } cat ch ( Except i on e) { } } } 58
11. Jalankan Program. Ketikkan pada kotak user : admin1 dan pada password : 1admin Login. Jika sukses maka muncul dialog Message
Gambar 14.3 Tampilan form login saat di jalankan 12. Tambahkan Frame dengan nama MenuUtama. Dan desain frame seperti gambar dibawah ini :
Gambar 14.4 Tampilan form Menu Utama 13. Frame menu utama hanya terdiri dari menu bar file, jPanel dan jLabel
59
MODUL 15 MEMBUAT APLIKASI DATA PASIEN Modul 15 membahas tentang pembuatan form yang terkoneksi dengan database, modul 15 lanjutan dari modul 14. 15.1 Pelaksanaan Praktikum A. Membuat tabel
Pada modul 14 kita sudah membuat Database Pasien dengan nama db_pasien, sekarang kita menambahkan 2 tabel yang terdiri dari tabel dokter dan tabel pasien, untuk rincian masing-masing tabel sebagai berikut :
Tabel Pasien
Tabel Dokter kd_dokter * nm_dokter jns_kelamin spesialis
1
kd_pasien * nm_pasien jns_kelamin M jns_periksa kd_dokter ** biaya obat harga
Gambar 15.1 relasi antar tabel Dokter dan tabel Pasien Tabel 15.1 Dokter Field Type Kd_dokter Varchar Nm_dokter Varchar Jns_kelamin Char Spesialis Char Tabel 15.2 Pasien Field Type Kd_pasien Varchar Nm_pasien Varchar Jns_kelamin Char Jns_periksa Char Kd_dokter Char Biaya Varchar Obat Varchar Harga Varchar
Size 5 30 10 10
Size 5 30 10 10 5 50 20 50
60
B. Membuat form data Dokter 14. Buatlah frame form baru pada project Dt_pasien dengan nama form dokter, desain form sebagai berikut :
Pilihan Jenis kelamin : lakilaki, perempuan.
Gambar 15.2 Tampilan desain form data dokter 15. Untuk membuat table yang digunakan menampilkan data di dalam database. Dengan menggunakan sebuah JTable. Caranya dari Windows Palette pilih JTable drag ke dalam frame form dokter.
Gambar 15.3 Tampilan cara menggunakan JTable 16. Selek jScrollpane1 pada tab inspector ganti name pada tab properties menjadi jScroll1.
Gambar 15.4 Cara mengganti name pada jScrollPane1 61
17. Klik kanan table1 Table Contents. Kemudian tampil jendela Customer Dialog.
Gambar 15.5 Tampilan Customer Dialog. 18. Pilih tab Columns. Kemudian selek bagian Title1 dan pada kotak Title ganti menjadi kode dokter. Untuk mengganti kolom selanjutnya dengan cara yang sama. 19. Sesuaikan dengan komponen dan name sebagai berikut :
Gambar 15.6 Tampilan tab Inspector data dokter 20. Kemudian ketikkan listing program seperti dibawah ini : package pasien; import java.sql.*; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; public class dokter extends javax.swing.JFrame { private DefaultTableModel ttable1; /** Creates new form dokter */ public dokter() { initComponents(); } 62
//METODE UNTUK HAPUS DATA DALAM FORM public void HapusData(){ txtKdDokter.setText(""); txtNmDokter.setText(""); cbJk.setSelectedItem("-"); txtSpesialis.setText(""); } public void HapusData2(){ txtNmDokter.setText(""); cbJk.setSelectedItem("-"); txtSpesialis.setText(""); } //METODE UNTUK DELETE TABEL public void deletetable1(){ int row = ttable1.getRowCount(); for (int i = 0; i
public void CariData() { if (txtKdDokter.getText().equals ("")) { } else { try { koneksi ObHrgoneksi1 = new koneksi(); Connection con1 = ObHrgoneksi1.OpenConnect(); Statement st1 = con1.createStatement(); String sql1 = "" + " SELECT dokter.*" + " FROM dokter" + " WHERE kd_dokter ='" +txtKdDokter.getText() + "'" ; ResultSet rs1 = st1.executeQuery(sql1); if(rs1.next()) { txtKdDokter.setText(rs1.getString("kd_dokter")); txtNmDokter.setText(rs1.getString("nm_dokter")); txtSpesialis.setText(rs1.getString("spesialis")); cbJk.setSelectedItem(rs1.getString("jns_kelamin")); JOptionPane.showMessageDialog(this, "DATA ADA, SILAHKAN EDIT!!!"); } Else { JOptionPane.showMessageDialog(this, "DATA TIDAK DITEMUKAN!!!"); HapusData2(); //Untuk memanggil class HapusData } tampilketabel(); //Untuk memanggil class tampilketabel rs1.close(); con1.close(); } catch(SQLException e) { } } } private void SimpanActionPerformed(java.awt.event.ActionEvent evt) { try { koneksi ObHrgoneksi1 = new koneksi(); Connection con1 = ObHrgoneksi1.OpenConnect(); Statement st1 = con1.createStatement(); String sql1 = "insert into dokter(kd_dokter, nm_dokter, jns_kelamin, spesialis) " + "values('"+txtKdDokter.getText()+ "','"+txtNmDokter.getText()+ "','"+cbJk.getSelectedItem().toString()+ "','"+txtSpesialis.getText()+"')"; int rows1 = st1.executeUpdate(sql1); JOptionPane.showMessageDialog(this, "Data Sukses Di Tambahkan!!!"); tampilketabel(); con1.close(); } catch(SQLException e) { } } 64
private void keluarActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); } private void hapusActionPerformed(java.awt.event.ActionEvent evt) { HapusData(); } private void cbDeleteActionPerformed(java.awt.event.ActionEvent evt) { try{ koneksi ObHrgoneksi1 = new koneksi(); Connection con1 = ObHrgoneksi1.OpenConnect(); Statement st1 = con1.createStatement(); String sql1 = "delete from dokter WHERE kd_dokter='"+txtKdDokter.getText()+"'"; int rows1 = st1.executeUpdate(sql1); if (rows1 == 1) JOptionPane.showMessageDialog(this, "DATA BERHASIL DIHAPUS!!!"); con1.close(); HapusData(); tampilketabel() ; } catch(SQLException e) { } } private void cbUbahActionPerformed(java.awt.event.ActionEvent evt) { try{ koneksi ObHrgoneksi1 = new koneksi(); Connection con1 = ObHrgoneksi1.OpenConnect(); Statement st1 = con1.createStatement(); String sql1 = "update dokter set nm_dokter='"+txtNmDokter.getText()+ "',jns_kelamin='"+cbJk.getSelectedItem().toString()+ "',spesialis='"+txtSpesialis.getText()+ "' WHERE kd_dokter='"+txtKdDokter.getText()+"'"; int rows1 = st1.executeUpdate(sql1); if (rows1 == 1) JOptionPane.showMessageDialog(this, "Sukses Di Edit!!!"); con1.close(); tampilketabel(); } catch(SQLException e) { } } private void cbCariActionPerformed(java.awt.event.ActionEvent evt) { CariData(); }
65
C. Membuat form data Pasien
21. Buatlah frame form baru pada project Dt_pasien dengan nama form pasien, untuk desain form sebagai berikut :
Jenis k : laki-laki, perempuan. Periksa : THT, gigi, umum
Pilihan kode dokter sesuaikan dengan data kode dokter dalam database
Gambar 15.7 Tampilan desain form data pasien 22. Sesuaikan dengan komponen dan name sebagai berikut :
Gambar 15.8 Tampilan tab Inspector data pasien 23. Kemudian ketikkan listing program seperti dibawah ini : package pasien; 66
import java.sql.*; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; public class pasien extends javax.swing.JFrame { private DefaultTableModel ttable1; /** Creates new form latihan_02 */ public pasien() { initComponents(); } //METODE UNTUK MEMBUAT HAPUS DATA YANG ADA DI FORM public void HapusData() { txtkode.setText(""); txtpasien.setText(""); cb_jk.setSelectedItem("-"); cbJP.setSelectedItem("-"); cb_dokter.setSelectedItem("-"); txtdokter.setText(""); txtbiaya.setText(""); cbObat.setSelectedItem("-"); txtHarga.setText(""); } public void HapusData2() { txtpasien.setText(""); cb_jk.setSelectedItem("-"); cbJP.setSelectedItem("-"); cb_dokter.setSelectedItem("-"); txtdokter.setText(""); txtbiaya.setText(""); cbObat.setSelectedItem("-"); txtHarga.setText(""); } //METODE UNTUK DELETE TABEL public void deletetable1() { int row = ttable1.getRowCount(); for (int i = 0; i
koneksi ObjKoneksi1 = new koneksi(); Connection con1 = ObjKoneksi1.OpenConnect(); Statement st1 = con1.createStatement(); String sql1 = "" + " SELECT pasien.*" + " FROM pasien" + " WHERE kd_pasien ='" +txtkode.getText() + "'" ; ResultSet rs1 = st1.executeQuery(sql1); while(rs1.next()){ String kd_pasien = rs1.getString("kd_pasien"); String nm_pasien = rs1.getString("nm_pasien"); String jns_kelamin = rs1.getString("jns_kelamin"); String jns_periksa = rs1.getString("jns_periksa"); String biaya = rs1.getString("biaya"); String obat = rs1.getString("obat"); String harga = rs1.getString("harga"); String[] data = {kd_pasien, nm_pasien , jns_kelamin, jns_periksa,biaya,obat,harga}; ttable1.addRow(data); } } catch(Exception ex) { JOptionPane.showMessageDialog(this,"Error : " + ex); } } //METODE UNTUK MEMENGGIL NAMA DOKTER DATI DATA DOKTER KE FORM PASIEN public void Dokter() { if (cb_dokter.getSelectedItem().equals("")) { } else { try { koneksi ObHrgoneksi1 = new koneksi(); Connection con1 = ObHrgoneksi1.OpenConnect(); Statement st1 = con1.createStatement(); String sql1 = "" + " SELECT dokter.nm_dokter" + " FROM dokter" + " WHERE kd_dokter='" +cb_dokter.getSelectedItem() + "'"; ResultSet rs1 = st1.executeQuery(sql1); if(rs1.next()) { /* Jika Ditemukan */ txtdokter.setText(rs1.getString("nm_dokter")); } rs1.close(); con1.close(); } catch(SQLException e) { } }} //METODE UNTUK MEMANGGIL DATA PASIEN DALAM DATABASE KE FORM 68
public void CariData() { if (txtkode.getText().equals ("")) { } else { try { koneksi ObHrgoneksi1 = new koneksi(); Connection con1 = ObHrgoneksi1.OpenConnect(); Statement st1 = con1.createStatement(); String sql1 = "" + " SELECT pasien.*" + " FROM pasien" + " WHERE kd_pasien ='" +txtkode.getText() + "'" ; ResultSet rs1 = st1.executeQuery(sql1); if(rs1.next()) { txtkode.setText(rs1.getString("kd_pasien")); txtpasien.setText(rs1.getString("nm_pasien")); cb_jk.setSelectedItem(rs1.getString("jns_kelamin")); cbJP.setSelectedItem(rs1.getString("jns_periksa")); cb_dokter.setSelectedItem(rs1.getString("kd_dokter")); txtbiaya.setText(rs1.getString("biaya")); cbObat.setSelectedItem(rs1.getString("obat")); txtHarga.setText(rs1.getString("harga")); JOptionPane.showMessageDialog(this, "DATA ADA, SILAHKAN EDIT!!!"); } else{ JOptionPane.showMessageDialog(this, "DATA TIDAK DITEMUKAN!!!"); HapusData2(); } rs1.close(); con1.close(); tampilketabel(); } catch(SQLException e) { } } } private void jbSimpanActionPerformed(java.awt.event.ActionEvent evt) { try{ koneksi ObHrgoneksi1 = new koneksi(); Connection con1 = ObHrgoneksi1.OpenConnect(); Statement st1 = (Statement) con1.createStatement(); String sql1 = "insert into pasien(kd_pasien, nm_pasien, jns_kelamin, jns_periksa, kd_dokter, biaya, obat, harga) " + "values('"+txtkode.getText()+ "','"+txtpasien.getText()+ "','"+cb_jk.getSelectedItem().toString()+ "','"+cbJP.getSelectedItem().toString()+ "','"+cb_dokter.getSelectedItem().toString()+ "','"+txtbiaya.getText()+ "','"+cbObat.getSelectedItem().toString()+ "','"+txtHarga.getText()+"')"; 69
int rows1 = st1.executeUpdate(sql1); if (rows1 == 1) JOptionPane.showMessageDialog(this, "Data Sukses Di Tambahkan!!!"); tampilketabel(); con1.close(); } catch(SQLException e) { } } private void jbHapusActionPerformed(java.awt.event.ActionEvent evt) { HapusData(); } private void jbKeluarActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); } private void cb_dokterActionPerformed(java.awt.event.ActionEvent evt) { Dokter(); } private void cbUbahActionPerformed(java.awt.event.ActionEvent evt) { try{ koneksi ObHrgoneksi1 = new koneksi(); Connection con1 = ObHrgoneksi1.OpenConnect(); Statement st1 = con1.createStatement(); String sql1 = "update pasien set nm_pasien='"+txtpasien.getText()+ "',jns_kelamin='"+cb_jk.getSelectedItem().toString()+ "',jns_periksa='"+cbJP.getSelectedItem().toString()+ "',kd_dokter='"+cb_dokter.getSelectedItem().toString()+ "',biaya='"+txtbiaya.getText()+ "',obat='"+cbObat.getSelectedItem().toString()+ "',harga='"+txtHarga.getText()+ "' WHERE kd_pasien='"+txtkode.getText()+"'"; int rows1 = st1.executeUpdate(sql1); if (rows1 == 1) JOptionPane.showMessageDialog(this, "Sukses Di Edit!!!"); con1.close(); tampilketabel(); } catch(SQLException e) { } } private void cbCariActionPerformed(java.awt.event.ActionEvent evt) { CariData(); } private void cbDeleteActionPerformed(java.awt.event.ActionEvent evt) { try { koneksi ObHrgoneksi1 = new koneksi(); Connection con1 = ObHrgoneksi1.OpenConnect(); Statement st1 = con1.createStatement(); String sql1 = "delete from pasien WHERE kd_pasien='"+txtkode.getText()+"'"; int rows1 = st1.executeUpdate(sql1); 70
if (rows1 == 1) JOptionPane.showMessageDialog(this, "DATA BERHASIL DIHAPUS!!!"); con1.close(); HapusData(); tampilketabel() ; } catch(SQLException e) { } } private void cbCari1ActionPerformed(java.awt.event.ActionEvent evt) { dokter form1 = new dokter(); //Untuk memanggil form dokter form1.setVisible(true); } 24. Menambahkan menu item pada menu bar File, untuk desain form sebagai berikut :
Gambar 15.9 Desain Form Menu Utama 25. Sesuaikan dengan komponen dan name sebagai berikut :
Gambar 15.10 Desain tab Inspector 26. Kemudian ketikkan listing program seperti dibawah ini : private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { dokter form1 = new dokter(); form1.setVisible(true); } private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) { pasien form1 = new pasien(); form1.setVisible(true); } 71
Hasil Output Program :
1. Tampilan project pasien
Gambar 15.11 Project Aplikasi Pasien 2. Jalankan program dengan cara : pilih icon Run Main Project atau klik kanan project pilih Run. 3. Saat program pertama kali di jalankan maka yang tampil terlebih dahulu Form Login Cara agar form tertentu yang ingin kita tampilkan terlebih dahulu : Pilih class PasienApp.java, kemudian ubah listing program yang terdapat pada protected void starup, untuk lebih jelasnya lihat gambar dibawah ini :
Gambar 15.12 Script Form PasienApp 4. Isi user : admin1, dan password : 1admin klik tombol Login, Jika sukses masa akan tampil Message dialog
OK, untuk lebih jelasnya lihat gambar
dibawah ini :
Gambar 15.13 Tampilan Form Login 5. Kemuadian tampil form Menu utama 72
Pada menu utama terdapat menubar File, file terdiri dari 2 submenu yaitu Data Dokter dan Data Pasien a.
Gambar form menu utama
Gambar 15.14 Tampilan Form Menu Utama b.
Gambar form Data Dokter
Gambar 15.15 Tampilan Form Data Dokter c.
Gambar form Data Pasien
Gambar 15.13 Tampilan Form Data Pasien 73
MODUL 16 MEMBUAT LAPORAN DATA PASIEN Modul 16 membahas tentang membuat raport dengan memanfaatkan tool JasperReport dan iReport. Dengan tool tersebut, kita dapat membuat raport di java dengan mudah. 16.1 Jasperreports
JasperReports adalah salah satu aplikasi untuk membuat laporan. JasperReports memiliki ratusan fitur, namun sayangnya tidak memberikan alat untuk mendesain laporan secara visual. Seseorang tanpa kemampuan yang baik dengan XML mungkin tidak dapat menggunakan secara maksimal library (perpustakaan) JasperReports. Untuk itu diperlukan utility Report Designer yang dapat mempermudah user dalam mengembangkan disain laporan. Salah satu Report Designer yang terpopuler adalah iReports.
16.2 iReport
IReport adalah report designer yang digunakan oleh Jasper Report. Karena kemiripannya dengan Crystal Report , IReport menjadi salah satu pilihan utama untuk melakukan proses disain report di Java. 16.3 Pelaksanaan Praktikum
Pastikan NetBeans yang anda install sudah lengkap dengan JasperReport nya, lihat di Drive C:\jasperreports-4.0.2-project. Jika belum terdapat JasperReport, download software jasperreports-4.0.2 dan letakkan di dalam Drive C. A. Integrasi Jasperreports dan NetBeans. Langkah–langkahnya sebagai berikut :
1. Jalankan Netbeans dan pilih menu bar Tools Libraries. 2. Klik tombol New Library 3. Muncul jendela New Labrary, ketikkan JasperReport di kotak Labrary Name dan pilih Class Library pada kotak Library Type OK
Gambar 16.1 Tampilan jendela New Library 74
4. Klik tombol JAR/Folder. Dan pilih jasperreports-4.0.2-project di Drive C jasperreports-4.0.2
dist
jasperreports-4.0.2.jar. lalu klik tombo
Add JAR/Folder.
5. Sehingga di kotak Library Clasppath terlihat folder jasperreports-4.0.2. 6. Lakukan lagi seperti diatas untuk file-file jasperreports-4.0.2.jar di folder jasperreports-4.0.2\dist. Dan file yang berada di folder jasperreports4.0.2\lib antara lain commons-beanutils-1.8.0.jar, commons-collections-
2.1.1.jar,
commons-digester-7.7.jar,
commons-logging-1.0.4.jar,
commons-javaflow-20060411.jar,
groovy-all-1.7.5.jar,
iText-2.1.7.jar,
jdt-
compiler-3.1.1.jar.jar.
Gambar 16.2 Tampilan Jendela Library jasperreport tab Classpath 7. Pilih tab Sources dan klik tombol Add JAR/Folder. Pilih jasperreports4.0.2\scr
Add JAR/Folder
Gambar 16.3 Tampilan Jendela Library jasperreport tab Sources
75
8. Pilih tab javadoc dan klik tombol Add ZIP/Folder. Pilih jasperreports4.0.2\dist dan pilih folder doct
Add JAR/Folder.
Gambar 16.4 Tampilan Jendela Library jasperreport tab Javadoc 9. Kemudian klik kanan package Libraries pada project Dt_pasien. 10. Tampil jendela Add Library. Pilih MySQL JDBC Driver dan jasperriport.
Gambar 16.5 Tampilan library B. Membuat Folder iReport 1. Sebelum kita koneksikan iReport. Kita buat folder Report terlebih dahulu di
dalam Project Dt_Pasien
src. Atau dengan cara buat package di dalam
project Dt_Pasien.
Gambar 16.6 Tampilan Package Report 76
C. Memasang Koneksi di iReport
1. Jalankan iReport.
Gambar 16.7 Tampilan Utama iReport 2. Pilih Icon Report Datasources. Tampil jendela Connections / Datasources 3. Klik tombol New 4. Pilih Database JDBC connection
Gambar 16.8 Tampilan Jendela Datasource 5. Klik tombol Next. 6. Ketikkan db_pasien pada kotak Name, pada kotak JDBC URL ganti MYDATABASE dengan db_pasien, ketikkan root pada kotak username. 7. Klik tombol Test. Tampil jendela database password, dalam contoh password “12345678”
Ok
77
Gambar 16.9 Tampilan Jendela Database JDBC connection 8. Jika koneksi sukses mucul kotak message
Gambar 16.10 Tampilan Jendela Library jasperreport tab Classpath D. Membuat Report Pasien
1. Pilih menu bar File. Tampil jendela New file 2. Pilih layout yang akan mau digunakan
Gambar 16.11 Tampilan Jendela Layout report 3. Klik tombol Launch Report Wizard. Tampil jendela New.
78
4. Ketikkan laporan pasien pada kotak Report name dan pada kotak Location cari tempat penyimpanan laporan. Pastikan didalam folder src\Report Next
5. Tampil jendela New. Klik tombol Design query, kemudian mucul jendela Database password dimana kotak ini memintak password database.
Gambar 16.12 Tampilan Jendela koneksi database 6. Dalam contoh password “12345678” 7.
OK
Drag table dokter dan pasien ke kotak sebelah kanan yang kosong
8. Drag kd_dokter pada table dokter ke kd_dokter pada table pasien.
Gambar 16.13 Tampilan Jendela Relasi Tabel 9. Pilih field nama yang ingin di tampilkan. Jika tidak ingin ditampilkan centang yang ada di samping masing-masing field di hilangkan. 10. Klik tombol Ok
Next. Tampil jendela New
79
Gambar 16.14 Tampilan kotak Field yang digunakan 11. Pindahkan field dari sebelah kiri ke kanan dengan klik tombol “>>” 12. Klik tombol Next
Next
Finish. Tampil Ta mpil jendela Jaspersoft iReport iReport Designer 4.0.2
Gambar 16.15 Tampilan kotak Desain 13. Membuat parameter. Pad Tab Report Inspector, pilih Parameter. Parameter ini digunakan untuk memanggil dan menyeleksi data yang akan dilaporkan sesuai kode parameter. 14. Klik kanan Parameter
Add Parameter
15. Tampil parameter yang baru di posisi paling bawah. Klik kanan parameter Rename
16. Ketikkan pPasien didalam kotak New Name.
Gambar 16.16 Tampilan Jendela Rename Parameter
80
17. Pilih dan Drag komponen Static Text ada pada tab Palette ke jendela Designer di posisi Title ( tempat untuk membuat Judul). 18. Pilih Parameters
drag parameter pPasien ke dalam tab Designer pada posisi
Page Header. Dan drag Static Text ke sebelah pPasien. Dan ganti Static Text
menjadi K ode pasien. Kemudian pilih Fields dan Drag field nama_pasien ke dalam tab Designer.
Gambar 16.17 Tampilan Desain Laporan 19. Pilih dan drag kd_dokter pada table dokter ke tab Designer pada posisi Detail 1
Gambar 16.18 Tampilan Desain Laporan 20. Contoh desain lihat pada gambar dibawah ini :
81
Gambar 16.19 Tampilan Desain Laporan 21. Pilih dan klik kanan report
Edit query. Tampil jendela Report query
22. Tambahkan Where pasien.pasien = “ plih pPasien
New parameter “
Where pasien.pasien = $P(pPasien)
Gambar 16.20 Tampilan Jendela Report query 23. Klik tombol Ok 24. Kemudian Klik Tab Preview. Tampil jendwla Parameter prompt, ketikkan KP01 pada kotak pPasien
Ok
82
Gambar 16.21 Tampilan Preview Form Parameter 25. Tampak hasil laporan seperti berikut ini :
Gambar 16.22 Tampilan Preview Form Laporan Data Pasien 26. Desain form laporan yang rapi dan baik. 27. Tutup iReport E. Membuat Frame Form Laporan
1. Buka project Dt_Pasien di NetBeans 2. Buat Frame form baru dengan nama laporan_p. 3. Dengan desain seperti gambar dibawah ini :
Gambar 16.23 Tampilan desain form laporan_p 4. Penjelasan komponen yang digunakan :
83
Gambar 16.24 Tampilan tab Inspector form laporan_p 5. Listing program seperti dibawah ini : package dt_pasien; import java.sql.*; Perintah yang dibutuhkan import java.io.File; untuk membuat obyek import java.sql.DriverManager; koneksi yang import java.util.HashMap; menghubungkan obyek ke import javax.swing.JOptionPane; database dengan perintah import net.sf.jasperreports.engine.JasperFillManager; driver import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer; private void bCetakActionPerformed(java.awt.event.ActionEvent evt) { try{ String nmFile = "D:/data D/BAHAN PRAKTIKUM JAVA/Program Pasien/Dt_Pasien/src/Report/report1.jasper"; String driver = "com.mysql.jdbc.Driver"; String konek = "jdbc:mysql://localhost/db_pasien"; String user = "root"; String password = "12345678"; Class.forName(driver); Connection conn = (Connection) DriverManager.getConnection(konek, user, password); HashMap parameter = new HashMap(); parameter.put("pPasien", txtkode.getText().toString() ); File report_file = new File(nmFile); JasperReport jasperReport = JasperReport)JRLoader.loadObject(report_file.getPath()); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter, conn); JasperViewer.viewReport(jasperPrint, false); JasperViewer.setDefaultLookAndFeelDecorated(true); }catch (Exception e){ JOptionPane.showMessageDialog(null, "Data Tidak Dapat Dicetak","Cetak Data",JOptionPane.ERROR_MESSAGE); }} 6. Tambahkan frame Laporan_p ke dalam frame menuUtama. Seperti gambar berikut ini :
84
Gambar 16.25 Tampilan desain form menu utama 7. Listing programnya seperti dibawah ini : private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) { laporan_p form1 = new laporan_p(); form1.setVisible(true); } private void bKeluarActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); } 8. Ubah script login, dengan menghapus tanda “//” di sebelah kiri new.menuUtama().
9. Jalankan project. Tampak hasilnya serperti gambar dibawah ini :
Gambar 16.26 Tampilan form laporan_p 10. Ketikkan kode pasien, dalam contoh KP01
Cetak
Gambar 16. 27 Tampilan laporan data pasien 85