PENGGUNAAN CLASS CONTAINER DALAM PEMROGRAMAN OOP JAVA
TOKO PERCETAKAN DAEBAK
Aplikasi manajemen percetakan merupakan aplikasi sederhana yang dibuat
dengan tujuan membantu UMKM di bidang percetakan dalam menjalankan proses
bisnisnya sehari-hari.Dalam pertemuan ini,kami akan menunjukkan hasil penerapan
class container dalam aplikasi percetakan kami.
Apa aitu class
container ?
Class container merupakan sebuah class
dimana di dalam class ini bisa menampung
beberapa object yang berasal dari sebuah class sekaligus. Class container
adalah sebuah class yang bisa menyimpan banyak object sekaligus dari class
lain. Object-object class lain yang disimpan di dalam sebuah class container
tersebut bukan berupa object tunggal yang dibuat/dideklarasikan dalam jumlah
banyak. Namun, object-object tersebut ditampung dalam wadah berupa array/
larik. Sederhananya, implementasi class container adalah berupa adanya array of
object di dalam class tersebut. Hal ini mirip dengan penerapan relasi one to many
dalam konsep basis data.
Di dalam class container dimungkinkan pula
mempunyai lebih dari satu array of object. Tentunya situasi seperti ini
berdasarkan hasil kajian terhadap system/ aplikasi yang akan dibuat.
Contoh Class Container
Salah satu contoh class container adalah
kampus. Kampus adalah class container dengan fakultas-fakultas sebagai
object-nya. Fakultas adalah class container dengan beberapa program studi
sebagai object-nya. Dan program studi adalah class container dimana para
mahasiswa menjadi array of object yang dimilikinya.
*Dalam progress ke-3
ini kami melakukan beberapa perubahan dan pengembangan dari progress 1
sebelumnya
Berikut merupakan
class aplikasi terbaru kami
- Main Class
- cAdmin
- cMenu
- cPelanggan
- cPembelian
- cPenjualan
- cPesan
- cRekap
Berikut merupakan menu
terbaru aplikasi kami
- Menu Admin (berisi identitas admin seperti nama, id, umur, nomor telepon, dan alamat)
- Menu Pelanggan (berisi nama customer, id, tanggal pesanan, dan nomor telepon)
- Menu Layanan (berisi jenis-jenis layanan yang disediakan oleh toko)
- Menu Catatan Pengeluaran (berisi submenu untuk menginput jenis pengeluaran, tanggal, dan total pengeluaran)
- Menu Rekap Transaksi Harian (berisi sub menu untuk melihat total pendapatan dan total pengeluaran toko)
- Exit
Berikut merupakan
source code kelompok kami
Main Class
package pkgPercetakan; import java.util.Scanner; public class Percetakan { static int jns2, jumlah,
total, jn, semua; static int krts, tnt, stck,
index; public static Scanner sc =
new Scanner(System.in); static String
header="==========================================", jns; public static void
main(String[] args) { int pilih, pilih2,
jenis, harga ; cAdmin adm = null; cPenjualan trf = null; cPembelian beli = null; cRekapp rk = null; cPesan ps=null; cPelanggan pl=null; cMenu[]m=new cMenu[5]; m[0]= new
cMenu("Undangan", 8000); m[1]= new cMenu("ID_Card",
3000); m[2]= new
cMenu("Brosur_A4", 1500); m[3]= new
cMenu("Stiker", 8000); m[4]= new
cMenu("Sertifikat", 3500); int jmk=5; do{
System.out.println("===========================");
System.out.println(" TOKO
PERCETAKAN DAEBAK ");
System.out.println("===========================");
System.out.println("1. Admin");
System.out.println("2. Pelanggan");
System.out.println("3. Menu Layanan");
System.out.println("4. Catat Pengeluaran");
System.out.println("5. Rekap Transaksi Harian");
System.out.println("6. Exit");
System.out.print("Silahkan tekan angka sesuai menu yang ingin
digunakan : "); pilih =
sc.nextInt(); switch(pilih){ case 1 :
System.out.println("----------------------------"); System.out.println(" MENU ADMIN ");
System.out.println("----------------------------");
System.out.print("1.Input Admin\t\t4.Delete Admin\n2.Update
Admin\t\t5.Query Admin\n3.View Admin\t\t6.Back\n ");
System.out.print("Silahkan pilih menu diatas : "); pilih2 =
sc.nextInt();
switch(pilih2){ case 1 : System.out.println("-------------------------------");
System.out.println("Menambah Admin...");
System.out.println("-------------------------------");
System.out.print("Masukkan Nama Admin = ");
sc=new Scanner(System.in);
String nama = sc.nextLine ();
System.out.print("Masukkan ID Admin = "); String id = sc.next();
System.out.print("Masukkan Usia = "); int
us = sc.nextInt();
System.out.print("Masukkan Nomor Telepon = ");
String tlp = sc.next();
System.out.print("Masukkan Alamat Operator = ");
sc=new Scanner(System.in);
String alamat= sc.nextLine(); adm
= new cAdmin(nama, id, us, tlp, alamat);
System.out.println("Data Tersimpan...");
System.out.println(""); break; case 2 :
System.out.println("Memperbarui Data...");
System.out.print("Masukkan ID Admin = "); id=sc.next();
if(adm!=null && adm.getID().equalsIgnoreCase(id)){
System.out.println("Admin ditemukan..");
System.out.println("+++++++++++++++++++++++++++++++++++++++++");
System.out.println("Admin atas nama = "+adm.getNama());
System.out.println("+++++++++++++++++++++++++++++++++++++++++"); System.out.println("Data apa
yang ingin anda ubah?");
System.out.println("1. Nama\n2. Nomor Telepon\n3. Alamat");
System.out.print("Pilih = ");
int ubahpilih=sc.nextInt();
if(ubahpilih==1){
System.out.print("Masukkan nama baru = ");
sc=new Scanner(System.in); nama = sc.nextLine();
adm.setNama(nama);
System.out.println("Nama baru sudah tersimpan..");
}else if(ubahpilih==2){
System.out.print("Masukkan nomor telepon baru =
");
tlp = sc.next();
adm.setTelp(tlp);
System.out.println("Nomor telepon baru sudah tersimpan..");
}else if(ubahpilih==3){
System.out.print("Masukkan alamat baru = ");
sc = new Scanner(System.in); alamat =
sc.nextLine();
adm.setAlamat(alamat);
System.out.println("Alamat baru sudah tersimpan..");
}else System.out.println("Pilihan
tidak ada!");
System.out.println("");
}else
System.out.println("Data tidak ditemukan!"); break; case 3 :
System.out.println("Menampilkan Data Admin...");
if(adm!=null){
System.out.println("---------------Admin-----------------");
System.out.println("ID Admin : "+adm.getID());
System.out.println("Nama Admin : "+adm.getNama());
System.out.println("Usia Admin : "+adm.getUmur());
System.out.println("Telepon Admin : "+adm.getTelp());
System.out.println("Alamat Admin : "+adm.getAlamat());
System.out.println(""); }else
System.out.println("Belum ada admin yang terdaftar");
break; case 4
:
System.out.println("Menghapus Data Admin...");
System.out.print("Masukkan ID Admin = "); id =
sc.next();
if(adm!=null && adm.getID().equalsIgnoreCase(id)){
System.out.println("Admin ditemukan..");
System.out.println("+++++++++++++++++++++++++++++++++++++++++");
System.out.println("Admin atas nama = "+adm.getNama());
System.out.println("+++++++++++++++++++++++++++++++++++++++++");
System.out.println("Apakah yakin data akan dihapus?");
System.out.println("1. Ya/2. Tidak");
System.out.print("Pilih : ");
int konfir = sc.nextInt();
if(konfir==1){
adm=null; System.out.println("Data
berhasil dihapus");
}else
System.out.println("Tidak menghapus data");
}else
System.out.println("Data tidak ditemukan!");
break;
case 5 :
System.out.println("Daftar Admin");
if(adm!=null){
System.out.println(adm.ToString());
}else
System.out.println("Tidak ada data!");
break; case 6 :
break; default
:
System.out.println("Pilihan tidak ditemukan!"); } break; case 2 :
System.out.println("-------------------------------");
System.out.println("
Pelanggan ");
System.out.println("-------------------------------"); System.out.print("1.Input\t\t4.Delete\n2.Update\t5.Back\n3.View\n
");
System.out.print("Silahkan pilih menu diatas : ");
pilih2=sc.nextInt();
switch(pilih2){ case 1:
System.out.println("------------------------");
System.out.println("Menambahkan Pelanggan...");
System.out.println("------------------------"); System.out.print("Masukkan
Id Pesanan : ");
String id2 =sc.next();
System.out.print("Masukkan Nama Customer : ");
String nma = sc.next(); System.out.print("Masukkan
Tanggal Pesanan : ");
String tglpsn = sc.next();
System.out.print("Masukkan Nomor Telepon : ");
String notlp = sc.next(); pl =
new cPelanggan(id2, nma, tglpsn, notlp);
break; case 2:
System.out.println("Memperbarui Data...");
System.out.print("Masukkan ID Pesanan = ");
id2=sc.next();
if(pl!=null && pl.getId().equalsIgnoreCase(id2)){
System.out.println("Pelanggan ditemukan..");
System.out.println("+++++++++++++++++++++++++++++++++++++++++");
System.out.println("Pelanggan atas nama = "+pl.getNama());
System.out.println("+++++++++++++++++++++++++++++++++++++++++");
System.out.println("Data apa yang ingin anda ubah?"); System.out.println("1.
Nama\n2. Nomor Telepon");
System.out.print("Pilih = ");
int pilihh=sc.nextInt();
if(pilihh==1){ System.out.print("Masukkan nama
baru = ");
sc=new Scanner(System.in);
String namaa = sc.nextLine();
pl.setNama(namaa); System.out.println("Nama
baru sudah tersimpan..");
}else if(pilihh==2){
System.out.print("Masukkan nomor telepon baru =
");
String ntlp = sc.next();
pl.setNotelp(ntlp);
System.out.println("Nomor telepon baru sudah
tersimpan..");
}else System.out.println("Pilihan
tidak ada!");
System.out.println("");
}else
System.out.println("Data tidak ditemukan");
break;
case 3:
System.out.println("Menampilkan Data Pelanggan..."); if
(pl!= null) {
System.out.println("Id : " +
pl.getId());
System.out.println("Nama : " +
pl.getNama());
System.out.println("Tanggal Pemesanan (DD/MM/YY)
: " + pl.getTanggal());
System.out.println("Nomor Telepon : " +
pl.getNotelp());
}else{
System.out.println("Data Belum Ada"); }
break;
case 4:
System.out.println("Menghapus Data Pelanggan...");
System.out.print("ID =
"); id2
= sc.next(); if
(pl!= null && pl.getId().equalsIgnoreCase(id2)) {
System.out.print("Apakah Anda Yakin Akan Menghapus Data
Pelanggan?\n1.Ya\t2.Tidak\nPilih : ");
int hapus = sc.nextInt();
if (hapus == 1) {
pl = null;
System.out.println("Hapus Berhasil....!!!!!");
}else {
System.out.println("Eaaa Gajadi...");
}
break; }
System.out.println("Belum ada pelanggan");
break; case 5:
break; default
:
System.out.println("pilihan tidak ada!"); } break; case 3 :
System.out.println("-------------------------------");
System.out.println("
Menu Layanan ");
System.out.println("-------------------------------"); for(int
i=0;i<5;i++){
System.out.println("|
"+m[i].getNama()+"\t\t "+m[i].getHarga()); }
System.out.print("1.Input\t\t4.Delete\n2.Order\t\t5.Back\n3.View\t\t6.Back\n
");
System.out.print("Silahkan pilih menu diatas : ");
pilih2=sc.nextInt();
switch(pilih2){ case 1:
System.out.print("Masukkan Jumlah Layanan Yang ingin digunakkan :
"); int j = sc.nextInt(); ps =
new cPesan(pl, j);
System.out.println("Pembuatan sukses...");
break; case 2 :
System.out.println("------------------------------------------");
System.out.println("|
Layanan tersedia | Harga
|");
System.out.println("------------------------------------------");
for(int i=0;i<5;i++){
System.out.println("|
"+m[i].getNama()+"\t\t "+m[i].getHarga()); }
System.out.print("Masukkan Jenis Layanan Cetak : "); jns
= sc.next();
//indeks(jns); sc=new Scanner(System.in);
boolean ada = false; for
(int i = 0; i < jmk; i++) {
if (m[i].getNama().equalsIgnoreCase(jns)) { ada = true;
if (ps != null) {
ps.tambahPesan (m[i]);
index=i;
System.out.print("Masukkan Jumlah Pesanan : ");
jumlah = sc.nextInt();
}else{
System.out.println("Layanan Tidak Ditemukan!"); }
break;
} } if
(ada == false) {
System.out.println("Layanan tidak tersedia!");
break;
}
hitung(index, jumlah);
System.out.print("Totalnya adalah :
Rp."+total+".00,-");
semua+=total; trf
= new cPenjualan(jns, jumlah, total, semua);
System.out.println("\n======Transaksi Berhasil
ditambahkan======"); break;
case 3 : if
(ps!= null) { System.out.println("Data
Pesanan");
System.out.println(ps.ToString());
} else {
System.out.println("Pembelian masih kosong!"); }
break;
case 4 : if
(ps!= null) {
System.out.print("Masukkan Nama Layanan yang ingin dihapus =
");
jns = sc.next();
ps.hapusPesan(jns);
} else {
System.out.println("Pembelian masih kosong!");
}
break;
case 5 :
break; default
: System.out.println("Pilihan
tidak ditemukan!"); } break; case 4 :
System.out.println("-------------------------------");
System.out.println("
Menu Pengeluaran ");
System.out.println("-------------------------------"); System.out.print("1.Input\t\t4.Delete\n2.Update\t5.Query\n3.View\t\t6.Back\n
");
System.out.print("Silahkan pilih menu diatas : ");
pilih2=sc.nextInt();
switch(pilih2){ case 1 :
System.out.print("Masukkan Nomor Pengeluaran : ");
String no = sc.next();
System.out.print("Masukkan Tanggal Pengeluaran : "); String tgls = sc.next();
System.out.print("Masukkan Jenis Pengeluaran : ");
String jnz = sc.next();
System.out.print("Masukkan Harga Pengeluaran : Rp."); int hrg =
sc.nextInt();
System.out.print("Masukkan Jumlah yang dipesan : "); int
jmlh = sc.nextInt();
count(hrg, jmlh); System.out.println("Total Pengeluaran
Adalah : Rp." +
total+".00,-"); beli
= new cPembelian(no, tgls, jnz, hrg, jmlh, total);
System.out.println("======Transaksi Pembelian Berhasil
ditambahkan======");
break;
case 2 :
System.out.println("Memperbarui Transaksi Pengeluaran..."); System.out.print("Nomor
Pesanan : ");
no=sc.next();
if(beli!=null && beli.getnomorBeli().equalsIgnoreCase(no)){
System.out.print("Jumlah Pengeluaran baru : ");
jmlh = sc.nextInt(); beli.setjumlahBeli(jmlh);
count(jns2,beli.getjumlahBeli());
beli.settotalBeli(total);
System.out.print("Totalnya adalah : Rp."+beli.gettotalBeli()+".00,-");
System.out.println("");
}else
System.out.println("Data tidak ditemukan!");
break;
case 3 :
System.out.println("Menampilkan Pengeluaran...");
if(beli!=null){
System.out.println("---------------Pengeluaran-----------------");
System.out.println("Nomor Pengeluaran : "+beli.getnomorBeli());
System.out.println("Tanggal Pengeluaran : "+beli.gettglBeli()); System.out.println("Jenis
Pengeluaran :
"+beli.getjenisBeli());
System.out.println("Jumlah pesanan : "+beli.getjumlahBeli());
System.out.println("Total harga : Rp."+beli.gettotalBeli()+".00,-");
System.out.println("");
}else
System.out.println("Belum ada transaksi."); break; case 4 :
System.out.println("Menghapus data Pengeluaran...");
System.out.print("Nomor pesanan : "); no =
sc.next();
if(beli!=null && beli.getnomorBeli().equalsIgnoreCase(no)){
System.out.println("Data ditemukan..");
System.out.println("Apakah yakin data akan dihapus?");
System.out.println("1. Ya/2. Tidak");
System.out.print("Pilih : "); int confirm =
sc.nextInt();
if(confirm==1){
beli=null;
System.out.println("Data berhasil dihapus"); System.out.println("");
}else
System.out.println("Tidak menghapus data");
System.out.println("");
}else System.out.println("Data
tidak ditemukan!");
System.out.println("");
break;
case 5 : System.out.println("Query
Data");
System.out.println("| No\t| Tanggal\t\t| Jenis\t\t| Harga\t\t|
Jumlah\t\t| Total\t\t");
if(beli!=null){
System.out.println(beli.ToString());
}else
System.out.println("Tidak ada data!");
break; case 6 :
break; default
:
System.out.println("Pilihan tidak ditemukan!"); } break; case 5 : System.out.println("-------------------------");
System.out.println(" Rekap
Transaksi Harian ");
System.out.println("-------------------------");
System.out.println("1. Total Pendapatan");
System.out.println("2. Total Pengeluaran");
System.out.print("Pilih = "); pilih2 =
sc.nextInt(); rk = new
cRekapp(trf, beli); switch(pilih2){ case 1:
System.out.println("======= Total Pendapatan =======");
if(trf!=null){
System.out.print("Penjualan = Rp."); System.out.println(rk.getJual().getSemua()); }else
System.out.println("data tidak ada"); break; case 2:
System.out.println("======= Total Pengeluaran =======");
if(beli!=null){
System.out.print("Pembelian = Rp.");
System.out.println(rk.getBeli().gettotalBeli()); }else
System.out.println("Tidak Ada Data"); break; } break; } }while(pilih!=6);
System.out.println("Terimakasih.."); } static void harga(int
total){ } static void hitung(int ind,
int jumlah){ if (ind==0){ total=8000*jumlah;
System.out.println("njay"); }else if(ind==1){ total=3000*jumlah; }else if(ind==2){ total=1500*jumlah; }else if(ind==3){ total=8000*jumlah; }else if(ind==4){ total=3500*jumlah; } } static void count(int hrg,
int jmlh){ total=hrg*jmlh; } } |
Class cAdmin
package pkgPercetakan; public class cAdmin { private String nama, id, alamat, tlp; private int us; //Implementasi Has A //private cAdmin adm; //construct cAdmin(String nm, String ID,
int umr, String telp, String almt){ nama=nm; id=ID; us=umr;
tlp=telp; alamat=almt; } //setter public void setNama(String
nm){ nama=nm; } public void setID(String
ID){ id=ID; } public void setUmur(int
umr){ us=umr; } public void setTelp(String
telp){ tlp=telp; } public void setAlamat(String
almt){ alamat=almt; } //getter public String getNama(){ return nama; } public String getID(){ return id; } public int getUmur(){ return us; } public String getTelp(){ return tlp; } public String getAlamat(){ return alamat; } //query public String ToString(){ return nama+"
\t"+id+" \t "+us+" \t "+tlp+" \t "+alamat; } } |
Class cMenu
package pkgPercetakan; public class cMenu { private String nama; private int harga; cMenu(String n, int h){ nama=n; harga=h; } public String getNama(){ return nama; } public int getHarga(){ return harga; } } |
Class cPelanggan
package pkgPercetakan; import java.util.Scanner; public class cPelanggan { // atribut/data/ Scanner sc = new
Scanner(System.in); private String idplgn; private String nama; private String tglpsn; private String notelp; // method/operasi cPelanggan(String id, String
nm, String tp, String nt){ idplgn = id; nama = nm; tglpsn = tp; notelp = nt; } //setter public void setId(String
id){ idplgn = id; } public void setNama(String
nm){ nama = nm; } public void
setTanggal(String tp){ tglpsn = tp; } public void setNotelp(String
nt){ notelp = nt; } //getter public String getId(){ return idplgn; } public String getNama(){ return nama; } public String getTanggal(){ return tglpsn; } public String getNotelp(){ return notelp; } } |
Class cPembelian
package pkgPercetakan; public class cPembelian { //attribut, data, variabel private int jumlahBeli; private String tglBeli,
jenisBeli, nomorBeli; private long hargaBeli,
totalBeli; //method fungsi //constructor cPembelian(String nom,
String tgl,String jns, long hrg, int jml, long tot){ tglBeli=tgl;
jenisBeli=jns; hargaBeli=hrg; jumlahBeli=jml; totalBeli=tot; } //Method setter public void
setnomorBeli(String nom){ nomorBeli=nom; } public void
settglBeli(String tgl){ tglBeli=tgl; } public void
setjenisBeli(String jns){ jenisBeli=jns; } public void sethargBeli(long
hrg){ hargaBeli=hrg; } public void
setjumlahBeli(int jml){ jumlahBeli=jml; } public void
settotalBeli(long tot){ totalBeli=tot; } //Method getter public String
getnomorBeli(){ return nomorBeli; } public String gettglBeli(){ return tglBeli; } public String
getjenisBeli(){ return jenisBeli; } public long gethargaBeli(){ return hargaBeli; } public int getjumlahBeli(){ return jumlahBeli; } public long gettotalBeli(){ return totalBeli; } //query public String ToString(){ return "|
"+nomorBeli+" \t| "+tglBeli+" \t|
"+jenisBeli+"\t\t|
Rp."+hargaBeli+"\t\t\t| "+jumlahBeli+"\t\t\t| Rp."+totalBeli+"\t|"; } } |
Class cPenjualan
package pkgPercetakan; public class cPenjualan { //attribut, data,
variabel private int jumlah,total,
semua; private String jns, nmr,
nama; //constructor cPenjualan(String jns1, int
jml, int tot, int sm){ jns=jns1; jumlah=jml;
total=tot; semua=sm; } //Method setter public void setJenis(String
jns1){ jns=jns1; } public void setJumlah(int
jml){ jumlah=jml; } public void setTotal(int
tot){ total=tot; } public void setSemua(int
sm){ semua=sm; } //Method getter public String getJenis(){ return jns; } public int getJumlah(){ return jumlah; } public int getTotal(){ return total; } public int getSemua(){ return semua; } //query public String ToString(){ return "|
"+nmr+" \t| "+nama+"\t\t| "+jns+"\t\t\t|
"+jumlah+"\t\t\t| Rp."+total+"\t|"; } } |
Class cPesan
package pkgPercetakan; public class cPesan { private cPelanggan pl; private cPenjualan jl; private cMenu[] mn; private int jpsn, makspsn; //constructor cPesan(cPelanggan pp, int
j){ pl=pp; makspsn = j; jpsn=0; mn=new cMenu[j]; } public void
tambahPesan(cMenu m) { if (jpsn < makspsn) { mn[jpsn] = m; jpsn++;
System.out.println("Tambah sukses..."); } else {
System.out.println("Kapasitas penuh!"); } } public void hapusPesan(String nama) { if (jpsn > 0) { //cari nama di array
makanan boolean ada = false; for (int i = 0; i
< jpsn; i++) { if
(mn[i].getNama().equalsIgnoreCase(nama)) { ada = true; mn[i] =
null; //geser maju
elemen belakang for (int j =
i; j < jpsn; j++) { if (j ==
jpsn - 1) {
mn[j] = null; } else {
mn[j] = mn[j + 1]; } } jpsn--;
System.out.println("Hapus sukses..."); break; } } if (ada == false) {
System.out.println("Makanan tidak ada!"); } } else {
System.out.println("Makanan masih kosong!"); } } public String ToString() { String t = ""; t = t + "Daftar
Pembelian atas nama [ " + pl.getNama() + " ]\n"; for (int i = 0; i <
jpsn; i++) { t = t +
mn[i].getNama() + "\t"; } return t; } } |
Class cRekap
package pkgPercetakan; public class cRekapp { //Atribut private cPenjualan jl; private cPembelian bl; //Constructor cRekapp(cPenjualan j,
cPembelian b){ jl=j ; bl=b; } public void
tambahJual(cPenjualan j){ } public void
setJual(cPenjualan j){ j=jl; } public void
setBeli(cPembelian b){ b=bl; } public cPenjualan getJual(){ return jl; } public cPembelian getBeli(){ return bl; } //Method Query public String ToString(){ String t = ""; return t; } } |
BERIKUT MERUPAKAN
SCREENSHOT EKSEKUSI PROGRAM KAMI
- Melakukan input admin
- Melakukan input pelanggan
- Melakukan input jumlah layanan yang nantinya ingin digunakan
- Melakukan input jenis layanan dan jumlah yang dibeli
- Melakukan input pengeluaran
- Menampilkan data rekap transaksi
- Keluar
OLEH :
ELI NURHAYATI (20082010115)
NI PUTU INTAN K. (20082010134)
WILDAN FATAHILLAH (20082010122)
Komentar
Posting Komentar