Tutorial Membuat Clienst Server menggunakan Netbeans
Pada tutorial kali ini saya akan membahas bagaimana membuat client server menggunakan java,jika pada umumnya yang terjadi dan sering digunakan client server menggunakan website kali ini java juga bisa membuat client server,pada pembuatan client server ini membutuhkan beberapa project baru yang harus dibuat untuk mengetahui cara pembuatannya ikuti langkah berikut:
Pertama kita jalankan Netbeans kemudian buat Project terlebih dahulu New Project->Java Class Library seperti pada gambar di bawah:
Pilih Next kemudian brinama Java library pada project Name Komunikasi.api sebagai penghubung antara client dan server seperti pada gambar dibawah:
Pilih
Finish kemudian akan tampil project yang sudah kita buat seperti pada gambar dibawah:
Setelah membuat project
Komunikasi.api kemudian kita buat kembali project baru
New Project->Java Aplication kemudian
Next seperti pada gamabar di bawah:
Setelah kita
Next maka akan muncul tampilan form pemberian nama beri nama project
Server seperti pada gambar di bawah:
Setelah selesai project membuat project
server kemudian kita buat kembali project baru
New Project->Java Aplication kemudian
Next kita beri nama
Client seperti pada gambar di bawah:
Kemudian pilih
Finish sehingga seperti pada gambar di bawah:
Pada gambar diatas merupakan gambar dari project yang sudah kita buat,selanjutnya
untuk menghubungkan antara client dan server klik kanan pada project Client kemudian pilih properties seperti pada contoh gambar di bawah:
Setelah pilih
properties maka akan muncul tampilan
properties pilih
libraries->add Project kemudian pilih project
Komunikasi.api yang sudah kita buat sebelumnya kemudian pilih
Add Project JAR Files seperti pada contoh gambar di bawah:
Kemudian pilih
OK seperti pada gamabar di
bawah:
Lakukan Juga pada project
Server pilih
Properties->Libraries->Add JAR
Files->Komunikasi-api->OK sama seperti pada
Client.Kemudian pada
Komunikasi-api
pada
Source Package->Default Package klik
kanan
New->Java Package seperti pada gamabr
di bawah:
Kemudian brinama Package dengan nama
Entitas->Finish
seperti pada gambar berikut:
Kemudian klik kana pada Package
Entitas->New->Java Class seperti pada gamabar di bawah:
Berinama
Java class Misalakan
Mahasiswa sesuaikan nama dengan
sistem yang akan kita buat jika untuk
apalikasi minmarket class pada entitas berisi nama database misalakan
barang atau kategori di sina saya menggunakan contoh
inputan mahasiswa sesuaikan dengan kebutuhan,berikut contoh gambar pembuatan class:
Pilih finish kemudian tuliskan Script berikut:
import java.io.Serializable;
/**
*
* @author Fg_white
*/
public class Mahasiswa implements Serializable{
private String nim;
private String nama;
private String prodi;
Klik kanan pada class kemudian pilih
Insert Code seperti pada gambar di bawah:
Kemudian pilih
Getter and Setter seperti gamabar berikut:
Setelah
Getter nad Setter maka akan muncul tampilan pemilihan
Getter and Setter Centang semua seperti pada gambar di bawah:
Pilih Generate sehingga tampilan class mahasiswa seperti berikut:
import java.io.Serializable;
/**
*
* @author Fg_white
*/
public class Mahasiswa implements Serializable{
private String nim;
private String nama;
private String prodi;
public String getNim() {
return nim;
}
public void setNim(String nim) {
this.nim = nim;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getProdi() {
return prodi;
}
public void setProdi(String prodi) {
this.prodi = prodi;
}
}
Setelah selesai kemudian buka kembali
project Komunikasi-api buat
Package baru seperti pada gambar berikut:
Berinama Package
Services->Finish seperti pada gamabr di bawah:
Buat Interface baru pada
package Services klik kanan New Java Interface berinama Interface
ServicesMahasiswa->;Finish seperti pada gambar di bawah:
Tuliskan Script berikut:
import Entitas.Mahasiswa;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
/**
*
* @author Fg_white
*/
public interface ServicesMahasiswa extends Remote{
List getMahasiswa()throws RemoteException;//untuk select data menampung data mahasiswa
void insert(Mahasiswa mahasiswa) throws RemoteException;
void update(Mahasiswa mahasiswa) throws RemoteException;
void delete(Mahasiswa mahasiswa) throws RemoteException;
}
Script di sesuaikan apabila menggunakan
form Barang pada
Aplikasi Mini Market maka
Mahasiswa diganti menjadi
Barang.
Setelah selesai menuliskan Script di atas kemudian buat package baru pada
project server klik kanan
new->Java ackage berinama Package
Koneksi kemudian buat
Class pada
Package Koneksi klik kanan
New->Java Class berinama class
Koneksi kemudian tuliskan script berikut pada class Koneksi.Class koneksi ini digunakan sebagai dengan database,berikut scriptnya:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author Fg_white
*/
public class Koneksi {
private static Connection connection=null;
public static Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/clientserver","root", "");
} catch (Exception e) {
System.out.println(e.getMessage());
}
return connection;
}
public static void main(String[] args) {
Koneksi.getConnection();
}
}
connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/clientserver","root", ""); merupakan koneksi pada databse untuk memanggil database mahasiswa clientserver merupakan nama database yang saya buat sedangkan root adalah password root databasenya.
Kemudian Run/jalankan Netbeans Shift+F6 jika muncul output seperti pada gamabr di bawah maka koneksi Sukses.
Setelah membuat koneksi kemudian kita buat package baru kembali pada project Server dengan nma Package AksesRMI yang berisi class baru AksesMahasiswa tuliskan script berikut untuk akses data mahasiswa:
import Entitas.Mahasiswa;
import Koneksi.Koneksi;
import Services.ServicesMahasiswa;
import java.sql.Statement;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Fg_white
*/
public class AksesMahasiswa extends UnicastRemoteObject implements ServicesMahasiswa{
public AksesMahasiswa() throws RemoteException {
}
@Override
public List getMahasiswa() throws RemoteException {
ListlistMahasiswa=new ArrayList<>();
Statement statement=null;
try {
statement=Koneksi.getConnection().createStatement();
try (ResultSet resultSet = statement.executeQuery("select * from mahasiswa")) {
while (resultSet.next()) {
Mahasiswa mahasiswa=new Mahasiswa();
mahasiswa.setNim(resultSet.getString(1));
mahasiswa.setNama(resultSet.getString(2));
mahasiswa.setProdi(resultSet.getString(3));
listMahasiswa.add(mahasiswa);
}
}
return listMahasiswa;
} catch (Exception e) {
System.out.println(e.getMessage());
return null;
}
finally{
if (statement!=null) {
try {
statement.close();
} catch (Exception e) {
}
}
}
}
/**
*
* @param mahasiswa
* @throws RemoteException
*/
@Override
public void insert(Mahasiswa mahasiswa) throws RemoteException {
Statement statement=null;
try {
statement= Koneksi.getConnection().createStatement();
statement.executeUpdate("insert into mahasiswa values ('"+mahasiswa.getNim()+"'"
+ ",'"+mahasiswa.getNama()+"','"+mahasiswa.getProdi()+"')");
} catch (Exception e) {
System.out.println(e.getMessage());
}finally{
if (statement!=null) {
try {
statement.close();
} catch (Exception e) {
}
}
}
}
@Override
public void update(Mahasiswa mahasiswa) throws RemoteException {
Statement statement=null;
try {
statement=Koneksi.getConnection().createStatement();
statement.executeUpdate("update mahasiswa set nama='"+mahasiswa.getNama() +
"',prodi='"+mahasiswa.getProdi()+"'where nim='"+mahasiswa.getNim()+"'");
} catch (Exception e) {
System.out.println(e.getMessage());
}finally{
if (statement!=null) {
try {
statement.close();
} catch (Exception e) {
}
}
}
}
@Override
public void delete(Mahasiswa mahasiswa) throws RemoteException {
Statement statement=null;
try {
statement=Koneksi.getConnection().createStatement();
statement.executeUpdate("delete from mahasiswa where nim='"+mahasiswa.getNim()+"'");
} catch (Exception e) {
System.out.println(e.getMessage());
}finally{
if (statement!=null) {
try {
statement.close();
} catch (Exception e) {
}
}
}
}
}
Setelah selesai membuat class AksesMahasiswa kemudian buka class server pada packge Server kemudian tuliskan script berikut:
import AksesRMI.AksesMahasiswa;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
/**
*
* @author Fg_white
*/
public class Server {
/**Z
* @param args the command line arguments
*/
public static void main(String[] args) throws RemoteException {
Registry registry=LocateRegistry.createRegistry(1099);
AksesMahasiswa aksesMahasiswa=new AksesMahasiswa();
registry.rebind("mahasiswa",(Remote) aksesMahasiswa);
System.out.println("server jalan");
}
}
Kemudian Run Server Shift+F6 jika muncul tampilan server jalan maka server sudah berhasil di jalankan dan sukses seperti pada gamabr di bawah:
Setelah selesai pada project Server selanjutnya buka project Client buat form dengan nama DataMahasiswa pada package Client,cara pembuatan form lihat pada tutorial sebelumnya mengenai pembuatan form,berikut merupaka contoh fom DataMahasiswa.
Tuliskan Script berikut pada source form DataMahasiswa:
import Entitas.Mahasiswa;
import Services.ServicesMahasiswa;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Fg_white
*/
public class Data_Mahasiswa extends javax.swing.JFrame {
final ServicesMahasiswa servicesMahasiswa;
public Data_Mahasiswa() throws RemoteException, NotBoundException {
Registry registry= LocateRegistry.getRegistry(1099);
servicesMahasiswa=(ServicesMahasiswa) registry.lookup("mahasiswa");
initComponents();
select(servicesMahasiswa);
}
@SuppressWarnings("empty-statement")
private void select(ServicesMahasiswa servicesMahasiswa1) throws RemoteException{
List listMahasiswa= new ArrayList<>();
String header[]={"NIM","NAMA","PRODI"};
DefaultTableModel defaultTableModel=new DefaultTableModel(null, header);
tabelMahasiswa.setModel(defaultTableModel);
for(int i=0;i < tabelMahasiswa.getRowCount();i++){
defaultTableModel.removeRow(i);
}
listMahasiswa=servicesMahasiswa1.getMahasiswa();
for(int i=0;i < listMahasiswa.size();i++){
Object baris[]={listMahasiswa.get(i).getNim(),listMahasiswa.get(i).getNama(),listMahasiswa.get(i).getProdi()};
defaultTableModel.addRow(baris);
}
}
private void insert(ServicesMahasiswa servicesMahasiswa1) throws RemoteException{
Mahasiswa m=new Mahasiswa();
m.setNim(txtNim.getText());
m.setNama(txtNama.getText());
m.setProdi(Prodi.getSelectedItem().toString());
servicesMahasiswa1.insert(m);
}
private void update(ServicesMahasiswa servicesMahasiswa1) throws RemoteException{
Mahasiswa m=new Mahasiswa();
m.setNim(txtNim.getText());
m.setNama(txtNama.getText());
m.setProdi(Prodi.getSelectedItem().toString());
servicesMahasiswa1.update(m);
}
private void delete(ServicesMahasiswa servicesMahasiswa1) throws RemoteException{
Mahasiswa m=new Mahasiswa();
m.setNim(txtNim.getText());
servicesMahasiswa1.delete(m);
}
private void clear(){
txtNim.setText("");
txtNama.setText("");
}
Untuk Botton Insert,Update dan Delete di Event->Action Performed kemudian tuliskan script berikut:
Button Insert:
if (txtNim.getText().equals("") || txtNama.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Silahkan Input Data Dulu");
}
else{
try {
insert(servicesMahasiswa);
select(servicesMahasiswa);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
clear();
Button Update:
if (txtNim.getText().equals("") || txtNama.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Silahkan pilih data yang akan di Update");
}
else{
try {
update(servicesMahasiswa);
select(servicesMahasiswa);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
clear();
}
Button Delete :
if (txtNim.getText().equals("") || txtNama.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Silahkan pilih data yang akan di Update");
}
else{
try {
delete(servicesMahasiswa);
select(servicesMahasiswa);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
clear();
}
Untuk Tabel di Event->MouseClicked kemudian tuliskan script berikut:
txtNim.setText(tabelMahasiswa.getValueAt(tabelMahasiswa.getSelectedRow(),0).toString());
txtNama.setText(tabelMahasiswa.getValueAt(tabelMahasiswa.getSelectedRow(),1).toString());
Prodi.setSelectedItem(tabelMahasiswa.getValueAt(tabelMahasiswa.getSelectedRow(),2).toString());
Kemudian jalankan form DataMahasiswa jangan lupa untuk menjalakan servernya terlebuih dahulu jika servernya tidak di jalankan maka akan error.Run Form DataMhasiswa Shift+F6 sehingga seperti pada tampilan berikut:
Inputkan data mahasiswa jika muncul pada tabel setelah di input maka insert berhasil jika tidak maka ada ketidak cocokan data.Seperti pda contoh final berikut:
Nama Ayuni sudah masuk pada tabel input data berhasil.Untuk databasenya berikut gambar dari databse Mahasiswa penggunaan huruf besar dan kecil pada database berpengaruh pada aplikasi .
Pembuatan Tutorial Client Server Selesai.Terimakasih...!!!
Semoga Bermanfaat....!!!!!