Program Penjualan Stationery
Program Penjualan Stationery ㅡ StationeryStuff merupakan program dari bahasa pemrograman Java OOP yang kami rancang untuk membantu para pelaku usaha alat tulis dalam mengatur data barang yang mereka jual agar lebih efektif dan efisien. Program ini sendiri terdiri dari 3 class yaitu class Barang, class Data Pembeli, dan class Pendapatan. Pelaku usaha atau pengguna program dapat memasukkan atau menginput data, menghapus, mengupdate, serta melihat data yang ada.
Ada beberapa hal yang kami tambahkan di source code ini, yaitu adanya validasi sebelum mengupdate dan menghapus data sehingga bila user secara tidak sengaja menekan tombol hapus, data tidak terhapus begitu saja. Selain itu, perubahan juga terjadi pada class Pendapatan. Total pendapatan, keuntungan, dan kerugian langsung muncul secara otomatis tanpa perlu menginput data secara manual. Total pendapatan didapat dari perkalian antara harga jual dan satuan yang dibeli di class Barang. Keuntungan dan kerugian didapat dari pengurangan antara total pendapatan dan modal. Modal didapat dari perkalian antara harga beli dan satuan di class Barang.
Kami juga menyempurnakan beberapa kekurangan yang ada di di versi 1.0 yaitu tidak adanya pengulangan di bagian menu. Pada versi 2.0 ini, fitur menu akan melakukan pengulangan hingga user meminta kembali atau keluar.
Main Class
package pkgPenjualanATK;
import pkgpenjualanatk.cDataPembeli;
import java.util.Scanner;
public class appPenjualanATK {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int pilih, pilih2, pilihh, harga, satuan, modal;
byte pil;
cBarang brg = null;
cDataPembeli dp = null;
cPendapatan pend; pend = new cPendapatan();
do{
System.out.println("");
System.out.println("MENU PENJUALAN STATIONARY");
System.out.println("1. Barang");
System.out.println("2. Data Pembeli");
System.out.println("3. Pendapatan");
System.out.println("4. Selesai");
System.out.print("Pilihan = ");
pilih = sc.nextInt();
switch(pilih){
case 1:
do{
System.out.println("\nMENU Barang");
System.out.println("1. Tambah Barang");
System.out.println("2. Hapus Barang");
System.out.println("3. Update Barang");
System.out.println("4. Lihat Barang");
System.out.println("5. Query");
System.out.println("6. Kembali");
System.out.print("Pilih = ");
pilih2=sc.nextInt();
switch(pilih2){
case 1:
System.out.println("\n-- Tambah Nama Barang --");
System.out.print("Masukkan Nama Barang = ");
sc=new Scanner(System.in);
String nama=sc.nextLine();
System.out.print("Masukkan Kode Barang = ");
String kode=sc.next();
System.out.print("Masukkan Satuan Barang = ");
satuan=sc.nextInt();
System.out.print("Masukkan Harga Jual = ");
harga=sc.nextInt();
System.out.print("Masukkan Harga Beli =");
int hargabeli =sc.nextInt();
System.out.print("Masukkan Update Stock Barang = ");
int update=sc.nextInt();
brg = new cBarang(nama,kode,satuan,harga,update,hargabeli);
break;
case 2:
System.out.println("\n-- Hapus Barang --");
System.out.print("Masukkan Kode Barang = ");
kode=sc.next();
if(brg !=null&&brg.getKode().equalsIgnoreCase(kode))
{
System.out.println("Data Barang Telah Ditemukan!");
System.out.println("Yakin Barang Dihapus? 1. Ya, 2. Tidak");
System.out.print("Pilih = ");
pilih2=sc.nextInt();
if(pilih2==1){
brg=null;
System.out.println("Data Barang Telah Dihapus!");
}
else System.out.println("Batalkan Hapus Data Barang");
}
else System.out.println("Data Barang Tidak Ada!");
break;
case 3:
System.out.println("\n-- Update Data Barang --");
System.out.print("Masukkan Kode Barang = ");
kode=sc.next();
if(brg !=null&&brg.getKode().equalsIgnoreCase(kode))
{
System.out.println("Data Barang Telah Ditemukan");
System.out.print("Nama Barang Baru = ");
sc=new Scanner(System.in);
String nm=sc.nextLine();
System.out.print("Harga Barang Baru = ");
int ha=sc.nextInt();
System.out.println("Simpan Data?");
System.out.println("1. Ya 2. Tidak");
System.out.print("Pilih = ");
pilih2=sc.nextInt();
if(pilih2==1){
brg.setNama(nm);
brg.setHarga(ha);
System.out.println("Data Telah Diperbarui!");
}
else System.out.println("Batal Update Data");
}
else System.out.println("Data Barang Tidak Ada!");
break;
case 4:
System.out.println("\n-- Lihat Data Barang --");
if(brg!=null){
System.out.println("Nama :"+brg.getNama());
System.out.println("Kode :"+brg.getKode());
System.out.println("Harga :"+brg.getHarga());
}
else System.out.println("Maaf Data Barang Kosong!");
break;
case 5:
System.out.println("\n-- Query Data Barang --");
if(brg!=null) System.out.println(brg.Tostring());
else System.out.println("Maaf Data Barang Kosong!");
break;
case 6 : System.out.println("Thank u");
}
}while(pilih2!=6);
break;
case 2:
do{
System.out.println("\nMENU Data Pembeli");
System.out.println("1. Tambah data pembeli");
System.out.println("2. Hapus data pembeli");
System.out.println("3. Update data pembeli");
System.out.println("4. Cetak data");
System.out.println("5. Query");
System.out.println("6. Kembali");
System.out.print("Pilihan = ");
pilihh = sc.nextInt();
switch(pilihh){
case 1 :
dp = new cDataPembeli();
System.out.println("\n-- TAMBAH DATA PEMBELI --");
System.out.print("Masukkan Nama Pembeli : ");
sc=new Scanner(System.in);
String nama = sc.nextLine();
dp.setNama(nama);
System.out.print("Masukkan Alamat Pembeli : ");
sc=new Scanner(System.in);
String almt = sc.nextLine();
dp.setAlamat(almt);
System.out.print("Masukkan Tanggal Transaksi : ");
sc=new Scanner(System.in);
String ttrn = sc.nextLine();
dp.setTgltrn(ttrn);
System.out.println("Penambahan data berhasil!");
break;
case 2 :
System.out.println("\n-- HAPUS DATA PEMBELI --");
System.out.print("Masukkan nama Pembeli : ");
nama = sc.next();
if (dp != null && dp.getNama().equalsIgnoreCase(nama)){
System.out.println(" Data Ditemukan!");
System.out.println("Nama : " + dp.getNama());
System.out.println("Alamat : " + dp.getAlamat());
System.out.println("Tanggal Transaksi : " + dp.getTgltrn());
System.out.println("Hapus Data Pembeli ?");
System.out.println(" 1. Ya 2. Tidak");
System.out.print("Pilih = ");
pilih2 = sc.nextInt();
if (pilih2 == 1){
dp = null;
System.out.println("Hapus Data Berhasil!");
}
else System.out.println("Hapus Data di Batalkan");
}else System.out.println("Data tidak ditemukan");
break;
case 3 :
System.out.println("\n-- UPDATE DATA PEMBELI --");
System.out.print("Masukkan nama Pembeli : ");
nama = sc.next();
if (dp != null && dp.getNama().equalsIgnoreCase(nama)){
System.out.println("Data Ditemukan");
System.out.print("Masukkan Nama Baru : ");
String n = sc.next(); dp.setNama(n);
System.out.print("Masukkan Alamat Baru : ");
String b = sc.next(); dp.setAlamat(b);
System.out.print("Masukkan Tanggal Transaksi : ");
String t = sc.next(); dp.setAlamat(t);
System.out.println("Simpan perubahan ?");
System.out.println("1. Ya 2. Tidak");
System.out.print("Pilih = ");
pilih2 = sc.nextInt();
if (pilih2 == 1){
System.out.println("Perubahan Data Berhasil disimpan!");
}
else System.out.println("Perubahan Data Dibatalkan!");
}
else System.out.println("Data Tidak Ditemukan!");
break;
case 4 :
System.out.println("\n-- CETAK DATA --");
if (dp!=null){
System.out.println("Nama Pembeli : " +dp.getNama());
System.out.println("Alamat : " +dp.getAlamat());
System.out.println("Tanggal Transaksi : " +dp.getTgltrn());
}
else System.out.println("Tidak Ada Data");
break;
case 5 :
System.out.println("\n-- QUERY DATA --");
if (dp!=null) System.out.println(dp.ToString());
else System.out.println("Tidak Ada Data!");
break;
case 6 : System.out.println("Thank u");
}
}while(pilihh !=6);
break;
case 3:
do{
System.out.println("\nMENU Pendapatan");
System.out.println("1. Total Pendapatan");
System.out.println("2. Keuntungan");
System.out.println("3. Kerugian");
System.out.println("4. Query");
System.out.println("5. Kembali");
System.out.print("Pilih : ");
pil = sc.nextByte();
System.out.println(" ");
switch(pil){
case 1 :
System.out.println("\nMENU Total Pendapatan");
System.out.println("1. Lihat Total Pendapatan");
System.out.println("2. Hapus Total Pendapatan");
System.out.println("3. Update Total Pendapatan");
System.out.println("4. Kembali");
System.out.print("Pilih : ");
byte pill = sc.nextByte();
switch(pill){
case 1 :
System.out.println("\n== Lihat Total Pendapatan ==");
int har = brg.getHarga();
int sat = brg.getSatuan();
pend = new cPendapatan(har, sat);
System.out.print("Total Pendapatan pada"+dp.getTgltrn()+": Rp"+pend.getTotalPend());
break;
case 2 :
System.out.println("\n== Hapus Total Pendapatan ==");
System.out.print("Masukkan Nama Pembeli : ");
String np = sc.nextLine();
String nmp = dp.getNama();
if(np.equalsIgnoreCase(nmp)){
System.out.print("Masukkan Tanggal Transaksi : ");
String tgl = sc.nextLine();
String ttr = dp.getTgltrn();
if(tgl.equalsIgnoreCase(ttr)){
System.out.println("Anda yakin akan menghapus total pendapatan?");
System.out.println("1. Ya 2. Tidak");
System.out.print("Pilih : ");
byte pilih5 = sc.nextByte();
if(pilih5 == 1) {
pend.setRugi(0);
System.out.println("Total Pendapatan Berhasil dihapus!");
}
else System.out.println("Total Pendapatan Gagal dihapus!");
}
else System.out.println("Tanggal Transaksi Tidak Ditemukan!");
}
else System.out.println("Nama Pembeli Tidak Ditemukan!");
break;
case 3 :
System.out.println("\n== Update Total Pendapatan ==");
System.out.print("Masukkan Nama Pembeli : ");
np = sc.nextLine();
nmp = dp.getNama();
if(np.equalsIgnoreCase(nmp)){
System.out.print("Masukkan Tanggal Transaksi : ");
String tgl = sc.nextLine();
String ttr = dp.getTgltrn();
if(tgl.equalsIgnoreCase(ttr)){
System.out.print("Total Pendapatan yang seharusnya didapat: Rp");
int tp = sc.nextInt();
System.out.println("Anda yakin akan mengupdate total pendapatan?");
System.out.println("1. Ya 2. Tidak");
System.out.print("Pilih : ");
byte pilih5 = sc.nextByte();
if(pilih5 == 1) {
pend.setTotalPend(tp);
System.out.println("Total Pendapatan Berhasil diupdate!");
}
else System.out.println("Total Pendapatan Gagal diupdate!");
}
else System.out.println("Tanggal Transaksi Tidak Ditemukan!");
}
else System.out.println("Nama Pembeli Tidak Ditemukan!");
break;
case 4 : System.out.println("Thank u");
}
break;
case 2 :
System.out.println("\nMENU Keuntungan");
System.out.println("1. Lihat Keuntungan Hari ini");
System.out.println("2. Hapus Keuntungan Hari ini");
System.out.println("3. Update Keuntungan Hari ini");
System.out.println("4. Kembali");
System.out.print("Pilih : ");
pill = sc.nextByte();
switch(pill){
case 1 :
System.out.println("\n== Lihat Data Keuntungan Hari ini ==");
int hb = brg.getHargaBeli();
int sat = brg.getSatuan();
pend.setModal(hb, sat);
modal = pend.getModal();
int tp = pend.getTotalPend();
if(modal<tp) {
pend.setUntung(tp-modal);
System.out.println("Keuntungan yang didapat Hari ini : Rp"+pend.getUntung());
}
else System.out.println("Keuntungan yang didapat Hari ini : Rp0");
break;
case 2 :
System.out.println("\n== Hapus Data Keuntungan Hari ini ==");
System.out.print("Masukkan Nama Pembeli : ");
String np = sc.nextLine();
String nmp = dp.getNama();
if(np.equalsIgnoreCase(nmp)){
System.out.print("Masukkan Tanggal Transaksi : ");
String tgl = sc.nextLine();
String ttr = dp.getTgltrn();
if(tgl.equalsIgnoreCase(ttr)){
System.out.println("Anda yakin akan menghapus data keuntungan yang didapat hari ini?");
System.out.println("1. Ya 2. Tidak");
System.out.print("Pilih : ");
byte pilih5 = sc.nextByte();
if(pilih5 == 1) {
pend.setUntung(0);
System.out.println("Data Keuntungan hari ini Berhasil dihapus!");
}
else System.out.println("Data Keuntungan Gagal dihapus!");
}
else System.out.println("Tanggal Transaksi Tidak Ditemukan!");
}
else System.out.println("Nama Pembeli Tidak Ditemukan!");
break;
case 3 :
System.out.println("\n== Update Data Keuntungan Hari ini ==");
System.out.print("Masukkan Nama Pembeli : ");
np = sc.nextLine();
nmp = dp.getNama();
if(np.equalsIgnoreCase(nmp)){
System.out.print("Masukkan Tanggal Transaksi : ");
String tgl = sc.nextLine();
String ttr = dp.getTgltrn();
if(tgl.equalsIgnoreCase(ttr)){
System.out.print("Data Keuntungan yang seharusnya didapat : Rp");
int utg = sc.nextInt();
System.out.println("Anda yakin akan mengupdate data keuntungan yang didapat hari ini?");
System.out.println("1. Ya 2. Tidak");
System.out.print("Pilih : ");
byte pilih5 = sc.nextByte();
if(pilih5 == 1) {
pend.setUntung(utg);
System.out.println("Data Keuntungan hari ini Berhasil diupdate!");
}
else System.out.println("Data Keuntungan Gagal diupdate!");
}
else System.out.println("Tanggal Transaksi Tidak Ditemukan!");
}
else System.out.println("Nama Pembeli Tidak Ditemukan!");
break;
case 4 : System.out.println("Thank u");
}
break;
case 3 :
System.out.println("\nMENU Kerugian");
System.out.println("1. Lihat Data Kerugian Hari ini");
System.out.println("2. Hapus Data Kerugian Hari ini");
System.out.println("3. Update Data Kerugian Hari ini");
System.out.println("4. Kembali");
System.out.print("Pilih : ");
pill = sc.nextByte();
switch(pill){
case 1 :
System.out.println("\n== Lihat Data Kerugian Hari ini ==");
int hb = brg.getHargaBeli();
int sat = brg.getSatuan();
pend.setModal(hb, sat);
modal = pend.getModal();
int tp = pend.getTotalPend();
if(modal>tp) {
pend.setRugi(modal-tp);
System.out.println("Kerugian yang didapat Hari ini : Rp"+pend.getRugi());
}
else System.out.println("Kerugian yang didapat Hari ini : Rp0");
break;
case 2 :
System.out.println("\n== Hapus Data Kerugian Hari ini ==");
System.out.print("Masukkan Nama Pembeli : ");
String np = sc.nextLine();
String nmp = dp.getNama();
if(np.equalsIgnoreCase(nmp)){
System.out.print("Masukkan Tanggal Transaksi : ");
String tgl = sc.nextLine();
String ttr = dp.getTgltrn();
if(tgl.equalsIgnoreCase(ttr)){
System.out.println("Anda yakin akan menghapus data kerugian yang didapat hari ini?");
System.out.println("1. Ya 2. Tidak");
System.out.print("Pilih : ");
byte pilih5 = sc.nextByte();
if(pilih5 == 1) {
pend.setRugi(0);
System.out.println("Data Kerugian hari ini Berhasil dihapus!");
}
else System.out.println("Data Kerugian Gagal dihapus!");
}
else System.out.println("Tanggal Transaksi Tidak Ditemukan!");
}
else System.out.println("Nama Pembeli Tidak Ditemukan!");
break;
case 3 :
System.out.println("\n== Update Data Kerugian Hari ini ==");
System.out.print("Masukkan Nama Pembeli : ");
np = sc.nextLine();
nmp = dp.getNama();
if(np.equalsIgnoreCase(nmp)){
System.out.print("Masukkan Tanggal Transaksi : ");
String tgl = sc.nextLine();
String ttr = dp.getTgltrn();
if(tgl.equalsIgnoreCase(ttr)){
System.out.print("Data Kerugian yang seharusnya didapat : Rp");
int rg = sc.nextInt();
System.out.println("Anda yakin akan mengupdate data kerugian yang didapat hari ini?");
System.out.println("1. Ya 2. Tidak");
System.out.print("Pilih : ");
byte pilih5 = sc.nextByte();
if(pilih5 == 1) {
pend.setRugi(rg);
System.out.println("Data Kerugian hari ini Berhasil diupdate!");
}
else System.out.println("Data Kerugian Gagal diupdate!");
}
else System.out.println("Tanggal Transaksi Tidak Ditemukan!");
}
else System.out.println("Nama Pembeli Tidak Ditemukan!");
break;
case 4 : System.out.println("Thank u");
}
break;
case 4 :
System.out.println("\n== Query ==");
//total pendapatan
int har = brg.getHarga();
int sat = brg.getSatuan();
pend.setTotalPend(har*sat);
//untung rugi
int hb = brg.getHargaBeli();
pend.setModal(hb, sat);
modal = pend.getModal();
int tp = pend.getTotalPend();
if(modal<tp) {
pend.setUntung(tp-modal);
pend.setRugi(0);
}
else if(modal>tp) {
pend.setRugi(tp-modal);
pend.setUntung(0);
}
System.out.println(pend.ToString());
break;
case 5 : System.out.println("Thank u");
break;
}
}while(pil!=5);
}
System.out.println("TERIMA KASIH");
}while (pilih!=4);
}
}
Class Barang
package pkgPenjualanATK;
public class cBarang {
private String nama;
private String kode;
private int satuan;
private int harga;
private int hargabeli;
private int stock;
//constructor
cBarang(){
System.out.println("Constructor 1 Barang...");
}
cBarang(String nm, String kd, int sa, int ha, int st, int hb){
nama=nm; kode=kd; satuan=sa; harga=ha; stock=st; hargabeli =hb;
System.out.println("Constructor 2 Barang...");
}
//member function
//member setter
public void setNama(String n){
nama=n;
}
public void setKode(String n){
kode=n;
}
public void setSatuan(int k){
satuan=k;
}
public void setHarga(int k){
harga=k;
}
public void setHargaBeli(int k){
hargabeli =k;
}
public void setStock(int k){
stock=k;
}
//method getter
public String getNama(){
return nama;
}
public String getKode(){
return kode;
}
public int getSatuan(){
return satuan;
}
public int getHarga(){
return harga;
}
public int getHargaBeli(){
return hargabeli;
}
public int getStock(){
return stock;
}
//method query
public String Tostring(){
return nama+" "+kode+" "+satuan+" "+harga+" "+stock;
}
}
Class Data Pembeli
package pkgpenjualanatk;
public class cDataPembeli {
private String nama;
private String alamat;
private String tgltrn;
private int nominal;
//constructor
public cDataPembeli(){
System.out.println("Construtor 1");
}
public cDataPembeli(String nm, String al, String ttr){
nama = nm; alamat = al; tgltrn = ttr;
System.out.println("Constructor 2");
}
//member function
//method setter
public void setNama(String n){
nama = n;
}
public void setAlamat(String a){
alamat = a;
}
public void setTgltrn(String t){
tgltrn = t;
}
public void setNominal(int n){
nominal = n;
}
//method getter
public String getNama(){
return nama;
}
public String getAlamat(){
return alamat;
}
public String getTgltrn(){
return tgltrn;
}
public int getNominal(){
return nominal;
}
//method query
public String ToString(){
return "pembeli "+nama+" dengan alamat "+alamat+" tanggal transaksi "
+tgltrn;
}
}
Class Pendapatan
package pkgPenjualanATK;
public class cPendapatan {
private int totalpend;
private int mdl, modal, untung, rugi, stock, harga;
cBarang bar = new cBarang();
cPendapatan(){
System.out.println("Constructor 1 Pendapatan . .");
}
cPendapatan(int harga, int stck){
totalpend = harga*stck;
System.out.println("Constructor 2 Pendapatan . .");
}
public void setModal(int hargabeli, int satuan){
mdl = hargabeli*satuan;
}
public void setTotalPend(int tp){
totalpend=tp;
}
public void setUntung(int utg){
untung = utg;
}
public void setRugi(int rg){
rugi = rg;
}
public int getModal(){
return modal = mdl;
}
public int getTotalPend(){
return totalpend;
}
public int getUntung(){
return untung;
}
public int getRugi(){
return rugi;
}
public String ToString(){
return "Total pendapatan hari ini sejumlah Rp"+getTotalPend()+" dengan keuntungan sebesar Rp"+getUntung()+" dan kerugian sebesar Rp"+getRugi();
}
}
Output Aplikasi
Fitur Tambah Barang
Fitur Hapus Barang dan Penginputan Kembali Barang Setelah Dihapus
Fitur Update Barang
Fitur Update Barang dan Tampilan Data Setelah Dilakukan Update
Fitur Tambah Data Pembeli
Tampilan Data Pembeli Setelah Dilakukan Update
Tampilan Total Pendapatan yang Muncul secara Otomatis
Tampilan Query Pendapatan
Tampilan Query dan Saat User Keluar dari Aplikasi
0 Comments