eperti yang terlihat pada Gambar 1. Jika Anda
perhatikan, nama file *.java tersebut akan sama dengan nama proyek yang kita buat tadi. File
kode *.java tersebut disebut sebagai main class.
81
Setelah new project berhasil dibuat, maka kita akan masuk ke dalam kode program
dengan nama Proyek_1.java. File inilah yang akan menjadi main class dari program kita.
C. Membuat Form
Untuk membuat sebuah form berbasis GUI, maka kita perlu membuat kelas baru
melalui menu ”File New File”, kemudian akan muncul jendela seperti gambar di bawah
ini.
Pada jendela seperti tampak pada gambar di atas, pastikan Project yang kita pilih adalah
Proyek_1, kemudian pilih ”Swing GUI Forms” pada bagian Categories, lalu pilih ”Jframe
Form” pada bagian File Types. Setelah itu klik ”Next”. Kemudian, masukkan nama kelas
yang ingin dibuat pada bagian Class Name. Sebagai contoh, coba ketikkan
”FormDataKaryawan” seperti terlihat pada gambar di bawah ini.
82
Jika sudah, klik tombol ”Finish”, maka Anda akan dibawa masuk ke dalam area desain GUI
pada Netbeans seperti tampak pada gambar di bawah ini.
D. Meletakkan Komponen Swing pada Form
Pada area desain tersebut, Anda dapat mendesain secara mudah komponen-komponen
yang ingin dimasukkan ke dalam form tersebut dengan cara drag and drop komponen-
komponen yang ada pada tab Swing Containers atau Swing Controls yang berada pada sisi
kanan jendela utama Netbeans. Sebagai contoh, kita akan membuat form isian data karyawan
yang terdiri dari:
a. Nama Lengkap
b. Tempat Lahir
c. Tanggal – Bulan – Tahun Lahir
d. Pendidikan (D3, S1, S2, S3)
e. Status Karyawan (Tetap, Kontrak)
Untuk membuat form isian pada data Nama Lengkap Tempat Lahir, dan Tanggal –
Bulan – Tahun Lahir, gunakan komponen jTextField. Kemudian untuk membuat form
pemilihan pada data Pendidikan dan Status Karyawan menggunakan komponen jComboBox.
Untuk membuat tombol ”Tambah” gunakan komponen jButton. Terakhir, pada bagian
bawah form kita berikan komponen jTable untuk menampilkan setiap data karyawan yang
ditambahkan ke dalam program.
83
Setelah desain GUI selesai dibuat, selanjutnya kita lakukan pengaturan pada
komponen jComboBox agar sesuai dengan masing-masing poin isian. Untuk itu, klik kanan
pada komponen jComboBox ”Pendidikan”, kemudian pilih ”Properties” pada bagian paling
bawah. Setelah tampil jendela Properties, maka lakukan pengeditan pada bagian ”model”
dengan cara mengklik tanda titik-titik pada bagian kanannya.
Setelah muncul jendela baru, isikanlah satu per satu kemungkinan nilai untuk
komponen Pendidikan, yakni D3, S1, S2, dan S3. Jika sudah, klik tombol ”OK”. Lakukan hal
yang sama untuk komponen jComboBox lainnya.
Selanjutnya, kita akan atur tampilan tabel agar sesuai dengan kebutuhan program
untuk menampilkan setiap data karyawan yang ditambahkan ke dalam program. Untuk itu,
klik kanan pada komponen jTable yang ada pada form, kemudian pilih ”Table Contents”.
Pada tab ”Columns” kita bisa mengganti nama header untuk setiap kolom sesuai dengan
84
kebutuhan kita, serta kita juga dapat menambah jumlah kolom pada tabel. Selain itu kita juga
bisa mengatur ukuran ”Prefered Size” untuk masing-masing kolom.
Lalu, pada tab ”Rows” ubah jumlah baris dari 4 menjadi 0. Jika sudah, klik tombol ”Close”,
maka seketika tampilan jTable pada form GUI kita akan berubah seperti ini:
Karena kita menggunakan jTable, maka kita perlu mengimpor library import
javax.swing.table.DefaultTableModel agar operasi pada jTable dapat dilakukan.
Setelah itu, kita juga perlu membuat objek baru yang bertipe DefaultTableModel. Lihat
gambar di bawah ini untuk lebih jelasnya.
85
E. Menulis Kode Aksi pada Tombol
Sebagaimana lazimnya sebuah tombol pada sebuah program komputer, ketika diklik
maka sesuatu akan diproses oleh program tersebut. Dengan kata lain, program akan
mengeksekusi sebuah aksi tertentu ketika tombol diklik oleh user. Pada contoh kali ini, aksi
yang akan dilakukan ketika tombol ”Tambah” ditekan ada dua:
1. Membaca nilai yang diinputkan oleh user, baik pada jTextField, maupun pada
jComboBox.
2. Menampilkan data yang telah diisi user ke dalam jTable.
Untuk itu, klik kanan pada tombol ”Tambah”, lalu pilih ”Events Action
ActionPerformed”, maka secara otomatis method jButton1ActionPerformed() akan
terbentuk pada area source code.
Di dalam method jButton1ActionPerformed()inilah kita akan mengetikkan kode program
untuk membaca data yang diinputkan oleh user dan menampilkannya ke dalam tabel. Namun
sebelumnya, kita perlu mendefinisikan variabel-variabel global yang akan digunakan untuk
menampung data yang diinputkan oleh user. Perhatikan gambar berikut:
86
Setelah itu, kita ketikkan kode aksi pada method jButton1ActionPerformed() sebagai
berikut:
Pada kode program di atas bisa dilihat bahwa method getText() digunakan untuk membaca
data yang diinputkan oleh user melalui jTextField. Data yang dibaca tersebut secara otomatis
bertipe String. Tapi perhatikan pada baris ke-191 s.d. baris ke-193, di sana terdapat proses
konversi dari tipe String menjadi tipe int menggunakan method parseInt() milik objek
Integer. Hal ini dilakukan karena data dari field-field tersebut akan disimpan dalam variabel
bertipe int. Kemudian, kita juga bisa melihat bahwa terdapat method getSelectedItem()
untuk membaca item yang dipilih oleh user melalui komponen jComboBox.
F. Menjalankan Program Melalui Main Class
Kita telah berhasil membuat form berbasis GUI pada kelas FormDataKaryawan.
Langkah selanjutnya adalah melakukan instansiasi untuk membuat sebuah objek yang
merujuk pada kelas FormDataKaryawan. Perhatikan kode program di bawah ini:
87
Jalankan program melalui menu ”Run Run Project (Proyek_1)”.
88
BAB 11
Pengaksesan Basis Data
11.1. Capaian Belajar
Setelah mempelajari bab ini, mahasiswa diharapkan:
1. Memahami proses koneksi database dengan aplikasi
2. Memahami cara membuat database dengan MySQL
3. Memahami cara menyimpan dan mengambil data dari/ ke database
11.2. Indikator
1. Mahasiswa mampu mengimplementasikan koneksi database dengan aplikasi yang
dibuat.
2. Mahasiswa mampu membuat database dengan MySQL
3. Mahasiswa mampu mengimplementasikan proses penyimpanan dan pembacaan data
dari/ ke database.
11.3. Uraian Materi
Pada pembahasan di bab sebelumnya, kita telah berhasil membuat aplikasi berbasis
GUI yang dapat menyimpan dan menampilkan data ke dalam tabel. Akan tetapi, masih ada
kekurangan pada aplikasi tersebut, yakni data yang disimpan dalam aplikasi tersebut masih
bersifat volatile, artinya ketika aplikasi ditutup, maka data yang tadinya disimpan pun hilang.
Pada praktiknya, sebuah aplikasi seringkali membutuhkan sistem penyimpanan data
yang rapi dan terorganisasi dengan baik. Oleh karena itu, penggunaan basis data sangat
diperlukan untuk dapat mengatasi hal tersebut. Integrasi antara aplikasi berbasis Java dengan
DBMS (Database Management System) merupakan hal yang sudah lazim, dan dapat
dilakukan menggunakan library jdbc yang biasanya sudah tersedia dalam IDE Netbeans. Pada
bab ini, kita akan membahas mengenai proses integrasi antara aplikasi Java dengan DBMS
MySQL.
A. Persiapan Basis Data
Untuk menggunakan basis data MySQL, salah satu alternatif yang mudah adalah
dengan menginstall aplikasi XAMPP yang di dalamnya telah terintegrasi fitur phpMyAdmin
yang merupakan platform MySQL berbasis GUI, sehingga memudahkan kita untuk
merancang dan membuat basis data relasional. Anda dapat mengunduh aplikasi tersebut pada
link: https://www.apachefriends.org/download.html.
Setelah Anda berhasil mengunduh dan melakukan instalasi XAMPP pada komputer
Anda, maka buka XAMPP-Control Panel, lalu tekan tombol ”Start” pada fitur ”Apache” dan
”MySQL” seperti yang terlihat pada gambar di bawah.
89
Setelah itu, buka aplikasi web browser pada komputer Anda, lalu ketik URL:
localhost/phpmyadmin. Apabila Anda masuk ke halaman mesin pencari Google, coba
nonaktifkan dahulu sementara jaringan internet Anda. Jika sudah, Anda bisa mulai membuat
basis data baru dan membuat tabel baru seperti di bawah ini. Pada contoh ini, kita membuat
basis data dengan nama ”DataKaryawan” dan membuat sebuah tabel bernama ”Karyawan”
yang terdiri dari delapan buah kolom. Perhatikan gambar di bawah.
Kemudian buatlah kedelapan kolom pada tabel tersebut yang terdiri dari: ID,
NamaLengkap, TempatLahir, TglLahir, BulanLahir, TahunLahir, Pendidikan, dan Status.
Jadikan kolom/ atribut ID sebagai primary key dan set Auto increment. Jika sudah, maka
selanjutnya kita lakukan pengetikan kode di dalam Java.
90
B. Membangun Koneksi dengan JDBC
Pada package Proyek_1 yang telah kita buat pada bab sebelumnya, Lihat tab ”Projects”
pada bagian kiri Netbeans, lalu klik kanan pada ”Libraries”, kemudian pilih ”Add Library”.
Setelah itu, pilih ”MySQL JDBC Driver” pada kolom ”Available Libraries”.
Berikutnya, buka menu ”File New File”, lalu pilih ”Java” pada bagian Categories
dan pilih “Java Class” pada bagian File Types, lalu klik tombol “Next”. Setelah itu, pada
bagian Class Name, isi dengan “KoneksiDB”.
Pada kode program dari kelas KoneksiDB, kita tambahkan kode program seperti di bawah
ini:
91
Pada kode program di atas, kita deklarasikan sebuah variabel bertipe Connection.
Variabel ini kita beri nama ”koneksi”. Kemudian kita buat sebuah method bernama
getKoneksi() yang berfungsi untuk membuat koneksi antara aplikasi Java yang kita buat
dengan DBMS MySQL pada phpMyAdmin. Pada method tersebut, kita menginisialisasi tiga
buah variabel, yakni url, username, dan password. Variabel url berfungsi menyimpan
lokasi penyimpanan database di dalam localhost. Variabel username digunakan untuk
menyimpan username dari DBMS yang kita gunakan, dan variabel password digunakan
untuk menyimpan password dari DBMS yang kita gunakan. Apabila tidak ada password yang
diset, maka variabel password cukup diisi dengan karakter kosong (””).
Selanjutnya, kita tambahkan baris kode program di bawah ini untuk menyimpan data
ke database pada method jButton1ActionPerformed(). Letakkan kode di bawah ini di
bawah kode program yang sudah ada pada method jButton1ActionPerformed().
92
Apabila koneksi database berhasil dibangun dan proses INSERT query berhasil
dilakukan, maka seharusnya data yang diinputkan melalui aplikasi Java yang kita buat juga
tersimpan di dalam database MySQL. Perhatikan gambar di bawah ini.
Namun, jika Anda cermati, ternyata ada sedikit masalah pada aplikasi yang telah kita
bangun sejauh ini. Ketika Anda menutup aplikasi tersebut, lalu membukanya lagi, ternyata
data karyawan yang telah kita simpan sebelumnya tidak tampil pada tabel. Kenapa hal ini
bisa terjadi? Karena kita belum melakukan load data dari database setiap kali aplikasi dibuka.
Oleh karena itu, kita perlu membuat sebuah method baru lagi di dalam kelas
FormDataKaryawan yang berfungsi untuk melakukan load data dari database ke dalam tabel.
93
Setelah itu, kita panggil method loadData() tersebut di dalam constructor
FormDataKaryawan.
Maka, kini setiap kali kita membuka aplikasi FormDataKaryawan, secara otomatis semua
data yang tersimpan di dalam database akan dibaca dan ditampilkan di dalam tabel.
94
BAB 12
Membaca File dari Ms. Excel
12.1. Capaian Pembelajaran
Setelah mempelajari bab ini, mahasiswa diharapkan:
1. Memahami cara untuk membaca dan menulis data ke dalam file Excel
2. Memahami cara menerapkan library jxl dalam program
12.2. Indikator
1. Mahasiswa mampu mengimplementasikan proses pembacaan dan penulisan data dari/
ke dalam file Excel.
2. Mahasiswa mampu menerapkan library jxl dalam program
12.3. Uraian Materi
Salah satu keunggulan Java adalah kaya akan library yang sangat berguna dalam
membangun aplikasi. Salah satu fitur yang akan dibahas pada bab ini adalah library jxl yang
merupakan salah satu library yang cukup banyak dipakai untuk membaca data pada dokumen
berekstensi .xls.
A. Persiapan Library jxl
Library jExcelAPI (jxl) dapat secara mudah dan gratis untuk Anda unduh pada link:
https://sourceforge.net/projects/jexcelapi/files/. Library tersebut memang termasuk library
yang telah cukup lama dikembangkan, namun library ini adalah salah satu yang paling
mudah digunakan dan ringan. Library jxl mampu membaca file Excel versi 95, 97, 2000, XP,
dan 2003. Meskipun tidak dapat membaca format file Excel terbaru saat ini, namun masih
banyak yang menggunakan library ini.
Pada bab ini, kita akan menggunakan kembali package Proyek_1 yang telah kita buat
sebelumnya. Setelah Anda berhasil mengunduh library jxl, maka lakukan extract file tersebut
sehingga kita bisa menemukan folder yang di dalamnya terdapat aplikasi jxl.jar. Setelah itu,
pada tab ”Projects” di Netbeans, klik kanan pada bagian ”Libraries”, lalu pilih ”Add
JAR/Folder”. Setelah itu kita load file jxl.jar yang telah kita unduh sebelumnya.
95
B. Mencetak file Excel
Pada dasarnya, proses mencetak atau menulis data ke dalam file excel adalah dengan
cara menempatkan data satu per satu ke dalam cell yang ada di dalam Excel. Penempatan
data tersebut ditentukan oleh koordinat cell yang dituju. Misalnya, kode s.addCell(new
Label(0, 0, "Hello World")) akan meletakkan kalimat ”Hello World” pada cell baris ke-
0 dan kolom ke-0, atau sama saja dengan cell A1.
Pada pembahasan ini, kita akan mempraktikkan bagaimana mencetak data yang ada
pada jTable agar tersimpan dalam file .xls. Sebelumnya, kita tambahkan dulu sebuah tombol
untuk melakukan aksi tersebut, kemudian kita akses method jButton2ActionPerformed()
dari tombol tersebut untuk kemudian kita isi kode program untuk mencetak file .xls. Sebagai
contoh, pada modul ini, tombol ”Export to Excel” kita letakkan pada bagian bawah sebelah
kanan dari jTable. Perhatikan gambar berikut ini untuk lebih jelasnya.
Kode program yang kita tuliskan di dalam method jButton2ActionPerformed() dapat
dilihat pada gambar di bawah ini.
96
Pada gambar di atas kita membuat sebuah file baru pada direktori D: yang kita beri
nama DataKaryawan.xls (baris ke-291). Setelah itu, kita membuat pula sebuah sheet baru
bernama ”Karyawan” (baris ke-294). Pada baris ke-297 s.d. baris ke-305, kita membaca data
pada jTable secara cell per cell, kemudian mengalokasikan cell pada file DataKaryawan.xls
yang nantikan akan digunakan untuk menulis data yang dibaca tersebut. Selanjutnya, pada
baris ke-314 s.d. baris ke-315, kita menampilkan dialog box untuk menginformasikan kepada
user bahwa data telah berhasil ditulis dalam file Excel.
C. Membaca File Excel
Pada pembahasan ini, kita akan membuat sebuah form GUI baru untuk menampilkan
data yang dibaca dari file Excel. Mula-mula kita buat ”New Project” dari menu ”File New
Project”, lalu pilih ”Java” pada bagian Categories, kemudian pilih ”Java Application” pada
bagian Projects. Beri nama ”BacaExcel” pada bagian Project Name. Lakukan import library
jxl ke dalam project BacaExcel ini dengan cara seperti yang telah dijelaskan sebelumnya.
Setelah itu, kita buat lagi sebuah kelas baru melalui menu ”File New File”, lalu
pilih ”Swing GUI Forms” pada bagian Categories, lalu pilih ”JFrame Form” pada bagian File
Types. Beri nama file tersebut dengan nama ”FormBacaExcel”. Selanjutnya kita desain form
GUI seperti gambar di bawah ini:
97
Pada tombol ”Baca File Excel”, kita klik dua kali sehingga secara otomatis Netbeans
akan membuatkan method jButton1ActionPerformed(). Pada method tersebut kita isikan
kode program di bawah ini:
*Catatan: Anda harus terlebih dahulu membuat table model untuk jTable yang Anda buat
pada FormBacaExcel. Cara membuat table model telah dijelaskan pada Bab 10.
Selanjutnya, jangan lupa melakukan instansiasi objek FormBacaExcel pada main
class, yakni file BacaExcel.java.
98
Ketika program dijalankan dan tombol ”Baca File Excel” diklik, maka aplikasi akan
membaca file Excel yang telah disiapkan sebelumnya dan menampilkannnya ke dalam tabel.
99
Bab 13
Java Class Library
13.1. Capaian Pembelajaran
Setelah mempelajari bab ini, mahasiswa diharapkan:
1. Mengenal Java Library
2. Memahami penggunaan Java Library
3. Memahami cara pembuatan Java Library.
13.2. Indikator
1. mahasiswa mampu memanfaatkan library pada Java
2. melakukan kompilasi kode program Java menjadi aplikasi .jar.
3. Mahasisw mampu membangun aplikasi berbasis GUI sederhana untuk pemesanan
tiket pesawat terbang.
4. mahasiswa mampu mengintegrasikan beberapa library dalam satu program
13.3. Uraian Materi
A. Library
Library merupakan kumpulan perintah yang dapat digunakan oleh aplikasi maupun
platform lain. Pada dasarnya library sama dengan sebuah aplikasi. Library dapat menampung
kelas-kelas yang berfungsi untuk melakukan tugas tertentu dan dipanggil dari aplikasi lain.
Dalam pemrograman Java, library di-compile menjadi Java Archive (JAR).
Library akan berguna untuk situasi sebagai berikut
a. Ketika membangun banyak aplikasi yang memilki komponen sama seperti services
maupun method.
b. Ketika membangun aplikasi yang bervariasi, seperti versi trial dan versi paid dimana
keduanya membutuhkan komponen inti yang sama.
Untuk membuat library, hanya perlu memindahkan kelas atau file yang ingin digunakan
kembali pada aplikasi lain ke sebuah package tersendiri dan di-compile menjadi sebuah .jar
Pemanggilan kelas maupun method yang ada pada library sama seperti pemanggilan kelas
atau method dalam project, yaitu dengan melakukan import pada kelas yang akan memanggil
method dari library.
B. Distribusi aplikasi
Aplikasi yang telah kita buat menggunakan Java dapat didistribusikan menjadi sebuah
aplikasi independen dengan cara mengkompilasi kode program Java tersebut menjadi file
berekstensi .jar. Jika kita menggunakan IDE Netbeans dalam membangun aplikasi, maka
proses kompilasi file .jar ini sangat mudah. Anda cukup masuk ke menu ”Run Clean and
Build Project”, maka secara otomatis Netbeans akan membuatkan file .jar pada direktori
”dist” pada project yang Anda buat.
100
Perlu diingat, apabila Anda membuat aplikasi yang terkoneksi dengan database
MySQL, maka Anda harus mengaktifkan dulu server database-nya, baru dapat menjalankan
aplikasi .jar. Jika Anda merasa kurang praktis menggunakan database yang tidak terintegrasi
di dalam aplikasi yang Anda buat, maka ada beberapa alternatif DBMS lain yang sifatnya
terintegrasi dengan aplikasi yang dibuat, misalnya: Java DB, Apache Derby, H2, atau
HSQLDB. DBMS tersebut memungkinkan kita membuat aplikasi yang terintegrasi dengan
DBMS di dalamnya, sehingga ketika aplikasi dijalankan, secara otomatis DBMS juga
diaktifkan.
13.4. Latihan
A. PEMBUATAN LIBRARY
Langkah-langkah pembuatan java library sebagai berikut
a. Klik File New Project Pilih Categories: Java, Project: Java Class Library.
b. Klik Next, kemudian berikan nama project dan pilih lokasi penyimpanan. Klik
Finish
101
c. Setelah klik finish, maka pada Project Browser akan muncul seperti pada gambar
berikut
d. Klik kanan pada Source Packages dan pilih New Java Packages…
e. Beri nama package dan klik finish.
f. Klik kanan pada package yang telah diberi nama tadi dan pilih New Java Class…
102
g. Beri nama class dan klik finish
h. Tulliskan syntax berikut pada Calculator.class
public class Calculator {
//PENJUMLAHAN
public static double sum(double firstNumber, double secondNumber){
return firstNumber + secondNumber;
}
//PENGURANGAN
public static double subtract(double firstNumber, double secondNumber){
return firstNumber - secondNumber;
}
//PERKALIAN
public static double multiple(double firstNumber, double secondNumber){
return firstNumber * secondNumber;
}
//PEMBAGIAN
public static double divide(double firstNumber, double secondNumber){
return firstNumber / secondNumber;
}
}
i. Klik Run Build Project.
103
Library yang sudah dibuild akan berada di folder /dist.
Library Core.jar ini sudah dapat digunakan oleh aplikasi lainnya.
B. IMPLEMENTASI LIBRARY DALAM APLIKASI
a. Menambah Library ke aplikasi
Klik File New Project Pilih Categories: Java, Project: Java Application
Klik Next, kemudian berikan nama project dan pilih lokasi penyimpanan. Klik
Finish.
Project baru akan muncul di project browser. Klik kanan pada Libraries yang ada di
project baru, kemudian pilih Add Library…
104
Klik Create Library…
Berikan nama library dan tipe library. Lalu tekan Ok
Pada Classpath, klik Add Jar/Folder…
Kemudian arahkan ke lokasi Core.jar yang dibuat sebelumnya. Lakukan hal yang
sama pada tab Sources. Jika sudah, tekan OK.
Pilih library yang sudah dibuat dan tekan Add Library
105
Maka pada project browser akan terlihat seperti gambar berikut
b. Membuat Aplikasi
Buatlah form baru seperti pada gambar berikut
Form terdiri dari tiga TextField, empat Label, dan empat Button.
TextField
- txtFirstNumber, untuk input angka pertama.
- txtSecondNumber, untuk input angka kedua.
- txtResult, untuk menampilkan hasil operasi.
Button
- btnSum, untuk penjumlahan.
- btnSubtract, untuk pengurangan.
- btnMultiple, untuk perkalian.
- btnDivide, untuk pembagian.
106
Agar form yang dibuat dapat tampil ketika program dijalankan, tuliskan sintaks
berikut pada main class project.
public class SimpleCalculator {
public static void main(String[] args) {
SimpleCalculatorFrame frame = new SimpleCalculatorFrame();
frame.setVisible(true);
}
}
Tuliskan sintaks berikut pada class form yang sudah dibuat.
Buat variable global untuk pesan error.
private final String errorTitle = "Error";
private final String errorMessage = "First Number or Second Number must be
filled with number";
Pada constructor class form tuliskan sintaks berikut untuk inisiasi.
public SimpleCalculatorFrame() {
initComponents();
txtFirstNumber.setHorizontalAlignment(SwingConstants.RIGHT);
txtSecondNumber.setHorizontalAlignment(SwingConstants.RIGHT);
txtResult.setHorizontalAlignment(SwingConstants.RIGHT);
txtResult.setEnabled(false);
}
Pada btnSum tuliskan sintaks berikut
private void btnSumActionPerformed(java.awt.event.ActionEvent evt) {
String firstNumber = txtFirstNumber.getText();
String secondNumber = txtSecondNumber.getText();
if (firstNumber.equals("") || secondNumber.equals("")) {
JOptionPane.showMessageDialog(null,
errorMessage,
errorTitle,
JOptionPane.ERROR_MESSAGE);
}else{
double first = Double.parseDouble(firstNumber);
double second = Double.parseDouble(secondNumber);
double result = Calculator.sum(first, second); // Penjumlahan
txtResult.setText(String.valueOf(result));
}
}
Pada btnSubtract tuliskan sintaks berikut
private void btnSubtractActionPerformed(java.awt.event.ActionEvent evt) {
String firstNumber = txtFirstNumber.getText();
String secondNumber = txtSecondNumber.getText();
if (firstNumber.equals("") || secondNumber.equals("")) {
JOptionPane.showMessageDialog(null,
107
errorMessage,
errorTitle,
JOptionPane.ERROR_MESSAGE);
}else{
double first = Double.parseDouble(firstNumber);
double second = Double.parseDouble(secondNumber);
double result = Calculator.subtract(first, second); // Pengurangan
txtResult.setText(String.valueOf(result));
}
}
Pada btnDivide tuliskan sintaks berikut
private void btnDivideActionPerformed(java.awt.event.ActionEvent evt) {
String firstNumber = txtFirstNumber.getText();
String secondNumber = txtSecondNumber.getText();
if (firstNumber.equals("") || secondNumber.equals("")) {
JOptionPane.showMessageDialog(null,
errorMessage,
errorTitle,
JOptionPane.ERROR_MESSAGE);
}else{
double first = Double.parseDouble(firstNumber);
double second = Double.parseDouble(secondNumber);
double result = Calculator.divide(first, second); // Pembagian
txtResult.setText(String.valueOf(result));
}
}
108
Pada btnMultiple tuliskan sintaks berikut
private void btnMultipleActionPerformed(java.awt.event.ActionEvent evt) {
String firstNumber = txtFirstNumber.getText();
String secondNumber = txtSecondNumber.getText();
if (firstNumber.equals("") || secondNumber.equals("")) {
JOptionPane.showMessageDialog(null,
errorMessage,
errorTitle,
JOptionPane.ERROR_MESSAGE);
}else{
double first = Double.parseDouble(firstNumber);
double second = Double.parseDouble(secondNumber);
double result = Calculator.multiple(first, second); // Penjumlahan
txtResult.setText(String.valueOf(result));
}
}
Hasil running aplikasi sebagai berikut
Running awal
Handling error ketika input kosong
109
Hasil perkalian
110
BAB 14
Mengakses Port pada Hardware Komputer
14.1. Capaian Pembelajaran
Setelah mempelajari bab ini, mahasiswa diharapkan:
1. Mengetahui cara menerapkan library rxtx dalam program
2. Mengetahui cara komunikasi serial pada comm port
14.2. Indikator
1. Mahasiswa mampu mengintegrasikan library rxtx dalam program
2. Mahasiswa mampu mengimplementasikan kode program untuk melakukan komunikasi
pada comm port.
14.3. Uraian Materi
Sebuah aplikasi yang melibatkan komunikasi dengan hardware komputer dapat
dilakukan dalam Java, salah satunya dengan menggunakan library Java Comm yang bisa
Anda unduh dari link berikut ini: http://rxtx.qbang.org/wiki/index.php/Download. Sebagai
informasi, jika Anda menggunakan IDE Netbeans, maka sebaiknya Anda mengunduh rxtx
versi binary file.
A. Mencari COMM Port yang Aktif
Untuk mencari comm port yang sedang aktif menggunakan library rxtx, kita bisa
menggunakan method di bawah ini:
111
B. Mencari Semua COMM Port yang Ada
Untuk mencari semua comm port, baik yang aktif ataupun yang tidak menggunakan
library rxtx, kita bisa menggunakan method di bawah ini:
C. Komunikasi Serial
Berikut adalah contoh kode untuk melakukan komunikasi seriap pada comm port
menggunakan library rxtx.
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class TwoWaySerialComm
{
public TwoWaySerialComm()
{
super();
}
void connect ( String portName ) throws Exception
{
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if ( portIdentifier.isCurrentlyOwned() )
{
System.out.println("Error: Port is currently in use");
}
else
{
CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);
if ( commPort instanceof SerialPort )
{
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PA
RITY_NONE);
112
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
(new Thread(new SerialReader(in))).start();
(new Thread(new SerialWriter(out))).start();
}
else
{
System.out.println("Error: Only serial ports are handled by this example.");
}
}
}
/** */
public static class SerialReader implements Runnable
{
InputStream in;
public SerialReader ( InputStream in )
{
this.in = in;
}
public void run ()
{
byte[] buffer = new byte[1024];
int len = -1;
try
{
while ( ( len = this.in.read(buffer)) > -1 )
{
System.out.print(new String(buffer,0,len));
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}
/** */
public static class SerialWriter implements Runnable
{
OutputStream out;
public SerialWriter ( OutputStream out )
{
this.out = out;
}
public void run ()
{
try
{
int c = 0;
while ( ( c = System.in.read()) > -1 )
{
this.out.write(c);
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}
public static void main ( String[] args )
{
try
{
(new TwoWaySerialComm()).connect("COM3");
}
113
catch ( Exception e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}