Praktikum Java Semester 7: Part 1
Praktikum Java Semester 7: Part 2
Praktikum Java Semester 7: Part 3
Praktikum Java Semester 7: Part 4
Praktikum Java Semester 7: Part 5
Use Case Diagram untuk praktikum ini
Class Diagram untuk praktikum ini
Tools yang digunakan
- IDE: NetBeans 12.+
- MySQL
- GitHub Desktop
Buat sebuah database baru di MySQL dengan nama praktikum_penjualan
, pilih database-nya, buka menu SQL dan jalankan perintah berikut
CREATE TABLE `jenisbarang` (
`id` INT NOT NULL AUTO_INCREMENT ,
`namajenisbarang` VARCHAR(200) NOT NULL ,
PRIMARY KEY (`id`)) ENGINE = InnoDB;
INSERT INTO `jenisbarang` (`id`, `namajenisbarang`) VALUES
(NULL, 'Pakaian pria'),
(NULL, 'Pakaian wanita')
Buat Project Baru, Category: Java with Maven
, Projects: Java Application
Buka package Project Files
buka file pom.xml
posisikan kursor setelah </properties>
dan isikan dengan
<project ..>
...
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
</project>
Buat package db
dan didalamnya buat class Database
, isikan dengan
public class Database {
private final String URL = "jdbc:mysql://localhost:3306/";
private final String DB_NAME = "praktikum_penjualan";
private final String USER = "root";
private final String PASS = "";
public Connection getConnection(){
Connection con = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection(URL+DB_NAME, USER, PASS);
System.out.println("Koneksi Berhasil");
} catch (ClassNotFoundException | SQLException ex) {
System.out.println(ex.toString());
}
return con;
}
}
Buat class Main
, isikan dengan
public class Main {
public static void main(String[] args) {
System.out.println("Hello world");
Database db = new Database();
Connection con = db.getConnection();
}
}
Hasil yang diharapkan adalah tertulis Hello world
dan Koneksi Berhasil
Buat package template
dan didalamnya buat interface MyModelInterface
, isikan dengan
public interface MyModelInterface {
abstract boolean create();
abstract ArrayList<Object> read();
abstract boolean update();
abstract boolean delete();
abstract ArrayList<Object> search(String keyword);
}
Buat package model
dan didalamnya buat class JenisBarang
, isikan dengan
public class JenisBarang implements MyModelInterface{
Connection con;
private int id;
private String namaJenisBarang;
}
Perhatikan lampu peringatan, klik dan pilih Implement all abstract methods
sehingga akan muncul method CRUD sesuai dengan interface yang sudah dibuat sebelumnya.
Generate constructor JenisBarang dengan parameter con dan satu constructor lagi dengan parameter id dan namaJenisBarang. Generate juga Getter and Setter untuk setiap atribut.
Cari method create() dan isikan dengan
@Override
public boolean create() {
boolean berhasil = false;
String insertSQL = "INSERT INTO jenisbarang VALUES (NULL,?)";
try {
PreparedStatement ps = this.con.prepareStatement(insertSQL);
ps.setString(1, this.namaJenisBarang);
ps.execute();
berhasil = true;
} catch (SQLException ex) {
System.out.println(ex.toString());
}
return berhasil;
}
Cari method read() dan isikan dengan
@Override
public ArrayList<Object> read() {
ArrayList<Object> list = new ArrayList<>();
String selectSQL = "SELECT * FROM jenisbarang";
try {
Statement statement = this.con.createStatement();
ResultSet resultSet = statement.executeQuery(selectSQL);
while(resultSet.next()){
JenisBarang jb = new JenisBarang(
resultSet.getInt(1),
resultSet.getString(2)
);
list.add(jb);
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
return list;
}
Cari method update() dan isikan dengan
@Override
public boolean update() {
boolean berhasil = false;
String updateSQL = "UPDATE jenisbarang SET namajenisbarang = ? WHERE id = ?";
try {
PreparedStatement ps = this.con.prepareStatement(updateSQL);
ps.setString(1, this.namaJenisBarang);
ps.setInt(2, this.id);
ps.execute();
berhasil = true;
} catch (SQLException ex) {
System.out.println(ex.toString());
}
return berhasil;
}
Cari method update() dan isikan dengan
@Override
public boolean delete() {
boolean berhasil = false;
String deleteSQL = "DELETE FROM jenisbarang WHERE id = ?";
try {
PreparedStatement ps = this.con.prepareStatement(deleteSQL);
ps.setInt(1, this.id);
ps.execute();
berhasil = true;
} catch (SQLException ex) {
System.out.println(ex.toString());
}
return berhasil;
}
Cari method search() dan isikan dengan
@Override
public ArrayList<Object> search(String keyword) {
ArrayList<Object> list = new ArrayList<>();
String searchSQL = "SELECT * FROM jenisbarang WHERE namajenisbarang like ?";
keyword = "%"+keyword+"%";
try {
PreparedStatement ps = this.con.prepareStatement(searchSQL);
ps.setString(1, keyword);
ResultSet resultSet = ps.executeQuery();
while(resultSet.next()){
JenisBarang jb = new JenisBarang(
resultSet.getInt(1),
resultSet.getString(2)
);
list.add(jb);
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
return list;
}
And… that’s about it for today. Aplikasi sudah mampu melakukan CRUD sederhana namun masih tanpa view visual.
Praktikum Java Semester 7: Part 1
Praktikum Java Semester 7: Part 2
Praktikum Java Semester 7: Part 3
Praktikum Java Semester 7: Part 4
Praktikum Java Semester 7: Part 5