materi bahasa pemrograman 3 master

89
Bahasa Pemrograman 3 Dengan Java Oleh : Badrus Zaman Sapto Mardi Putro, S.Kom Halaman 1 Dari 89 Halaman NIM : ……………………………………………………………………....... Nama : ………………………………………………………………………... Kelompo k : …………………………………………………………....................... JAVA BAHASA PEMROGRAMAN 1 JILID PERTAMA

Upload: zulfadli-asyi

Post on 08-Nov-2015

63 views

Category:

Documents


16 download

DESCRIPTION

pemograman

TRANSCRIPT

Bahasa Pemrograman 3 Dengan Java

Oleh : Badrus Zaman Sapto Mardi Putro, S.Kom

Halaman 2 Dari 75 Halaman

NIM:.......

Nama:...

Kelompok:.......................

JAVA2AKADEMI MANAJEMEN INFORMATIKA DAN KOMPUTER PAKARTI LUHUR

SEPTEMBER 2008

Daftar Isi

PendahuluanSekilas Mengenai Pemrograman Java GUIPertemuan IPenggunaan Grafik 2D Pada JFramePertemuan IIContoh Program Input Mahasiswa Dengan Menggunakan Objek JLabel, JTextField, JCheckBox, JRadioButton, ActionListener, dan Layout (FlowLayout dan BorderLayout) Pertemuan IIIKeyListenerPertemuan IVJList (Single Selected dan Multi Selected) dan Layout (BorderLayout)Pertemuan VMouseMotionListener, MouseListener, KeyListener, dan ActionListenerPertemuan VIJSliderPertemuan VIIJMenuBar, JMenu, JPopupMenu, JMenuItem, JTextArea, dan BoxPertemuan VIIIThreadPertemua IXJAppletPertemuan XJTablePertemuan XIKoneksi Database dan SQLPertemuan XIILangkah-Langkah Pemrograman JDBCPertemuan XIIIPembuatan AplikasiPertemuan XIVPembuatan Laporan Dengan iReportPendahuluan

[ SEKILAS MENGENAI PEMROGRAMAN JAVA GUI ]

Pembahasan Bahasa Pemrograman Java GUI, yang ada dihadapan Anda sekarang, menggunakan bahasa pemrograman java standard J2SDK yang dikembangkan oleh Sun Microsystem (www.sun.com).Selain pembahasan ini disusun menggunakan konsep praktek langsung (learning by doing) yang dilengkapi pembahasan contoh program dengan menggunakan beberapa objek java, lengkap dengan pembahasannya.Harapannya, pembahasan ini mengantarkan pembaca mampu mengembangkan program GUI (Graphical User Interface) layaknya form dan objek lainnya. Sekaligus dapat digunakan dalam form, grafik 2 (dua) dimensi, event handling, error handling, file akses, multi threading, dan database (MySQL).Dikarenakan pembahasan ini diperuntukan pada pembaca yang sudah mengenal dasar dasar algoritma dan dasar dasar bahasa pemrograman java (Java Fundamental).GUI (Graphical User Interface)Pertanyaan mendasar mengenai penggunaan tampilan (GUI) dalam program adalah seberapa penting hal itu dilakukan. Bukankah program sudah berjalan sesuai dengan permintaan ? Pertanyaan itu biasanya menghantui setiap pengembangan program (programmer) pada saat membuat program. Tentu saja kepentingan penggunaan tampilan akan berpulang pada penempatan program itu sendiri. Untuk program yang hanya ditempatkan pada sisi komputer server yang jarang berinteraksi dengan pengguna, maka fungsi dasar program dirasa cukup memadai. Tetapi apabila program tersebut diperkirakan akan banyak berinteraksi dengan pengguna, maka ada baiknya jika program menggunakan tampilan.Beberapa alasan bahwa program harus menggunakan tampilan, yaitu : Dengan tampilan, program akan nampak jauh lebih menarik. Interaktif. User Friendly atau mudah dalam penggunaannya. Dapat berinteraksi dengan peralatan seperti mouse, keyboard, joystick, dan peralatan lainnya.Jika pengembang program peduli terhadap tampilan, biasanya program yang dihasilkan akan lebih diterima oleh pengguna. Bahkan sering karena tampilan yang menarik, program itu memiliki nilai yang lebih tinggi dibandingkan dengan program lain dengan tampilan sederhana.

Saat ini, terdapat beberapa model JFrame GUI yang dapat digunakan saat mengembangkan program java yaitu java.awt.* dan javax.swing.*.Di dalam materi ini, untuk tampilan GUI, menggunakan javax.swing.*, yaitu JFrame, JLabel, JTextField, JRadioButton, JCheckBox, JComboBox, JTextArea, JSlider, JMenuBar, JPopUpMenu, JMenu, JMenuItem, dan tools lainnya.Frame

Saat ini kita membuat program java GUI, yang pertama kali kita kuasai adalah penggunaan JFrame. JFrame digunakan untuk mendesain model tampilan yang di dalamnya dapat kita tempatkan komponen komponen lainnya.Contoh penggunaan tampilan Frame pada program java :

Atau

Apabila kedua program di compile dan di run maka akan menghasilkan tampilan seperti di bawah ini :

Gambar 1 : JFrameJika kita perhatikan dengan seksama, frame yang sudah kita buat dan kita jalankan tadi, tidak dihapus dari memori komputer kita walaupun kita sudah menutupnya dengan mengklik tombol close. Hal ini disebabkan karena java memberlakukan metode HIDE_ON_CLOSE pada saat sebuah windows di close, bukannya EXIT_ON_CLOSE. Untuk itu pada berikut kita akan melihat metode setDefaultCloseOperation(int), yang digunakan untuk menentukan aksi pada saat sebuah frame ditutup. Java menyediakan empat konstanta yang bisa dipilih, untuk aksi yang dilakukan :1. DO_NOTHING_ON_CLOSE (didefinisikan di WindowConstant) Menyatakan bahwa tidak ada proses yang akan dilakukan. Dengan kata lain frame tersebut tidak ditutup. Hal ini pada suatu kondisi perlu dimana frame dicegah dari tindakan ditutup tanpa sengaja.2. HIDE_ON_CLOSE (didefinisikan di WindowConstant) Menyatakan bahwa frame akan dihilangkan dari layar, bukan dari memori. Dan merupakan nilai default dari setDefaultCloseOperation().3. DISPOSE_ON_CLOSE (didefinisikan di WindowConstant) Menyatakan bahwa frame akan dihilangkan dari layar dan dari memori komputer.EXIT_ON_CLOSE (didefinisikan di JFrame) Menyatakan bahwa penutupan frame ini akan menyebabkan keseluruhan program ditutup dan dihapus dari memori. Gunakan konstanta ini pada tempat yang tepat, misalnya kita membuat program yang membuka beberapa frame, maka jangan gunakan pada sembarang frame tersebut. Gunakan pada frame yang benar benar akan menutup dan kembali kesistem.Untuk membuat frame dengan tulisan AMIK Pakarti Luhur pada posisi x=10 dan y=100, lebar=300 dan tinggi=200, Resizable false, dan akan terhapus di alokasi memory setelah aplikasi ditutup seperti pada gambar 2 berikut ini :

Apabila kedua program di compile dan di run maka akan menghasilkan tampilan seperti di bawah ini :

\

Gambar 2 : JFrame dan PropertyPertemuan I[ PENGGUNAAN GRAFIK 2D PADA JFRAME]

Grafik dua dimensi (2D) menggunakan class yang terdapat pada java.awt.*, yaitu Canvas. Komponen Canvas tersebut dapat kita gunakan sebagai media gambar dua dimensi (2D).Contoh pembuatan Grafik 2D Pada Frame pada program java :

Apabila program di compile dan di run maka akan menghasilkan tampilan seperti di bawah ini :

Gambar 3 : Grafik Dua Dimansi (2D) dan JFrameSistem koordinat dalam pemrograman Java. Setiap unit diwakili dalam pixel.

Warna constants dan nilai RGB :Metode pewarnaan dan relasi warna pada method Grafik

Apabila program di compile dan di run maka akan menghasilkan tampilan seperti di bawah ini :

Gambar : Grafik Dua Dimensi (2D) dan JFrame

Apabila program di compile dan di run maka akan menghasilkan tampilan seperti di bawah ini :

Lebar dan tinggi Arc untuk rounded rectangles

Positif and negatif derajat arc

Apabila program di compile dan di run maka akan menghasilkan tampilan seperti di bawah ini :

Apabila program di compile dan di run maka akan menghasilkan tampilan seperti di bawah ini :

Pertemuan II

[Contoh Program Input Mahasiswa Dengan Menggunakan Objek JLabel, JTextField, JCheckBox, JRadioButton, ActionListener, dan Layout (FlowLayout dan BorderLayout) ]

Objek GUI yang dapat digunakan pada bahasa pemrograman java standard, khususnya javax.swing.*, sangat banyak dan fleksibel.Contoh pada gambar 5, menunjukkan form inputan mahasiswa yang menggunakan beberapa objek javax.swing.*, yaitu JLabel, JTextField, JCheckBox, JRadioButton, JComboBox, dan JButton. Ditambah dengan penggunaan ActionListener dari java.awt.* dan model model tampilan (FlowLayout, GridLayout, dan BorderLayout).Gambar 5 : Input Data MahasiswaSebelum membuat program, sebaiknya kita mengenal masing masing objek satu persatu, yaitu :JLabelBerfungsi untuk menampilkan tulisan atau gambar icon pada frame.

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/label.htmlJTextFieldBerfungsi sebagai media edit single teks.

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/textfield.htmlJCheckBoxDigunakan untuk pilihan yang dapat lebih dari satu pilihan.

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/button.htmlJRadioButtonDigunakan untuk memilih satu pilihan dari beberapa pilihan.

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/button.htmlSaat penggunaan JRadioButton harus menggunakan ButtonGroup untuk menggabungkan JRadioButton.ButtonGroupBerfungsi untuk memilih satu dari beberapa pilihan dengan tampilan list dan dapat di edit sesuai dengan kebutuhan.

JComboBoxBerfungsi untuk memilih satu pilihan dari beberapa pilihan dengan tampilan list dan dapat di edit sesuai dengan kebutuhan.

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/combobox.htmlJButtonMengimplementasikan penggunaan push button.

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/button.htmlDalam tampilan layar pada gambar 5, apabila tombol Tampilkan ditekan maka akan tampil isi data dari form. Pada pemrograman java, fungsi tersebut dapat menggunakan method ActionListener dan actionPerformed.

Rancangan tampilan dibuat dengan menggunakan layout FlowLayout, BorderLayout, dan GridLayout. Dalam layout FlowLayout terdapat tiga jenis layout, yaitu FlowLayout.LEFT untuk sebelah kiri, FlowLayout.CENTER untuk posisi tengah, dan FlowLayout.RIGHT untuk posisi kanan.

GridLayout disesuaikan dengan parameter yang diberikan. Sebagai contoh, GridLayout(6,2), berarti baris dari grid adalah 6 dan kolomnya adalah sebanyak 2. Untuk lebih jelasnya pada gambar 5 adalah sebagai berikut :

Terdapat satu Container dengan layout FlowLayout.CENTER, berarti Container selalu berada di tangah Frame. Dengan 3 Panel, yaitu :1. panel1, dengan layout GridLayout(6,2) untuk penempatan lbNim, txtNIM, lbNama, txtNama, lbSertifikat, panel2, lbJurusan, panel3, lbKelas, btnTampilkan, btnSelesai.2. panelCheck, dengan layout GridLayout(1,3) untuk penempatan chSD, chSMP, dan chSMA.3. panelRadio, dengan layout FlowLayout untuk penempatan rdMI dan rdKA.Setelah mengenal object yang akan digunakan, maka kita dapat menganalisa program untuk tampilan pada layar seperti gambar 5.Pertemuan III

[KeyListener]

Pengantar

Pada bagian ini, anda akan belajar bagaimana menangani peristiwa kunci yang berbeda pada komponen AWT Java dengan menggunakan penanganan event di Java. Ketika program yang diberikan dieksekusi maka Anda akan melihat beberapa kejadian kunci tersebut diterapkan pada komponen seperti tombol ditekan, lepaskan tombol dan sebagainya. Semua peristiwa penting akan ditangani melalui Interface KeyListener yang telah diimplementasikan di kelas utama dari program ini.

Deskripsi program ini:Dalam program ini, Anda akan melihat bagaimana untuk menampilkan penekanan tertentu pada frame sesuai dengan kejadian tersebut. Ketika Anda menekan tombol maka pesan "Key Pressed" akan terlihat pada frame dan jika ketika Anda berhenti menekan tombol maka pesan "Key Released" akan terlihat. Hal ini dimungkinkan dengan menggunakan interface KeyListener. Ini akan menghasilkan KeyEvent dan Anda bisa cek cara yang tepat dengan menggunakan metode yang berbeda seperti keyTyped(), keyPressed() dan keyReleased() metode yang digunakan untuk mengambil cara tertentu yang dihasilkan.Berikut ini adalah kode program ini:importjava.awt.*;importjava.awt.event.*;publicclassKeyListenerTesterextendsFrameimplementsKeyListener{ TextFieldt1;Labell1; publicKeyListenerTester(Strings) {super(s); Panelp=newPanel(); l1=newLabel("KeyListener!"); p.add(l1); add(p);addKeyListener(this); setSize(200,100); setVisible(true); addWindowListener(newWindowAdapter() { publicvoidwindowClosing(WindowEvente) {System.exit(0); } }); }publicvoidkeyTyped(KeyEvente) {l1.setText("KeyTyped");}publicvoidkeyPressed(KeyEvente) {l1.setText("KeyPressed");}publicvoidkeyReleased(KeyEvente) {l1.setText("KeyReleased"); } publicstaticvoidmain(String[]args) {newKeyListenerTester("KeyListenerTester");}} Berikut ini adalah hasil keluarannya :

Pertemuan IV

[JList (Single Selected dan Multi Selected) dan Layout(BorderLayout)]

Gambar 6 adalah merupakan model form yang mirip seperti gambar 5 dimana JCheckBox diganti dengan JList model Multi Selection dan JRadioButton dengan JList dengan model Single Selection.

Gambar 6 : Input Data Mahasiswa (JList)JListMembuat tampilan data List

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/list.htmlDalam rancangan tampilan pada gambar 6, kita menggunakan layout FlowLayout, GridLayout, dan BorderLayout.Perlu diingat bahwa layout FlowLayout dan GridLayout telah diterangkan sebelumnya, khususnya dalam contoh gambar 5.Sedangkan ilustrasi dari penggunaan layout BorderLayout dapat dilihat dalam bentuk berikut :

Terdapat satu Container dengan layout FlowLayout.CENTER, berarti Container selalu berada di tangah Frame. Dengan 3 Panel, yaitu :1. panel1, dengan layout GridLayout(6,2) untuk penempatan lbNim, txtNIM, lbNama, txtNama, lbSertifikat, panel2, lbJurusan, panel3, lbKelas, btnTampilkan, btnSelesai.2. panelSertifikat, dengan layout GridLayout(1,1) untuk penempatan lstSertifikat.3. panelJurusan, dengan layout GridLayout(1,1) untuk penempatan lstJurusan.Setelah mengenal object yang akan digunakan, maka kita dapat menganalisa program untuk tampilan pada layar seperti gambar 6.

Latihan1. Buatlah tampilan Handphone seperti pada gambar 7 kemudian aktifkan tombol numerik (*, #, 0 9) sehingga dapat tampil pada TextField di bawah ini :

Pertemuan V

[MouseMotionListener, MouseListener, KeyListener, dan ActionListener]

Salah satu keunggulan GUI sehingga sering digunakan pada pemrograman, yaitu karena dapat berinteraksi dengan media Mouse dan tentu saja KeyBoard. Fasilitas listener juga ada pada objek java.awt.event.*.Pada pemrograman java, untuk mengenali pergerakan mouse dikenal dengan sebutan MouseMotionListener, sedangkan untuk mengenali penggunaan tombol pada mouse disebut dengan MouseListener, sedangkan penggunaan tombol pada keyboard disebut dengan KeyListener.MouseMotionListenerMendeteksi pergerakan mouse

MouseListenermendeteksi tombol mouse yang digunakan

KeyListenerMendeteksi tombol keyboard yang digunakan

ActionListenerMendeteksi aksi yang diberikan dari komponen

Apabila program tersebut di compile dan di run, akan menghasilkan keluaran sebagai berikut :

Gambar 9 : MouseMotionListener, MouseListener, dan KeyListenerPada program di atas penggunaan listener, yaitu MouseMotionListener, MouseListener, dan KeyListener kita akan menggunakan perintah implements, kemudian pada saat penambah listener cukup menambah kata this atau nama objek class seperti pada penggalan program ke enam yang menggunakan listener ActionListener.Pertemuan VI

[JSlider]

________________________________________________________________________________

Pada bab ini penulis membuat contoh program konversi suhu menggunakan komponen JSlider. Dengan rumus : Fahrenheit = (Celcius * 1.8) + 32 Kelvin = Celcius + 273.15JSlider

JSlider digunakan untuk menandakan nilai dengan model slide. Nilai tersebut berupa nilai minimum, nilai maksimum, dan nilai nilai antara serta bertipe data integer.

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/slider.html//program ke sembilanimport javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;class frameSlider extends JFrame{Container conten = new Container();

JPanel panel1 = new JPanel();

JPanel panel2 = new JPanel();

JLabel lblCelcius = new JLabel("Celcius");

JLabel lblCelciusCapt = new JLabel("0 Derajat");

JSlider sldCelcius = new JSlider();

JPanel panel3 = new JPanel();

JLabel lblFahrenheit = new JLabel("Fahrenheit");

JLabel lblFahrenheitCapt = new JLabel("0 Derajat");

JSlider sldFahrenheit = new JSlider(1,0,200,0);

JPanel panel4 = new JPanel();

JLabel lblKelvin = new JLabel("Kelvin");

JLabel lblKelvinCapt = new JLabel("273.15 Derajat");

JSlider sldKelvin = new JSlider(1,0,200,0);

JPanel panel5 = new JPanel();

JPanel panel6 = new JPanel();

frameSlider()

{super("AMIK Pakarti Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(300,425);

setLocation(5,5);

setResizable(false);

conten = getContentPane();

panel1.setLayout(new GridLayout(1,2));

panel1.add(lblCelcius);

panel1.add(lblCelciusCapt);

panel2.setLayout(new BorderLayout());

panel2.add(panel1, BorderLayout.NORTH);

sldCelcius.setValue(0);

panel2.add(sldCelcius,BorderLayout.SOUTH);

panel3.setLayout(new GridLayout(2,2));

panel3.add(lblFahrenheit);

panel3.add(lblKelvin);

panel3.add(lblFahrenheitCapt);

panel3.add(lblKelvinCapt);

panel4.setLayout(new BorderLayout());

panel4.add(sldFahrenheit,BorderLayout.WEST);

sldKelvin.setMaximum(1000);

sldKelvin.setMinimum((int)273.15);

sldKelvin.setValue((int)273.15);

panel4.add(sldKelvin,BorderLayout.EAST);

panel5.setLayout(new BorderLayout());

panel5.add(panel3,BorderLayout.NORTH);

panel5.add(panel4,BorderLayout.SOUTH);

panel6.setLayout(new BorderLayout());

panel6.add(panel2,BorderLayout.NORTH);

panel6.add(panel5,BorderLayout.SOUTH);

sldCelcius.addChangeListener(

//jika nilai slider berubah

new ChangeListener()

{public void stateChanged(ChangeEvent e)

{

lblCelcius.setText(sldCelcius.getValue()+" Derajat");

}

});

sldCelcius.addMouseListener(

//jika mouse selesai melakukan pergerakan

new java.awt.event.MouseAdapter()

{public void mouseReleased(MouseEvent e)

{

double dCelcius,dKelvin;

dCelcius = (sldFahrenheit.getValue()-32)*0.5555;

dKelvin = dCelcius+(273.15);

sldCelcius.setValue((int) dCelcius);

lblCelciusCapt.setText(dCelcius+" Derajat");

sldKelvin.setValue((int)dKelvin);

lblKelvinCapt.setText(dKelvin+" Derajat");

}

});

sldFahrenheit.addChangeListener(new ChangeListener(){public void stateChanged(ChangeEvent e){lblFahrenheitCapt.setText(sldFahrenheit.getValue()+"Derajat");}});sldFahrenheit.addMouseListener(new java.awt.event.MouseAdapter(){public void mouseReleased(MouseEvent e){double dCelcius,dKelvin;dCelcius = (sldFahrenheit.getValue()-32)*0.5555;dKelvin = dCelcius+273.15;sldCelcius.setValue((int)dCelcius);lblCelciusCapt.setText(dCelcius+" Derajat");sldKelvin.setValue((int)dKelvin);lblKelvinCapt.setText(dKelvin+" Derajat");}});sldKelvin.addChangeListener(new ChangeListener(){public void stateChanged(ChangeEvent e){lblKelvinCapt.setText(sldKelvin.getValue()+" Derajat");}});sldKelvin.addMouseListener(new java.awt.event.MouseAdapter(){public void mouseReleased(MouseEvent e){double dCelcius,dFahrenheit;dCelcius = sldKelvin.getValue()-273.15;dFahrenheit = (dCelcius*1.8)+32;sldCelcius.setValue((int)dCelcius);lblCelciusCapt.setText(dCelcius+" Derajat");sldFahrenheit.setValue((int)dFahrenheit);lblFahrenheitCapt.setText(dFahrenheit+" Derajat");}});sldKelvin.addMouseListener(new java.awt.event.MouseAdapter(){public void mouseReleased(MouseEvent e){double dCelcius,dFahrenheit;dCelcius = sldKelvin.getValue()-273.15;dFahrenheit = (dCelcius*1.8)+32;sldCelcius.setValue((int)dCelcius);lblCelciusCapt.setText(dCelcius+" Derajat");sldFahrenheit.setValue((int)dFahrenheit);lblFahrenheitCapt.setText(dFahrenheit+" Derajat");}});conten.add(panel6);show();}public static void main(String[]args){new frameSlider();}}Apabila program tersebut di compile dan di run, akan menghasilkan keluaran sebagai berikut :

Gambar 10 : JSliderPertemuan VII

[JMenuBar, JMenu, JPopupMenu, JMenuItem, JTextArea, dan Box]________________________________________________________________________________

Kali ini contoh program menggunakan JMenuBar, JPopupMenu, JMenuItem, JTextArea, dan layout Box komponen untuk membuat program editor teks berita.JMenuBar

JMenuBar digunakan untuk mengimplementasikan menu pada form dapat menggunakan komponen JMenuBar.

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/menu.htmlJMenu

Untuk menambahkan item pada JMenuBar kita harus menggunakan JMenu, dimana JMenu juga dapat ditambahkan JMenuItem dan JSeparators.

JpopupMenu

Mengimplementasikan menu dengan model Popup, sebuah tampilan kecil yang yang tampil dengan beberapa pilihan. JPopupMenu digunakan pada menu yang tampil pada saat pengguna memilih komponen pada bar menu. Dan juga digunakan pada saat mouse ditekan click kanan. PopupMenu dapat tampil di posisi manapun yang diinginkan.

JMenuItem

Memberikan komponen pada JMenu dan JPopupMenu.

Contoh Penggunaan :htpp : //java.sun.com/docs/books/tutorial/uiswing/components/menu.htmlJTextArea

JTextArea berfungsi sebagai teks editor dalam bentuk multiline, sedangkan dalam penggunaannya, untuk mengaktifkan scroll pada JTextArea menggunakan bantuan JScrollPane.

JComboBox cmbDaerah = new JComboBox(pilDaerah);

JLabel lblJudul = new JLabel("Judul");

JTextField txtJudul = new JTextField();

JLabel lblIsi = new JLabel("Isi");

JTextArea txtArea;

JScrollPane jspArea = new JScrollPane();JPanel panel1 = new JPanel();JPanel panel2 = new JPanel();Box box = Box.createVerticalBox();JPopupMenu popmenu = new JPopupMenu();FormEditorBerita()

{super("AMIK Pakarti Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(500,500);

ItemHandler itemHandler = new ItemHandler();

mniFileBuka.addActionListener(itemHandler);

mniFileSimpan.addActionListener(itemHandler);

mniFileKeluar.addActionListener(itemHandler);

mniCopy.addActionListener(itemHandler);

mniCut.addActionListener(itemHandler);

mniPaste.addActionListener(itemHandler);

mnTentang.addActionListener(itemHandler);

mnFile.add(mniFileBuka);

mnFile.add(mniFileSimpan);

mnFile.addSeparator();

mnFile.add(mniFileKeluar);

mnEdit.add(mniCopy);

mnEdit.add(mniCut);

mnEdit.add(mniPaste);

bar.add(mnFile);

mnFile.setMnemonic('F');

bar.add(mnEdit);

mnEdit.setMnemonic('E');

bar.add(mnTentang);

mnTentang.setMnemonic('T');

//jangan lupa gunakan setJMenuBar

setJMenuBar(bar);

popmenu.add(mniCopy);

popmenu.add(mniCut);

popmenu.add(mniPaste);

panel1.setLayout(new GridLayout(2,2));

panel1.add(lblKategori);

Apabila program tersebut di compile dan di run, akan menghasilkan keluaran sebagai berikut :Pertemuan IX

[Thread]________________________________________________________________________________

Gambar 11 : Program Editor BeritaPada gambar 11, merupakan program yang menerapkan sistem menu, popmenu, textarea, dan box layout. Menu yang akan tampil pada program tersebut adalah sebagai berikut : File(Menu ( mnFile) Buka File(JMenuItem ( mniFileBuka) Simpan File(JMenuItem ( mniFileSimpan) Keluar(JMenuItem ( mniKeluar) Edit(Menu ( mnEdit) Copy(JMenuItem ( mniCopy) Cut(JMenuItem ( mniCut) Paste(JMenuItem ( mniPaste) Tentang(Menu ( mnTentang)Menu popup akan tampil apabila JTextArea di click kanan dengan tampilan : Copy(JMenuItem ( mniCopy) Cut(JMenuItem ( mniCut) Paste(JMenuItem ( mniPaste)Rancangan tampilan menggunakan 2 (dua) panel dan box dengan model VerticalBox. Yang dimaksud dengan VerticalBox adalah setiap komponen objek yang ditambahkan pada box berada pada posisi bawah (vertikal).

Gambar 12 : Vertikal BoxUntuk lebih jelasnya adalah sebagai berikut : Panel1, dengan model layout GridLayout(2,2), untuk penempatan lblKategori, cmbKategori, lblDaerah, dan cmbDaerah. Panel2, dengan model layout GridLayout(3,1), untuk penempatan lblJudul, txtJudul, dan lblIsi. Box, dengan komponen pertama adalah panel1 dan komponen kedua adalah panel2.TugasDari contoh program konversi suhu Fahrenheit, Kelvin, dan Celcius, buatlah program konversi dari byte, kilo byte, mega byte, dan giga byte !Pertemuan VIII

[Thread]Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas tersendiri. Dengan adanya thread, dapat membuat program yang lebih efisien dalam hal kecepatan maupun penggunaan sumber daya, karena kita dapat membagi proses dalam aplikasi kita pada waktu yang sama. Thread umumnya digunakan untuk pemrograman multitasking, networking, yang melibatkan pengaksesan ke sumber daya secara konkuren.Ada dua cara yang bisa digunakan dalam membuat sebuah thread, yaitu : Membuat subclass dari thread Untuk menjalankan thread, dapat dilakukan dengan memanggil method start(). Saat start() dijalankan, maka sebenarnya method run() dari class akan dijalankan. Jadi untuk membuat thread, harus mendefinisikan method run() pada definisi class. Konstruktor dari cara ini adalah :ClassThread namavar = new ClassThread(); Namavar.start();Atau dapat juga langsung dengan cara:New ClassThread().start(); Mengimplementasikan interface Runnable Cara ini merupakan cara yang paling sederhana dalam membuat thread. Runnable merupakan unit abstrak, yaitu kelas yang mengimplementasikan interface ini hanya cukup mengimplementasikan fungsi run(). Dalam mengimplementasi fungsi run(), kita akan mendefinisikan instruksi yang membangun sebuah thread. Konstruktor dari cara ini adalah :ObjekRunnable objek = new ObjekRunnable(); Thread namavar = new Thread(Objek Runnable);Atau dengan cara singkat seperti :New Thread(new ObjekRunnable());a. Daemon dan User ThreadAda dua Macam thread dalam Java, yaitu daemon dan user thread. Daemon thread merupakan thread yang siklus hidupnya tergantung pada thread utama atau induk, sehingga apabila thread induk berakhir, maka otomatis thread-thread daemon juga ikut berakhir. Sedangkan user thread memiliki sifat berbeda, dimana apabila thread utama sudah selesai, maka user thread akan terus dijalankan.b. SleeepMengatur thread untuk menghentikan prosesnya sejenak dan memberi kesempatan pada thread atau proses lain. Sleep dilakukan dengan cara memanggil method : Sleep(long waktu);Waktu untuk method ini merupakan tipe long dalam milisekon.c. InterruptApabila menginginkan suatu thread untuk menghentikan proses, maka perlu memanggil method interrupt. Interrupt digunakan untuk memberi signal pada thread untuk menghentikan prosesnya.Contoh

d. SynchronizedSinkronisasi adalah method atau blok yang memiliki tambahan keyword synchronized, sehingga apabila dijalankan maka hanya satu thread pada suatu waktu yang dapat menjalankan method atau blok program. Thread lain akan menunggu thread yang sedang mengeksekusi method ini hingga selesai. Mekanisme sinkronisasi penting apabila terjadi pembagian sumber daya maupun data di antara thread-thread. Sinkronisasi juga melakukan penguncian pada sumber daya atau data yang sedang diproses.Contoh

Pertemuan IX

[JApplet]Java memungkinkan user untuk berinteraksi dengan komputer melalui halaman web. Keuntungan dari cara ini adalah fleksibilitasprogram aplikasi yang dibuat, karena resource yang dibutuhkan untuk menjalankan aplikasi tidak sulit diperoleh. Sejak Windows 98 diluncurkan, secara otomatis user memperoleh Internet Explorer, web browser dari Microsoft yang bisa anda gunakan untuk surfering internet. Anda yang senang dengan browser lain seperti Opera atau Netscape tetap bisa menjalankan applet tersebut tanpa ada perubahan kode program. Inilah keuntungan yang dimaksud. Jika aplikasi yang anda buat didesain dalam mode GUI, maka pada pendistribusian software anda harus menyertakan sejumlah file yang diperlukan, terutama file file library standard yang berekstensi DLL. Inipun jika sistem operasi yang digunakan mendukung .dll tersebut. Ada kemungkinan terjadi perbedaan antara sistem operasi yang anda gunakan dengan sistem operasi tempat di mana program tersebut harus diimplementasikan. Hal ini menyebabkan library tersebut harus diperbaharui, disesuaikan dengan sistem operasi yang digunakan. Hal ini tentu merupakan persoalan tersendiri. Implementasi Java dalam mode Applet diaharapkan dapat menjadi salah satu solusi pemecahannya, walaupun pada batas batas tertentu tetap diperlukan metode pemrograman yang lain.Secara umum, program Java yang berjalan di web browser ada beberapa jenis, antara lain yaitu :1. Applet2. Java Server Pages (JSP)3. Servlet4. Java ScriptPertemuan X

[JTable]JTableMembuat tampilan data table

DefaultTableModel

Membuat tampilan Default Table Model

SHAPE \* MERGEFORMAT

Pertemuan XI

[Koneksi Database dan SQL]Database dan teknologi database memiliki pengaruh yang besar terhadap perkembangan penggunaan komputer. Dapat dikatakan bahwa database memainkan peranan yang penting pada hampir disegala bidang yang menggunakan komputer, seperti bisnis, electronic commerce (e-commerce), enginereeng, kesehatan, hukum, edukasi, dan masih banyak lagi.Database adalah sekumpulan data yang saling berhubungan. Data adalah fakta yang dapat ditangkap dan dapat direkam dan memiliki arti secara implisit. Sebagai contoh nama, nomor telepon, dan alamat dari orang yang anda kenal. Anda dapat merekam data tersebut pada buku alamat atau anda simpan pada hard drive dengan menggunakan komputer dan software aplikasi seperti microsoft excel. Kumpulan data yang berhubungan dan memiliki arti secara implisit di atas disebut database.Database Management System (DBMS) adalah sekumpulan program yang memungkinkan pengguna untuk membuat dan memelihara suatu database. Dengan kata lain, DBMS merupakan general-purpose softwaware system yang memfasilitasi proses proses seperti pendefinisian, pembuatan, manipulasi, dan sharing database antara berbagai pengguna dan aplikasi. Beberapa fungsi penting lainnya yang disediakan oleh DBMS adalah keamanan dan pemeliharaan.Database system tidak hanya berupa database itu sendiri tetapi juga terdiri dari definisi atau deskripsi struktur dan batasan batasan (constraints) dari database. Definisi disimpan pada katalog DBMS, yang berisi informasi seperti struktur setiap file, tipe dan format penyimpanan dari setiap data dan berbagai batasan terhadap data tersebut. Informasi yang disimpan pada katalog DBMS disebut juga meta data, yang mejelaskan struktur utama database. Gambar mengenai database system dapat dilihat seperti pada gambar :

Gambar : Simplikasi lingkungan database systemSQLSQL (dibaca ess-que-el) merupakan singkatan dari Structure Query Language. SQL digunakan untuk berkomunikasi dengan suatu database. Berdasarkan ANSI (American National Standards Institute), SQL merupakan bahasa standar untuk relational database management system. Pernyataan pernyataan SQL digunakan untuk melakukan fungsi fungsi seperti update data pada database, atau pengambilan data dari database. Beberapa Relational DBMS yang menggunakan SQL, antara lain : Oracle, Sybase, Microsoft SQL Server, Access, Ingre, MySQL, Postgre dan masih banyak lagi. Meskipun hampir semua DBMS menggunakan SQL, banyak DBMS yang memiliki tambahan kemampuan dalam SQL-nya dan biasanya digunakan khusus untuk DBMS tersebut.SQL memiliki beberapa versi antara lain : SQL 1 atau dikenal dengan SQL-86, SQL 2 atau sering dikenal dengan SQL-92, dan SQL 3 atau yang dikenal dengan SQL-99.Kategori Pernyataan SQLPernyataan pernyataan SQL dapat dibagi mejadi 2 kategori, yaitu pernyataan pernyataan Data Manipulation Language (DML) dan Data Definition Language (DDL). Pernyataan pernyataan DML berkaitan dengan data, baik pengambilan atau pemodifikasian data supaya tetap up-to-date. Sedangkan pernyataan pernyataan DDL berkaitan dengan pembuatan atau pengubahan tabel dan objek objek database lainnya seperti view dan index.Berikut ini merupakan pernyataan pernyataan DML, antara lain : SelectDigunakan untuk query dan menampilkan data dari sebuah database. Pernyataan SELECT menspesifikasikan kolom mana yang termasuk dalam result set (hasi query). Pernyataan SELECT ini merupakan pernyataan yang paling sering digunakan dalam aplikasi aplikasi database. InsertDigunakan untuk mengisi tabel yang baru dibuat atau menambahkan baris/record baru pada tabel yang sudah dibuat. UpdateDigunakan untuk mengubah nilai dari suatu kolom atau sekumpulan baris dari sebuah tabel. DeleteDigunakan untuk menghapus sebuah baris tertentu atau sekumpulan baris dari sebuah tabel.Berikut ini merupakan pernyataan pernyataan DDL, antara lain : CREATE TABLEDigunakan untuk membuat tabel dengan nama kolom yang ditentukan oleh pengguna. Pengguna juga perlu mendefinisikan tipe data untuk setiap kolom. Tipe tipe data tersebuat sangat bervariasi, setiap DBMS memiliki tipe data yang berbeda dengan DBMS lainnya. Dengan demikian pengguna perlu mengetahui terlebih dahulu tipe data yang didukung oleh DBMS tersebut. DROP TABLEDigunakan untuk menghapus semua baris / record dan menghapus definisi tabel dari database. ALTER TABLEDigunakan untuk menambah atau menghapus sebuah kolom dari suatu tabel.Pernyataan Pernyataan SQL.Sebuah sistem database relational terdiri dari satu atau lebih objek yang disebut tabel. Data atau informasi disimpan pada tabel tabel tersebut. Tabel secara unik diidentifikasikan dengan nama tabel beserta kolom dan barisnya. Kolom terdiri dari nama kolom, tipe data dan attribut attribut lainnya. Baris terdiri dari record record atau data dari kolom kolom. Berikut ini contoh tabel yang diberi nama Pegawai, terdiri dari kolom no_id, nm_depan, nm_belakang,umur,kota,propinsi. Baris berisi data untuk tabel tersebut, seperti terlihat pada tabel di bawah ini :Tabel : Tabel Pegawai

Pada bagian selanjutnya akan dibahas pernyataan pernyataan SQL secara ringkas sebagai dasar atau mengingatkan kembali mengenai bagaimana menuliskan pernyataan pernyataan SQL. Untuk pernyataan SQL secara mendetail, anda dapat membaca buku buku atau referensi referensi mengenai SQL.Membuat Table

Pernyataan CREATE TABLE digunakan untuk membuat sebuah tabel baru. Berikut ini merupakan bentuk pernyataan sederhana CREATE TABLE :

Bentuk pernyataan CREATE TABLE jika kita menggunakan batasan (constraints) :

Contoh :

Untuk membuat sebuah tabel baru, ketikkan CREATE TABLE diikuti dengan nama tabel, tanda ( , diikuti nama kolompertama, tipe data dan batasannya jika ada, lanjutkan untuk kolom berikutnya, tanda ) dan ditutup dengan tanda ; biasanya banyak digunakan untuk menutup pernyataan SQL dibanyak DBMS. Pada materi kuliah ini, penulis menggunakan tanda : disetiap akhir pernyataan SQL. Untuk lebih jelasnya lihat dokumentasi DBMS anda.Nama tabel dan kolom harus diikuti dengan huruf, angka, atau underscore _ dengan panjang tidak lebih dari 64 karakter (untuk MySQL). Tidak boleh menggunakan reserved keywords sebagai nama tabel atau kolom (seperti, select,create,insert, dan sebagainya).Tipe tipe data menentukan tipe data apa yang digunakan untuk kolom tertentu. Jika nama kolomnya nm_belakang, digunakan untuk menyimpan nama nama, maka kolom tersebut seharusnya memiliki tipe data VarChar (variable-length character). Tabel berikut merupakan tipe tipe data yang sering digunakan :Tipe tipe Data SQL yang sering digunakan

Ketika tabel dibuat, biasanya satu atau lebih kolom memiliki batasan batasan tertentu. Suatu batasan biasanya berupa aturan yang terkait dengan kolom tersebut, data yang dimasukkan ke dalam kolom harus sesuai dengan aturan tersebut. Sebagai contoh, batasan unique menentukan bahwa tidak boleh ada dua record yang memiliki nilai sama. Ada dua batasan lagi yang sering digunakan seperti not null menentukan bahwa kolom tidak dapat bernilai kosong atau null dan primary key menentukan identifikasi unik untuk setiap record / baris dalam sebuah tabel. Sebagai contoh, pernyataan di bawah ini akan membuat tabel pegawai seperti pada tabel di bawah ini :

Menghapus TablePernyataan DROP TABLE digunakan untuk menghapus sebuah tabel dan seluruh record pada tabel tersebut. Untuk menghapus tabel secara menyeluruh termasuk semua record-nya, tulis DROP TABLE diikuti dengan nama tabel. Berikut ini merupakan bentuk pernyataan DROP TABLE.

Pernyataan DROP TABLE digunakan untuk menghapus sebuah tabel dan seluruh record pada tabel tersebut. Untuk menghapus tabel secara menyeluruh termasuk semua record-nya, tulis DROP TABLE diikuti dengan nama tabel. Berikut ini merupakan bentuk pernyataan DROP TABLE.Modifikasi Struktur TabelUntuk memodifikasi struktur dari suatu tabel, kita dapat menggunakan pernyataan ALTER TABLE. Pernyataan ALTER TABLE dapat digunakan untuk menambah dan menghapus kolom maupun batasan batasannya (constraints). Berikut ini merupakan bentuk pernyataan ALTER TABLE.

Sebagai contoh, untuk menambah kolom kode_pos pada tabel pegawai, kita dapat menuliskan pernyataan berikut :

Untuk menghapus kolom propinsi pada tabel pegawai, kita dapat menuliskan pernyataan sebagai berikut :

Menambah DataPernyataan INSERT digunakan untuk menambah atau menyisipkan data atau record pada suatu tabel. Untuk menambahkan record ke dalam suatu tabel, tuliskan INSERT INTO diikuti dengan nama tabel, tanda ( , nama kolom kolom dipisahkan dengan tanda koma, tanda ( , diikuti keyword VALUE, tanda ( , nilai nilai data dan ditutup tanda ( . Nilai yang dimasukkan akan disimpan sesuai dengan urutan nama kolomnya. Data yang berupa String ditulis dengan menambahkan tanda petik satu didepan dan diakhir, contoh test.

Contoh :

Mengambil DataPernyataan SELECT digunakan untuk mengambil data tertentu yang sesuai dengan kriteria yang ditentukan. Berikut ini merupakan bentuk sederhana dari pernyataan SELECT :

Berikut ini merupakan bentuk lengkap dari pernyataan SELECT :

Nama nama kolom setelah keyword SELECT menentukan kolom kolom yang akan dikembalikan sebagai hasil. Untuk memilih semua kolom, kita dapat menggunakan ALL atau (*). Nama tabel setelah keyword FROM menentukan tabel mana yang akan diambil datanya. Klausa WHERE bersifat optional, digunakan untuk menentukan nilai data mana yang akan diambil berdasarkan kriteria yang ditentukan. Pemilihan kondisi yang digunakan pada klausa WHERE, antara lain :

LIKE merupakan operator pattern matching yang dapat digunakan pada pemilihan kondisi. LIKE merupakan operator yang powerful, memungkinkan kita untuk memilih kolom kolom yang sesuai. Tanda % dapat digunakan untuk mencocokkan semua kemungkinan karakter yang mungkin ada sebelum atau sesudah karakter tertentu. Sebagai contoh :

Pernyataan di atas akan mengambil kolom nm_depan, nm_belakang, dan kota dari tabel pegawai yang nm_depan-nya mempunyai dua karakter awal Er.

Atau kita dapat menuliskan :

Pernyataan di atas akan mengambil kolom nm_depan, nm_belakang dari tabel pegawai yang nm_belakang-nya diakhiri dengan karakter s.

Pernyataan di atas hanya mengambil semua kolom dari tabel pegawai yang nm_depan-nya Eric.

Pernyataan di atas akan mengambil kolom nm_belakang, kota, umur dari tabel pegawai yang umur-nya lebih dari 30.Keyword ALL dan DISTINCT digunakan untuk memilih semua (default) atau distinct record yang unik pada hasil query. DISTINCT akan menghilangkan duplikasi record pada kolom yang ditentukan setelah pernyataan SELECT. Sebagai contoh, pernyataan di bawah ini akan menghasilkan record yang unik pada kolom umur dari tabel pegawai.

ALL akan menampilkan semua record pada kolom tertentu termasuk duplikasi-nya. Secara default keyword ALL digunakan pada pernyataan SELECT.Fungsi aggregate digunakan untuk melakukan perhitungan terhadap hasil query yang berupa numerik dari pernyataan SELECT. Fungsi ini pada dasarnya menyimpulkan hasil dari query pada kolom tertentu. Fungsi ini dapat digunakan secara langsung atau bersama klausa GROUP BY. Fungsi fungsi aggregate dapat dilihat pada tabel di bawah ini :

Berikut ini merupakan pernyataan yang akan mengembalikan satu hasil berupa rata umur dari tabel pegawai.

Untuk menampilkan jumlah record yang ada pada tabel pegawai, kita dapat menuliskan pernyataan seperti di bawah ini.

Kalusa GROUP BY digunakan untuk mengambil semua record yang berisi data pada kolom tertentu dan memungkinkan penggunaan fungsi aggregate pada satu atau lebih kolom. Sebagai contoh, untuk menampilkan daftar umur yang tertinggi disetiap kota, kita dapat menuliskan pernyataan sebagai berikut :

Klausa HAVING memungkinkan kita untuk menentukan kondisi pada record disetiap group, dengan kata lain record mana yang harus dipilih berdasarkan kondisi yang kita tentukan. Kalusa HAVING digunakan bersama klausa GROUP BY. Sebagai contoh, untuk menampilkan umur rata-rata dari pegawai disetiap kota yang umurnya diatas 30, kita dapat menulis pernyataan sebagai berikut :

Klausa ORDER BY digunakan untuk menampilkan hasil query dengan urutan tertentu (baik menaik atau menurun). Keyword ASC digunakan untuk menampilkan hasil query dengan urutan menaik dan merupakan pilihan default. ASC digunakan untuk menampilkan hasil query dengan urutan menaik dan merupakan pilihan default. Keyword DESC digunakan untuk menampilkan hasil query dengan urutan menurun. Sebagai contoh, untuk menampilkan daftar nm_depan, nm_belakang, umur, dan kota dari tabel pegawai dengan urutan menaik berdasarkan nm_depan-nya, kita dapat menuliskan pernyataan sebagai berikut :

Kita dapat mengurutkan berdasarkan beberapa kolom dengan memisahkan kolom kolom tersebut dengan tanda koma. Sebagai contoh, untuk menampilkan daftar nm_depan, nm_belakang, umur, dan kota dari tabel pegawai dengan urutan menurun berdasarkan nm_depan dan nm_belakang-nya dapat menuliskan pernyataan sebagai berikut:

Meng-update Data.Pernyataan UPDATE digunakan untuk meng-update atau merubah record yang sesuai dengan kriteria yang telah ditentukan. Berikut ini merupakan bentuk pernyataan UPDATE.

Sebagai contoh, pernyataan di bawah ini akan merubah kolom umur menjadi umur+1 pada tabel pegawai yang nm_depan-nya Mary dan nm_belakang-nya Williams.

Menghapus Data.Pernyataan DELETE digunakan untuk menghapus record atau baris dari suatu tabel. Berikut ini merupakan bentuk pernyataan DELETE.

Untuk menghapus record/baris dari suatu tabel, tulis DELETE FROM diikuti dengan nama tabel dan klausa WHERE yang berisi kondisi/kriteria untuk menhapus.

Pertemuan XII

[Langkah-Langkah Pemrograman JDBC]Pada pemrograman Java menggunakan JDBC, ada beberapa langkah yang secara umum harus dilakukan supaya aplikasi tersebut dapat berinteraksi dengan database server. Langkah langkah tersebut adalah sebagai berikut : Mengimport package java.sql Memanggil driver JDBC Membangun koneksi Membuat statement Melakukan Query Memproses hasil Menutup koneksi Penanganan errorImport package java.sql

Sebelum Anda membuat program JDBC, Anda harus mengimport package java.sql terlebih dahulu karena di dalam package java.sql terdapat class class yang akan digunakan dalam proses interaksi dengan database server, misalnya class DriverManager, Connection, dan ResultSet.Hal ini sangat penting, karena para pemula seringkali lupa mengimport package yang berisi class class yang akan digunakan dalam proses interaksi dengan database sehingga mengakibatkan kegagalan dalam mengompilasi program java. Adapun listing untuk mengimport package java.sql adalah sebagai berikut :

Listing di atas dituliskan sebelum Anda menulis class.Memanggil Driver JDBC

Langkah pertama untuk melakukan koneksi dengan database server adalah memanggil JDBC Driver dari database server yang kita gunakan. Driver adalah library yang digunakan untuk berkomunikasi dengan database server. Driver setiap database server berbeda beda, sehingga Anda harus menyesuaikan Driver JDBC dengan database server yang Anda gunakan.Berikut ini adalah listing program untuk memanggil Driver JDBC :

Atau

Kedua cara di atas memiliki fungsi sama, yaitu melakukan registrasi class driver dan memasukkan nilai. Apabila driver yang dimaksud tidak ditemukan, maka program akan menghasilkan exception berupa ClassNotFoundException. Untuk menghasilkan exception apabila driver tidak ditemukan, maka diperlukan penambahan try-catch. Adapun cara menambahkan try-catch untuk penanganan error apabila driver tidak ditemukan adalah sebagai berikut :

Contoh listing memanggil driver untuk database server menggunakan database MySQL adalah :

Dari contoh listing di atas dapat dijelaskan bahwa apabila driver yang dipanggil tidak ditemukan, maka program akan menampilkan pesan Pesan Error : java.lang.ClassNotFoundException : com.mysql.jdbc.Driver. Penanganan error sangat penting dilakukan karena dapat membantu kita mengetahui kesalahan kesalahan yang terjadi dalam pengoperasian program sehingga kesalahan kesalahan yang timbul dapat kita atasi. Berikut adalah daftar driver dari beberapa database server yang sering digunakan :

Pertemuan XIII

[Pembuatan Aplikasi]Latihan pembuatan Form Data Barang seperti pada contoh output di bawah :

import javax.swing.*;import java.awt.*;import javax.swing.table.*;import javax.swing.event.*;import java.awt.event.*;public class FormBarang extends JFrame implements ActionListener{Container conten = new Container();

JPanel pan1 = new JPanel();

JLabel lblKode = new JLabel("Kode Barang");

JTextField txtKode = new JTextField();

JLabel lblNama = new JLabel("Nama Barang");

JTextField txtNama = new JTextField();

JLabel lblSatuan = new JLabel("Satuan Barang");

JComboBox cmbSatuan = new JComboBox();

JLabel lblHarga = new JLabel("Harga Barang");

JTextField txtHarga = new JTextField();

JLabel lblStock = new JLabel("Stock Barang");

JTextField txtStock = new JTextField();JPanel pan2 = new JPanel();

String isitable[][] = null;

int jumlah;

String Header[] = {"Kode Barang","Nama Barang","Harga","Stock"};

String dataTable[][] = new String[jumlah][4];

JTable table = new JTable(dataTable,Header);

JScrollPane sp1;

TableModel model;

TableColumn widthColData = null;

JPanel pan3 = new JPanel();

JButton btnSimpan = new JButton("Simpan");

JButton btnEdit = new JButton ("Edit");

JButton btnHapus = new JButton ("Hapus");

JButton btnBatal = new JButton ("Batal");

JButton btnKeluar = new JButton("Keluar");

public FormBarang()

{super("Form Data Barang");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(645,405);

setLocation(20,20);

tampilan();

}

public void tampilan()

{pan1.setLayout(null);

pan1.setBorder(BorderFactory.createCompoundBorder(

BorderFactory.createEtchedBorder(),

BorderFactory.createRaisedBevelBorder()));

pan1.add(lblKode);

pan1.add(txtKode);

pan1.add(lblNama);

pan1.add(txtNama);

pan1.add(lblSatuan);

pan1.add(cmbSatuan);

pan1.add(lblHarga);

pan1.add(txtHarga);

pan1.add(lblStock);

pan1.add(txtStock);

lblKode.setBounds(10,10,100,20);

txtKode.setBounds(115,10,90,20);

lblNama.setBounds(10,30,150,20);

txtNama.setBounds(115,30,200,20);

lblSatuan.setBounds(10,50,100,20);

cmbSatuan.setBounds(115,50,150,20);

lblHarga.setBounds(10,70,100,20);

txtHarga.setBounds(115,70,90,20);

lblStock.setBounds(10,90,100,20);

txtStock.setBounds(115,90,60,20);

pan2.setLayout(null);

pan2.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(1,1,1,1,Color.BLACK),

BorderFactory.createRaisedBevelBorder()));

sp1 = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);TableModel model = new DefaultTableModel (datatable,Header)

{public boolean isCellEditable(int row, int col)

{return false;

}

};table.setModel(model);boolean ALLOW_ROW = true;tblViewData = new JTable(model);tblViewData.setRowHeight(25);//setting lebar kolom tabelfor(int i = 0; i < 4; i++){widthColData = table.getColumnModel().getColumn(i);if(i == 0)

widthColData.setPreferredWidth(175);

if(i == 1)

widthColData.setPreferredWidth(300);if(i == 2)

widthColData.setPreferredWidth(225);if(i == 3)

widthColData.setPreferredWidth(75);}pan2.add(sp1);sp1.setBounds(5,10,605,150);table.setForeground(Color.MAGENTA);table.setBackground(Color.CYAN);table.setToolTipText("Detil Barang..");pan3.setLayout(new GridLayout(1,5));pan3.setBorder(BorderFactory.createCompoundBorder(

BorderFactory.createMatteBorder(1,1,1,1,Color.BLACK),

BorderFactory.createRaisedBevelBorder()));pan3.add(btnSimpan);pan3.add(btnEdit);pan3.add(btnHapus);pan3.add(btnBatal);pan3.add(btnKeluar);btnKeluar.addActionListener(this);conten = getContentPane();conten.setLayout(null);conten.add(pan1);conten.add(pan2);conten.add(pan3);pan1.setBounds(10,10,615,100);pan2.setBounds(10,115,615,170);pan3.setBounds(10,290,615,50);}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnKeluar){System.exit(0);}}public static void main(String[]args){new FormBarang().setVisible(true);}}LatihanBuatlah Form Satuan Barang seperti pada contoh output di bawah :

Tambahkanlah class Koneksi dan Hubungkanlah Form di atas dengan class koneksinya, sehingga dapat memasukkan atau memodifikasi data.

Apabila telah terkoneksi, tambahkan source untuk menampilkan data ke tabel :public String [][]tampil(){String data [][] =null;try{con = k.openKoneksi();stmt=con.createStatement();String sql ="select * from account order by AccountID";String sql1="select count(AccountID) from account"; rs =stmt.executeQuery(sql1);int jumlah = 0 ;while (rs.next()){jumlah=rs.getInt(1);}rs=stmt.executeQuery(sql);rs.last();String datatable [][] = new String [jumlah][2];int p = 0;rs.beforeFirst();while(rs.next()){datatable[p][0] =rs.getString(1);datatable[p][1] =rs.getString(2);p++;}TableModel model = new DefaultTableModel (datatable,Header){public boolean isCellEditable(int row, int col){return false;}};table.setModel(model);boolean ALLOW_ROW = true;tblViewData = new JTable(model);tblViewData.setRowHeight(25);for(int i = 0; i < 2; i++){widthColData = table.getColumnModel().getColumn(i);if(i == 0)widthColData.setPreferredWidth(50);

if(i == 1)widthColData.setPreferredWidth(475);}}catch (Exception e){e.printStackTrace();}return data;}Buatlah Form Kasir seperti pada contoh output di bawah :

Buatlah Form Cetak Laporan Data Barang seperti pada contoh output di bawah :

Pertemuan XIV

[Pembuatan Laporan Dengan iReport]Menghubungkan Java dengan iReport

Ada beberapa pengaturan lagi agar laporan di atas dapat terkoneksi dengan program Java yang kita buat, diantaranya adalah : Copy file .jar berikut ini ke dalam C:\Program Files\Java\jdk1.5.0_07\jre\lib\ext (default path penginstallan jdk1.5) commons-beanutils-1.5.jar commons-collections-2.1.jar commons-digester-1.7.jar commons-javaflow-20060411.jar commons-logging-1.0.2.jar jasperreports-1.2.4.jar mysql-connector-java-3.1.11-bin.jarCatatan :

semua file .jar di atas dapat Anda temukan di C:\Program Files\JasperSoft\iReport-1.2.4\lib (default path penginstallan iReport) Hapus JDK Profiles yang lama dan ganti dengan path JDK yang baru walaupun Anda menggunakan JDK dengan versi yang sama (minimal JDK versi 1.5 ke atas) karena jika JDK Profiles tidak diubah maka file .jar yang telah dicopy (yang disebutkan di atas) tetap tidak akan dikenal. Hal ini terjadi jika Anda menggunakan JCreator Pro / JCreator LE sebagai editor Java. Caranya klik Configure-Options. Pada panel sebelah kiri klik JDK Profiles. Pilih JDK Profiles yang sedang Anda gunakan sekarang lalu tekan tombol Delete. Selanjutnya tekan tombol New, cari path JDK yang di dalamnya sudah ada file-file .jar di atas misal : C:\Program Files\Java\jdk1.5.0_07\jre\lib\ext (default path penginstallan jdk1.5). Lalu tekan tombol OK. Jika Anda menggunakan NetBeans sebagai editor, Anda tidak perlu repot untuk mengubah path JDK karena NetBeans secara otomatis akan menngenal file-file .jar yang telah dicopy ke dalam jre/lib/ext pada JDK yang Anda gunakan. Membuat sebuah fungsi di coding program yang nantinya akan dipanggil bila ingin menampilkan laporan yang sudah jadi di atas. Penulis hanya mengkhususkan coding program dalam pembuatan laporan di Java. Sebelum menyisipkan fungsi cetak di bawah ini, Anda harus meng-import beberapa kelas yang dipakai dalam pembuatan laporan di Java. Berikut adalah fungsi cetak yang dapat Anda panggil kapanpun Anda ingin menampilkan laporan yang tadi sudah dibuat : Nama file yang digunakan dalam coding bukan berbentuk .jrxml seperti desain laporan yang sudah kita buat (data_mhs.jrxml) melainkan dalam bentuk .jasper (data_mhs.jasper). Sekarang bagaimana kita mendapatkan file jasper padahal file yang kita buat berbentuk .jrxml? Caranya mudah. Agar file jasper dapat langsung tersimpan dalam folder yang sama dengan tempat tersimpannya file jrxml, klik Options-Settings pada iReport. Pada tab Compiler chek list Use the reports directory for compiles.Bila Anda ingin agar desain report yang berbentuk .java tidak disimpan karena tidak pernah dipakai dalam program, hilangkan chek list keep .java file (if available). Kemudian compile dan execute file report yang telah dibuat. Kini file jasper sudah langsung ada dalam folder yang sama tempat Anda menyimpan file jrxml. Agar lebih jelas lihat tampilan di bawah ini.

Sebenarnya kalau kita sudah meng-compile file report yang kita buat, file .jasper sudah langsung ada. Tetapi dalam direktori dimana iReport diinstall. Biasanya ada di C:\Program Files\JasperSoft\iReport-1.2.4 kalau Anda tidak mengubah path pada saat peng-installan iReport.Membuat Desain Laporan

Saat ini penulis masih menggunakan iReport ver 1.2.4. Sebenarnya versi-versi baru dari iReport sudah ada dan bisa didownload di situs http://jasperforge.org/sf/projects/ireport. Agar iReport bisa berjalan dibutuhkan minimal JDK (Java Development Kit) ver 1.5 telah ter-install di komputer Anda. Untuk membuat desain report, ada beberapa langkah yaitu :1. Membuat file baru yang berekstension .jrxml di iReport .Klik File New Document lalu akan muncul tampilan seperti berikut :

Kemudian masukkan report name, misal :data_barang. Ukuran kertas bisa diubah sesuai keinginan.Langkah selanjutnya dalam membuat koneksi ke database di iReport adalah sebagai berikut :

Klik Data Connection/Datasources. Kemudian tekan tombol New. Masukkan nama koneksinya, misal:mahasiswa. Jika menggunakan database MySQL pilih JDBC Driver com.mysql.jdbc.Driver atau org.gjt.mm.mysql.Driver. Lalu di JDBC URL, MYDATABASE diganti dengan nama database yang digunakan dalam program. Jika menggunakan ODBC sebagai middleware antara Java dengan database yang ingin Anda gunakan maka pilih JDBC Driver sun.jdbc.odbc.JdbcOdbcDriver lalu di JDBC URL, DSNAME diganti dengan nama datasource yang telah Anda buat di ODBC. Jangan lupa untuk mengisi field username yang ada di database untuk mengkoneksikan iReport dengan database beserta passwordnya dan chek list Save password agar pada saat meng-compile report, tidak terlalu repot untuk mengisi password database karena selalu ditanya pada saat meng-compile report. Untuk lebih jelasnya bisa dilihat di tampilan berikut :

Sebelum di-save lebih baik dites terlebih dahulu dengan menekan tombol test untuk mengetahui koneksi ke database berhasil atau tidak. Bila koneksi sukses, di-save lalu tekan tombol set as default. Jadi koneksi yang aktif pada saat kita membuat laporan adalah koneksi tersebut. Agar iReport tidak bingung untuk memilih mana koneksi yang digunakan pada saat kita meng-compile report.

Membuat Report Query

Report query berfungsi untuk mendapatkan field-field yang ada di database yang nantinya ingin kita tampilkan dalam pembuatan laporan.

Klik Data Report query lalu masukkan query. Sebagai contoh, penulis ingin membuat laporan seluruh data barang ( SQL : select * from barang) maka akan muncul field-field yang ada di barang. Bila fieldnya tidak muncul berarti ada kesalahan dalam query yang Anda buat.

//program pertama

//tidak menggunakan construktor

import javax.swing.JFrame;

class Frame1{

public static void main(String[]args){

JFrame tampil = new JFrame();

tampil.show();

}

}

//program kedua

//menggunakan construktor

import javax.swing.JFrame;

class Frame21 extends JFrame{

Frame21(){//constructor

show();

}

}

class Frame22{

public static void main(String[]args){

new Frame21();

}

}

//program ketiga

import javax.swing.*;

class frame62 extends JFrame

{

frame62()

{

super("AMIK Pakarti Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setLocation(10,100);

this.setSize(300,200);

setResizable(false);

show();

}

}

class frame61

{

public static void main(String[]args)

{

new frame62();

}

}

resizable(false);

super(AMIK Pakarti Luhur);

this.setSize(300,200;

//program Grafik 2D Pada Frame Pertama

import javax.swing.*;

import java.awt.*;

//class Canvas

class grap11 extends Canvas{

public void paint(Graphics g){

//(x,y,width,height)

g.drawRect(1,5,50,20);

g.drawLine(35,50,100,70);

//(x,y,width,height,arcwidth,archeight)

g.drawRoundRect(1,50,30,40,5,100);

g.setColor(Color.YELLOW);//set warna

g.drawOval(110,50,10,30);

g.setFont(new Font("Tahoma",Font.ITALIC,20));

g.drawString("0222500049",80,15);

g.setColor(Color.BLUE);//set warna

g.fillRect(1,110,30,20);

g.fillOval(50,110,30,20);

}

}

//class frame

class frame extends JFrame{

Container conten = new Container();

grap11 duaD = new grap11();

EMBED Word.Document.8 \s

EMBED Word.Document.8 \s

import java.awt.*;

import javax.swing.*;

public class ShowColors extends JFrame {

public ShowColors(){

super( "Using colors" );

setSize( 400, 130 );

setVisible( true );

}

// menggambar rectangle dan Strings dengan warna yang berbeda

public void paint( Graphics g ){// memanggil superclass method paint

super.paint( g );

// set gambar baru menggunakan warna warna integer

g.setColor( new Color( 255, 0, 0 ) );

g.fillRect( 25, 25, 100, 20 );

g.drawString( "Current RGB: " + g.getColor(), 130, 40 );

// set gambar baru dengan warna warna float

g.setColor( new Color( 0.0f, 1.0f, 0.0f ) );

g.fillRect( 25, 50, 100, 20 );

g.drawString( "Current RGB: " + g.getColor(), 130, 65 );

// set gambar baru dengan warna static warna object object

g.setColor( Color.BLUE );

g.fillRect( 25, 75, 100, 20 );

g.drawString( "Current RGB: " + g.getColor(), 130, 90 );

// menampilkan nilai masing masing dari RGB

Color color = Color.MAGENTA;

g.setColor( color );

g.fillRect( 25, 100, 100, 20 );

g.drawString( "RGB values: " + color.getRed() + ", " +

color.getGreen() + ", " + color.getBlue(), 130, 115 );

} // end method paint

// eksekusi aplikasi

public static void main( String args[] ){

ShowColors application = new ShowColors();

application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

}

} // end class ShowColors

import java.awt.*;

import javax.swing.*;

public class LinesRectsOvals extends JFrame {

// set judul bar window String dan dimensions

public LinesRectsOvals(){

super( "Drawing lines, rectangles and ovals" );

setSize( 400, 165 );

setVisible( true );

}

// menampilkan variasi garis, rectangles, dan ovals

public void paint( Graphics g ){

super.paint( g ); // memanggil superclass method paint g.setColor( Color.RED );

g.drawLine( 5, 30, 350, 30 );

g.setColor( Color.BLUE );

g.drawRect( 5, 40, 90, 55 );

g.fillRect( 100, 40, 90, 55 );

g.setColor( Color.CYAN );

g.fillRoundRect( 195, 40, 90, 55, 50, 50 );

g.drawRoundRect( 290, 40, 90, 55, 20, 20 );

g.setColor( Color.YELLOW );

g.draw3DRect( 5, 100, 90, 55, true );

g.fill3DRect( 100, 100, 90, 55, false );

g.setColor( Color.MAGENTA );

g.drawOval( 195, 100, 90, 55 );

g.fillOval( 290, 100, 90, 55 );

} // end method paint

public static void main( String args[] ){

// execute application

LinesRectsOvals application = new LinesRectsOvals();

application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

}

} // end class LinesRectsOvals

90

0

0

180

panel1.add(panelList2);

panel1.add(lblKelas);

panel1.add(cmbKelas);

panel1.add(btnTampil);

panel1.add(btnSelesai);

//panel2.setLayout(new GridLayout(1,2));

//panel2.add(btnTampil);

btnTampil.setMnemonic('T');

//panel2.add(btnSelesai);

btnSelesai.setMnemonic('S');

btnSelesai.addActionListener(this);

konten = getContentPane();

konten.add(panel1);

//konten.setLayout(new BorderLayout());

//konten.add(panel1, BorderLayout.CENTER);

//konten.add(panel2, BorderLayout.SOUTH);

show();

}

public void actionPerformed(ActionEvent xxx)

{if(xxx.getSource() == btnTampil)

{}

if(xxx.getSource() == btnSelesai)

{System.exit(0);

}

}

public static void main(String[]args)

{new Frame31();

}

}

JList

Multiple Selection

import java.awt.*;

import javax.swing.*;

public class DrawArcs extends JFrame {

public DrawArcs(){// set window's title bar String and dimensions

super( "Drawing Arcs" );

setSize( 300, 170 );

setVisible( true );

}

public void paint( Graphics g ){ // draw rectangles and arcs

super.paint( g ); // call superclass's paint method

// start at 0 and sweep 360 degrees

g.setColor( Color.YELLOW );

g.drawRect( 15, 35, 80, 80 );

g.setColor( Color.BLACK );

g.drawArc( 15, 35, 80, 80, 0, 360 );

// start at 0 and sweep 110 degrees

g.setColor( Color.YELLOW );

g.drawRect( 100, 35, 80, 80 );

g.setColor( Color.BLACK );

g.drawArc( 100, 35, 80, 80, 0, 110 );

// start at 0 and sweep -270 degrees

g.setColor( Color.YELLOW );

g.drawRect( 185, 35, 80, 80 );

g.setColor( Color.BLACK );

g.drawArc( 185, 35, 80, 80, 0, -270 );

// start at 0 and sweep 360 degrees

g.fillArc( 15, 120, 80, 40, 0, 360 );

// start at 270 and sweep -90 degrees

g.fillArc( 100, 120, 80, 40, 270, -90 );

// start at 0 and sweep -270 degrees

g.fillArc( 185, 120, 80, 40, 0, -270 );

} // end method paint

// execute application

public static void main( String args[] ){

DrawArcs application = new DrawArcs();

application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

}

} // end class DrawArcs

JButton

JList

Single Selection

import java.awt.*;

import javax.swing.*;

public class DrawPolygons extends JFrame {

// set window's title bar String and dimensions

public DrawPolygons(){

super( "Drawing Polygons" );

setSize( 275, 230 );

setVisible( true );

}

// draw polygons and polylines

public void paint( Graphics g ){

super.paint( g ); // call superclass's paint method

int xValues[] = { 20, 40, 50, 30, 20, 15 };

int yValues[] = { 50, 50, 60, 80, 80, 60 };

Polygon polygon1 = new Polygon( xValues, yValues, 6 );

g.drawPolygon( polygon1 );

int xValues2[] = { 70, 90, 100, 80, 70, 65, 60 };

int yValues2[] = { 100, 100, 110, 110, 130, 110, 90 };

g.drawPolyline( xValues2, yValues2, 7 );

int xValues3[] = { 120, 140, 150, 190 };

int yValues3[] = { 40, 70, 80, 60 };

g.fillPolygon( xValues3, yValues3, 4 );

Polygon polygon2 = new Polygon();

polygon2.addPoint( 165, 135 );

polygon2.addPoint( 175, 150 );

polygon2.addPoint( 270, 200 );

polygon2.addPoint( 200, 220 );

polygon2.addPoint( 130, 180 );

g.fillPolygon( polygon2 );

} // end method paint

// execute application

public static void main( String args[] ){

DrawPolygons application = new DrawPolygons();

application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

}

} // end class DrawPolygons

panel1.add(panelList2);

panel1.add(lblKelas);

panel1.add(cmbKelas);

panel1.add(btnTampil);

panel1.add(btnSelesai);

//panel2.setLayout(new GridLayout(1,2));

//panel2.add(btnTampil);

btnTampil.setMnemonic('T');

//panel2.add(btnSelesai);

btnSelesai.setMnemonic('S');

btnSelesai.addActionListener(this);

konten = getContentPane();

konten.add(panel1);

//konten.setLayout(new BorderLayout());

//konten.add(panel1, BorderLayout.CENTER);

//konten.add(panel2, BorderLayout.SOUTH);

show();

}

public void actionPerformed(ActionEvent xxx)

{if(xxx.getSource() == btnTampil)

{}

if(xxx.getSource() == btnSelesai)

{System.exit(0);

}

}

public static void main(String[]args)

{new Frame31();

}

}

//frame 31 program input data mahasiswa

import javax.swing.*;

import javax.swing.event.*;

import java.awt.*;

import java.awt.event.*;

class Frame31 extends JFrame implements ActionListener

{Container konten = new Container();

JPanel panel1 = new JPanel();

JLabel lblNim = new JLabel("NIM");

JLabel lblNama = new JLabel("Nama");

JLabel lblSertifikat = new JLabel("Sertifikat");

JLabel lblJurusan = new JLabel("Jurusan");

JLabel lblKelas = new JLabel("Kelas");

JTextField txtNim = new JTextField();

JTextField txtNama= new JTextField();

JPanel panelList1 = new JPanel();

String[]sSertifikat = {"","SD","SMP","SMA"};

JList lstSertifikat = new JList(sSertifikat);

JScrollPane spSertifikat;

JPanel panelList2 = new JPanel();

String[]sJurusan = {"","MI","KA"};

JList lstJurusan = new JList(sJurusan);

JScrollPane spJurusan;

String[]s_Kelas = {"Reguler","Karyawan","Extention"};

JComboBox cmbKelas = new JComboBox(s_Kelas);

JPanel panel2 = new JPanel();

JButton btnTampil = new JButton("Tampilkan");

JButton btnSelesai = new JButton("Selesai");

Frame31()

{super("AMIK Pakarti Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocation(5,5);

setSize(350,225);

panel1.setLayout(new GridLayout(6,2));

panel1.add(lblNim);

panel1.add(txtNim);

panel1.add(lblNama);

panel1.add(txtNama);

panel1.add(lblSertifikat);

panelList1.setLayout(new GridLayout(1,1));

spSertifikat = new JScrollPane(lstSertifikat);

//panelList1.add(lstSertifikat);

panelList1.add(spSertifikat);

lstSertifikat.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

panel1.add(panelList1);

panel1.add(lblJurusan);

spJurusan = new JScrollPane(lstJurusan);

panelList2.setLayout(new GridLayout(1,1));

//panelList2.add(lstJurusan);

panelList2.add(spJurusan);

lstJurusan.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

JPanel panel2 = new JPanel();

JButton btnTampil = new JButton("Tampilkan");

JButton btnSelesai = new JButton("Selesai");

Frame31()

{super("AMIK Pakarti Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocation(5,5);

setSize(350,225);

panel1.setLayout(new GridLayout(6,2));

panel1.add(lblNim);

panel1.add(txtNim);

panel1.add(lblNama);

panel1.add(txtNama);

panel1.add(lblSertifikat);

panelList1.setLayout(new GridLayout(1,1));

spSertifikat = new JScrollPane(lstSertifikat);

//panelList1.add(lstSertifikat);

panelList1.add(spSertifikat);

lstSertifikat.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

panel1.add(panelList1);

panel1.add(lblJurusan);

spJurusan = new JScrollPane(lstJurusan);

panelList2.setLayout(new GridLayout(1,1));

//panelList2.add(lstJurusan);

panelList2.add(spJurusan);

lstJurusan.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

//frame 31 program input data mahasiswa

import javax.swing.*;

import javax.swing.event.*;

import java.awt.*;

import java.awt.event.*;

class Frame31 extends JFrame implements ActionListener

{Container konten = new Container();

JPanel panel1 = new JPanel();

JLabel lblNim = new JLabel("NIM");

JLabel lblNama = new JLabel("Nama");

JLabel lblSertifikat = new JLabel("Sertifikat");

JLabel lblJurusan = new JLabel("Jurusan");

JLabel lblKelas = new JLabel("Kelas");

JTextField txtNim = new JTextField();

JTextField txtNama= new JTextField();

JPanel panelList1 = new JPanel();

String[]sSertifikat = {"","SD","SMP","SMA"};

JList lstSertifikat = new JList(sSertifikat);

JScrollPane spSertifikat;

JPanel panelList2 = new JPanel();

String[]sJurusan = {"","MI","KA"};

JList lstJurusan = new JList(sJurusan);

JScrollPane spJurusan;

String[]s_Kelas = {"Reguler","Karyawan","Extention"};

JComboBox cmbKelas = new JComboBox(s_Kelas);

JTextField

JCheckBox

JTextField

JButton

JComboBox

//program ke tujuh

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class graph22 extends JFrame implements MouseMotionListener,

MouseListener, KeyListener

{Container conten = new Container();

JLabel label1 = new JLabel();

JLabel label2 = new JLabel();

JTextField txtKey = new JTextField();

JLabel label3 = new JLabel();

graph22()

{super("AMIK Pakarti Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocation(5,5);

setSize(250,200);

conten = getContentPane();

conten.setLayout(new GridLayout(4,1));

label1.setForeground(Color.YELLOW);

label1.setText("Mouse Event");

label2.setFont(new Font("Tahoma",Font.BOLD,20));

label2.setForeground(Color.BLUE);

label2.setText("Mouse Move");

conten.add(label1);

conten.add(label2);

conten.add(txtKey);

conten.add(label3);

label3.setForeground(Color.RED);

//contoh EventHandling

conten.addMouseMotionListener(this);

conten.addMouseListener(this);

txtKey.addKeyListener(this);

show();

}

//Mouse Motion Listener

public void mouseDragged(MouseEvent e)

{label2.setText("Dragged At ["+e.getX()+","+e.getY()+"]");

}

public void mouseMoved(MouseEvent e)

{label2.setText("Moved At ["+e.getX()+","+e.getY()+"]");

}

//Mouse Listener

public void mouseReleased(MouseEvent e)

{label1.setText("Mouse Released..");

}

public void mousePressed(MouseEvent e)

{label1.setText("Mouse Pressed..");

}

public void mouseExited(MouseEvent e)

{

label1.setText("Mouse Exited..");

}

public void mouseEntered(MouseEvent e)

{

label1.setText("Mouse Entered..");

}

public void mouseClicked(MouseEvent e)

{

label1.setText("Mouse Clicked..");

}

//Key Listener

public void keyTyped(KeyEvent e)

{

label3.setText(e.getKeyText(e.getKeyCode()));

}

public void keyPressed(KeyEvent e)

{

label3.setText(e.getKeyText(e.getKeyCode()));

}

public void keyReleased(KeyEvent e)

{

label3.setText(e.getKeyText(e.getKeyCode()));

}

public static void main(String[]args)

{

new graph22();

}

}

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class FormEditorBerita extends JFrame

{

Container konten = new Container();

JMenuBar bar = new JMenuBar();

JMenu mnFile = new JMenu("File");

JMenuItem mniFileBuka = new JMenuItem("Buka File");

JMenuItem mniFileSimpan = new JMenuItem("Simpan File");

JMenuItem mniFileKeluar = new JMenuItem("Keluar");

JMenu mnEdit = new JMenu("Edit");

JMenuItem mniCopy = new JMenuItem("Copy");

JMenuItem mniCut = new JMenuItem("Cut");

JMenuItem mniPaste= new JMenuItem("Paste");

JMenu mnTentang = new JMenu("Tentang");

JLabel lblKategori = new JLabel("Kategori");

String[]pilKategori={"","Nasional","Daerah","Internasional"};

JComboBox cmbKategori = new JComboBox(pilKategori);

JLabel lblDaerah = new JLabel("Daerah");

String[]pilDaerah={"","Indonesia Bagian Barat","Indonesia Bagian Tengah",

"Indonesia Bagian Timur"};

panel1.add(cmbKategori);

panel1.add(lblDaerah);

panel1.add(cmbDaerah);

box.add(panel1);

panel2.setLayout(new GridLayout(3,1));

panel2.add(lblJudul);

panel2.add(txtJudul);

panel2.add(lblIsi);

box.add(panel2);

txtArea = new JTextArea(20,15);

txtArea.setLineWrap(true);

txtArea.addMouseListener(new MouseListener()

{public void mousePressed(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseClicked(MouseEvent e){}

public void mouseReleased(MouseEvent e)

{//jika click kanan maka tampilkan popup

if(e.getButton()==3)

{popmenu.show(e.getComponent(),e.getX(),e.getY());

}

}

});

jspArea.getViewport().add(txtArea,null);

box.add(jspArea);

konten = getContentPane();

konten.setLayout(new BorderLayout());

konten.add(box, BorderLayout.NORTH);

setVisible(true);//sama dengan show()

}

private class ItemHandler implements ActionListener

{public void actionPerformed(ActionEvent ae)

{Object obj = ae.getSource();

if(obj==mniFileBuka)

{JOptionPane.showMessageDialog(FormEditorBerita.this,"Buka File",

"Buka",JOptionPane.PLAIN_MESSAGE);

}

if(obj==mniFileSimpan)

{JOptionPane.showMessageDialog(FormEditorBerita.this,"Simpan File",

Simpan",JOptionPane.PLAIN_MESSAGE);

}

if(obj==mniCopy)

{JOptionPane.showMessageDialog(FormEditorBerita.this,"Copy "

+txtArea.getSelectedText()+" Di Text Area ","Copy",

JOptionPane.PLAIN_MESSAGE);

}

if(obj==mniCut)

{JOptionPane.showMessageDialog(FormEditorBerita.this,

"Cut Text Di Text Area","Cut",JOptionPane.PLAIN_MESSAGE);

}

if(obj==mniPaste)

{JOptionPane.showMessageDialog(FormEditorBerita.this,

"Paste Teks Di Text Area","Paste",JOptionPane.PLAIN_MESSAGE);

}

if(obj==mniFileKeluar)

{System.exit(0);

}

if(obj==mnTentang)

{JOptionPane.showMessageDialog(null,"Contoh Program Editor Berita",

"INFORMASI",JOptionPane.INFORMATION_MESSAGE);

}

}

}

public static void main(String[]args)

{new FormEditorBerita();

}

}

JMenuBar()

JMenu(File)

JMenuItem(Buka File)

JMenuItem(Simpan File)

JMenuItem(Keluar)

JMenu(Edit)

JMenuItem(Copy)

JMenuItem(Cut)

JMenuItem(Paste)

JMenu(Tentang)

JPopupMenu()

JMenuItem(Copy)

JMenuItem(Cut)

JMenuItem(Paste)

JTextArea()

JTextArea txtArea

txtArea=new JTextArea(20,15)

Komponen1

Komponen2

Komponen3

//Thread.java

class ThreadBaru extends Thread

{public ThreadBaru(String id)

{super(id);

start(); //Mulai eksekusi thread baru

}

public void run()

{for(int i=0;i , ,

.

[]);

CREATE TABLE

(,kolom1> , [],

.

[]);

[ ] = optional

CREATE TABLE pegawai

(,no_id INT (5), nm_depan VarChar (15), nm_belakang VarChar (20),umur INT (3),kota VarChar (30),propinsi VarChar (20));

.

[]);

CREATE TABLE pegawai(no_id number (5) UNIQUE NOT NULL,

nm_depan VarChar (15),

nm_belakang VarChar(20),

umur integer (3),

kota VarChar (30),

propinsi VarChar (20),

PRIMARY KEY (no_id));

DROP TABLE ;

ALTER TABLE

ADD (,kolom> [, ]

| DROP [, ..];

ALTER TABLE pegawai ADD kode_pos Char (5);

ALTER TABLE pegawai DROP propinsi;

INSERT INTO

(kolom1>,,......,)

VALUES

(,,..........,);

INSERT INTO pegawai(no_id, nm_depan, nm_belakang, umur, kota, propinsi)

VALUES(99023, Agus, Maulana, 45, Jaksel, Jakarta);

SELECT [,,...]

FROM

[WHERE ];

[ ] = Optional

SELECT [ALL | DISTINCT ] [, ]

FROM [, ]

[WHERE ]

[GROUP BY ]

[HAVING ]

[ORDER BY [ASC | DESC] ]

[ ] = Optional

SELECT nama_depan, nama_belakang, kota

FROM pegawai

WHERE nama_depan LIKE Er%;

SELECT nm_depan, nm_belakang

FROM pegawai

WHERE nm_belakang LIKE %s;

SELECT * FROM pegawai

WHERE nm_depan = Eric;0

SELECT nm_belakang, kota, umur

FROM pegawai

WHERE umur > 30;

SELECT DISTINTC umur

FROM pegawai;

SELECT AVG (umur)

FROM pegawai;

SELECT COUNT (*)

FROM pegawai;

SELECT MAX (umur), kota

FROM pegawai

GROUP BY kota;

SELECT kota, AVG (umur)

FROM pegawai

GROUP BY kota

HAVING umur > 30;

SELECT nm_depan, nm_belakang, umur, kota

FROM pegawai

ORDER BY nm_depan ASC;

SELECT nm_depan, nm_belakang, umur, kota

FROM pegawai

ORDER BY nm_depan DESC;

UPDATE

SET = [ , = . ]

[WHERE OPERATOR

[and | or OPERATOR ] ] ;

[ ] = Optional

UPDATE pegawai

SET umur = umur+1

WHERE nm_depan = Mary AND nm_belakang = williams;

DELETE FROM

WHERE OPERATOR

[and | or OPERATOR ];

[ ] = Optional

CATATAN :

Jika klausa WHERE tidak disertakan, maka semua record pada tabel tersebut akan dihapus.

import java.sql;

Class.forName(namaDriver);

Class.forName(namaDriver).newInstance();

Try

{

Class.forName(namaDriver);

}catch(ClassNotFoundException cnfe)

{

. Penanganan Error ClassNotFoundException

}

try

{

Class.forName(com.mysql.jdbc.Driver);

}catch(ClassNotFoundException cnfe)

{

System.out.println(Pesan Error : +cnfe);

}

pan1

pan2

pan3

pan1

pan2

pan3

pan1

pan2

pan3

pan4

pan1

pan2

BAHASA PEMROGRAMAN 1

JILID PERTAMA

_1435054373.docMethod

Description

Color constructors and methods

public Color( int r, int g, int b )

Creates a color based on red, green and blue components expressed as integers from 0 to 255.

public Color( float r, float g, float b )

Creates a color based on red, green and blue components expressed as floating-point values from 0.0 to 1.0.

public int getRed()

Returns a value between 0 and 255 representing the red content.

public int getGreen()

Returns a value between 0 and 255 representing the green content.

public int getBlue()

Returns a value between 0 and 255 representing the blue content.

Graphics methods for manipulating Colors

public Color getColor()

Returns a Color object representing the current color for the graphics context.

public void setColor( Color c )

Sets the current color for drawing with the graphics context.

_1435082189.vsdData

Users / Programmers

Application Programs / Queries

Application Programs / Queries

Software to Proccess Queries / Programs

Software to Proccess Stored Data

Stored Database

Stored Database Definision (Meta Data)

_1435054282.docColor constant

Color

RGB value

public final static Color ORANGE

orange

255, 200, 0

public final static Color PINK

pink

255, 175, 175

public final static Color CYAN

cyan

0, 255, 255

public final static Color MAGENTA

magenta

255, 0, 255

public final static Color YELLOW

yellow

255, 255, 0

public final static Color BLACK

black

0, 0, 0

public final static Color WHITE

white

255, 255, 255

public final static Color GRAY

gray

128, 128, 128

public final static Color LIGHT_GRAY

light gray

192, 192, 192

public final static Color DARK_GRAY

dark gray

64, 64, 64

public final static Color RED

red

255, 0, 0

public final static Color GREEN

green

0, 255, 0

public final static Color BLUE

blue

0, 0, 255