LAPORAN PRAKTIKUM

PEMROGRAMAN DESKTOP Pertemuan 3 & 4

Disusun Oleh : ALIR RETNO

NIM Jurusan Jenjang

: 095410170 : Teknik Informatika : Strata Satu

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AKAKOM YOGYAKARTA 2012

PERTEMUAN 3 KOMPONEN PEMILIHAN 2 . A. Pembahasan Pada pelaksanaan praktikum ke-2 telah dibahas beberapa komponen pemilihan yaitu JCheckBox dan JRadioButton . Maka pada pelaksanaan praktikum pertemuan ke-3 ini dibahas tentang penggunaan komponen pemilihan JComboBox dan JList. program yang menggunakan komponen JComboBox dan JList. Berikut ini adalah contoh

Skenario dari program tersebut adalah : 1. Setiap kali daftar mata kuliah diklik maka nama mata kuliah akan muncul di txtKuliah( Kuliah yang dipilih). 2. Jika tombol atau button copy di klik maka matakuliah yang dipilih akan dicopykan di list mata kuliah terpilih dan otomatis banyak matakuliah terpilih akan bertambah jumlahnya. 3. Untuk menghapus matakuliah terpilih dilakukan dengan klik tombol Hapus terpilih dan banyak matakuliah terpilih juga akan berkurang. 4. Untuk menghitung biaya dapat dilihat dengan rumus : Banyak mata kuliah x biaya per matakuliah, dihitung berdasarkan angkatan dengan ketentuan 2009 biaya 100000, 2008 biayanya 90000, 2007 biayanya 75000. Saat tombol Hitung Biaya diklik akan menghitung dan penampilkan resume di txtResume.

Daftar mata Kuliah Mata Kuliah Terpilih Kuliah yang dipilih Banyak Mata Kuliah terpilih . Variable name : lstPilih digunakan untuk menampung daftar atau list matakuliah yang dicopykan dari lstKuliah. oleh karena itu isi dari list pertama kali dikosongkan.Untuk membuat program sesuai dengan scenario maka kita harus menyiapkan desain program dengan komponen-komponen sebagai berikut : JLabel : digunakan untuk membuat label pada pernyataan :     JList : Variable name : lstKuliah digunakan untuk membuat Daftar Mata Kuliah yang disajikan dalam bentuk daftar atau list yang isinya dibuat dengan mengisi data pada model kemudian ketikan daftar matakuliahnya.

2008. 2007 dan dibawah 2007. yang akan keluar saat diklik pada samping kotak combo. . sehingga perlu diset false pada editable agar tidak diisi secara manual.JTextField Variable name : txtKuliah digunakan untuk menampilkan informasi nama matakuliah yang dipilih yang secara otomatis akan ditampilkan saat list matakuliah dipilih. Variable name : txtTerpilih untuk menampilkan jumlah matakuliah yang telah dipilih yang masuk dalam daftar mata kuliah terpilih yang secara otomatis akan ditampilkan saat matakuliah ditambahkan. 2009. JComboBox Variable name : cboAngkatan digunakan untuk memberikan pilihan angkatan dari mahasiswa yang diberikan nilai. editable dipilih false dan diberi nilai awal 0. sehingga pada editable dipilih false dengan menghilangkan centang. Variable name : btnHitung digunakan untuk menghitung biaya dan menampilkan resume pada txtResume. JButton Variable name : btnCopy untuk memindahkan atau mengcopy daftar yang ada di lstKuliah ke dalam daftar lstPilih dengan diberi text >> Variable name btnHapus digunakan untuk menghapus daftar yang ada di lstPilih untuk membatalkan matakuliah yang sudah dipilih. JTextArea variable name : txtResume digunakan untuk menampilkan resume atau informasi yang ditampilkan secara otomatis saat tombol Hitung Biaya diklik.

swing. import javax.event. } Penggunaan library DefaultListModel ini berguna untuk membuat model dari JList standar dalam melakukan manipulasi terhadap elemen-elemen yang ada pada sebuah list. Selanjutnya pada bagian konstruktor class kita tambahkan perintah untuk pengaturan pada komponen JList yaitu lstPilih dengan menggunakan model yang telah kita tentukan sebagai defaultnya.swing.setModel(pilih). DefaultListModel pilih. pilih=new DefaultListModel(). //Membuat suatu variable dgn tipe DefaultListModel /** Creates new form Praktek_Mod3 */ public Praktek_Mod3() { initComponents(). public class Praktek_Mod3 extends javax.Swing. // Mendefinisikan list model pada lstPilih dgn variable pilih } Selanjutnya kita tambahkan kode program untuk scenario apabila list mata kuliah dipilih maka akan muncul pada textfield di bawahnya. package prak_mod3.getSelectedValue().setText(lstKuliah.DefaultListModel.swing.toString()). Maka kita dapat menggunakan event ValueChanged pada list dengan cara klik kanan pada list lalu pilih Event > List Selections > valueChanged kemudian ketikan baris perintah seperti pada kode program berikut ini. Seperti pada kode program berikut ini.JFrame { ….DefaultListModel. private void lstKuliahValueChanged(javax. yaitu pada awal pendeklarasian class setelah kata kunci package (bila ada). Dengan DefaultListModel ini maka kita cukup melakukan perubahan terhadap nilai elemen pada model sehingga tidak perlu merubah struktur list secara langsung. } .Selanjutnya masuk ke bagian kode program maka yang perlu kita persiapkan adalah melakukan import ke javax. lstPilih.ListSelectionEvent evt) { //kode di bawah digunakan utk mengambil nilai list yg terpilih txtKuliah.

Kalau pada JList kita menggunakan method getSelectedValue() untuk mendapatkan item pada list yang dipilih. Selanjutnya kita tambahkan baris program pada event btnCopy ketika diklik yaitu pada event ActionPerformed seperti pada kode program di bawah ini.ActionEvent evt) { if(!pilih. if(Integer.getSelectedValue())) { pilih.removeElement(lstPilih. private void btnHapusActionPerformed(java.parseInt(cboAngkatan.addElement(lstKuliah. private void btnCopyActionPerformed(java. maka pada JComboBox ini method yang digunakan adalah getSelectedItem() dan menghasilkan output berupa tipe data object.getSelectedItem().getSize())).getSelectedValue()).setText(Integer. } Selanjutnya kita melangkah pada kode program untuk tombol perhitungan biaya SPP Variabel .awt.awt.Karena method getSelectedValue() pada JList mengembalikan hasil berupa tipe data object maka terlebih dahulu harus dikonversikan ke dalam tipe data String agar dapat dimasukan ke dalam sebuah JTextField seperti pada contoh kode program di atas.toString())>=2009){ biaya=100000.ActionEvent evt) { int biaya.awt.toString(pilih.toString()).event.ActionEvent evt) { pilih. .setText(Integer.event. txtPilih.event.getSelectedValue(). } } Yang perlu kita cermati dari kode program tersebut adalah perintah untuk menambahkan elemen pada list kita cukup menambahkannya pada list model pilih yang sudah kita buat tadi dengan menggunakan method addElement(String s) maka secara otomatis JList akan otomatis terupdate dengan elemen baru yang kita tambahkan. private void btnHitungActionPerformed(java. txtPilih.toString(pilih.contains(lstKuliah.getSize())). Begitu juga pada kode program untuk tombol Hapus maka kita cukup menambahkan method removeElement(Object o) seperti pada kode program berikut.

toString())==2008){ biaya=90000.getSelectedItem().getSelectedIndex(). }else{ biaya=50000. case 1:hasil = angka1 .event. Tugas Program Kalkulator 1.parseFloat(tA2.ActionEvent evt) { // TODO add your handling code here: float angka1 = Float.toString(hasil)). } String isi="Anda angkatan : "+cboAngkatan.toString(biaya*Integer.toString())==2007){ biaya=75000. txtResume.parseInt(txtPilih.setText(Float. case 2:hasil = angka1 * angka2. }else if(Integer.break. int i = cboOperator. default : hasil = angka1 / angka2.toString(biaya)+ "\nTOTAL BIAYA : " + Integer.break.getText())).angka2.awt. } B.parseFloat(tA1.setText(isi).parseInt(cboAngkatan. } .break. float hasil = 0.getText()).getSelectedItem().getText()).parseInt(cboAngkatan. float angka2 = Float. Kode Program Tombol Hitung private void btnHitungActionPerformed(java.}else if(Integer.getText() + "\nBiaya Per Mata Kuliah : "+Integer.toString()+ "\nBanyak Mata Kuliah dipilih : " + txtPilih. switch(i){ case 0:hasil = angka1 + angka2. } tHasil.getSelectedItem().break.

event.showMessageDialog(this.ActionEvent evt) { // TODO add your handling code here: JOptionPane. "Belajar Java Itu Mudah\nSetujukan Anda ?". "Belajar Java Harus Serius!!".ActionEvent evt) { // TODO add your handling code here: JOptionPane. "Peringatan". Tampilan Operator Tambah ( + ) Operator Kali ( X ) - Operator Kurang ( .event.YES_NO_OPTION). btnOK private void btnOKActionPerformed(java. JOptionPane.ActionEvent evt) { // TODO add your handling code here: System."Konfirmasi".awt. btnError private void btnErrorActionPerformed(java. btnYNA private void btnYNActionPerformed(java. } d. "Mudahnya Belajar Java"). btnKeluar private void btnKeluarActionPerformed(java.showConfirmDialog(this.exit(0). Kode Program a.2.event.awt.awt. } c.ERROR_MESSAGE).awt.) - Operator Bagi ( / ) PRAKTIKUM MODUL 4 1. if (jwb==0) .ActionEvent evt) { // TODO add your handling code here: int jwb = JOptionPane. } b.showMessageDialog(this.event. JOptionPane.

case 2: JOptionPane.ActionEvent evt) { // TODO add your handling code here: Object[] options={"Ya. "Lengkapi Kalimat Berikut:\n" +"\"Kepala."Kaki".ActionEvent evt) { // TODO add your handling code here: .showMessageDialog(this. switch(jwb){ case 0: respon="Ini Kopi plus Gulanya"."Perut"). btnCustom private void btnCustomActionPerformed(java.ActionEvent evt) { // TODO add your handling code here: int jwb = JOptionPane.JOptionPane.JOptionPane. "Kepala. else JOptionPane.break. "NO adalah Pilihan Anda"). Siip".showMessageDialog(this. Lutut. default: respon="Koq gak jawab siy?".length()>0)){ JOptionPane.options."Custom Dialog".break. respon). case 1: JOptionPane. } JOptionPane. Trims". "Anda mau minum Kopi dengan Gula ?". btnYNC private void btnYNCActionPerformed(java. case 2: respon="Kopi dan Krim siap". "Akan Menghapus Data"+ "\nAnda Yakin ?". Lutut. Pundak."Konfirmasi".event.PLAIN_MESSAGE.QUESTION_MESSAGE .showInputDialog(this. "Jawab Cancel").awt.event.null. "Jawab No").ActionEvent evt) { // TODO add your handling code here: Object[] jawaban={"Perut".showOptionDialog(this.\"".null. JOptionPane. Kopi saja ya". int jwb = JOptionPane. JOptionPane."Pertanyaan".showMessageDialog(this.break. "Jawab Yes"). switch(jwb){ case 0: JOptionPane.YES_NO_CANCEL_OPTION .showMessageDialog(this.QUESTION_MESSAGE). } g. "Anda Memilih Yes")."Hidung"}.options[2]). if((s!=null)&&(s."+s+"!"). default: JOptionPane. btnPilihList private void btnPilihListActionPerformed(java. "Koq Gak Jawab??").showMessageDialog(this.awt.."Krim Saja!"}. Pundak.showConfirmDialog(this.showMessageDialog(this.event. JOptionPane..showMessageDialog(this. String respon. case 1: respon="Ok. ."Tidak.YES_NO_CANCEL_OPTION.break.awt. JOptionPane.jawaban.break. } } h. btnPilihIsi private void btnPilihIsiActionPerformed(java. } e. } } f.event.break. String s=(String)JOptionPane.showMessageDialog(this.awt.

showInputDialog(this.null. Pundak.null. Lutut. JOptionPane.String s=(String)JOptionPane."Custom Dialog".length()>0)){ JOptionPane."+s+"!").""). Tampilan a. Pundak.PLAIN_MESSAGE. } } 2.\"". "Kepala. Lutut.showMessageDialog(this.. . if((s!=null)&&(s.. Tab Simple Dialog Tombol OK Dialog Tombol Error Dialog b. "Lengkapi Kalimat Berikut:\n" +"\"Kepala. Tab Konfirmasi Dialog .

- Tombol Yes / No Konfirmasi Tombol Yes Tombol No - Tombol Yes / No / Cancel Konfirmasi Tombol Yes Tombol No Tombol Cancel c. Tab Option Dialog .

Trims Tombol Krim saja - Tombol Pilihan List Pilihan Perut Pilihan Kaki Pilihan Hidung - Tombol Pilihan Isian . Siip Tombol Tidak.- Tombol Custom Yes / No / Cancel Tombol Ya.

C. . Kesimpulan  List merupakan komponen pemilihan yang memberi kesempatan user untuk dapat memilih dari salah satu kumpulan daftar. ComboBox merupakan gabungan dari textbox dan List. pada comboBox biasanya yang terlihat hanya 1 baris saja dan disajikan dalam bentuk kotak combo yang dapat dilihat daftar pilihannya dengan mengklik tanda panah kebawah disamping kotak combo tersebut. Komponen Swing yang digunakan adalah dari class JList  ComboBox adalah komponen yang hampir sama dengan list yaitu komponen pemilihan yang member kesempatan user untuk memilih dari daftar bedanya adalah pada tampilannya. Komponen yang digunakan adalah class JComboBox.DefaultListModel.swing.  Penggunaan list dalam modul ini menggunakan class DefaultListModel yang sudah tersedia dalam java swing dan untuk menggunakannya harus kita import class DefaultListModel dari javax. List akan menampilkan daftar pilihan yang lebih dari satu baris dan disajikan dalam satu daftar yang dilihat dengan barisnya.

Skenario programnya sebagai berikut. Sedangkan pada penggunaan tabpane sendiri adalah sebagai pemisah dari layout sebuah aplikasi. Setelah tombol minuman diklik maka muncul kotak dialog menanyakan apakah mau minum kopi ? . Kesemua kotak dialog tersebut terangkup dalam sebuah komponen swing yaitu JOptionPane.PERTEMUAN 4 KOTAK DIALOG DAN TABPANE A. Kotak dialog ini dapat berupa Message Dialog . Input Dialog maupun Option Dialog. Masing-masing JPanel yang di-drag di atasnya akan membentuk suatu pengindeksan pada JTabPane. Pembahasan Pada pelaksanaan praktikum ke-4 ini membahas tentang penggunaan Kotak Dialog dan Tabpane. Confirmation Dialog . Untuk menggunakannya maka kita bisa drag and drop komponen JTabPane ke dalam JFrame yang kita buat selanjutnya kita drag and drop lagi komponen JPanel di atasnya. Berikut adalah contoh program yang menggunakan JTabPane dan JOptionPane.

. ...... ... case 1 : respon = "Beneran gak mau?"...................event.. JOptionPane........break.. options... (2) String respon.."Tidak Mau"}..... (3) switch (jwb){ case 0 : respon = "Oke...... - Mau ........showMessageDialog(this..... dimana object tersebut diberi nama options yang terdiri dari “Mau” dan “Tidak Mau”...... Judul pada form kotak dialog tersebut adalah .. options[1]).. "Pertanyaan"...bikin sendiri ya!!".... (4) default : respon = "Maunya apa donk?".......awt..Muncul pesan seperti gambar sebelah kiri apabila tombol “Mau” dipilih dan muncul pesan seperti gambar sebelah kanan jika yang dipilih tombol “Tidak Mau”...... Jawaban tersebut didapat dengan menampilkan sebuah kotak dialog dengan pertanyan “Anda mau minum Kopi dengan Gula?”. ..break..QUESTION_MESSAGE. ..showOptionDialog(this... (5) } Penjelasan : (1) Membuat sebuah object berbentuk array untuk jawaban kotak dialog.. JOptionPane. respon)..... .......Tidak Mau - Tidak memilih Source Code Program : private void btnMenuActionPerformed (java.. (1) int jwb = JOptionPane.... } JOptionPane........ null..break.....ActionEvent evt) { // TODO add your handling code here: Object[]options = {"Mau"...... " Anda mau minum Kopi dengan Gula ?".... (2) Membuat sebuah variabel jwb dengan tipe integer yang berfungsi untuk menyimpan index array dari jawaban yang disimpan pada array object options...YES_NO_OPTION................

dengan aturan seleksi : Jika jwb = 0 maka variabel respon bernilai “Oke.bikin sendiri ya!!” Jika jwb = 1 maka variabel respon bernilai " Beneran gak mau?" Jika jwb bernilai bukan 0 atau 1 maka respon bernilai default.YES_NO_OPTION dengan opsi jawaban yang ada pada object options (“Mau” dan “Tidak Mau”). Kotak dialog tersebut merupakan kotak dialog pertanyaan sehingga akan muncul gambar tanda tanya pada kotak dialog. Kotak dialog yang muncul merupakan kotak dialog pilihan yang dideklarasikan dengan JOptionPane.QUESTION_MESSAGE. (4) Perintah seleksi percabangan untuk memberi nilai pada variabel respon sesuai dengan nilai pada variabel jwb. Hal tersebut dideklarasikan dengan JOptionPane. (3) Membuat sebuah variabel dengan nama respon dan bertipe string.“Pertanyaan”. yaitu " Maunya apa donk?" (5) Menampilkan kotak dialog dengan nilai / isi dari variabel respon. Selanjutnya apabila kita memilih pada tombol penjumlahan maka akan muncul kotak dialog sebagai berikut : Apabila diinput dengan selain angka - Diinput dengan angka yang benar - Menampilkan hasil penjumlahan . Index array pada options bernilai paling banyak 1.

"Penjumlahan".JFrame { . Kode Program package pmodul5.null.PLAIN_MESSAGE.null. Pada method tersebut memanggil method lain yang berfungsi rekursi apabila terdapat kesalahan input maka akan memanggil ulang method tersebut.filechooser. Jumlahkan().swing. Tugas Kerjakan Praktikum Modul 5 1.swing.parseInt(bil2. Method yang pertama adalah method yang digunakan untuk membangkitkan event ActionPerformed pada tombol Penjumlahan.io. Jumlahkan(). import javax. JOptionPane. } }catch(Exception e){ JOptionPane. } //Method penjumlahan bilangan void Jumlahkan(){ try{ Object bil1=JOptionPane. JOptionPane.parseInt(bil1. int angka1=Integer.*.null. //Method untuk mengaktifkan event tombol ketika diklik private void btnJumlahActionPerformed(java. import javax. Listing “Terlampir” C.showInputDialog(this.ActionEvent evt) { Jumlahkan().*.showMessageDialog(this.showMessageDialog(this.showInputDialog(this.FileFilter.toString()).PLAIN_MESSAGE. bil1+" ditambah "+bil2+" = " + String. public class fNotes extends javax.swing.showMessageDialog(this. try{ Object bil2=JOptionPane."Angka Kedua".valueOf(hasil) ).event."" ). int hasil=angka1+angka2. "Masukan harus angka").awt. } } B."Penjumlahan".toString()). "Masukan harus angka").null. int angka2=Integer. import java. }catch(Exception e){ JOptionPane. JOptionPane."Angka Pertama".Source Code dari program di atas terbagi menjadi dua method."" ).

awt.ActionEvent evt) { .NOTES").addChoosableFileFilter(new jenisFile(EXT)). fc.awt.showOpenDialog(this).APPROVE_OPTION){ file=fc.txt".java" }. } } private void btnKeluarActionPerformed(java. this. try{ editor.showSaveDialog(this)==JFileChooser. null).requestFocus(). return. final String[] EXT = { ".getName()+" .event. /** Creates new form fNotes */ public fNotes() { initComponents().addChoosableFileFilter(new jenisFile(EXT2)).read(new FileInputStream(file). fileBaru = true.ActionEvent evt) { // TODO add your handling code here: editor. } private void btnOpenActionPerformed(java. final String[] EXT2 = { ". fc. File file.event.JFileChooser fc. } private void btnNewActionPerformed(java.setTitle("Untitled .setText(""). ". fc. this.getName()).awt.event. boolean fileBaru.getSelectedFile().setTitle(file. fileBaru=false.ActionEvent evt) { // TODO add your handling code here: int hasil=fc.exists()||okToReplace()) SimpanFile(). else SimpanFile(). } private void btnSaveActionPerformed(java.ActionEvent evt) { // TODO add your handling code here: if(fileBaru) btnSaveAs.csv" }.event. if(hasil==JFileChooser. editor.NOTES").setTitle("Untitled .doClick(). } } this.ActionEvent evt) { // TODO add your handling code here: if(fc. } private void btnSaveAsActionPerformed(java.NOTES"). fileBaru = true. }catch(IOException e){ msg("Gagal Buka File :"+file.APPROVE_OPTION){ file=fc.setAcceptAllFileFilterUsed(false). if(!file. fc = new JFileChooser().getSelectedFile().event.awt.awt.

} catch(IOException e){ msg("Gagal Simpan File : '"+file. } } .showConfirmDialog(this. } private void msg(String pesan){ JOptionPane. ++i) if(fArg.exit(0). return tmp.length.JOptionPane. try{ pw = new PrintWriter(new BufferedWriter(new FileWriter(file))).getName(). } public String getDescription(){ String tmp = "".showMessageDialog(this.getText()).i<s.++i) tmp += "*"+s[i]+" ". this. } pw.toLowerCase())>0) return true. fileBaru = false. return."Peringatan".i<s. jenisFile(String[] sArg){ s = sArg.print(editor. "Program akan keluar\n" + "Setelah mengakses tombol ok")."Informasi".setTitle(file. for(int i=0. pw.close(). } class jenisFile extends FileFilter{ private String[] s. } private void SimpanFile(){ PrintWriter pw = null.getName()+" .JOptionPane. "File "+file. pesan.INFORMATION_MESSAGE). } private boolean okToReplace(){ return(JOptionPane. System.// TODO add your handling code here: JOptionPane.indexOf(s[i].showMessageDialog(this. } public boolean accept(File fArg){ if(fArg.getName()+" Sudah Ada\n"+ "Akan Ditimpa ??". for(int i=0.YES_NO_CANCEL_OPTION)==0).getName()). return false.length.isDirectory()) return true.Notes").toLowerCase().

Tampilan Tombol New Tombol Open .2.

 Jika beberapa komponen panel yaitu class JPanel ditambahkan dalam TabPane maka akan membentuk tab-tab dalam satu kelompok. dalam praktikum ini digunakan beberapa macam yaitu :  kotak dialog sederhana (message dialog) yang hanya memunculkan satu tombol OK.  Kotak dialog merupakan komponen yang didapat dari class JOptionPane.Tombol Save dan Save As Tombol Keluar D. sehingga untuk menggunakannya kita perlu melakukan import class JOptionPane. perintah yang digunakan adalah showMessageDialog. . Class yang digunakan adalah JTabbedPane.JOptionPane.swing.  Kotak dialog mempunyai banyak macam bentuk atau model. sintaknya yaitu : import javax. Kesimpulan  TabPane merupakan komponen yang digunakan untuk mengelompokan user interface dalam satu form.  Untuk membuat aplikasi yang bisa berkomunikasi dengan pengguna kita sering menggunkan kotak dialog yang bersifat modal yaitu saat kotak dialog muncul maka semua jendela yang terbuka akan menjadi inactive sampai kotak dialog tersebut ditutup.

No dan Cancel dengan perintah showConfirmDialog. showOptioDialog kotak dialog pilihan dengan input dialog yang bisa menampilkan kotak dialog yang bisa untuk input data dalam bentuk list maupun isian data text dengan perintah showInputDialog. .  kotak dialog konfirmasi (confirm dialog) yang bisa memunculkan Yes.

Sign up to vote on this title
UsefulNot useful