Aplikasi Manajemen Proyek dan Sewa untuk Kegiatan Usaha Contractor Alat Berat dengan Bahasa Pemrograman Java - Part 2
KONSEP RELASI ANTAR CLASS
Program yang
dibangun dengan pedekatan OOP umumnya akan melibatkan interaksi antara satu
class dengan class yang lain, yang mana nantinya otomatis akan menjadi
interkasi antar object saat aplikasi dijalankan. Ada bentuk umum relasi antar
class dalam OOP, yaitu Relasi Asosiasi
(Kepemilikan) dan Relasi Inheritance (Pewarisan). Saat ini kita akan
membahas Relasi Asosiasi yang
terdiri dari :
- Relasi Has A.
Relasi ini
disebut juga dengan Relasi Agregasi yang memiliki arti bahwa sebuah class
memiliki object dari class yang lain. Sifat kepemilikan relasi ini adalah satu
arah. Lalu ada juga sifat relasi agregasi lain yang merupakan independen
(saling lepas); artinya setiap class yang berelasi masih tetap berfungsi secara
mandiri, meskipun jika salah satunya tidak digunakan. Hal ini yang menunjukkan
kepemilikan relasi ini lemah.
- Relasi Part Of.
Relasi ini
mempunyai sifar kepemilikan yang mirip dengan relasi sebelumnya, namun sifatnya
lebih kuat. Relasi ini juga disebut relasi komposisi yang mana memiliki arti
bagian/komponen dari. Sifat relasi ini berikatan lebih kuat dari relasi Has A.
Nah, pada contoh aplikasi yang kami buat (Aplikasi Manajemen Proyek dan Sewa untuk Kegiatan Usaha Contractor Alat Berat) kami menerapkan relasi asosiasi yang sudah dijelaskan saat ini. Berikut adalah source code dari studi kasus yang kami buat :
CLASS OPERATOR
public class Operator {
private String nama_operator;
private String id_operator;
private int usia_operator;
private String alamat_operator;
private
String id_forklift;//Tambahan untuk relasi
Operator(){}
//Tambahan
untuk relasi
Operator(String nm_op, String id_op, int us, String al, String
id_fl){
nama_operator=nm_op; id_operator=id_op; usia_operator=us;
alamat_operator=al;
id_forklift=id_fl;
}
//Method
setter
public void
setnama_operator(String nm){
nama_operator=nm;
}
public void
setid_operator(String i){
id_operator=i;
}
public void
setusia_operator(int u){
usia_operator=u;
}
public void
setalamat_operator(String a){
alamat_operator=a;
}
//Tambahan
untuk relasi
public void
id_forklift(String id_fl){
id_forklift=id_fl;
}
//Method
getter
String
getnama_operator(){
return
nama_operator;
}
String
getid_operator(){
return
id_operator;
}
int
getusia_operator(){
return
usia_operator;
}
String
getalamat_operator(){
return
alamat_operator;
}
String
getid_forklift(){
return id_forklift;
}
//Query
String
ToString(){
return
"Nama : "+nama_operator+"\nId : "+id_operator+"\nUsia
: "
+usia_operator+"\nAlamat : "+alamat_operator+
"\nSedang Menggunakan Forklift ID "+id_forklift;
}
}
CLASS FORKLIFT
public class cForklift {
private
String id_forklift;
private
String status_fl;
private
String type_fl;
//Tambahan
untuk relasi
private
String id_operator;
private
String nama_operator;
cForklift(){}
//Tambahan
untuk relasi
cForklift(String id, String stat, String type, String id_op, String
nm_op){
id_forklift=id; status_fl=stat; type_fl=type; id_operator=id_op;
nama_operator=nm_op;
}
//Method
setter
public void
setid_forklift(String a){
id_forklift=a;
}
public void
setstatus_fl(String b){
status_fl=b;
}
public void
settype_fl(String c){
type_fl=c;
}
//Tambahan
untuk relasi
public void
setid_operator(String id_op){
id_operator=id_op;
}
public void
setnama_operator(String nm_op){
nama_operator=nm_op;
}
//Method
getter
String
getid_forklift(){
return
id_forklift;
}
String
getstatus_fl(){
return
status_fl;
}
String
gettype_fl(){
return
type_fl;
}
//Tambahan
untuk relasi
String
getid_operator(){
return
id_operator;
}
String
getnama_operator(){
return
nama_operator;
}
//Query
String
ToString (){
//Tambahan untuk relasi
return
"ID Forklift = "+id_forklift+"\nTipe =
"+type_fl+"\nStatus = "+status_fl+
"\nDigunakan operator = "+nama_operator+" ID "+id_operator;
}
}
CLASS PROYEK
public class cProyek {
private
String id_proyek;
private
String tgl_proyek;
private
String nama_prk;
cProyek(){
}
cProyek(String id,String nm ,String tgl){
id_proyek=id;
tgl_proyek=tgl;
nama_prk
= nm;
}
public void
setIDProyek(String i){id_proyek=i;}
public void
setnama_prk(String n){nama_prk=n;}
public void
setTglProyek(String t){tgl_proyek=t;}
public
String getIDProyek(){return id_proyek;}
public
String getnama_proyek(){return nama_prk;}
public
String getTglProyek(){return tgl_proyek;}
public
String ToString(){
return
"ID Proyek: "+id_proyek+"\n Nama Proyek :
"+nama_prk+"\n.Tanggal: "+tgl_proyek;
}
}
CLASS CLIENT
public class cClient {
private
String nama;
private
String id_client;
private int
no_telp;
private
String id_proyek;
private
String nama_prk;
private int
tagihan;
cClient(){}
cClient(String id,String nama_client,
int nomor,String idp,String nprk, int bayar){
nama=nama_client; id_client=id; no_telp=nomor; id_proyek= idp;
nama_prk=nprk; tagihan = bayar;
}
//method
setter
public void
setnama(String nm){
nama =
nm;
}
public void
setid_client(String i){
id_client = i;
}
public void
setno_telp(int n){
no_telp
= n;
}
public void
setid_proyek(String id){
id_proyek= id;
}
public void
setnama_prk(String na){
nama_prk= na;
}
public void
settagihan(int buy){
tagihan =
buy;
}
//method getter
public
String getnama(){
return
nama;
}
public
String getid_client(){
return
id_client;
}
public int
getno_telp(){
return
no_telp;
}
public
String getid_proyek(){
return
id_proyek;
}
public
String getnama_prk(){
return
nama_prk;
}
public int
gettagihan(){
return
tagihan;
}
//method
query
public
String ToString(){
return
" ID Client : "+id_client +"\n Nama Client : "
+nama+" No Telepon :"+no_telp+"\n Id Proyek :
"+id_proyek+"\n Nama Proyek : "+nama_prk
+"\n Tagihan : Rp."+tagihan;
}
}
CLASS PEMBUKUAN
public class cPembukuan {
private
String idtransaksi;
private
String idkeluar;
private
double kasMasuk;
private
double kasKeluar;
private
String nama;
private
String id_client;
private
String id_proyek;
private
String nama_proyek;
cPembukuan(){}
cPembukuan(String id,double masuk,String idk,double keluar,String nm,
String idc, String idp, String
nmp){
idtransaksi=id; kasMasuk = masuk; idkeluar=idk; kasKeluar=keluar;
nama=nm; id_client=idc; id_proyek=idp; nama_proyek=nmp;
}
//method
setter
public void
setidtransaksi(String sell){
idtransaksi = sell; }
public void
setidkeluar(String buy){
idkeluar=buy; }
public void
setkasMasuk(double m){
kasMasuk
= m; }
public void
setkasKeluar(double k){
kasKeluar = k; }
public void
setNamaClient(String nm){
nama =
nm;
}
public void
setIDClient(String idc){
id_client=idc;
}
public void
setIDProyek(String idp){
id_proyek=idp;
}
public void
setNamaProyek(String nmp){
nama_proyek = nmp;
}
//method getter
String
getidtransaksi(){
return
idtransaksi;
}
String
getidkeluar(){
return
idkeluar;
}
public
double getkasMasuk(){
return
kasMasuk;
}
public
double getkasKeluar(){
return
kasKeluar;
}
String
getNamaClient(){
return
nama;
}
String
getIDClient(){
return
id_client;
}
String
getIDProyek(){
return
id_proyek;
}
String
getNamaProyek(){
return
nama_proyek;
}
//method
query
public
String ToString(){
return
" Pemasukan :
"+idtransaksi+" "+kasMasuk +
"\n Pengeluaran : "+idkeluar+" "+kasKeluar
;
}
}
METHOD MAIN
public
class OOP_Final_Project {
public
static void main(String[] args) {
Scanner s = new Scanner (System.in);
Operator op = null;
cForklift fl = null;
cProyek prk =null;
cClient clt=null;
cPembukuan bk= null;
int pilih;
do{
System.out.println("SISTEM
DATA KONTRAKTOR");
System.out.println("1.Operator");
System.out.println("2.Forklift");
System.out.println("3.Client");
System.out.println("4.Proyek");
System.out.println("5.Pembukuan");
System.out.println("6.Keluar");
System.out.print("Pilih =
");
pilih = s.nextInt();
System.out.println(""); int
pilih2;
switch(pilih){
case 1:
System.out.println("Menu Operator");
System.out.println("1.
Tambah Operator");
System.out.println("2. Hapus
Operator");
System.out.println("3.
Update Data Operator");
System.out.println("4.
Cetak Data Operator");
System.out.println("5.
Query ");
System.out.print("Pilih = ");
pilih2 = s.nextInt();
switch(pilih2){
case 1:
System.out.println("==
Tambah Data Operator ==");
System.out.print("Masukkan Nama Operator = ");
String nama =
s.next ();
System.out.print("Masukkan id Operator = ");
String id = s.next();
System.out.print("Masukkan Usia = ");
int us =
s.nextInt();
System.out.print("Masukkan Alamat Operator = ");
String al= s.next();
System.out.print("Masukkan ID Forklift = ");
String
id_fl=s.next();
op = new
Operator(nama,id,us,al,id_fl);
break;
case 2:
System.out.println("== Hapus Data Operator ==");
System.out.print("Masukkan id Operator = ");
id = s.next();
if(op!= null
&&op.getid_operator().equalsIgnoreCase(id))
{
System.out.println("Data ditemukan");
System.out.println("Dihapus? 1.Ya, 2.Tidak");
System.out.print("Pilih = ");
pilih2 =
s.nextInt();
if(pilih2==1){
op = null;
System.out.println("Data dihapus...");
}
else
System.out.println("Batal hapus...");
}
else
System.out.println("Data tidak ada...");
break;
case 3:
System.out.println("== Edit Data ==");
System.out.print("Masukkan id = ");
id = s.next();
if(op != null
&& op.getid_operator().equalsIgnoreCase(id))
{
System.out.println("Data ditemukan");
System.out.print("Nama
Operator = ");
String nm =
s.next();
System.out.print("id baru =
");
String ip =
s.next();
System.out.print("Usia
Operator : ");
int usia =
s.nextInt();
System.out.print("Alamat Operator : ");
String alamat =
s.next();
System.out.println("Simpan?
1.Ya, 2.Tidak");
System.out.print("Pilih = ");
pilih2 =
s.nextInt();
if(pilih2==1){op.setnama_operator(nm);op.setid_operator(ip);
op.setusia_operator(usia);op.setalamat_operator(alamat);
System.out.println("Data diperbarui...");
}
else
System.out.println("Batal update...");
}
else
System.out.println("Data tidak ada...");
break;
case 4:
System.out.println("== Lihat Data ==");
if(op!=null){
System.out.println("id Operator : "+op.getid_operator());
System.out.println("Nama : "+op.getnama_operator());
System.out.println("Usia :
"+op.getusia_operator());
System.out.println("Alamat : "+op.getalamat_operator());
}
else
System.out.println("Data kosong...");
break;
case 5:
System.out.println("== Query Data ==");
if(op!=null)
System.out.println(op.ToString());
else
System.out.println("Data kosong...");
break;
}break;
case 2:
System.out.println("Menu Data Forklift");
System.out.println("1.
Tambah Forklift");
System.out.println("2.
Hapus Forklift");
System.out.println("3.
Update Status Forklift");
System.out.println("4.
Cetak Data Forklift");
System.out.println("5.
Query");
System.out.print("Pilih = ");
pilih2 = s.nextInt();
switch(pilih2){
case 1:
System.out.println("== Tambah Data Forklift ==");
System.out.print("Masukkan ID Forklift = ");
String id = s.next
();
System.out.print("Masukkan Status Forklift(Dipakai/Standby) =
");
String st=
s.next();
System.out.print("Masukkan Tipe Forklift(5ton,10ton,20ton) = ");
String tp =
s.next();
System.out.print("Masukkan ID Operator = ");
String id_op =
s.next();
System.out.print("Masukkan
Nama Operator = ");
String nm_op =
s.next();
if(op!=null
&& op.getid_operator().equalsIgnoreCase(id_op)){
if(op!=null
&& op.getnama_operator().equalsIgnoreCase(nm_op)){
fl = new
cForklift();
fl.setid_forklift(id);
fl.setstatus_fl(st);
fl.settype_fl(tp);
fl.setid_operator(id_op);
fl.setnama_operator(nm_op);
System.out.println("Penambahan Data Sukses");
}else{
System.out.println("Mohon
Maaf ID Operator Tidak Ada");
}
}else{
System.out.println("Mohon maaf Nama Operator Tidak Ada");
}
break;
case 2:
System.out.println("== Hapus Data Forklift ==");
System.out.print("Masukkan id Forklift = ");
id = s.next();
if(fl!= null
&&fl.getid_forklift().equalsIgnoreCase(id))
{
System.out.println("Data ditemukan");
System.out.println("Dihapus? 1.Ya, 2.Tidak");
System.out.print("Pilih = ");
pilih2 =
s.nextInt();
if(pilih2==1){
fl = null;
System.out.println("Data
dihapus...");
}
else
System.out.println("Batal hapus...");
}
else
System.out.println("Data tidak ada...");
break;
case 3:
System.out.println("== Edit Data Forklift ==");
System.out.print("Masukkan
id Forklift = ");
id = s.next();
if(fl != null
&& fl.getid_forklift().equalsIgnoreCase(id))
{
System.out.println("Data
ditemukan");
System.out.print("Masukkan ID baru Forklift = ");
String idn = s.next
();
System.out.print("Masukkan Tipe baru Forklift = ");
String tpn =
s.next();
System.out.println("Masukkan Status Forklift = ");
String stn=
s.next();
System.out.println("Simpan? 1.Ya, 2.Tidak");
System.out.print("Pilih = ");
pilih2 =
s.nextInt();
if(pilih2==1){fl.setid_forklift(idn);fl.settype_fl(tpn);
fl.setstatus_fl(stn);
System.out.println("Data diperbarui...");
}
else
System.out.println("Batal update...");
}
else
System.out.println("Data tidak ada...");
break;
case 4:
System.out.println("==
Lihat Data Forklift ==");
if(fl!=null){
System.out.println("id Forklift
: "+fl.getid_forklift());
System.out.println("Type Froklift :
"+fl.gettype_fl());
System.out.println("Status
: "+fl.getstatus_fl());
}
else
System.out.println("Data kosong...");
break;
case 5:
System.out.println("== Query Data Forklift ==");
if(fl!=null)
System.out.println(fl.ToString());
else
System.out.println("Data kosong...");
break;
}break;
case 3:
System.out.println("Manajemen Client");
System.out.println("1.
Tambah Data Client");
System.out.println("2.
Hapus Data Client");
System.out.println("3. Update Data
Client");
System.out.println("4.
Cetak Data Client");
System.out.println("5.
Query");
System.out.print("Pilih = ");
pilih2 = s.nextInt();
switch(pilih2){
case 1:
System.out.println("== Tambah Data Client ==");
System.out.print("Masukkan
ID Client = ");
String idc = s.next
();
System.out.print("Masukkan Nama Client = ");
String name =
s.next();
System.out.print("Masukkan Nomor Telpon Client = ");
int tlp=
s.nextInt();
System.out.print("Masukkan ID Proyek = ");
String idp = s.next
();
System.out.print("Masukkan Nama Proyek : ");
String nama =
s.next();
System.out.print("Masukkan Nominal Tagihan : ");
int tag =
s.nextInt();
if(prk!= null
&&prk.getIDProyek().equalsIgnoreCase(idp)){
if(prk!= null
&&prk.getnama_proyek().equalsIgnoreCase(nama)){
clt = new
cClient();
clt.setid_client(idc);
clt.setnama(name);
clt.setno_telp(tlp);
clt.setid_proyek(idp);
clt.setnama_prk(nama);
clt.settagihan(tag);
System.out.println("Penambahan Data Sukses....");
}else{
System.out.println("Mohon Maaf id proyek tidak ada");
}
}else {
System.out.println("Mohon Maaf Nama Proyek Tidak ada");
}
break;
case 2:
System.out.println("== Hapus Data Client ==");
System.out.print("Masukkan id Forklift = ");
idc = s.next();
if(clt!= null
&&clt.getid_client().equalsIgnoreCase(idc))
{
System.out.println("Data ditemukan");
System.out.println("Dihapus? 1.Ya, 2.Tidak");
System.out.print("Pilih = ");
pilih2 =
s.nextInt();
if(pilih2==1){
fl = null;
System.out.println("Data dihapus...");
}
else
System.out.println("Batal hapus...");
}
else
System.out.println("Data tidak ada...");
break;
case 3:
System.out.println("== Edit Data Client ==");
System.out.print("Masukkan id Forklift = ");
idc = s.next();
if(clt != null
&& clt.getid_client().equalsIgnoreCase(idc))
{
System.out.println("Data ditemukan");
System.out.print("Masukkan ID
baru Client = ");
String idcn =
s.next ();
System.out.print("Masukkan Nama baru Client = ");
String namen =
s.next();
System.out.println("Masukkan
Nomor Telpon Client = ");
int tlpn=
s.nextInt();
System.out.println("Simpan? 1.Ya, 2.Tidak");
System.out.print("Pilih = ");
pilih2 =
s.nextInt();
if(pilih2==1){clt.setid_client(idcn);clt.setnama(namen);
clt.setno_telp(tlpn);
System.out.println("Data diperbarui...");
}
else
System.out.println("Batal update...");
}
else System.out.println("Data
tidak ada...");
break;
case 4:
System.out.println("== Lihat Data Client ==");
if(clt!=null){
System.out.println("id Client
: "+clt.getid_client());
System.out.println("Nama Client
: "+clt.getnama());
System.out.println("Nomor
Telpon : "+clt.getno_telp());
}
else
System.out.println("Data kosong...");
break;
case 5:
System.out.println("== Query Data Client ==");
if(clt!=null)
System.out.println(clt.ToString());
else
System.out.println("Data kosong...");
break;
}break;
case 4:
System.out.println("Menu
Data Proyek");
System.out.println("1.
Tambah Data Proyek");
System.out.println("2.
Hapus Data Proyek");
System.out.println("3.
Update Data Proyek");
System.out.println("4.
Cetak Data Proyek");
System.out.println("5.
Query ");
System.out.print("Pilih = ");
pilih2 = s.nextInt();
switch(pilih2){
case 1:
System.out.println("== Tambah Data Proyek ==");
System.out.print("Masukkan ID Proyek = ");
String idp = s.next
();
System.out.print("Masukkan Tanggal Proyek (DD/MM/YYYY) = ");
String tgl=
s.next();
System.out.print("Masukkan Nama Proyek = ");
String nama=s.next();
prk = new
cProyek(idp,nama,tgl);
break;
case 2:
System.out.println("==
Hapus Data Proyek ==");
System.out.print("Masukkan id Proyek = ");
idp = s.next();
if(prk!= null
&&prk.getIDProyek().equalsIgnoreCase(idp))
{
System.out.println("Data ditemukan");
System.out.println("Dihapus? 1.Ya, 2.Tidak");
System.out.print("Pilih
= ");
pilih2 =
s.nextInt();
if(pilih2==1){
prk = null;
System.out.println("Data dihapus...");
}
else
System.out.println("Batal hapus...");
}
else System.out.println("Data
tidak ada...");
break;
case 3:
System.out.println("== Edit Data Proyek ==");
System.out.print("Masukkan id Proyek = ");
idp = s.next();
if(prk!= null
&&prk.getIDProyek().equalsIgnoreCase(idp))
{
System.out.println("Data ditemukan");
System.out.print("Masukkan ID baru Proyek = ");
String idpn =
s.next ();
System.out.print("Masukkan
Tanggal baru Client = ");
String tgln =
s.next();
System.out.println("Simpan? 1.Ya, 2.Tidak");
System.out.print("Pilih = ");
pilih2 =
s.nextInt();
if(pilih2==1){prk.setIDProyek(idpn);prk.setTglProyek(tgln);
System.out.println("Data diperbarui...");
}
else
System.out.println("Batal update...");
}
else
System.out.println("Data tidak ada...");
break;
case 4:
System.out.println("== Lihat Data Proyek ==");
if(prk!=null){
System.out.println("id Proyek : "+prk.getIDProyek());
System.out.println("Tanggal Mulai Proyek : "+prk.getTglProyek());
}
else
System.out.println("Data kosong...");
break;
case 5:
System.out.println("== Query Data Proyek ==");
if(prk!=null)
System.out.println(prk.ToString());
else
System.out.println("Data kosong...");
break;
}break;
case 5:
System.out.println("Pembukuan");
System.out.println("1.
Pemasukan dan Pengeluaran");
System.out.println("2.
Laporan keuangan");
System.out.print("Pilih = ");
pilih2 = s.nextInt();
switch(pilih2){
case 1:
System.out.println("== Catat Pemasukkan ==");
System.out.print("Masukkan
ID Pemasukkan = ");
String ids = s.next
();
System.out.print("Masukkan Nominal Pemasukkan = ");
double sell=
s.nextDouble();
System.out.println("==
Catat Pengeluaran ==");
System.out.print("Masukkan ID Pengeluaran = ");
String idb = s.next
();
System.out.print("Masukkan Nominal Pengeluaran = ");
double buy=
s.nextDouble();
System.out.print("Masukkan Nama Client = ");
String nm =
s.next();
System.out.print("Masukkan ID Client = ");
String idc =
s.next();
System.out.print("Masukkan ID Proyek = ");
String idp =
s.next();
System.out.print("Masukkan Nama Proyek = ");
String nmp = s.next();
if(clt!=null
&& clt.getnama().equalsIgnoreCase(nm)){
if(clt!=null
&& clt.getid_client().equalsIgnoreCase(idc)){
if(prk!=null
&& prk.getIDProyek().equalsIgnoreCase(idp)){
if(prk!=null && prk.getnama_proyek().equalsIgnoreCase(nmp)){
bk
= new cPembukuan();
bk.setidtransaksi(ids);
bk.setkasMasuk(sell);
bk.setidkeluar(idb);
bk.setkasKeluar(buy);
bk.setNamaClient(nm);
bk.setIDClient(idc);
bk.setIDProyek(idp);
bk.setNamaProyek(nmp);
System.out.println("Penambahan
data berhasil");
}else{
System.out.println("Maaf Nama proyek tidak ada");
}
}else{
System.out.println("Maaf ID Proyek tidak ada");
}
}else{
System.out.println("Maaf ID Client tidak ada");
}
}else{
System.out.println("Maaf Nama Client tidak ada");
}
break;
case 2:
System.out.println("== Laporan keuangan ==");
if(bk!=null)
System.out.println(bk.ToString());
else
System.out.println("Data kosong...");
break;
}break;
case 6:
System.out.println("Terima Kasih");
System.exit(0);
break;
}
System.out.println("");
}while(pilih!=6);
}
}
Disini kami
membuat 3 Relasi Asosiasi, rinciannya sebagai berikut :
1. Relasi antara Client – Proyek
Relasi ini kami buat agar memudahkan pengguna dalam
mengakses macam macam proyek yang diminta oleh client.
2. Relasi Pembukuan – Client + Proyek
Pada relasi ini, kami buat agar pengguna dapat mudah
untuk mengakses catatan pemasukan dan pengeluaran yang mana pada proyek yang
diminta oleh client.
3. Relasi Operator – Forklift
Relasi ini kami buat agar pengguna (yang mana hal tersebut merajuk pada
Operator) dapat mudah dalam merubah status dari Forklift, dan melihat data dari
Forklift yang sedang digunakan oleh Operator.
Terimakasih telah menyisihkan waktu anda untuk membaca tulisan ini dari blog kami, selamat mencoba!!
Disusun oleh :
1. Nadilla Anidew (20082010127)
2. Roro Ayu Pangestuti (20082010128)
3. Daud Arya Rafa (20082010137)
Komentar
Posting Komentar