Anda di halaman 1dari 22

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.

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. Variable name : lstPilih digunakan untuk menampung daftar atau list matakuliah yang dicopykan dari lstKuliah, oleh karena itu isi dari list pertama kali dikosongkan. Daftar mata Kuliah Mata Kuliah Terpilih Kuliah yang dipilih Banyak Mata Kuliah terpilih

JTextField Variable name : txtKuliah digunakan untuk menampilkan informasi nama matakuliah yang dipilih yang secara otomatis akan ditampilkan saat list matakuliah dipilih, sehingga pada editable dipilih false dengan menghilangkan centang. 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, editable dipilih false dan diberi nilai awal 0. JComboBox Variable name : cboAngkatan digunakan untuk memberikan pilihan angkatan dari mahasiswa yang diberikan nilai, 2009, 2008, 2007 dan dibawah 2007, yang akan keluar saat diklik pada samping kotak combo. JTextArea variable name : txtResume digunakan untuk menampilkan resume atau informasi yang ditampilkan secara otomatis saat tombol Hitung Biaya diklik, sehingga perlu diset false pada editable agar tidak diisi secara manual. 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. Variable name : btnHitung digunakan untuk menghitung biaya dan menampilkan resume pada txtResume.

Selanjutnya masuk ke bagian kode program maka yang perlu kita persiapkan adalah melakukan import ke javax.Swing.DefaultListModel; yaitu pada awal pendeklarasian class setelah kata kunci package (bila ada). package prak_mod3; import javax.swing.DefaultListModel; public class Praktek_Mod3 extends javax.swing.JFrame { . } Penggunaan library DefaultListModel ini berguna untuk membuat model dari JList standar dalam melakukan manipulasi terhadap elemen-elemen yang ada pada sebuah list. Dengan DefaultListModel ini maka kita cukup melakukan perubahan terhadap nilai elemen pada model sehingga tidak perlu merubah struktur list secara langsung. Selanjutnya pada bagian konstruktor class kita tambahkan perintah untuk pengaturan pada komponen JList yaitu lstPilih dengan menggunakan model yang telah kita tentukan sebagai

defaultnya. Seperti pada kode program berikut ini. DefaultListModel pilih; //Membuat suatu variable dgn tipe DefaultListModel /** Creates new form Praktek_Mod3 */ public Praktek_Mod3() { initComponents(); pilih=new DefaultListModel(); lstPilih.setModel(pilih); // 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. 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. private void lstKuliahValueChanged(javax.swing.event.ListSelectionEvent evt) { //kode di bawah digunakan utk mengambil nilai list yg terpilih txtKuliah.setText(lstKuliah.getSelectedValue().toString()); }

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.

Selanjutnya kita tambahkan baris program pada event btnCopy ketika diklik yaitu pada event ActionPerformed seperti pada kode program di bawah ini. private void btnCopyActionPerformed(java.awt.event.ActionEvent evt) { if(!pilih.contains(lstKuliah.getSelectedValue())) { pilih.addElement(lstKuliah.getSelectedValue().toString()); txtPilih.setText(Integer.toString(pilih.getSize())); } }

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. Begitu juga pada kode program untuk tombol Hapus maka kita cukup menambahkan method removeElement(Object o) seperti pada kode program berikut. private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { pilih.removeElement(lstPilih.getSelectedValue()); txtPilih.setText(Integer.toString(pilih.getSize())); }

Selanjutnya kita melangkah pada kode program untuk tombol perhitungan biaya SPP Variabel . Kalau pada JList kita menggunakan method getSelectedValue() untuk mendapatkan item pada list yang dipilih, maka pada JComboBox ini method yang digunakan adalah getSelectedItem() dan menghasilkan output berupa tipe data object.

private void btnHitungActionPerformed(java.awt.event.ActionEvent evt) { int biaya; if(Integer.parseInt(cboAngkatan.getSelectedItem().toString())>=2009){ biaya=100000;

}else if(Integer.parseInt(cboAngkatan.getSelectedItem().toString())==2008){ biaya=90000; }else if(Integer.parseInt(cboAngkatan.getSelectedItem().toString())==2007){ biaya=75000; }else{ biaya=50000; } String isi="Anda angkatan : "+cboAngkatan.getSelectedItem().toString()+ "\nBanyak Mata Kuliah dipilih : " + txtPilih.getText() + "\nBiaya Per Mata Kuliah : "+Integer.toString(biaya)+ "\nTOTAL BIAYA : " + Integer.toString(biaya*Integer.parseInt(txtPilih.getText())); txtResume.setText(isi); }

B. Tugas
Program Kalkulator 1. Kode Program Tombol Hitung private void btnHitungActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: float angka1 = Float.parseFloat(tA1.getText()); float angka2 = Float.parseFloat(tA2.getText()); int i = cboOperator.getSelectedIndex(); float hasil = 0; switch(i){ case 0:hasil = angka1 + angka2;break; case 1:hasil = angka1 - angka2;break; case 2:hasil = angka1 * angka2;break; default : hasil = angka1 / angka2;break; } tHasil.setText(Float.toString(hasil)); }

2. Tampilan Operator Tambah ( + ) Operator Kali ( X )

Operator Kurang ( - )

Operator Bagi ( / )

PRAKTIKUM MODUL 4 1. Kode Program a. btnOK


private void btnOKActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: JOptionPane.showMessageDialog(this, "Mudahnya Belajar Java"); }

b. btnError
private void btnErrorActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: JOptionPane.showMessageDialog(this, "Belajar Java Harus Serius!!", "Peringatan", JOptionPane.ERROR_MESSAGE); }

c. btnKeluar
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: System.exit(0); }

d. btnYNA
private void btnYNActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int jwb = JOptionPane.showConfirmDialog(this, "Belajar Java Itu Mudah\nSetujukan Anda ?","Konfirmasi", JOptionPane.YES_NO_OPTION); if (jwb==0)

JOptionPane.showMessageDialog(this, "Anda Memilih Yes"); else JOptionPane.showMessageDialog(this, "NO adalah Pilihan Anda"); }

e. btnYNC
private void btnYNCActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int jwb = JOptionPane.showConfirmDialog(this, "Akan Menghapus Data"+ "\nAnda Yakin ?","Konfirmasi", JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.QUESTION_MESSAGE); switch(jwb){ case 0: JOptionPane.showMessageDialog(this, "Jawab Yes");break; case 1: JOptionPane.showMessageDialog(this, "Jawab No");break; case 2: JOptionPane.showMessageDialog(this, "Jawab Cancel");break; default: JOptionPane.showMessageDialog(this, "Koq Gak Jawab??"); } }

f.

btnCustom

private void btnCustomActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Object[] options={"Ya, Siip","Tidak, Trims","Krim Saja!"}; int jwb = JOptionPane.showOptionDialog(this, "Anda mau minum Kopi dengan Gula ?","Pertanyaan", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE ,null,options,options[2]); String respon; switch(jwb){ case 0: respon="Ini Kopi plus Gulanya";break; case 1: respon="Ok, Kopi saja ya";break; case 2: respon="Kopi dan Krim siap";break; default: respon="Koq gak jawab siy?"; } JOptionPane.showMessageDialog(this, respon); }

g. btnPilihList
private void btnPilihListActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Object[] jawaban={"Perut","Kaki","Hidung"}; String s=(String)JOptionPane.showInputDialog(this, "Lengkapi Kalimat Berikut:\n" +"\"Kepala, Pundak, Lutut, ...\"","Custom Dialog", JOptionPane.PLAIN_MESSAGE,null,jawaban,"Perut"); if((s!=null)&&(s.length()>0)){ JOptionPane.showMessageDialog(this, "Kepala, Pundak, Lutut,"+s+"!"); } }

h. btnPilihIsi
private void btnPilihIsiActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

String s=(String)JOptionPane.showInputDialog(this, "Lengkapi Kalimat Berikut:\n" +"\"Kepala, Pundak, Lutut, ...\"","Custom Dialog", JOptionPane.PLAIN_MESSAGE,null,null,""); if((s!=null)&&(s.length()>0)){ JOptionPane.showMessageDialog(this, "Kepala, Pundak, Lutut,"+s+"!"); } }

2. Tampilan a. Tab Simple Dialog

Tombol OK Dialog

Tombol Error Dialog

b. 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

Tombol Custom Yes / No / Cancel

Tombol Ya, Siip

Tombol Tidak, Trims

Tombol Krim saja

Tombol Pilihan List

Pilihan Perut

Pilihan Kaki

Pilihan Hidung

Tombol Pilihan Isian

C. Kesimpulan List merupakan komponen pemilihan yang memberi kesempatan user untuk dapat memilih dari salah satu kumpulan daftar. List akan menampilkan daftar pilihan yang lebih dari satu baris dan disajikan dalam satu daftar yang dilihat dengan barisnya. 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. 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. ComboBox merupakan gabungan dari textbox dan List. Komponen yang digunakan adalah class JComboBox. Penggunaan list dalam modul ini menggunakan class DefaultListModel yang sudah tersedia dalam java swing dan untuk menggunakannya harus kita import class DefaultListModel dari javax.swing.DefaultListModel.

PERTEMUAN 4 KOTAK DIALOG DAN TABPANE

A. Pembahasan Pada pelaksanaan praktikum ke-4 ini membahas tentang penggunaan Kotak Dialog dan Tabpane. Kotak dialog ini dapat berupa Message Dialog , Confirmation Dialog , Input Dialog maupun Option Dialog. Kesemua kotak dialog tersebut terangkup dalam sebuah komponen swing yaitu JOptionPane. Sedangkan pada penggunaan tabpane sendiri adalah sebagai pemisah dari layout sebuah aplikasi. 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. Masing-masing JPanel yang di-drag di atasnya akan membentuk suatu pengindeksan pada JTabPane. Berikut adalah contoh program yang menggunakan JTabPane dan JOptionPane. Skenario programnya sebagai berikut.

Setelah tombol minuman diklik maka muncul kotak dialog menanyakan apakah mau minum kopi ?

Muncul pesan seperti gambar sebelah kiri apabila tombol Mau dipilih dan muncul pesan seperti gambar sebelah kanan jika yang dipilih tombol Tidak Mau. -

Mau

- Tidak Mau

Tidak memilih

Source Code Program :


private void btnMenuActionPerformed (java.awt.event.ActionEvent evt) { // TODO add your handling code here: Object[]options = {"Mau","Tidak Mau"}; ......................... (1) int jwb = JOptionPane.showOptionDialog(this, " Anda mau minum Kopi dengan Gula ?", "Pertanyaan", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]); ........................................... (2) String respon; ................................................. (3) switch (jwb){ case 0 : respon = "Oke,bikin sendiri ya!!";break; case 1 : respon = "Beneran gak mau?";break; ........ (4) default : respon = "Maunya apa donk?";break; } JOptionPane.showMessageDialog(this, respon); ................... (5) }

Penjelasan : (1) Membuat sebuah object berbentuk array untuk jawaban kotak dialog, dimana object tersebut diberi nama options yang terdiri dari Mau dan Tidak Mau. (2) Membuat sebuah variabel jwb dengan tipe integer yang berfungsi untuk menyimpan index array dari jawaban yang disimpan pada array object options. Jawaban tersebut didapat dengan menampilkan sebuah kotak dialog dengan pertanyan Anda mau minum Kopi dengan Gula?. Judul pada form kotak dialog tersebut adalah

Pertanyaan. Kotak dialog yang muncul merupakan kotak dialog pilihan yang dideklarasikan dengan JOptionPane.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. Hal tersebut dideklarasikan dengan JOptionPane.QUESTION_MESSAGE. Index array pada options bernilai paling banyak 1. (3) Membuat sebuah variabel dengan nama respon dan bertipe string. (4) Perintah seleksi percabangan untuk memberi nilai pada variabel respon sesuai dengan nilai pada variabel jwb, 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, 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

Source Code dari program di atas terbagi menjadi dua method. Method yang pertama adalah method yang digunakan untuk membangkitkan event ActionPerformed pada tombol Penjumlahan. Pada method tersebut memanggil method lain yang berfungsi rekursi apabila terdapat kesalahan input maka akan memanggil ulang method tersebut.
//Method untuk mengaktifkan event tombol ketika diklik private void btnJumlahActionPerformed(java.awt.event.ActionEvent evt) { Jumlahkan(); } //Method penjumlahan bilangan void Jumlahkan(){ try{ Object bil1=JOptionPane.showInputDialog(this,"Angka Pertama","Penjumlahan", JOptionPane.PLAIN_MESSAGE,null,null,"" ); int angka1=Integer.parseInt(bil1.toString()); try{ Object bil2=JOptionPane.showInputDialog(this,"Angka Kedua","Penjumlahan", JOptionPane.PLAIN_MESSAGE,null,null,"" ); int angka2=Integer.parseInt(bil2.toString()); int hasil=angka1+angka2; JOptionPane.showMessageDialog(this, bil1+" ditambah "+bil2+" = " + String.valueOf(hasil) ); }catch(Exception e){ JOptionPane.showMessageDialog(this, "Masukan harus angka"); Jumlahkan(); } }catch(Exception e){ JOptionPane.showMessageDialog(this, "Masukan harus angka"); Jumlahkan(); } }

B. Listing Terlampir C. Tugas Kerjakan Praktikum Modul 5


1. Kode Program
package pmodul5; import javax.swing.*; import java.io.*; import javax.swing.filechooser.FileFilter; public class fNotes extends javax.swing.JFrame {

JFileChooser fc; File file; boolean fileBaru; final String[] EXT = { ".csv" }; final String[] EXT2 = { ".txt", ".java" };

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

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

2. Tampilan Tombol New

Tombol Open

Tombol Save dan Save As

Tombol Keluar

D. Kesimpulan TabPane merupakan komponen yang digunakan untuk mengelompokan user interface dalam satu form. Class yang digunakan adalah JTabbedPane. Jika beberapa komponen panel yaitu class JPanel ditambahkan dalam TabPane maka akan membentuk tab-tab dalam satu kelompok. 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. Kotak dialog merupakan komponen yang didapat dari class JOptionPane, sehingga untuk menggunakannya kita perlu melakukan import class JOptionPane, sintaknya yaitu : import javax.swing.JOptionPane; Kotak dialog mempunyai banyak macam bentuk atau model, dalam praktikum ini digunakan beberapa macam yaitu : kotak dialog sederhana (message dialog) yang hanya memunculkan satu tombol OK, perintah yang digunakan adalah showMessageDialog.

kotak dialog konfirmasi (confirm dialog) yang bisa memunculkan Yes, 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.