Tags Posts tagged with "Java"

Java

0 7

cek bilangan prima dengan java

import javax.swing.JOptionPane;
class prm {
public static void main(String args[]) {
int x = Integer.parseInt(JOptionPane.showInputDialog(“masukan bil”));
boolean prima=false;

if (x>=2) {
prima = true;
for (int a=2;a<x;a++) {
if (x%a==0) {
prima = false;
break;
}
}
}
if (prima==true) {
System.out.println(“merupakan bilangan prima”);
} else {
System.out.println(“bukan merupakan bil prima”);
}

}
}

8 143

Pada posting sebelumnya kita telah membuat aplikasi crud sederhana. Tetapi tanpa konsep mvc. Sejauh yang saya tahu mvc adalah konsep pemrograman yang memisahkan antara view, model dan controller. Ini akan sangat berguna jika kita membuat aplikasi yang besar, karena akan membuat kode mudah di atur dan tracking errornya mudah.

Untuk lebih mudahnya kita langsung aplikasikan di java..

1. Pertama kali kita buat databasenya dulu menggunakan phpmyadmin saja..

Database crud-jdbc-mvc

2. Setelah itu kita buat project baru di netbeans dengan nama crud-jdbc-mvc
3. Klik kanan pada Source packages–>new Java Package beri nama entity
4. Buat kelas mahasiswa , isi dengan code seperti ini

package entity;

/**
*
* @author ngiwutz
*/
public class Mahasiswa {
//representasi field di database
private int nim;
private String nama_depan;
private String nama_belakang;
//setter getter buat kelas mahasiswa
public String getNama_belakang() {
return nama_belakang;
}

public void setNama_belakang(String nama_belakang) {
this.nama_belakang = nama_belakang;
}

public String getNama_depan() {
return nama_depan;
}

public void setNama_depan(String nama_depan) {
this.nama_depan = nama_depan;
}

public int getNim() {
return nim;
}

public void setNim(int nim) {
this.nim = nim;

}

}

5. Buat package baru dengan nama model.. lalu buat kelas TabelModelMahasiswa, tambahkan kode ini

package model;

import entity.Mahasiswa;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
*
* @author ngiwutz
*/
public class TabelModelMahasiswa extends AbstractTableModel {

private   List<Mahasiswa> list;

public TabelModelMahasiswa(List<Mahasiswa> list) {
this.list = list;
}

Mahasiswa get(int row) {
return list.get(row);
}

public int getRowCount() {
return list.size();
}

public int getColumnCount() {
return 3;
}

public Object getValueAt(int rowIndex, int columnIndex) {

switch (columnIndex) {
case 0:
return list.get(rowIndex).getNim();
case 1:
return list.get(rowIndex).getNama_depan();
case 2:
return list.get(rowIndex).getNama_belakang();
default:
return null;

}
}

@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return "Nim";
case 1:
return "Nama Depan";
case 2:
return "Nama Belakang";
default:
return null;
}
}
}

6. Lalu buat kelas DaoInterface.

package model;

import entity.Mahasiswa;
import java.util.List;

/**
*
* @author ngiwutz
*/
public interface DaoInterface {

public void insertMahasiswa (Mahasiswa mahasiswa)throws Exception;
public void deleteMahasiswa (int nim)throws Exception;
public void updateMahasiswa (int nim, Mahasiswa mahasiswa)throws Exception;
public List<Mahasiswa> readAll()throws Exception;

}

7. Buat kelas DaoMahasiswa , implements kelas DaoInterface

package model;

import entity.Mahasiswa;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author ngiwutz
*/
public class DaoMahasiswa implements DaoInterface {
//setting untuk database .. ganti sesuai dengan tempat anda
private String url = "jdbc:mysql://localhost:3306/crud_jdbc_mvc";
private String username = "root";
private String pass = "root";
private Connection conn;

public DaoMahasiswa() {
try {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException ex) {
Logger.getLogger(DaoMahasiswa.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(DaoMahasiswa.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (ClassNotFoundException ex) {
Logger.getLogger(DaoMahasiswa.class.getName()).log(Level.SEVERE, null, ex);
}
}

public DaoMahasiswa(Connection conn) {
this.conn = conn;
}

public void connect() throws SQLException {
this.conn = DriverManager.getConnection(url, username, pass);
}

public void disconnect() throws SQLException {
this.conn.close();
}

public Connection getConn() {
return conn;
}

public void insertMahasiswa(Mahasiswa mahasiswa) throws Exception {
String sql = "INSERT INTO mahasiswa VALUES (?,?,?)";
PreparedStatement ps = this.conn.prepareStatement(sql);
ps.setInt(1, mahasiswa.getNim());
ps.setString(2, mahasiswa.getNama_depan());
ps.setString(3, mahasiswa.getNama_belakang());
ps.executeUpdate();
}

public void deleteMahasiswa(int nim) throws Exception {
String sql = "DELETE FROM mahasiswa WHERE nim = ?";
PreparedStatement ps = this.conn.prepareStatement(sql);
ps.setInt(1, nim);
ps.executeUpdate();
}

public void updateMahasiswa(int nim, Mahasiswa mahasiswa) throws Exception {
String sql = "UPDATE mahasiswa set nim =? ,nama_depan = ?, nama_belakang = ? WHERE nim=?";
PreparedStatement ps = this.conn.prepareStatement(sql);
ps.setInt(1, mahasiswa.getNim());
ps.setString(2, mahasiswa.getNama_depan());
ps.setString(3, mahasiswa.getNama_belakang());
ps.setInt(4, nim);
ps.executeUpdate();
}

public List<Mahasiswa> readAll() throws Exception {
Statement st = this.conn.createStatement();
String sql = "SELECT * FROM mahasiswa";
ResultSet rs = st.executeQuery(sql);
List<Mahasiswa> record = new ArrayList<Mahasiswa>();
while (rs.next()) {
Mahasiswa mahasiswa = new Mahasiswa();
mahasiswa.setNim(rs.getInt("nim"));
mahasiswa.setNama_depan(rs.getString("nama_depan"));
mahasiswa.setNama_belakang(rs.getString("nama_belakang"));
record.add(mahasiswa);
}
return record;
}
}

8. Buat form dengan nama View di package view..dan tambahkan getter untuk semua button textfield dan tabelnya..

Form view

9. Sekarang tinggal buat kelas ControllerMahasiswa, jangan lupa simpan di package controller.

package controller;

import entity.Mahasiswa;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import model.DaoMahasiswa;
import model.TabelModelMahasiswa;
import view.View;

/**
*
* @author ngiwutz
*/
public class ControllerMahasiswa {

private DaoMahasiswa dao;
private View view;
private TabelModelMahasiswa tabelModelMahasiswa;
private List<Mahasiswa> list;

public ControllerMahasiswa(View view) {
this.view = view;
}

public void insertMahasiswaController() {
try {
boolean status = getStatusInsert();
if (status == false) {
JOptionPane.showMessageDialog(view, "data harus di isi");

}
if (status == true) {
dao = new DaoMahasiswa();
Mahasiswa mahasiswa = new Mahasiswa();
dao.connect();
mahasiswa.setNim(Integer.parseInt(view.getTxtNim().getText()));
mahasiswa.setNama_depan(view.getTxtNamaDepan().getText());
mahasiswa.setNama_belakang(view.getTxtNamaBelakang().getText());
dao.insertMahasiswa(mahasiswa);
list = new ArrayList<Mahasiswa>();
list = dao.readAll();
tabelModelMahasiswa = new TabelModelMahasiswa(list);
view.getTabelMahasiswa().setModel(tabelModelMahasiswa);
dao.disconnect();
}
} catch (Exception ex) {
Logger.getLogger(ControllerMahasiswa.class.getName()).log(Level.SEVERE, null, ex);
}
}

public void deleteMahasiswaController() {
try {
//mendapatkan no baris yang di klik
int indek = view.getTabelMahasiswa().getSelectedRow();
//validasi jika belum di klik
if (indek ==- 1) {
JOptionPane.showMessageDialog(view, "Klik tabel dahulu kawan!!");
return;
}

dao = new DaoMahasiswa();
dao.connect();
//melakukan delete
dao.deleteMahasiswa(Integer.parseInt(String.valueOf(view.getTabelMahasiswa().getValueAt(indek, 0))));
list = new ArrayList<Mahasiswa>();
list = dao.readAll();
//mesukkan perubahan database ke tabel
tabelModelMahasiswa = new TabelModelMahasiswa(list);
view.getTabelMahasiswa().setModel(tabelModelMahasiswa);
dao.disconnect();
} catch (Exception ex) {
Logger.getLogger(ControllerMahasiswa.class.getName()).log(Level.SEVERE, null, ex);
}

}

public void updateMahasiswaController() {
try {
//mendapatkan no baris tabel
int indek = view.getTabelMahasiswa().getSelectedRow();
//validasi
if (indek ==- 1) {
JOptionPane.showMessageDialog(view, "Klik tabel dahulu kawan!!");
return;
}

dao = new DaoMahasiswa();
dao.connect();
Mahasiswa mahasiswa = new Mahasiswa();

mahasiswa.setNim(Integer.parseInt(view.getTxtNim().getText()));
mahasiswa.setNama_depan(view.getTxtNamaDepan().getText());
mahasiswa.setNama_belakang(view.getTxtNamaBelakang().getText());

//mendapatkan nilai nim dari baris yang di klik
int nilaiNim = Integer.parseInt(String.valueOf(view.getTabelMahasiswa().getValueAt(indek, 0)));

dao.updateMahasiswa(nilaiNim, mahasiswa);
list = new ArrayList<Mahasiswa>();
list = dao.readAll();
//melakukan perubahan terhadap isi tabel
tabelModelMahasiswa = new TabelModelMahasiswa(list);
view.getTabelMahasiswa().setModel(tabelModelMahasiswa);
dao.disconnect();
} catch (Exception ex) {
Logger.getLogger(ControllerMahasiswa.class.getName()).log(Level.SEVERE, null, ex);
}

}
//method untuk membersihkan textfield

public void refresh() {
view.getTxtNim().setText("");
view.getTxtNamaDepan().setText("");
view.getTxtNamaBelakang().setText("");
}
//method untuk memasukkan baris yang di klik ke textfield

public void insertInTextField(int selected) {
int indek = view.getTabelMahasiswa().getSelectedRow();
view.getTxtNim().setText(String.valueOf(view.getTabelMahasiswa().getValueAt(indek, 0)));
view.getTxtNamaDepan().setText((String) view.getTabelMahasiswa().getValueAt(indek, 1));
view.getTxtNamaBelakang().setText((String) view.getTabelMahasiswa().getValueAt(indek, 2));
}

private boolean getStatusInsert() {
if (view.getTxtNim().getText().equals("")
&& view.getTxtNamaDepan().getText().equals("")
&& view.getTxtNamaBelakang().getText().equals("")) {
return false;
} else {
return true;
}
}
}

10. Ubah konstruktor di view ..

public View() {
try {
initComponents();
DaoMahasiswa dao = new DaoMahasiswa();
controllerMahasiswa = new ControllerMahasiswa(this);
List<Mahasiswa> record = new ArrayList<Mahasiswa>();
dao.connect();
record = dao.readAll();
TabelModelMahasiswa tabelModelMahasiswa = new TabelModelMahasiswa(record);
tabelMahasiswa.setModel(tabelModelMahasiswa);
dao.disconnect();
} catch (Exception ex) {
Logger.getLogger(View.class.getName()).log(Level.SEVERE, null, ex);
}
}

11. Beri event pada button dan tabel ..

private void btnInsertActionPerformed(java.awt.event.ActionEvent evt) {
controllerMahasiswa.insertMahasiswaController();
controllerMahasiswa.refresh();
}

private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {
controllerMahasiswa.deleteMahasiswaController();
controllerMahasiswa.refresh();
}

private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {
controllerMahasiswa.updateMahasiswaController();
controllerMahasiswa.refresh();
}

private void tabelMahasiswaMouseClicked(java.awt.event.MouseEvent evt) {
int selected =tabelMahasiswa.getSelectedRow();
controllerMahasiswa.insertInTextField(selected);
}

11. Ubah main class nya jadi seperti ini

public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {

public void run() {

View form = new View();
form.setVisible(true);
}
});

}

}

12. Masukkan library MYSQL-JDBC Driver dan run ..

Tampilan insert
Delete

Nah selamat mencoba.. Ada pertanyaan, dengan senang hati saya jawab..

Download source code lengkap disini.