Halo teman – teman, pada artikel kali ini kita akan membahas mengenai pembuatan program yang akan menghasilkan faktorial dari sebuah bilangan pada bahasa Kotlin.
Dalam matematika, faktorial dari bilangan aslin yaitu hasil perkalian selang bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial ditulis sebagai n! dan dinamakan n faktorial.
Sebagai contoh, 4! yaitu mempunyai nilai 1×2×3×4 = 24.
Pada program Kotlin faktorial ini kita akan mengambil bilangan bulat dan menampilkan faktorial dari bilangan tersebut dan menghitung nilai nya menggunakan looping.
Program
fun main() {
var result: Int = 1
println("Masukkan bilangan bulat : ")
var n: Int = readLine()!!.toInt();
if (n <= 0){
print("Angka yang dimasukkan bukan bilangan bulat atau adalah angka 0")
} else {
for (i in 1..n) {
result *= i
}
print("Angka faktorial " + n + " adalah " + result)
}
}
Output nya adalah
Masukkan bilangan bulat :
4
Angka faktorial 4 adalah 24
Penjelasan
Kita akan membuat programnya di dalam method main. Buat variabel penampung hasil faktorial nya. Selanjutnya, buat variabel penampung hasil input user dari console. Jangan lupa untuk mengubah tipe data dari masukan user menjadi integer.
var result: Int = 1
println("Masukkan bilangan bulat : ")
var n: Int = readLine()!!.toInt();
Kita cek terlebih dahulu apakan nilai yang dimasukkan oleh user lebih dari 0. Jika nilai n kurang dari 0 maka akan di keluarkan output gagal.
if (n <= 0){
print("Angka yang dimasukkan bukan bilangan bulat atau adalah angka 0")
} else {
// Program
}
Selanjutnya, di bagian blok else kita buat loopingnya terlebih dahulu.
for (i in 1..n) {
// operasi
}
blok looping tersebut akan dijalankan ketika nilai i masih kurang atau sama dengan dari nilai yang diinputkan oleh user.
Di dalam blok looping nya kita panggil variabel faktorial yang nilai nya akan dikalikan dengan variable i
Halo teman – teman, pada artikel kali ini kita akan membahas mengenai pembuatan program yang akan menghasilkan faktorial dari sebuah bilangan pada bahasa Java.
Dalam matematika, faktorial dari bilangan aslin yaitu hasil perkalian selang bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial ditulis sebagai n! dan dinamakan n faktorial.
Sebagai contoh, 4! yaitu mempunyai nilai 1×2×3×4 = 24.
Pada program Java faktorial ini kitaakan mengambil bilangan bulat dan menampilkan faktorial dari bilangan tersebut dan menghitung nilai nya menggunakan looping.
Program
import java.util.Scanner;
class MainProgram {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int faktorial = 1;
System.out.println("Masukkan bilangan bulat : ");
int n = in.nextInt();
if (n <= 0){
System.out.println("Angka yang dimasukkan bukan bilangan bulat atau adalah angka 0");
} else {
for (int i = 1; i <= n; i++){
faktorial *= i;
}
System.out.println("Hasil faktorial dari " + String.valueOf(n) + " adalah " + String.valueOf(faktorial));
}
in.close();
}
}
Output nya adalah
java -cp /tmp/ChXuRqGaTi MainProgram
Masukkan bilangan bulat :
10
Hasil faktorial dari 10 adalah 3628800
Penjelasan
Yang pertama, kita import library scanner untuk mengambil input dari console atau command line.
import java.util.Scanner;
Buat objek scannernya terlebih dahulu.
Scanner in = new Scanner(System.in);
Lalu, kita buat programnya di dalam method main. Buat variabel penampung hasil faktorial nya. Selanjutnya, buat variabel penampung hasil input user dari console.
int n = in.nextInt();
Kita cek terlebih dahulu apakan nilai yang dimasukkan oleh user lebih dari 0. Jika nilai n kurang dari 0 maka akan di keluarkan output gagal.
if (n < 0){
System.out.println("Angka yang dimasukkan bukan bilangan bulat");
} else {
// Program
}
Selanjutnya, di bagian blok else kita buat loopingnya terlebih dahulu.
for (int i = 1; i <= n; i++){
// Operasi
}
blok looping tersebut akan dijalankan ketika nilai i masih kurang atau sama dengan dari nilai yang diinputkan oleh user.
Di dalam blok looping nya kita panggil variabel faktorial yang nilai nya akan dikalikan dengan variable i
Halo teman – teman, pada artikel kali ini kita akan membahas mengenai manipulasi variable tipe dengan tipe data String pada bahasa Kotlin.
String merupakan salah satu tipe data non – primitif yang digunakan untuk menampung kalimat, kata – kata, atau kumpulan karakter.
Terkadang, dalam dunia pemrograman ada kasus dimana kita harus melakukan penggabungan kalimat, pemisahan kalimat, merubah sebuah kalimat menjadi huruf kapital, dan lainnya. Operasi tersebut disebut dengan manipulasi String.
Pada bahasa pemrograman Kotlin sendiri disediakan beberapa fungsi yang digunakan untuk operasi manipulasi String. Kita akan bahas satu persatu.
1. Concat
Untuk menggabungkan beberapa kata atau Kalimat pada Kotlin, disebut dengan concatenation. Di Kotlin sendiri ada beberapa cara yang populer untuk melakukan concat.
// Menggunakan karakter (+) :
var namaDepan = "Rafi"
var namaBelakang = "Izzatul"
var namaLengkap = namaDepan + " " + namaBelakang
println(namaLengkap)
// output : Rafi Izzatul
// Menggunakan interpolasi
var namaDepan = "Rafi"
var namaBelakang = "Izzatul"
var namaLengkap = "$namaDepan $namaBelakang"
println(namaLengkap)
// output : Rafi Izzatul
2. Substring
Substring merupakan fungsi yang digunakan untuk mengambil beberapa karakter dari sebuah Kalimat atau kata. Fungsi ini memiliki 2 parameter, yaitu index awalan dan juga index akhir. Indexnya diambil sesuai dengan urutan karakter yang ada di Kalimat tersebut. (Karakter pertama berindex 0).
var namaLengkap = "Rafi Izzatul"
var namaBelakang = namaLengkap.substring(5, 12)
println(namaBelakang)
// output : Izzatul
3. Contains
Untuk mengecek Apakah sebuah Kalimat mengandung karakter yang kita tentukan atau tidak, kita bisa memakan fungsi contains. Fungsi ini akan mengembalikan atau menghasilkan boolean true jika Kalimat tersebut mengandung karakter yang kita inputkan. Sebaliknya, fungsi contains akan menghasilkan boolean false jika Kalimat tersebut tidak mengandung Kalimat yang kita inputkan.
ToLowerCase adalah fungsi yang digunakan untuk merubah Kalimat atau karakter menjadi huruf kecil.
var namaDepan = "RAFI"
println(namaDepan.toLowerCase())
// output : rafi
5. ToUpperCase
Kebalikan dari fungsi ToLowerCase, fungsi ToUpperCase adalah fungsi yang digunakan untuk merubah Kalimat atau karakter menjadi huruf kapital.
var namaBelakang = "izzatul"
println(namaBelakang.toUpperCase())
// output : IZZATUL
6. Replace
Fungsi Replace merupakan fungsi yang digunakan untuk mengganti karakter yang ada di dalam String menjadi karakter baru yang kita inginkan. Fungsi ini mempunyai 2 parameter. Parameter yang pertama berisi karakter apa yang ingin kita ganti dalam sebuah string. Parameter yang kedua berisi karakter baru yang akan menggantikan karakter lama yang kita isi pada parameter pertama.
var greeting = "Hai"
println(greeting.replace("a", "e"))
// output : Hei
7. Length
Length adalah fungsi yang digunakan untuk menghitung berapa banyak jumlah karakter yang ada di dalam sebuah String.
var namaLengkap = "Rafi Izzatul"
println(namaLengkap.length)
// output : 12
Oke teman teman, sekian dulu artikel kali ini. Sampai jumpa di artikel berikutnya.
Halo teman – teman, pada artikel kali ini kita akan membahas mengenai manipulasi variable tipe dengan tipe data String pada bahasa Java.
String merupakan salah satu tipe data non – primitif yang digunakan untuk menampung kalimat, kata – kata, atau kumpulan karakter.
Terkadang, dalam dunia pemrograman ada kasus dimana kita harus melakukan penggabungan kalimat, pemisahan kalimat, merubah sebuah kalimat menjadi huruf kapital, dan lainnya. Operasi tersebut disebut dengan manipulasi String.
Pada bahasa pemrograman Java sendiri disediakan beberapa fungsi yang digunakan untuk operasi manipulasi String. Kita akan bahas satu persatu.
1. Concat
Untuk menggabungkan beberapa kata atau Kalimat pada Java, disebut dengan concatenation. Di Java sendiri ada beberapa cara untuk melakukan concat.
Substring merupakan fungsi yang digunakan untuk mengambil beberapa karakter dari sebuah Kalimat atau kata. Fungsi ini memiliki 2 parameter, yaitu index awalan dan juga index akhir. Indexnya diambil sesuai dengan urutan karakter yang ada di Kalimat tersebut. (Karakter pertama berindex 0).
Untuk mengecek Apakah sebuah Kalimat mengandung karakter yang kita tentukan atau tidak, kita bisa memakan fungsi contains. Fungsi ini akan mengembalikan atau menghasilkan boolean true jika Kalimat tersebut mengandung karakter yang kita inputkan. Sebaliknya, fungsi contains akan menghasilkan boolean false jika Kalimat tersebut tidak mengandung Kalimat yang kita inputkan.
Fungsi Replace merupakan fungsi yang digunakan untuk mengganti karakter yang ada di dalam String menjadi karakter baru yang kita inginkan. Fungsi ini mempunyai 2 parameter. Parameter yang pertama berisi karakter apa yang ingin kita ganti dalam sebuah string. Parameter yang kedua berisi karakter baru yang akan menggantikan karakter lama yang kita isi pada parameter pertama.
String greeting = “Hai”;
System.out.println(greeting.replace("a", “e"));
// output : Hei
7. Length
Length adalah fungsi yang digunakan untuk menghitung berapa banyak jumlah karakter yang ada di dalam sebuah String.
Pada kesempatan kali ini, penulis akan melanjutakan tutorial yang sebelumnya baru sampai pada tahap persiapan database connector dan operasi-operasi CRUD yang nantinya akan digunakan. Untuk dapat mengikuti tutorial ini, anda harus sudah menyelesaikan semua tahap pada tutorial part 2. Hal ini karena pada part ini, penulis akan memberikan tutorial pembuatan GUI-nya dan cara menggunakan class-class yang sudah dibuat sebelumnya dalam GUI java yaitu Swing.
1. Apa Itu Swing ?
Swing Merupakan API (Application Programming Interface) yang menyediakan Graphical User Interface (GUI) untuk program Java dan applet. Dengan dah Swing, kita dapat membuat GUI yang nantinya akan memudahkan pengguna aplikasi dalam mengoperasikan aplikasi.
2. Membuat Form Input
Sebelum memulai membuat design tampilan dari aplikasi, sebelumnya buatlah package baru dan beri nama ui, seperti yang nampak pada gambar dibawah ini :
Didalam package ui tersebut buatlah JFrame baru dengan nama FormBukuActivity, hasilnya seperti yang tampak pada gambar dibawah ini :
Untuk mulai mendesign tampilan ui-nya, anda dapat menarik setiap komponen yang anda butuhkan dari jendela palette netbeans seperti yang tampak pada gambar di bawah ini :
Sekarang buatlah design FormBukuActivity menjadi seperti yang tampak seperti dibawah ini :
Sekarang klik kanan pada kolom isian judul(JTextField) dan pilih change variable name sehingga muncul kotak dialog seperti dibawah ini :
Isikan kolom New Name menjadi judulField sehingga menjadi seperti yang tampak pada gambar dibawah ini :
Lakukan hal yang sama pada komponen terhadap komponen-komponen lainnya dengan ketentuan dibawah ini :
JTextField pengarang nama variabelnya menjadi pengarangField.
JLabel judul nama variabelnya menjadi titleActivity
JRadioButton yudhistira nama variabelnya menjadi yudhistiraRb
JRadioButton airlangga nama variabelnya menjadi airlanggaRb
JRadioButton gramedia nama variabelnya menjadi gramediaRb
JRadioButton yang lain nama variabelnya menjadi ygLainRb
JComboBox tahun terbit nama variabelnya menjadi tahunTerbitCb
JButton simpan nama variabelnya menjadi saveBtn
JButton batal nama variabelnya menjadi cancelBtn
Jika sudah, maka pada jendela navigator akan tampak menjadi seperti dibawah ini :
Sekarang tambahkan komponen JButtonGroup ke design FormBukuActivity, komponen bukanlah komponen yang dapat dilihat pada design jadi untuk memastikan anda sudah menambahkan komponen tersebut dapat dilihat pada jendela navigator. Untuk lebih jelasnya anda dapat melihat gambar di bawah ini :
Sekarang masukkan setiap komponen JRadioButton yang kita punya kedalam JButtonGroup tersebut, caranya dapat dilihat melalui gambar dibawah ini :
Seperti yang terlihat diatas, pilih semua JRadioButton lalu ganti nilai properties buttonGroup menjadi buttonGroup1. Jika sudah sudah berhasil maka selesai sudah design FormBukuActivity.
3. Menyiapkan FormBukuActivity Event
FormBukuActivity merupakan form input yang nantinya akan digunakan untuk 2 kegiatan, yaitu untuk kegiatan penambahan data baru(Create) dan juga perubahan data(Update). Klik tab source seperti yang tampak pada gambar dibawah ini :
Kemudian ketikkan kode dibawah ini tepat dibawah constructor class dari FormBarangActivity :
private Buku buku;
private void showError(String message) {
JOptionPane.showMessageDialog(this, message, "Error", JOptionPane.ERROR_MESSAGE);
}
private void showSucceed(String message) {
JOptionPane.showMessageDialog(this, message, "Sukses", JOptionPane.INFORMATION_MESSAGE);
}
private void showOldDataOf(Buku buku) {
judulField.setText(buku.getJudulBuku());
pengarangField.setText(buku.getPengarang());
String penerbit = buku.getPenerbit();
switch (penerbit) {
case "Yudhistira": yudhistiraRb.setSelected(true);break;
case "Gramedia":gramediaRB.setSelected(true);break;
case "Airlangga":airlanggaRB.setSelected(true);break;
default:ygLainRb.setSelected(true);break;
}
tahunTerbitCb.setSelectedItem(String.valueOf(buku.getTahunTerbit()));
}
public void setBuku(Buku buku) {
this.buku = buku;
showOldDataOf(buku);
}
private String getSelectedPenerbit() {
if (yudhistiraRb.isSelected()) {
return "Yudhistira";
} else if (gramediaRB.isSelected()) {
return "Gramedia";
} else if (airlanggaRB.isSelected()) {
return "Airlangga";
} else if (ygLainRb.isSelected()) {
return "Yang Lain";
} else {
return "";
}
}
private boolean validateAllInput() {
String judul = judulField.getText();
if (judul.isEmpty()) {
showError("Judul buku masih kosong");
return false;
}
String pengarang = pengarangField.getText();
if (pengarang.isEmpty()) {
showError("Pengarang buku masih kosong");
return false;
}
String penerbit = getSelectedPenerbit();
if (penerbit.isEmpty()) {
showError("Penerbit belum ada yang dipilih");
return false;
}
String tahunTerbit = tahunTerbitCb.getSelectedItem().toString();
if (tahunTerbit.isEmpty()) {
showError("Tahun terbit belum ada yang dipilih");
return false;
}
return true;
}
private void collectDataFor(Buku buku) {
String judul = judulField.getText();
String pengarang = pengarangField.getText();
String penerbit = getSelectedPenerbit();
String tahunTerbit = tahunTerbitCb.getSelectedItem().toString();
buku.setJudulBuku(judul);
buku.setPengarang(pengarang);
buku.setPenerbit(penerbit);
buku.setTahunTerbit(Integer.parseInt(tahunTerbit));
}
private void saveNewData() {
buku = new Buku();
collectDataFor(buku);
BukuDatasource datasource = new BukuDatasource();
try {
datasource.save(buku);
showSucceed("Data buku berhasil disimpan");
} catch (SQLException e) {
showError("Data buku gagal disimpan");
e.printStackTrace();
}
}
private void updateData() {
collectDataFor(buku);
BukuDatasource datasource = new BukuDatasource();
try {
datasource.update(buku);
showSucceed("Data buku berhasil diperbaharui");
} catch (SQLException e) {
showError("Data buku gagal diperbaharui");
e.printStackTrace();
}
}
private void simpan() {
if (!validateAllInput()) {
return;
}
if (buku != null) {
updateData();
} else {
saveNewData();
}
}
@Override
public void setTitle(String title) {
super.setTitle(title); //To change body of generated methods, choose Tools | Templates.
titleActivity.setText(title);
}
Keterangan :
Method showError digunakan untuk menampilkan dialog peringatan bahwa ada masalah pada saat suatu aksi dilakukan.
Method showSucceed digunakan untuk menampilkan dialog info bahwa suatu aksi telah berhasil dilakukan.
Method showOldDataOf digunakan untuk menampilkan data lama dari buku yang akan diperbaharui datanya.
Method setBuku digunakan untuk menerima data buku yang akan diperbaharui datanya.
Method getSelectedPenerbit digunakan untuk megambil pilihan penerbit dari pengguna aplikasi.
Method validateAllInput digunakan untuk memvalidasi input dari pengguna aplikasi.
Method collectDataFor digunakan untuk mengumpulkan input data buku dari pengguna aplikasi ke dalam sebuah object buku.
Method saveNewData digunakan untuk menyimpan data buku baru ke dalam database.
Method updateData digunakan untuk memperbaharui data buku dalam database.
Method simpan digunakan sebagai aksi dari button simpan saat button tersebut diklik.
Sekarang kembali ke tab design dan beri aksi klik pada kedua button, baik itu button simpan maupun button cancel. Untuk lebih jelasnya lihat gambar dibawah ini :
Untuk memberi aksinya, kembali ke tab source dan ubah menjadi seperti ini :
Lakukan hal yang sama pada button cancel, hanya saja untuk aksinya menjadi seperti dibawah ini :
Sekarang edit properties defaultCloseOperation pada JFrame menjadi seperti apa yang tampak pada gambar dibawah ini :
4. Menyiapkan Form Data Manager Buku
Buatlah JFrame baru di dalam package ui dan beri namanya sebagai DataManagerBuku, lalu design seperti gambar dibawah ini :
Ubah nama variabel untuk komponen-komponen dibawah ini :
JTable nama variabelnya menjadi tableBarang
JButton tambah nama variabelnya menjadi addBtn
JButton update nama variabelnya menjadi updateBtn
JButton hapus nama variabelnya menjadi deleteBtn
JButton tutup nama variabelnya menjadi closeBtn
Sehingga pada jendela navigator akan tampak seperti pada gambar dibawah ini :
Kali ini penulis akan melanjutkan tutorial sebelumnya, syarat untuk mengikuti tutorial ini sudah tertera sebelumnya pada part 1 dari tutorial ini. Dan pastikan anda sudah selesai membuat database dengan nama rumah_coding serta pastikan anda sudah berhasil membuat table di database tersebut dengan nama buku. Karena pada kali ini kita akan mulai membuat aplikasi java untuk mengontrol data pada database tersebut.
1. Menyiapkan Project
Bukan aplikasi Netbeans anda dan klik File > New Project sehingga akan muncul jendela dialog seperti dibawah ini :
Pastikan anda memilih Categories Java dan pilih ProjectsJava Application seperti yang ditunjukkan pada gambar diatas lalu klik Next. Pada jendela dialog dibawah ini :
anda hanya perlu mengganti kolom isian Project Name menjadi DataManagerBuku, sementara yang lainnya bisa diabaikan. Setelah itu klik Finish.
2. Netbeans Project Structure
Folder Source Package merupakan tempat untuk menaruh file-file java yang akan dibuat nanti sedangkan folder Libraries merupakan tempat sekumpulan aplikasi jar yang sudah jadi dan akan dikombinasikan dengan program ini, yang mana nantinya akan menggunakan library JDBC Driver dari MySQL.
Dari gambar diatas project DataManagerBuku ini sudah memiliki root package dengan nama datamanagerbuku yang nantinya akan dijadikan folder utama dalam membuat aplikasi ini. Dan didalam folder ini juga sudah ada class dengan nama DataManagerBuku.java yang nantinya juga akan dijadikan sebagai class utama dari aplikasi. Artinya program ini akan mengeksekusi class ini terlebih dahulu.
3. Menambahkan Libraries Ke Project
Klik kanan pada folder Libraries lalu pilih Add Library, sehingga muncul dialog seperti dibawah ini :
Cari dan pilih MySQL JDBC Driver seperti yang tampak pada gambar diatas, kemudian klik Add Library sehingga project structure menjadi seperti dibawah ini :
4. Membuat class ConnectionHelper
Class ini nantinya akan digunakan sebagai pembantu koneksi antara aplikasi dengan database server kita, lebih khusunya dengan database yg sudah kita buat sebelumnya yaitu database rumah_coding.
Sekarang buat package baru dengan cara klik kanan pas bagian package datamanagerbuku sehingga muncul dialog seperti dibawah ini :
Isikan kolom package name menjadi database seperti apa tampak pada gambar diatas. Jika berhasil maka daftar package anda sekarang menjadi seperti dibawah ini :
Sekarang buat class baru didalam package database dan beri namanya sebagai ConnectionHelper. Perhatikan gambar dibawah ini untuk lebih jelasnya :
Buka class tersebut dan ubah codenya menjadi seperti dibawah ini :
import com.mysql.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author dika
*/
public class ConnectionHelper {
private static final String DATABASE_NAME = "rumah_coding";
private static final String USER = "root";
private static final String PASSWORD = "";
private static final String URL = "jdbc:mysql://localhost:3306/" + DATABASE_NAME;
public static Connection getConnection() throws SQLException {
DriverManager.registerDriver(new Driver());
Connection connection =
DriverManager.getConnection(URL, USER, PASSWORD);
return connection;
}
}
Penjelasan :
DATABASE_NAME adalah variabel bertipe data String yang akan menampung nama database yang akan dihubungkan.
USER adalah variabel bertipe data String yang akan menampung nama user yang akan digunakan untuk mengakses database yang akan dihubungkan. Secara default usernya adalah root.
PASSWORD adalah variabel bertipe data String yang akan menampung password yang akan digunakan untuk menghubungkan database.
Sedangkan code didalam method getConnection merupakan code untuk mendaftarkan libraries mysql driver dan membuat koneksi ke database berdasarkan setup yang telah dideklarasikan sebelumnya.
Sekarang buka class DataManagerBuku dan ubah codenya menjadi seperti dibawah ini :
import datamanagerbuku.database.ConnectionHelper;
import java.sql.SQLException;
/**
*
* @author dika
*/
public class DataManagerBuku {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
testConnection();
}
private static void testConnection() {
try {
ConnectionHelper.getConnection();
System.out.println("Database connected");
} catch (SQLException ex) {
System.out.println("Failed to connect database");
}
}
}
Kemudian run project dengan cara menekan tombol pada toolbar Netbeans IDE. Akan tetapi anda juga perlu menjalankan server apache dan mysql terlebih dahulu melalui Xampp control panel. Dan jika saat dijalankan anda dapat melihat output seperti dibawah ini :
Maka selamat anda sudah berhasil membuat koneksi ke database server.
5. Membuat Class Model
Kali ini kita akan membuat class model dengan nama Buku, dimana class ini merupakan representasi benda nyata atau object nyata yaitu buku. Data yang akan digunakan dari object buku adalah judul buku, pengarang, penerbit, dan tahun terbit. Hal ini sesuai dengan design table buku pada database kita.
Langkah pertama yang perlu dilakukan adalah membuat package baru bernama models. Cara membuat package baru sama dengan membuat package database diatas, hanya saja nama package kali ini adalah models. Berikut struktur project saat ini jika anda berhasil membuat package model :
Didalam package models buat class baru dengan nama Buku, seperti yang tampak pada gambar dibawah ini :
Kemudian edit code didalam class Buku menjadi seperti dibawah ini :
public class Buku {
private long id;
private String judulBuku;
private String penerbit;
private String pengarang;
private int tahunTerbit;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getJudulBuku() {
return judulBuku;
}
public void setJudulBuku(String judulBuku) {
this.judulBuku = judulBuku;
}
public String getPenerbit() {
return penerbit;
}
public void setPenerbit(String penerbit) {
this.penerbit = penerbit;
}
public String getPengarang() {
return pengarang;
}
public void setPengarang(String pengarang) {
this.pengarang = pengarang;
}
public int getTahunTerbit() {
return tahunTerbit;
}
public void setTahunTerbit(int tahunTerbit) {
this.tahunTerbit = tahunTerbit;
}
}
Selamat anda baru saja membuat representasi object nyata ke dalam class java. Teknik ini lebih dikenal sebagai pojo dalam java.
6. Membuat class BukuDatasource
Sekarang buatlah class baru di dalam package database dengan nama BukuDatasource. Class inilah yang akan bertanggung jawab dalam hal menyimpan data buku baru, memperbaharui data buku lama, menghapus data buku yang telah tersimpan sebelumnya dan juga mencari data buku yang sudah tersimpan sebelumnya. Jika dipersingkat maka class ini berfungsi sebagai implementasi konsep CRUD di mysql.
Jika anda sudah berhasil membuat classnya maka seharusnya sekarang terdapat 2 class didalam package database, seperti yang tampak pada gambar dibawah ini :
Sekarang edit code di dalam class BukuDatasource menjadi seperti dibawah ini :
import datamanagerbuku.models.Buku;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
/**
*
* @author dika
*/
public class BukuDatasource {
public void save(Buku buku) throws SQLException {
}
public void update(Buku buku) throws SQLException {
}
public void delete(Buku buku) throws SQLException {
}
public List&amp;lt;Buku&amp;gt; findAll() throws SQLException {
return null;
}
}
Sekarang edit code method save menjadi seperti dibawah ini :
Merupakan class java yang dapat mendukung fitur precompile query sql, artinya kita dapat menggunakan query yang sama untuk nilai parameter query yang berbeda. Contoh : Sebelum menggunakan prepare statement :
Select *from buku where id=1;
Select *from buku where id=1;
Terlihat diatas bahwa kedua query tersebut dimaksudkan untuk melakukan pencarian data buku berdasarkan id.
Kedua struktur query tersebut terlihat sama yang berbeda hanya pada nilai id-nya saja. Disinilah kegunanaan dari
prepare statement dimana kita hanya memerlukan untuk mengisi value id-nya saja tanpa menulis ulang query-nya secara
berulang-ulang. Sehingga saat menggunakan prepare statement, query-nya menjadi seperti dibawah ini :
Select *from buku where id=?;
Sekarang edit isi dari method update menjadi seperti dibawah ini :
public void update(Buku buku) throws SQLException {
String sql = "UPDATE buku SET judul=?, pengarang=?, penerbit=?, tahun_terbit=? WHERE id=?";
Connection connection = ConnectionHelper.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, buku.getJudulBuku());
preparedStatement.setString(2, buku.getPengarang());
preparedStatement.setString(3, buku.getPenerbit());
preparedStatement.setInt(4, buku.getTahunTerbit());
preparedStatement.setLong(5, buku.getId());
preparedStatement.executeUpdate();
}
Sekarang edit isi dari method delete menjadi seperti dibawah ini :
public void delete(Buku buku) throws SQLException {
String sql = "DELETE FROM buku WHERE id=?";
Connection connection = ConnectionHelper.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setLong(1, buku.getId());
preparedStatement.executeUpdate();
}
Sekarang edit isi dari method findAll menjadi seperti dibawah ini :
public List<Buku> findAll() throws SQLException {
String sql = "SELECT *FROM buku";
Connection connection = ConnectionHelper.getConnection();
ResultSet resultSet = connection.createStatement().executeQuery(sql);
List<Buku> bukuList = new ArrayList<>();
while (resultSet.next()) {
Buku buku = new Buku();
buku.setId(resultSet.getLong("id"));
buku.setJudulBuku(resultSet.getString("judul"));
buku.setPengarang(resultSet.getString("pengarang"));
buku.setPenerbit("penerbit");
buku.setTahunTerbit(resultSet.getInt("tahun_terbit"));
bukuList.add(buku);
}
return bukuList;
}
What is ResultSet ?
Merupakan class java yang menampung hasil dari query yang telah berhasil dilakukan. Mengakses data dalam ResultSet dapat dilakukan dengan menggunakan column index dan juga nama column. Sedangkan dalam method findAll diatas menggunakan nama column.
What is List ?
List merupakan interface java yang dimaksudkan untuk memiliki kemampuan menyimpan koleksi data secara dinamis. Hal ini tentu berbeda dengan array dimana koleksi data didalamnya tidaklah dinamis, artinya jumlah data dalam array bersifat tetap alias tidak dapat dimodifikasi lagi. Kesamaan antara List dan array adalah sama-sama hanya dapat menampung data yang tipe datanya sama dan setiap datanya dapat diakses melalui index serta index array dan List sama-sama dimulai dari 0.
Berbagai operasi dapat Anda lakukan terhadap ArrayList seperti berikut:
size(), untuk mencari panjang List
add(), untuk menambah elemen baru
get(), untuk mengambil elemen pada indeks tertentu
isEmpty(), untuk memeriksa apakah List kosong atau tidak
indexOf(), untuk mengetahui indeks dari suatu nilai
contains(), untuk memeriksa apakah suatu nilai ada dalam List
set(), untuk menimpa nilai pada indeks tertentu
remove(), untuk menghapus nilai pada indeks tertentu
What is ArrayList ?
ArrayList merupakan salah satu class java yang mengimplementasikan interface List. Sehingga fungsi class ini sama dengan List yaitu untuk menampung sejumlah data yang tipe datanya sama secara dinamis.
Hari ini penulis akan membahas bagaimana cara membuat aplikasi java dengan menggunakan teknik CRUD. Adapun peralatan atau aplikasi yang digunakan dalam tutorial ini adalah sebagai berikut :
Netbeans IDE versi 8.2, link unduh : ,
XAMPP versi 7.1.7, link unduh :
Apa itu CRUD ?
CRUD sendiri merupakan kepanjangan dari Create, Update, Read, dan Delete. Teknik ini dilakukan dengan cara mengeksekusi query tertentu ke database mysql.
Create, dilakukan dengan mengeksekusi query CREATE. Query ini dimaksudkan untuk menyimpan data ke dalam MySQL.
Update, dilakukan dengan mengeksekusi query UPDATE. Query ini dimaksudkan untuk melakukan perubahan data yang sudah pernah tersimpan sebelumnya di database MySQL.
Read, dilakukan dengan mengeksekusi query SELECT. Query ini dimaksudkan untuk melakukan pengambilan data dari database MySQL.
Delete, dilakukan dengan mengeksekusi query DELETE. Query ini dimaksudkan untuk menghapus salah satu atau lebih data yang sudah tersimpan dalam database MySQL.
Itulah sepintas teori mengenai apa yang dimaksud dengan CRUD.
Apa Itu Netbeans IDE ?
Netbeans IDE adalah aplikasi yang dapat digunakan dalam membangun sebuah aplikasi berbasis java. Kenapa harus menggunakan Netbeans IDE ?, hal ini dikarenakan akan Netbeans IDE memberikan kemudahan dalam membuat GUI(Graphical User Interface) untuk aplikasi Java Desktop, adapun GUI yang penulis maksud adalah penggunaan Java Swing.
Install semua aplikasi yang telah sebutkan sebelumnya. Penulis berasumsi bahwa pembaca sudah paham betul bagaimana cara menginstall aplikasi tersebut. Setelah aplikasi terinstall, jalankan apache server dan juga mysql dengan seperti dibawah ini :
GNU/Linux OS, untuk menjalankan XAMPP di OS ini dapat dilakukan dengan cara membuka terminal dan ketikkan code dibawah ini :
~$ sudo /opt/lampp/lampp start
Windows OS, untuk menjalankan XAMPP di OS ini dapat dilakukan dengan cara membukan XAMPP control panel dan klik tombol start pada Apache dan MySql. Seperti yang tampak dibawah ini :
Untuk memastikan XAMPP sudah berjalan, buka web browser favorit anda dan ketikkan ini : http://localhost/, jika memang sudah jalan maka anda akan melihat halaman berikut ini pada browser anda :
Jika memang anda sudah berhasil melihat halaman page diatas, langkah selanjutnya adalah klik phpMyAdmin pada menu page localhost tersebut :
Klik new pada navigasi page phpMyAdmin, seperti yang tampak gambar dibawah ini. Hal ini dilakukan untuk membuat database baru :
Kemudian isikan nama database menjadi rumah_coding, seperti yang tampak pada gambar dibawah ini dan klik create.
Pastikan sekarang anda dapat melihat database baru dengan nama rumah_coding pada panel navigasi phpMyAdmin. Lihat gambar dibawah ini :
Jika anda sudah database pilih database tersebut dan buat table baru dengan nama buku dan isikan jumlah kolom menjadi 5 lalu klik go, lihat gambar dibawah ini :
Selanjutnya edit masing properti kolom tersebut menjadi seperti dibawah ini :
Jika sudah, klik tombol save pada bagian kanan bawah, lihat gambar dibawah ini untuk lebih jelasnya :
Jika berhasil maka anda akan melihat sekarang database kita telah memiliki tabel baru seperti yang tampak pada gambar dibawah ini :