Modul Praktikum Bhs Pemrograman IV Java

download Modul Praktikum Bhs Pemrograman IV Java

of 73

Transcript of Modul Praktikum Bhs Pemrograman IV Java

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    1/73

    MODUL PRAKTIKUM

    BAHASA PEMROGRAMAN IV

    (JAVA)

    OLEH :

    KHARISMAN KHOLID HUDAYA, M.KOM

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    2/73

     

    DAFTAR ISI

    BAB I : LINGKUNGAN PEMROGRAMAN JAVA

    BAB II : JTEXTFIELD, JOPTIONPANE DAN KONVERSI DATA

    BAB III : PENCABANGAN

    BAB IV : JCOMBOBOX, JLIST, DAN JTABLE

    BAB V : PERULANGAN

    BAB VI : AKSES KE DATABASE

    BAB VII : PENGOLAHAN DATA TANGGAL, GAMBAR, DAN NUMERIK DESIMAL

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    3/73

    BAB I

    LINGKUNGAN PEMROGRAMAN JAVA

    Tujuan : 

    1.  Memahami Software yang Dibutuhkan untuk Memprogram Java

    2.  Memahami Cara Membuat Project

    3.  Memahami Cara Kerja Sederhana untuk JLabel, JTextField, dan JButton

    1.1 SOFTWARE YANG DIBUTUHKAN

    Pemrograman desktop berbasis database dengan Java membutuhkan software-software:

    1.  JDK (Java Development Kit)

    Software ini harus diinstal pertama kali. Di dalamnya terdapat Java Runtime Environment

    (JRE) untuk menerjemahkan file .java menjadi kode yang dipahami oleh komputer.

    2.  IDE (Integrated Development Environment)

    Banyak terdapat IDE untuk Java. Di antara yang terkenal dan gratis adalah Eclipse dan

    Netbeans. Praktikum kita menggunakan Netbeans.

    3.  DBMS (DataBase Management System)

    DBMS yang digunakan bisa berupa Microsoft Access atau MySQL.

    4.  Connector ke DBMS

    Jika yang digunakan adalah DBMS MySQL, dibutuhkan Connector ke MySQL. Ada 2 jenis

    connector:

    a.  Connector dalam bentuk file jar.

    File ini yang akan dimasukkan ke dalam library project pada Netbeans.

    b.  Connector dalam bentuk instalasi executable (ODBC Connector).

    File ini diinstal terlebih dahulu, kemudian akan bisa digunakan pada saat menggunakan

    ODBC. Contoh: File bernama mysql-connector-odbc-3.51.12-win32

    1.2 BERKENALAN DENGAN NETBEANS

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    4/73

    Netbeans yang digunakan dalam praktikum ini adalah Netbeans 6.0.1. Secara umum, tidak

    ada perbedaan mendasar dengan versi-versi lain sebelum atau setelahnya.

    1.2.1 Menjalankan Netbeans

    Gambar 1.1

    Start Program Netbeans

    Tampilan awal splash screen

    Gambar 1.2

    Splash Screen Netbeans

    1.2.2 Area Netbeans

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    5/73

     

    Gambar 1.3

    Area Netbeans

    Netbeans memiliki area utama dalam 3 bagian:

    1.  Bagian Kiri : Area Project, Navigator dan File

    Bagian ini akan berisi navigasi file-file Java yang akan dirancang.

    2.  Bagian Tengah

    Bagian ini adalah bagian perancangan JFrame (form).

    3.  Bagian Kanan

    Bagian ini adalah bagian Palette dan Properties. Palette berisi object-object yang akandiletakkan pada JFrame, sedangkan Properties berisi tempat setting nilai untuk tiap

    object tersebut.

    4.  Bagian Bawah

    Berupa Output program. Pesan kesalahan atau keberhasilan kompilasi ditunjukkan pada

    bagian ini.

    Java memiliki banyak window, bisa diaktifkan atau dinonaktifkan melalui menu Window

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    6/73

     

    Gambar 1.4

    Menu Window

    1.2.3 Memulai Contoh Project

    Berikut kita akan membuat project pertama, membuat program yang sangat sederhana.

    Project ini akan terdiri dari 1 JFrame, dan 3 object : JLabel, JTextField, dan JButton. Aplikasi yang

    dirancang adalah menampilkan pesan : Selamat Mulai Belajar Java. Pesan tersebut ditampilkan

    di JTextField, setelah tombol JButton ditekan.

    Langkah-langkahnya adalah:

    1.  Pilih File > New Project 

    Gambar 1.5

    Pilihan File> New Project

    selanjutnya akan tampil jendela New Project

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    7/73

     

    Gambar 1.6

    Jendela New Project

    tekan tombol Next. Isikan pada Project Name : ProjPertama. Arahkan file penyimpanan dengan

    menekan tombol Browse di samping Project Location. Silakan arahkan pada direktori dan folder

    yang dituju. Hilangkan tanda centang pada Set as Main Project dan Create Main Class.

    Gambar 1.7

    Jendela Name dan Location

    tekan tombol Finish, sehingga Project baru sudah tercipta. Nampak di bagian kiri pada bagian

    Project telah ada ProjPertama

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    8/73

     

    Gambar 1.8

    Project baru ProjPertama tercipta

    2.  Klik kanan, pada ProjPertama kemudian pilih New > JFrame Form 

    Gambar 1.9

    Pembuatan JFrame Form baru

    muncul tampilan jendela baru Name and Location. Isikan pada Class Name : TampilanSelamat.

    Isian Class Name tidak boleh ada spasi atau diawali dengan angka.

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    9/73

     

    Gambar 1.10

    Name and Location New JFrame

    Klik tombol Finish. Muncul tampilan desain form (JFrame). Ada 2 tab: Source dan Design. Source

    untuk menampilkan Coding, sedangkan Design menampilkan desain form.

    Gambar 1.11

    Desain Form Awal

    3.  Pada Palette (di sebelah kanan) bagian Swing Controls, pilihlah JLabel, kemudian letakkan

    pada JFrame (form).

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    10/73

     

    Gambar 1.12

    Label pada Swing Controls

    Gambar 1.13

    Meletakkan JLabel pada JFrame

    4.  Ubahlah tulisan pada JLabel dengan cara: klik kanan pada JLabel > Edit Text. Ganti

    tulisannya menjadi Tampilan Pesan 

    5.  Pilihlah JTextField pada Palette> Swing Controls, dan letakkan pada JFrame:

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    11/73

    Gambar 1.14 Meletakkan JTextField pada JFrame

    6.  Ubahlah variable name pada JTextField tersebut dengan cara: klik kanan pada TextField,

    kemudian pilih Change Variable Name menjadi : txt_pesan. 

    7.  Kosongkan tulisan yang tertera pada JTextField, dengan cara : klik kanan > Edit Text. Hapus

    teksnya. JTextField akan mengecil, atur kembali sesuai lebar yang diinginkan.

    8.  Letakkan JButton ke dalam JFrame:

    Gambar 1.15

    Meletakkan JButton pada JFrame

    9.  Ubahlah tulisan pada JButton menjadi : Tampilkan Pesan. Dengan cara: klik kanan pada

    JButton > Edit Text

    Gambar 1.16

    Desain Form Lengkap

    10. Buatlah Event pada JButton dengan cara: klik kanan pada JButton > Events > Action >

    actionPerformed 

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    12/73

     

    Akan dihasilkan code baru:

    private void Button1ActionPerformed(java.awt.event.ActionEvent evt)

    {

    // TODO add your handling code here:

    }

    11.  Isilah Kode berikut:

    txt_pesan.setText("Selamat Mulai Belajar Java");

    sehingga keseluruhan kode untuk tombol itu adalah:

     private void Button1ActionPerformed(java.awt.event.ActionEvent evt) 

    {

    txt_pesan.setText(“Selamat Mulai Belajar Java”); 

    }

    12.  Jalankan program dengan perintah: Shift + F6

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    13/73

    BAB II

    JTEXTFIELD, JOPTIONPANE, dan KONVERSI TIPE DATA

    Tujuan :

    1.  Memahami cara kerja JTextField dan JOptionPane serta menggunakannya dalam aplikasi

    sederhana

    2.  Memahami konversi data String ke Integer dan sebaliknya

    2.1  Karakteristik JTextField

    JTextField adalah komponen yang bisa digunakan untuk menginputkan data dan untuk menampilkan

    data. Data yang bisa dioperasikan oleh JTextField hanyalah yang bertipe String. Method yang

    digunakan adalah:

    a.  Input/ membaca data getText()

    b.  Output/ menampilkan data setText()

    c.  Mengarahkan fokus kursor pada JTextField  requestFocus()

    2.2  Demo JTextField (Input dan Output)

    Berikut ini adalah program aplikasi sederhana dengan satu JFrame form untuk membaca data yang

    diinputkan pada sebuah JTextField, kemudian setelah ditekan tombol JButton data tersebut ditampilkan

    pada JTextField yang lain. Secara umum, langkah-langkah mendesain form, mengubah variable name, dan

    mengatur propertiesnya sama dengan seperti yang dijabarkan pada BAB II.

    Ada 2 JTextField :

    a.  Bagian atas (setelah tulisan ‘Masukkan Nama Anda’). 

    Variable name-nya adalah input_nama.  Berfungsi membaca data yang diinputkan, sebelum

    dipindah ke JTextField yang di bawah.

    b.  Bagian bawah (setelah tulisan ‘Nama Anda adalah’). 

    Variable name-nya adalah tampil_nama. Setelah tombol Proses ditekan, menampilkan tulisan

    nama yang sama dengan yang diinputkan di JTextField atas

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    14/73

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    15/73

    Gambar 2.4 Tampilan Pesan

    Kode pada Tombol ‘Tampilkan Pesan Nama’  

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

     javax.swing.JOptionPane.showMessageDialog(this,"Nama yang diinputkan : "+input_nama.getText(),

    "Pesan",javax.swing.JOptionPane.INFORMATION_MESSAGE); 

    }

    Catatan :

    Kode di atas bisa diringkas menjadi :

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    JOptionPane.showMessageDialog(this,"Nama yang diinputkan : "+input_nama.getText(),

    "Pesan", JOptionPane.INFORMATION_MESSAGE); 

    }

    Namun, pada bagian paling atas harus ditambahkan kode:

    import javax.swing.JOptionPane;

    2.4  Konversi Tipe Data

    JTextField hanya bisa menampung data bertipe String. Karena itu, jika diperlukan sebuah proses artimatik

    seperti penjumlahan, pengurangan, perkalian, atau pembagian yang melibatkan JTextField harus ada

    proses konversi tipe data.

    Konversi dari String ke Integer

    a = Integer.parseInt(b)

    pada kode di atas, a bertipe Integer, sedangkan b bertipe String

    Konversi dari Integer ke String

    a = String.valueOf(b)

    pada kode di atas, a bertipe String, sedangkan b bertipe Integer.

    Contoh Aplikasi Sederhana Menghitung Luas Persegi Panjang

    Aplikasi berikut ini untuk menghitung luas persegi panjang berdasarkan input panjang dan lebar dari

    user.

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    16/73

     

    Gambar 2.5 Aplikasi Hitung Luas Persegi Panjang

    Kode pada Tombol Hitung Luas

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    int p,l, Luas ;

    p = Integer.parseInt(txt_panjang.getText()) ;

    l = Integer.parseInt(txt_lebar.getText()) ;

    Luas = p * l;

    txt_luas.setText(String.valueOf(Luas));

    }

    CATATAN TAMBAHAN UNTUK JTEXTFIELD

    Selain menggunakan tombol, kita juga bisa menggunakan KeyPress Event pada JTextField. Cara membuat

    Eventnya adalah aktifkan JTextField, kemudian klik kanan > Events > Key > keyPressed

    Gambar 2.6 KeyPress Event

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    17/73

    Pada bagian atas, harus ditambahkan kode berikut:

    import java.awt.event.KeyEvent;

    Kode yang ingin dijalankan setelah tombol Enter ditekan hendaknya ada di dalam lingkup :

    if (evt.getKeyCode()==KeyEvent.VK_ENTER) {

    ……………………………………………………. 

    }

    Untuk mengecek apakah JTextField masih kosong atau tidak bisa menggunakan perintah:

    if (txt1.getText().equals(“”))

    atau

    if (txt1.getText().isEmpty())

    secara detail, aturan penggunaan pencabangan if akan dibahas pada BAB III, InsyaAllah…. 

    LATIHAN

    1.  Buatlah aplikasi sederhana untuk menghitung usia seseorang berdasarkan tahun lahir yang

    diinputkan.

    2.  Buatlah aplikasi sederhana untuk menghitung transaksi penjualan sederhana. User menginputkan

     jumlah barang dan harga barang kemudian secara otomatis dihitung total yang harus dibayar.

    Selanjutnya user memasukkan nominal uang yang dibayarkan, dan secara otomatis ditampilkan

    nominal uang kembalian.

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    18/73

    BAB III

    PENCABANGAN

    Tujuan :

    Mampu memahami logika dan syntax pencabangan pada Java

    3.1 Pencabangan Dua Kemungkinan

    Pencabangan 2 kemungkinan

    Syntax :

    if (kondisi)

    statement-1

    else

    statement-2

    Artinya, jika kondisi terpenuhi statement-1 akan dijalankan, namun bila tidak, statement-2 yang

    akan dijalankan.

    Contoh Aplikasi Penyeleksian Usia berdasarkan : Dewasa atau Belum Dewasa

    Skenario

    User memasukkan angka usia, kemudian akan ditampilkan pesan: DEWASA, jika lebih dari atau

    sama dengan 17, dan akan tampil pesan: BELUM DEWASA jika kurang dari itu.

    Gambar 3.1 Aplikasi Usia dengan if dua kemungkinan

    JTextField yang digunakan memiliki variable name : txt_usia dan txt_kategori

    Kode untuk Tombol Proses

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    19/73

      int usia = Integer.parseInt(txt_usia.getText());

    if (usia>=17 ) {

    txt_kategori.setText("DEWASA") ;

    } else {

    txt_kategori.setText("BELUM DEWASA");

    }

    }

    3.2 Pencabangan Lebih Dari 2 Kemungkinan

    Syntax :

    if (syarat-1)

    statement-1

    else if (syarat-2)

    statement-2

    else if (syarat-3)

    statement-3

    …………………….. 

    else

    statement-n

    Contoh Aplikasi Penyeleksian Kategori Usia (BALITA, ANAK-ANAK, REMAJA, DEWASA,

    LANSIA)

    Sama dengan contoh sebelumnya, hanya saja kategori usia tidak hanya DEWASA dan BELUM

    DEWASA, namun lebih banyak dengan ketentuan:

    0 – 5 tahun : BALITA

    6-12 tahun : ANAK-ANAK

    13-17 tahun : REMAJA

    18-50 tahun : DEWASA

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    20/73

    Lebih dari 50 tahun : LANSIA

    Gambar 3.2 Aplikasi Penyeleksian Kondisi Lebih Dari 2

    Kode untuk Tombol Proses

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    int usia = Integer.parseInt(txt_usia.getText());

    if (usia >=50) {

    txt_kategori.setText("LANSIA");

    } else if (usia >17 ) {

    txt_kategori.setText("DEWASA");

    } else if (usia >12) {

    txt_kategori.setText("REMAJA");

    } else if (usia >5) {

    txt_kategori.setText("ANAK-ANAK");

    } else {

    txt_kategori.setText("BALITA");

    }

    }

    LATIHAN :

    1.  Buatlah aplikasi untuk mengkonversi nilai angka ke nilai huruf dengan ketentuan:

    80 - 100 : A

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    21/73

    75 – 79 : B+

    70 - 74 : B

    65 – 69 : C+

    60 – 64 : C

    55 – 59 : D+

    50 – 54 : D

    < 50 : E

    2.  Buat program untuk menentukan gaji seorang karyawan berdasarkan waktu/jam

    kerjanya, dengan aturan bahwa batasan jam kerja normal adalah 50 sampai 60

     jam/minggu dengan upah Rp.5000/jam. Jika lebih dari batas tersebut, maka kelebihan

    perjamnya dibayar Rp 7500/jam. Tetapi jika jam kerjanya kurang dari 50 jam/minggu,maka dikenakan potongan Rp.2500/jam nya. (Input : jam kerja/minggu, dan output :

    total gaji) 

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    22/73

    BAB IV

    JCOMBOBOX, JLIST, DAN JTABLE

    Tujuan :

    Mampu memahami cara kerja JComboBox, JList, JTable, serta menerapkannya dalam aplikasi

    4.1 Kesamaan JComboBox, JList, dan JTable

    Ketiga komponen yang dibahas pada bab ini memiliki kesamaan dalam hal:

    1.  Menggunakan model untuk menampung data.

    2.  Menampilkan data yang telah ditampung oleh model.

    Gambar 4.1 Aliran Data – Model - Komponen

    Namun, jenis model untuk masing-masing komponen tersebut berbeda.

    Komponen Jenis Model

    JComboBox DefaultComboBoxModel

    JList DefaultListModel

    JTable DefaultTableModel

    Tabel 4.1 Jenis Model pada Tiap Komponen

    4.2 JComboBox

    IMPORT

    import javax.swing.DefaultComboBoxModel;

    DEKLARASI MODEL 

    DefaultComboBoxModel mdlc = new DefaultComboBoxModel() ;

    KODE MENAMBAH DAN MENGHAPUS DATA

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    23/73

    // Menambah Data

    mdlc.addElement(“S1”);

     jComboBox1.setModel(mdlc) ;

    // Menghapus 1 Data

    mdl.removeElementAt(i);

     jComboBox1.setModel(mdl);

    // Menghapus Seluruh Data

    mdlc.removeAllElements();

    MEMBACA DAN MENAMPILKAN DATA

    getSelectedItem().toString() membaca data dalam String

    setSelectedItem() menampilkan data

    4.3 JLIST

    IMPORT

    import javax.swing.DefaultListModel;

    DEKLARASI MODEL

    DefaultListModel mdl = new DefaultListModel() ;

    KODE MENAMBAH, MENGHAPUS, dan MEMILIH DATA

    // menambahkan data

    mdl.addElement(“S1”);

     jList1.setModel(mdl) ;

    // Memilih Isi JList yang sesuai

     jList1.setSelectedValue(nama, rootPaneCheckingEnabled);

    // Menghapus 1 Data

    mdl.remove(i) ;

     jList1.setModel(mdl);

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    24/73

    // Menghapus seluruh Isi List

    mdl.removeAllElements();

    // Memilih Option Tertentu

    JList1.setSelected(nama,rootPaneCheckingEnabled) ;

    // Menampilkan isi List yang dipilih

    txt_nim.setText(jList1.getSelectedValue().toString());

    4.4 JTable

    IMPORT

    import javax.swing.table.DefaultTableModel;

    DEKLARASI MODEL

    DefaultTableModel mdl = new DefaultTableModel(kolom,baris) ;

    INISIALISASI

    int baris = 0 ;

    static Object kolom[] = {" NIM ", " Nama "} ;

    DefaultTableModel mdl = new DefaultTableModel(kolom,baris) ;

    MENAMBAHKAN DATA DARI JTEXTFIELD

    mdl.addRow(new Object [] {txtkd_brg.getText(),txtnama_brg.getText(),txthrg_beli.getText(),

    txthrg_jual.getText(),txtstock.getText(),txtstock_min.getText()} ) ;

     jTable1.setModel(mdl) ;

    MENGHAPUS DATA

    baris_grid = jTable1.getSelectedRow() ;

    mdl.removeRow(baris_grid) ;

     jTable1.setModel(mdl) ;

    LATIHAN :

    Buatlah suatu aplikasi sederhana input data mahasiswa dengan komponen JComboBox dan JList.

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    25/73

    BAB V

    PERULANGAN

    TUJUAN :

    Memahami logika dan syntax perulangan pada Java

    5.1 Perulangan dengan for

    Syntax :

    for (nilai_awal; kondisi; step) {

    statement

    }

    Contoh:

    Perulangan dari 1 sampai 10

    for (i=1 ; i

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    26/73

    i++ ;

    }

    5.3 Perulangan dengan do ….while 

    Syntax :

    do {

    statement

    counter

    }

    while (kondisi)

    Contoh :

    Perulangan dari 1 sampai 10

    int i = 1;

    do {

    System.out.println(i);

    i++;

    } while ( i < 10) ;

    LATIHAN :

    1.  Buatlah aplikasi perulangan menampilkan bilangan ganjil dari 1 sampai 10 ke dalam JList

    2.  Buatlah aplikasi menghitung faktorial suatu angka dengan logika perulangan

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    27/73

    BAB VI

    AKSES KE DATABASE

    Tujuan :

    1.  Memahami prinsip dasar akses ke database

    2.  Mampu membuat database dan struktur tabel pada MySQL

    3.  Mampu membuat aplikasi sederhana input data (Simpan, Edit, Hapus) Tipe Data String

    6.1 Konsep Dasar Akses ke Database (MySQL)

    Catatan Penting :

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    28/73

    1.  Untuk menggunakan perintah-perintah mengakses database di atas (Setting Driver,

    Connection, Statement, dll) harus menggunakan import : 

    import java.sql.* ;

    -  Kode import ini diletakkan di baris paling atas 

    2.  Kode-kode untuk mengakses database tersebut harus diletakkan di antara try …..catch: 

    try {

    // kode diletakkan di sini

    } catch (Exception e) {

    e.printStackTrace() ;

    }

    3. Pada contoh di atas, nama database adalah data_mhs (Tahapan Buat Connection dgn

    DriverManager) 

    4. Pada Netbeans versi 6 ke atas sudah bisa dilakukan penambahan library Connector Java-

    MySQL.

    6.2 Membuat Database dan Struktur Tabel di MySQL

    Mengelola MySQL dengan PHPMyAdmin

    Lebih praktis jika kita menginstal database MySQL Server yang sudah dikemas jadi satu dengan

    PHP dan Apache dalam XAMPP. Kita bisa melakukan administrasi database: menciptakan

    database, membuat tabel dan strukturnya, melakukan query langsung ke database, dan

    semisalnya dengan phpmyadmin.

    PHPMyAdmin merupakan salah satu tool manajemen database MySQL berbasis web, artinya

    interaksi pemeliharaan dilakukan dengan oleh klien dengan menggunakan antarmuka browser.

    Nah yang perlu anda persiapkan adalah software PHPMyAdmin yang sudah tersedia dalam

    XAMPP

    Jika XAMPP sudah terinstall dengan baik maka jalankan XAMPP Control Panel dan pastikan

    bahwa MySQL, dan Apache dalam status running (berjalan), Jika belum running  maka klik tombol

    Start  di sebelah kiri masing-masing seperti ditunjukkan pada Gambar 6.1 dan Gambar 6.2 

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    29/73

     

    Gambar 6.1 XAMPP Control Panel

    Gambar 6.2 Apache dan MySql Running XAMPP Control Panel

    selanjutnya, buka Web Browser (Mozilla, Google Chrome, atau Internet Explorer, dan

    semisalnya) kemudian ketikkan alamat berikut http://localhost/phpmyadmin/ 

    Gambar 6.3 Interface PHPMyAdmin

    Dengan PHPMyAdmin kita dapat melakukan :

    -  Create dan Drop database-  Create, copy, drop dan alter database-  Delete, edit dan menambah field-  Mengeksekusi pernyataan SQL-  Memanage keys pada field-  Load file text ke dalam table

    -dan lain-lain….

    http://localhost/phpmyadmin/http://localhost/phpmyadmin/http://localhost/phpmyadmin/http://localhost/phpmyadmin/

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    30/73

    Kita akan mencoba beberapa fasilitas yang terdapat dalam phpMyAdmin tersebut.

    Create Database

    Kita awali dengan membuat (create) Database baru .Misalkan nama database yang akan kita

    buat adalah penjualan. Cara membuat database tersebut ditunjukkan pada Gambar 6.4

    Gambar 6.4 Membuat database baru

    Membuat Tabel

    Setelah database berhasil dibuat, maka berikutnya kita akan membuat tabel. Tabel yang dibuat

    bernama barang.

    Rancangan Field pada Tabel Barang (Sekedar Contoh)

    Nama Field Tipe Lebar

    kd_brg VarChar 15

    nama_brg VarChar 25

    hrg_beli INT

    hrg_jual INT

    stock_min INT

    Stock INT

    Langkah-langkah membuat tabel :

    1. Isikan nama tabel dan jumlah field yang akan dibuat, kemudian tekan tombol Go. Namatabel: barang, jumlah field (Number of fields): 6 

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    31/73

     

    Gambar 6.5 Pengisian Nama Tabel dan Jumlah Field

    2. Buat field-field sesuai dengan rancangan field tabel di atas, kemudian tekan tombol Save 

    Gambar 6.6 Pengaturan Field Tabel

    3. Tabel barang sudah berhasil tercipta, dan phpmyadmin akan menunjukkan hasil query SQL

    pembuatan tabel

    Gambar 6.7 Tabel barang tercipta dalam database penjualan

    Menambahkan Field baru

    Berikut ini kita akan belajar menambahkan field baru. Di bagian sebelah kiri, pilih database yang

    akan digunakan dan klik nama tabel yang fieldnya akan ditambahkan. Pastikan terlebih dahulu

    berapa field yang akan ditambahkan. Sebagai contoh latihan kita akan menambahkan 1 field

    baru bernama tgl_expired tipe data Varchar, lebar 10.

    Langkah-langkah menambahkan field baru:

    1. Pada bagian bawah keterangan tabel, ketikkan angka 1 di textbox jumlah field yang akanditambahkan (ditunjukkan Gambar 6.8). 

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    32/73

     

    Gambar 6.8 Rencana Penambahan 1 Field Baru

    Selanjutnya klik tombol Go.

    KETERANGAN TAMBAHAN

    Di bagian bawah daftar field, selain diminta memasukkan jumlah field juga diminta memilih

    posisi field yang akan ditambahkan (dalam bentuk radiobutton). Ada 3 jenis pilihan:

    1. At End of Table

    Sebagai field paling akhir

    2. At Beginning of Table

    Sebagai field paling awal

    3. After … (combobox berisi field yang sudah ada) 

    akan disisipkan setelah nama field yang dipilih pada combobox.

    2. Ketikkan field baru beserta atributnya pada kolom yang telah disediakan, kemudian tekantombol Save. Lihat Gambar 6.9 

    Gambar 6.9 Penambahan Field Baru: tgl_expired

    3. Field baru tgl_expired berhasil ditambahkan ke dalam tabel. Phpmyadmin akan

    menunjukkan SQL penambahan field tersebut

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    33/73

     

    Gambar 6.10 Field tgl_expired Berhasil Ditambahkan

    Mengubah/ Mengedit Field

     Adakalanya kita ingin mengubah atribut field yang sudah kita buat. Misalkan mengubah tipe data

    atau lebarnya. Berikut ini akan ditunjukkan cara mengubah tipe data field tgl_expired yang

    sebelumnya Varchar menjadi Date.

    Langkah-langkahnya:

    1. Di bagian sebelah kiri, pilih database yang akan digunakan dan klik nama tabel yangfieldnya akan diubah.

    2. Akan ditampilkan daftar field beserta atributnya.3. Klik (beri tanda centang) ujung paling kiri nama field yang akan diubah, kemudian klik icon

    bertanda pensil pada kolom Action 

    Gambar 6.11 Edit Field

    4. Akan muncul tampilan untuk mengedit Field. Ubahlah atribut yang perlu pengubahan,kemudian klik Save, maka perubahan Field baru akan segera terlihat

    Gambar 6.12 Tampilan Sebelum tgl_expired Diedit

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    34/73

     

    Gambar 6.13 Tampilan Setelah tlg_expired Diedit (sebelum disimpan)

    Gambar 6.14 Hasil pada tgl_expired setelah diubah

    Menghapus Field

    Langkah-langkah menghapus field sama dengan pada proses mengubah/ edit Field, hanya saja

    icon yang diklik bukan tanda pensil tapi tanda silang merah.

    Gambar 6.15 Tanda Silang Merah untuk Menghapus Field

    Menambahkan Data Baru

    Jika sebelumnya proses penambahan, pengubahan, dan penghapusan terkait dengan struktur

    tabel, maka kali ini kita akan belajar cara menambahkan data baru ke dalam tabel. Pada aplikasi

    sebenarnya, data tidak langsung diisikan ke dalam tabel, namun melalui From/ Frame.

    Namun, proses pengisian data langsung ke dalam tabel kadangkala perlu dilakukan, di antaranya

    untuk tahap percobaan/ pengujian proses pencarian data.

    Langkah-langkah untuk menambahkan data baru ke dalam tabel:

    1. Pilih database dan klik tabel yang akan ditambahkan datanya ( di sebelah kiri).2. Klik tab Insert di bagian atas, maka akan muncul tampilan pengisian untuk 2 baris

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    35/73

    Gambar 6.16

    Isikan sesuai Gambar 6.17

    Gambar 6.17 Isian Data Baru pada Tabel Barang

    Untuk tipe data Date, format isiannya adalah 4 digit tahun, 2 digit bulan, dan 2 digit tanggal yang

    dipisahkan oleh separator (bisa berbentuk „-„ atau „\‟ tergantung setting Regional pada Sistem

    Operasi). Lebih aman jika pengisian data Date menggunakan Calendar.

    Gambar 6.18 Icon Calendar.

    3. Jika sudah diisikan data pada 2 baris, kemudian klik tombol Go, sehingga muncul tampilanseperti pada Gambar 6.19 

    Gambar 6.19 SQL Hasil Penambahan 2 Baris Baru

    4. Untuk menampilkan data pada tabel, klik tab Browse 

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    36/73

     

    Gambar 6.20 Tampilan Browse Isi Tabel Barang

    6.3 Membuat Aplikasi Sederhana Input Data Mahasiswa

    Berikut akan ditunjukkan cara membuat aplikasi sederhana input data mahasiswa (NIM dan

    Nama). Berdasarkan penjelasan cara membuat database dan struktur tabel di atas, buatlah

    database dan struktur tabel untuk aplikasi input data mahasiswa dengan ketentuan sebagai

    berikut:

    Database : data_mhs

    Tabel : mhs

    Nama Field Tipe Data Lebar

    nim Varchar 8

    nama Varchar 25

    Pembuatan Project dan Pengaturan Form (JFrame)

    Langkah-langkah membuatnya :

    1. Pilih pada Menu : File > New Project, sehingga muncul tampilan seperti Gambar 6.21

    Gambar 6.21 Jendela New Project

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    37/73

    2. Pastikan yang terpilih adalah Categories: Java dan Project : Java Application, kemudian

    klik Next

    3. Isikan Project Name : Proj_DataMHS dan arahkan Project Location pada folder yang anda

    inginkan. Hilangkan tanda centang pada Set as Main Project dan Create Main Class 

    6.22 Pengaturan Nama dan Lokasi Project

    Klik tombol Finish, sehingga tercipta Project baru Proj_DataMHS.

    4. Tambahkan JFrame Form baru pada project dengan cara: klik kanan project > New >

    JFrame Form

    Gambar 6.23 Pembuatan JFrame Form Baru

    5. Isikan pada Class Name : Input_MHS

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    38/73

     

    Gambar 6.24 Pembuatan Class Input_MHS.java

    Klik tombol Finish, sehingga akan muncul tampilan desain form

    6. Aturlah tata letak ada form (JFrame) sehingga seperti Gambar 6.25

    Gambar 6.25

    Komponen Nama

    JTextField txt_nim

    JTextField txt_nama

    JButton tmbSimpan

    JButton tmbEdit

    JButton tmbHapus

    7. Buatlah Event keyPressed di txt_nim (untuk proses pencarian NIM). Klik kanan pada

    txt_nim > Events > Key > keyPressed 

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    39/73

     

    Gambar 6.26 Pembuatan keyPressed Event pada txt_nim

    8. Klik kanan pada bagian Libraries project > Add Library 

    Gambar 6.27 Add Library Project

    9. Pada bagian Library, pilihlah MySQL JDBC Driver, kemudian klik tombol Add Library 

    Gambar 6.28 Menambahkan Library MySQL JDBC Driver

    10. Library MySQL JDBC Driver sudah ditambahkan pada project

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    40/73

     

    Gambar 6.29 MySQL JDBC Driver Sudah Masuk di Library Project

    11. Klik tab Source pada perancangan form

    Gambar 6.30 Tab Source Input_MHS.java

    12. Pada bagian atas, ketikkan kode :

    import java.awt.event.KeyEvent;

    import java.sql.* ;

    Gambar 6.31 Ketik import java.sql.* ;

    13. Isikan kode pencarian pada keyPressed Event di txt_nim (langkahnya seperti pada Gambar

    6.26 di atas)

    private void txt_nimKeyPressed(java.awt.event.KeyEvent evt) {

    if (evt.getKeyCode()==KeyEvent.VK_ENTER) {

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    41/73

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///data_mhs","root","");

    // Buat Statement

    Statement smt = cn.createStatement();

    // Buat ResultSet

    ResultSet rs = smt.executeQuery

    ("SELECT * FROM mhs where nim='"+txt_nim.getText()+"' ");

    if (rs.next()) {

    txt_nama.setText(rs.getString("nama"));

    } else {

    // tampilkan pesan

     javax.swing.JOptionPane.showMessageDialog(this,"Data Tidak Ada",

    "Pesan",javax.swing.JOptionPane.INFORMATION_MESSAGE);

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    14. Buatlah Event pada tombol Simpan (Klik kanan tombol Simpan > Events > Action >

    actionPerformed)

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    42/73

    private void tmbSimpanActionPerformed(java.awt.event.ActionEvent evt) {

    try {

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

    Connection cn =

    DriverManager.getConnection("jdbc:mysql:"+

    "///data_mhs","root","" );

    Statement smt = cn.createStatement();

    smt.executeUpdate(

    "insert into mhs (nim,nama) values" +

    " ('"+txt_nim.getText()+"'," +

    "'"+txt_nama.getText()+"') ");

    txt_nim.setText("");

    txt_nama.setText("");

    txt_nim.requestFocus();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    15. Buatlah Event pada tombol Edit (Klik kanan tombol Edit > Events > Action >

    actionPerformed)

    private void tmbEditActionPerformed(java.awt.event.ActionEvent evt) {

    try {

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

    Connection cn =

    DriverManager.getConnection("jdbc:mysql:"+

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    43/73

      "///data_mhs","root","" );

    Statement smt = cn.createStatement();

    smt.executeUpdate(

    "update mhs set nama ='"+txt_nama.getText()+"' " +

    "where nim ='"+txt_nim.getText()+"' ") ;

    txt_nim.setText("");

    txt_nama.setText("");

    txt_nim.requestFocus();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    16. Buatlah Event pada tombol Hapus (Klik kanan tombol Edit > Events > Action >

    actionPerformed)

    private void tmbHapusActionPerformed(java.awt.event.ActionEvent evt) {

    try {

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

    Connection cn =

    DriverManager.getConnection("jdbc:mysql:"+

    "///data_mhs","root","" );

    Statement smt = cn.createStatement();

    smt.executeUpdate(

    " delete from mhs where nim ='"+txt_nim.getText()+"' ") ;

    txt_nim.setText("");

    txt_nama.setText("");

    txt_nim.requestFocus();

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    44/73

     

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    LATIHAN

    Buatlah aplikasi sederhana input data buku yang meliputi Kode Buku, Judul, Penulis, dan

    Penerbit.

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    45/73

    BAB 7

    PENGOLAHAN DATA TANGGAL, GAMBAR, DAN NUMERIK DESIMAL

    7.1 Pengolahan Data Tanggal dengan JCalendar

    JCalendar adalah library (pustaka) untuk mengolah data tanggal. Library ini secara asal tidak ada

    dalam Palette bawaan Netbeans. Namun, anda bisa menambahkannya dengan cara

    mendownloadnya di internet. Beberapa alamat situs tempat mendownload komponen JCalendar

    di antaranya:

    -  http://flib.sourceforge.net/JCalendar/doc/index.html -  http://www.ziddu.com/download/13147900/jcalendar.rar.html  

    Jika mendownload dari ziddu tersebut, anda harus me-rename file dari jcalendar.rar menjadi

     jcalendar.jar.

    Bisa saja bersamaan dengan berlalunya waktu, alamat situs tersebut berubah, namun andatetap bisa mencarinya dengan bantuan mesin pencari (search engine) dengan mengetikkan kata

    kunci : “download jcalendar.jar”. 

    Menambahkan JCalendar pada Libraries Netbeans

    Langkah-langkah untuk menambahkan JCalendar pada Libraries Netbeans adalah:

    1. Pada menu, pilih Tools > Libraries

    Gambar 7.1 Menu Tools>Libraries

    2. Akan muncul tampilan Library Manager seperti Gambar 7.2

    http://flib.sourceforge.net/JCalendar/doc/index.htmlhttp://flib.sourceforge.net/JCalendar/doc/index.htmlhttp://www.ziddu.com/download/13147900/jcalendar.rar.htmlhttp://www.ziddu.com/download/13147900/jcalendar.rar.htmlhttp://www.ziddu.com/download/13147900/jcalendar.rar.htmlhttp://flib.sourceforge.net/JCalendar/doc/index.html

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    46/73

     

    Gambar 7.2 Library Manager

    3. Klik tombol New Library…  sehingga muncul tampilan New Library. Pada isian LibraryName isikan JCalendar seperti Gambar 7.3 

    Gambar 7.3 Tampilan New Library

    Klik tombol OK 

    4. Akan muncul kembali tampilan Library Manager, dan Library JCalendar sudah masuk dalam

    daftar Libraries (sebelah kiri)

    Gambar 7.4 JCalendar sudah masuk dalam Libraries

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    47/73

    5. Klik tombol Add Jar/Folder  di sebelah kanan, anda akan diminta untuk mengarahkan pada

    folder tempat library JCalendar berada (jcalendar-1.3.2)

    Gambar 7.5 Browse JAR/Folder

    Klik tombol Add JAR/Folder

    Gambar 7.6 Alamat jcalendar-1.3.2.jar sudah masuk dalam Library Classpath

    Jika diperlukan, tambahkan juga Javadoc untuk referensi tambahan tentang kegunaan dan fungsi

    suatu method.

    Klik tab Javadoc kemudian klik tombol Add ZIP/Folder  

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    48/73

    Gambar 7.7 Tab Javadoc dipilih

    akan muncul tampilan pencarian folder dan arahkan ke tempat di mana jcalendar-1.3.2-javadoc

    berada.

    Gambar 7.8 Pemilihan file jcalendar-1.3.2-javadoc.jar

    Klik Add ZIP/Folder.

    Selanjutnya, klik OK. JCalendar dan dokumentasinya (javadoc) sudah terdaftar dalam libraries.

    Menambahkan JDateChooser dalam Palette

    Jika kita perhatikan Pallete (pilihan object di sebelah kanan) Netbeans secara asal tidak ada

    komponen JDateChooser untuk menangani data tanggal (Date),seperti pada Gambar 10.9.

    Gambar 7.9 Palette (Swing Controls) Default Tidak Ada JDateChooser

    Kita akan menambahkan JDateChooser (komponen) untuk mengisikan tanggal pada Pallete  – 

    Swing Controls. Langkah-langkahnya: 

    1. Pilih Menu Tools > Pallete > Swing/AWT Components

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    49/73

     

    Gambar 7.10 Menu Tools>Palette>Swing/AWT Components

    2. Akan muncul tampilan Palette Manager  

    Gambar 7.11 Palette Manager

    3. Klik tombol Add from Library sehingga muncul tampilan Install Components to Palette 

    Gambar 7.12 Tampilan Install Components to Palette

    Pilih JCalendar, kemudian klik Next

    4.   Akan muncul tampilan seperti Gambar 7.13. Pilih JDateChooser, kemudian klik Next 

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    50/73

     

    Gambar 7.13 Memilih Komponen JCalendar

    5. Pilih Pallete‟s Category dengan Swing Control, kemudian klik Finish 

    Gambar 7.14 Memilih Palette’s Category 

    Jika ada tampilan Pallete Manager, klik Close.

    Hasilnya, JDateChooser akan menjadi anggota baru dalam Pallete Swing Controls 

    Gambar 7.15 JDateChooser sudah terdaftar

    Aplikasi Input Data dengan Tanggal Lahir

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    51/73

    Berikut ini adalah contoh aplikasi sederhana input data yang juga meliputi tanggal lahir.

    Komponen JDateChooser akan digunakan pada aplikasi ini.

    User bisa memasukkan data mahasiswa NIM, Nama, beserta tanggal lahirnya serta melakukan

    proses pencarian, edit, dan hapus data. Ketika NIM diinputkan kemudian ditekan tombol ENTER,

    maka program akan mencari data NIM tersebut di database dan jika ada akan ditampilkan nama

    dan tanggal lahirnya. Jika ada data yang akan diubah: nama atau tanggal lahir, bisa segeradiubah, kemudian ditekan tombol Edit.

    Rancangan JFrame Form

    Gambar 7.16 Desain JFrame Form

    Database dan Tabel

    Nama Database : data_mhs

    Nama Tabel : mhs_tgl_lahir

    Nama

    Field

    Tipe Data Lebar

    nim VarChar 8

    nama VarChar 25

    tgl_lahir Date

    Libraries Project

    Jangan lupa menyertakan libraries Connector ke MySQL pada Project, sehingga pada project

    aplikasi ini akan terdapat 3 libraries:

      JDK 1.6 (default)  JCalendar : karena penggunaan JDateChooser pada tanggal lahir  MySQL JDBC Driver

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    52/73

     

    Gambar 7.17 Tiga Libraries dalam Project

    Pembuatan Method ‘Bersih’ 

    Pada aplikasi ini kita juga belajar membuat method sendiri yang kita beri nama Bersih. Tujuan

    method ini adalah untuk membersihkan tulisan pada komponen JTextField dan JDateChooser

    sehingga siap diisi dengan data baru.

    Sisipkan kode berikut dalam kode program kita:

    private void Bersih(){

    txt_nim.setText("");

    txt_nama.setText("");

    tgl_lahir.setDate(null);

    txt_nim.requestFocus();

     }

    Kode Import (Bagian Atas)

    import java.awt.event.KeyEvent;

    // untuk KeyPress Event pada txt_nim

    import java.sql.* ;

    // untuk akses ke database

    import java.text.SimpleDateFormat;

    // untuk memformat tanggal

    import javax.swing.JOptionPane;

    // untuk tampilan pesan dengan JOptionPane

    Kode pada tombol Simpan

    String tampilan ="yyyy-MM-dd" ;

    SimpleDateFormat fm = new SimpleDateFormat(tampilan);

    String tanggal = String.valueOf(fm.format(tgl_lahir.getDate()));

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    53/73

     

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///data_mhs","root","");

    Statement smt = cn.createStatement();

    String sql =

    "insert into mhs_tgl_lahir (nim,nama,tgl_lahir) values " +

    " ('" + txt_nim.getText()+"','" + txt_nama.getText() +"'," +

    " '" + tanggal + "') " ;

    smt.executeUpdate(sql);

    Bersih();

     } catch (Exception e) {

    e.printStackTrace();

     }

    Penjelasan Kode :

    Format penyimpanan tanggal di MySQL adalah : 4 digit tahun – 2 digit bulan-2 digit tanggal.

    Karena itu, dibuat format terlebih dahulu dengan kode :

    String tampilan ="yyyy-MM-dd" ;

    SimpleDateFormat fm = new SimpleDateFormat(tampilan);

    Variabel tanggal adalah variabel untuk menyimpan ke field tgl_lahir di MySQL. Pengisian data

    variabel tanggal dengan kode:

    String tanggal = String.valueOf(fm.format(tgl_lahir.getDate()));

    Kode pada KeyPress Event txt_nim

    if (evt.getKeyCode()==KeyEvent.VK_ENTER) {

    try {

    // Setting Driver MySQL

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    54/73

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///data_mhs","root","");

    Statement smt = cn.createStatement();

    String sql =

    "select * from mhs_tgl_lahir where nim ='" + txt_nim.getText()+"' " ;

    ResultSet rs = smt.executeQuery(sql);

    if (rs.next()) {

    txt_nama.setText(rs.getString("nama"));

    tgl_lahir.setDate(rs.getDate("tgl_lahir"));

     } else {

     JOptionPane.showMessageDialog(this,"Data Tidak

    Ada","Informasi",JOptionPane.INFORMATION_MESSAGE);

    Bersih() ;

     }

     } catch (Exception e) {

    e.printStackTrace();

     }

     }

    Kode pada tombol Edit

    String tampilan ="yyyy-MM-dd" ;

    SimpleDateFormat fm = new SimpleDateFormat(tampilan);

    String tanggal = String.valueOf(fm.format(tgl_lahir.getDate()));

    try {

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    55/73

      // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///data_mhs","root","");

    Statement smt = cn.createStatement();

    String sql =

    "update mhs_tgl_lahir set nama = '" + txt_nama.getText() +"', " +

    " tgl_lahir = '" + tanggal + "' where nim = '" + txt_nim.getText()+"'";

    smt.executeUpdate(sql);

    Bersih();

     } catch (Exception e) {

    e.printStackTrace();

     }

    Penjelasan :

    Mekanisme edit data adalah: user memasukkan NIM mahasiswa yang akan diedit datanya,

    kemudian menekan tombol Enter. Selanjutnya, data nama atau tanggal diubah sesuai dengan

    yang diinginkan. Kemudian, ditekan tombol Edit.

    Kode pada tombol Hapus

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///data_mhs","root","");

    Statement smt = cn.createStatement();

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    56/73

      String sql =

    "delete from mhs_tgl_lahir where nim = '" + txt_nim.getText()+"'";

    smt.executeUpdate(sql);

    Bersih();

     } catch (Exception e) {

    e.printStackTrace();

     }

    10.2 Pengolahan Data Gambar

    Kadangkala dalam membangun sebuah aplikasi dibutuhkan pengolahan data gambar. Berikut ini

    akan ditunjukkan aplikasi sederhana pengolahan database yang juga menyertakan data gambar.

     Ada 2 cara menyimpan data gambar ke dalam database:

    1. Menyimpan file gambar langsung dalam database, dan tipe field pada database MySQLadalah BLOB dengan variannya (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB, dansemisalnya).

    Cara ini menyebabkan file gambar akan terintegrasi langsung dalam database dan tidak

    tersimpan dalam folder-folder di harddisk. Kelebihan: data gambar lebih aman tersimpan,

    namun kerugiannya, jika data banyak, akan memberatkan kinerja database.

    2. Menyimpan alamat ( path) penyimpanan gambar dalam harddisk.

    Kelebihan : tidak memberatkan database. Kekurangan: jika folder tempat file gambar

    terhapus, maka data gambar hilang.

    Penulis pernah mengerjakan pembuatan sistem informasi perpustakaan daerah. Awalnya,

    penulis menggunakan cara pertama, namun ternyata setelah koleksi buku ribuan, performa

    database terasa melambat. Akhirnya penulis berpindah menggunakan cara ke-dua, namun harus

    terlebih dahulu membuat aplikasi kecil perantara untuk mengekstrak isi gambar dari database

    menjadi file-file yang nantinya akan disimpan dalam folder tertentu.

    Contoh aplikasi pengolahan data gambar yang akan kita buat berikut ini menggunakan cara ke-

    dua.

    Aplikasi Pengolahan Data Gambar

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    57/73

     

    Gambar 7.18 Aplikasi Data Buku dengan Gambar

    User memasukkan kode buku, judul, penulis, dan penerbit, kemudian menekan tombol Browse

    untuk mencari alamat file gambar di komputer. Setelah file dipilih, otomatis gambar file tersebut

    akan ditampilkan di sebelah kanan. Alamat file gambar tersebut ditampilkan pada JTextField

    txt_gambar . Contoh alamat gambar:

    C:\Gambar\dive_into_python.jpg.

    Komponen yang digunakan untuk menampilkan gambar adalah Canvas yang harus diletakkan di

    dalam Panel. Pada saat ditekan tombol Browse, akan muncul jendela pencarian file. Jendela

    pencarian File tersebut menggunakan komponen JFileChooser . Komponen JFileChooser pada

    kasus kita tidak ditampakkan, hanya muncul saat pengkodean.

    Selain menggunakan Canvas, bisa saja kita menampilkan gambar dengan JLabel. Namun,

    ukuran gambar yang akan ditampilkan adalah fixed (tetap). Jika dimensi gambar lebih besar dariukuran JLabel yang dipersiapkan, maka tampilan gambar akan membesar sesuai ukuran

    sebenarnya. Hal itu tentunya akan merusak layout pada JFrame secara keseluruhan.

    Kelebihannya jika menggunakan JLabel, kodenya lebih sederhana.

    Jika menggunakan Canvas, ada banyak kode yang ditambahkan untuk mengatur agar tampilan

    gambar sesuai dengan ukuran Canvas pada JFrame. Meski dimensi file gambar sangat besar,

    namun ia akan tetap cukup ditampilkan pada Canvas. Kekurangannya adalah: jika ukuran file

    gambar lebih kecil dari ukuran Canvas maka ia akan ditampilkan apa adanya, sehingga akan

    terlihat ada ruang kosong pada Canvas yang t idak terpenuhi.

    Desain JFrame

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    58/73

     

    Gambar 7.19 Desain JFrame Aplikasi dgn gambar

    Canvas (canvas1) diletakkan di dalam Panel (panel1) dengan ukuran yang sama. Caranya,

    letakkan terlebih dahulu Panel, dan atur ukurannya, selanjutnya letakkanlah Canvas, dan atur

    ukurannya seluas ukuran Panel.

    Komponen Panel dan Canvas berada pada kelompok AWT pada Palette

    Gambar 7.20 Komponen Panel dan Canvas pada AWT

    Desain Database dan Tabel

    Nama Database : akses_database

    Nama Tabel : buku_gambar

    Field Type Collation

    kd_buku Varchar(3) latin1_swedish_ci

     judul Varchar(25) latin1_general_ci

    penulis Varchar(25) latin1_general_ci

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    59/73

    penerbit Varchar(25) latin1_general_ci

    gambar Varchar(60) latin1_swedish_ci

    Catatan : field gambar Collation-nya harus disetting menjadi latin1_swedish_ci untuk

    menyimpan alamat folder.

    Kode Import

    Pada aplikasi ini diperlukan import beberapa package yang digunakan pada kode. Kode untuk

    import :

    import java.awt.Canvas;

    // Komponen Canvas

    import java.awt.Graphics;

    // Pengolahan grafik

    import java.awt.Image;

    // Komponen Image

    import java.awt.event.KeyEvent;

    // KeyPress Event pada txtkd_buku

    import java.io.File;

    // Pengolahan file tombol Browse

    import java.net.URL;

    // Di Class Painter method setImage

    import java.sql.* ;

    // akses ke database

    import javax.swing.JFileChooser;

    // pemilihan file tombol Browse

    import javax.swing.JOptionPane;

    // menampilkan pesan

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    60/73

    import javax.swing.filechooser.FileFilter;

    // Filter file

    import javax.swing.filechooser.FileNameExtensionFilter;

    // Filter ekstensi file 

    Kode-kode yang Ditambahkan

     Ada beberapa kode yang ditambahkan selain Event-event pada tombol dan KeyPress pada

    txtkd_buku. Kode-kode tambahan tersebut terbagi menjadi 2 :

    1. Kode di bawah initComponents() 2. Kode pembuatan Class Painter  dan method cetak() 

    Kode di bawah initComponents()

    Kode yang terletak di bawah initComponents() adalah kode yang akan dieksekusi pada saat

    pertama kali di jalankan. Kode itu terletak pada Constructor. Constructor adalah pendefinisian

    parameter awal pada suatu class. Sebagai contoh, JFrame yang kita buat adalah sebuah class

    dengan nama buku_gambar.java. Constructor asalnya adalah sebagai berikut:

    public buku_gambar() {

    initComponents();

     }

    Kode constructor biasanya ada di bagian atas setelah kode-kode tentang import.

    Secara asal, tidak ada kode di bawah initComponents. Namun, pada aplikasi ini ada kode-kode

    tambahan, sehingga kode Constructor nya menjadi seperti berikut :

    public buku_gambar() {

    initComponents();

    folder = System.getProperty("user.dir") + File.separator + "images";

    //folder = getClass().getResource("").getFile().toString() + "images";

    cetak(folder);

    new File(folder).mkdir();

     }

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    61/73

    CATATAN

     Ada 2 tempat meletakkan kode yang akan dieksekusi pada saat form pertama kali dijalankan :

    1. Diletakkan di bawah initComponents().  

    2. Buat Event componentShown pada JFrame : Klik kanan pada JFrame > Events >Components

    > componentShown

    Pada bahasa pemrograman lain, eventnya sama dengan LoadEvent atau ActivateEvent

    Kode pembuatan Class Painter dan method cetak()

    Kode untuk pembuatan Class Painter dan method cetak diletakkan di bagian bawah kode berikut:

    public static void main(String args[]) {

     java.awt.EventQueue.invokeLater(new Runnable() {

    public void run() {

    new buku_gambar().setVisible(true);

     }

     });

     }

    Kode yang ditambahkan adalah :

    private void cetak(String str) {

    System.out.println(str);

     }

    public class Painter extends Canvas {

    Image image;

    public void setImage(String file) {

    URL url = null;

    try {

    url = new File(file).toURI().toURL();

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    62/73

      } catch (Exception ex) {

    cetak(ex.toString());

     }

    image = getToolkit().getImage(url);

    repaint();

     }

    public void paint(Graphics g) {

    try {

    double d = image.getHeight(this) / this.getHeight();

    double w = image.getWidth(this) / d;

    double x = this.getWidth() / 2 - w / 2;

    g.drawImage(image, (int) x, 0, (int) (w), this.getHeight(), this);

     } catch (Exception e) {

    String n = e.toString() ;

     }

     }

     }

    private String folder ;

    Setting Custom Creation Code pada Properties canvas1

     Aturlah properties canvas1 (tab Code) dan isikan kode :

    new Painter() ;

    pada Custom Creation Code

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    63/73

     

    Gambar 7.21 Custom Creation Code pada canvas1

    Method ‘Bersih’ 

    Berfungsi untuk membersihkan tulisan pada JTextField dan mengosongkan gambar padacanvas1

    Kodenya adalah :

    private void Bersih(){

    txtkd_buku.setText("");

    txt_judul.setText("");

    txt_penulis.setText("");

    txt_penerbit.setText("");

    txt_gambar.setText("");

    ((Painter) canvas1).setImage("");

    txtkd_buku.requestFocus();

     }

    Kode tombol Simpan

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    64/73

      Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///akses_database","root","");

    Statement smt = cn.createStatement();

    String g = txt_gambar.getText().replace("\\","\\\\");

    txt_gambar.setText(g);

    String sql =

    "insert into buku_gambar (kd_buku,judul,penulis, penerbit,gambar) values ('" +

    txtkd_buku.getText()+"','" + txt_judul.getText() +"','"+txt_penulis.getText()+"',

    '"+txt_penerbit.getText()+"','"+txt_gambar.getText()+"') " ;

    smt.executeUpdate(sql);

    Bersih();

     } catch (Exception e) {

    e.printStackTrace();

     }

    Penjelasan Kode Program

    Untuk menyimpan alamat folder ke dalam database MySQL, formatnya harus disesuaikan

    terlebih dahulu. Sebagai contoh, alamat:

    C:\Gambar\dive_into_python.jpg 

     jika tidak disesuaikan formatnya, di database akan tersimpan sebagai:

    C:Gambardive_into_python.jpg (tanda „\‟ akan hilang). 

    Karena itu dilakukan penyesuaian format pada txt_gambar dengan kode:

    String g = txt_gambar.getText().replace("\\","\\\\");

    txt_gambar.setText(g);

    txt_gambar nantinya adalah sebagai data penyimpan ke field gambar di database MySQL.

    Dengan penyesuaian itu, maka di database akan tersimpan dalam format:

    C:\Gambar\dive_into_python.jpg

    Kode pada tombol Edit

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    65/73

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///akses_database","root","");

    Statement smt = cn.createStatement();

    String g = txt_gambar.getText().replace("\\","\\\\");

    txt_gambar.setText(g);

    String sql =

    "update buku_gambar set judul = '" + txt_judul.getText() +"', " +

    "penulis = '"+txt_penulis.getText()+"', penerbit = " +

    "'"+txt_penerbit.getText()+"', gambar ='"+txt_gambar.getText()+"' " +

    "where kd_buku='"+txtkd_buku.getText()+"' " ;

    smt.executeUpdate(sql);

    Bersih();

     } catch (Exception e) {

    e.printStackTrace();

     }

    Kode pada tombol Hapus

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    66/73

      "///akses_database","root","");

    Statement smt = cn.createStatement();

    String sql =

    "delete from buku_gambar where kd_buku ='"+txtkd_buku.getText()+"'";

    smt.executeUpdate(sql);

    Bersih();

     } catch (Exception e) {

    e.printStackTrace();

     }

    Kode pada tombol Browse

     javax.swing.JFileChooser jfc = new JFileChooser();

    // pembuatan komponen file chooser (pemilih file)

    FileFilter jpgFilter, gifFilter, bothFilter;

     jpgFilter = new FileNameExtensionFilter("Gambar JPEG", "jpg");

    // memfilter untuk ekstensi jpg

    gifFilter = new FileNameExtensionFilter("Gambar GIF", "gif");

    // memfilter untuk ekstensi gif

    bothFilter = new FileNameExtensionFilter("Gambar JPEG dan GIF", "jpg", "gif");

     jfc.setAcceptAllFileFilterUsed(false);

     jfc.addChoosableFileFilter(jpgFilter);

     jfc.addChoosableFileFilter(gifFilter);

     jfc.addChoosableFileFilter(bothFilter);

    if (jfc.showOpenDialog(this) == jfc.APPROVE_OPTION)

    // Jika tombol Open di-klik

    {

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    67/73

      String f = jfc.getSelectedFile().toString();

    txt_gambar.setText(f);

    // tampilkan alamat file di variabel f ke txt_gambar

    ((Painter) canvas1).setImage(f);

    // tampilkan gambar sesuai alamat pada variabel f

     }

    Kode pada KeyPress Event txtkd_buku

    Jika setelah kode buku diisikan dan ditekan tombol Enter, maka akan dilakukan pencarian data

    sesuai kode buku itu. Jika ada, data ditampilkan pada JTextField dan gambarnya ditampilkan ke

    canvas1

    Kodenya adalah :

    if (evt.getKeyCode()==KeyEvent.VK_ENTER) {

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///akses_database","root","");

    Statement smt = cn.createStatement();

    String sql =

    "select * from buku_gambar where kd_buku ='" + txtkd_buku.getText()+"' " ;

    ResultSet rs = smt.executeQuery(sql) ;

    if (rs.next()) {

    txt_judul.setText(rs.getString("judul"));

    txt_penulis.setText(rs.getString("penulis")) ;

    txt_penerbit.setText(rs.getString("penerbit")) ;

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    68/73

      txt_gambar.setText(rs.getString("gambar"));

    ((Painter) canvas1).setImage(txt_gambar.getText());

     } else {

     JOptionPane.showMessageDialog(this,"Data Tidak Ada","Informasi",

     JOptionPane.INFORMATION_MESSAGE);

     }

     } catch (Exception e) {

    e.printStackTrace();

     }

     }

    10.3 Pengolahan Data Numerik Desimal

    Jika sebelumnya telah ditunjukkan cara penyimpanan data bertipe String (varchar) dan Date,maka berikut ini akan ditampilkan cara penyimpanan data bertipe float. Tipe data ini bisamenampung data numerik dengan beberapa angka di belakang koma (dalam setting kita tandadesimalnya adalah titik).

     Aplikasi yang akan dijadikan contoh adalah penyimpanan data mahasiswa yang meliputi : NIM,

    Nama, dan IPK. Data IPK tersebut yang akan disimpan dalam database dengan tipe float.

    Gambar 7.22 Aplikasi Input Data dengan Numerik Desimal

    JTextField pada aplikasi tersebut variabel namenya adalah txt_nim, txt_nama, dan txt_ipk

    Desain Database dan Tabel

    Nama Database : akses_database

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    69/73

    Nama Tabel : ipk

    Field Type

    nim VarChar(3)

    nama VarChar(25)

    Ipk Float

    Kode Import

    import java.awt.event.KeyEvent;

    import java.sql.* ;

    import javax.swing.JOptionPane;

    Pembuatan Method ‘Bersih’ 

    Berfungsi untuk membersihkan isi JTextField dan memfokuskan kursor kembali ke txt_nim.

    Kodenya adalah :

    private void Bersih() {

    txt_nim.setText("");

    txt_nama.setText("");

    txt_ipk.setText("");

    txt_nim.requestFocus();

     }

    Kode tombol Simpan

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///akses_database","root","");

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    70/73

      Statement smt = cn.createStatement();

    float ipk1 = Float.parseFloat(txt_ipk.getText()) ;

    String sql =

    "insert into ipk (nim,nama,ipk) values ('" + txt_nim.getText()+"','" + txt_nama.getText()

    +"','"+txt_ipk.getText()+"') " ;

    smt.executeUpdate(sql);

    Bersih();

     } catch (Exception e) {

    e.printStackTrace();

     }

    Kode KeyPress pada txt_nim

    if (evt.getKeyCode()==KeyEvent.VK_ENTER) {

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///akses_database","root","");

    Statement smt = cn.createStatement();

    String sql =

    "select * from ipk where nim ='" + txt_nim.getText()+"' " ;

    ResultSet rs = smt.executeQuery(sql) ;

    if (rs.next()) {

    txt_nim.setText(rs.getString("nim"));

    txt_nama.setText(rs.getString("nama")) ;

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    71/73

      txt_ipk.setText(String.valueOf(rs.getFloat("ipk"))) ;

     } else {

     JOptionPane.showMessageDialog(this,"Data Tidak Ada","Informasi",

     JOptionPane.INFORMATION_MESSAGE);

     }

     } catch (Exception e) {

    e.printStackTrace();

     }

     }

    Kode pada Tombol Edit

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///akses_database","root","");

    Statement smt = cn.createStatement();

    float ipk1 = Float.parseFloat(txt_ipk.getText()) ;

    String sql =

    "update ipk set nama ='" + txt_nama.getText() +"', ipk = '"+ipk1+"' where nim='" +

    txt_nim.getText()+"' " ;

    smt.executeUpdate(sql);

    Bersih();

     } catch (Exception e) {

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    72/73

      e.printStackTrace();

     }

    Kode pada tombol Hapus

    try {

    // Setting Driver MySQL

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

    // Buat Connection cn

    Connection cn = DriverManager.getConnection("jdbc:mysql:" +

    "///akses_database","root","");

    Statement smt = cn.createStatement();

    String sql =

    "delete from ipk where nim='" + txt_nim.getText()+"' " ;

    smt.executeUpdate(sql);

    Bersih();

     } catch (Exception e) {

    e.printStackTrace();

     }

  • 8/16/2019 Modul Praktikum Bhs Pemrograman IV Java

    73/73

    REFERENSI

    Bima, Ifnu. Aplikasi POS Berarsitektur Three Tier Menggunakan Swing, Hibernate, dan

    Spring.nulisbuku.com. Jakarta.2011.

    Rachmad Hakim & Sutarto, Mastering Java, Elex Media Komputindo, 2009

    Suarga. Dasar Pemrograman Komputer dalam Bahasa Java. ANDI Publisher. 2008

    Tim Pengembang JENI, JENI 1-6, Depdiknas, 2007