Program Mesin Kasir
Sourcecode pada file Kasir.java
import
java.util.Scanner; // Import java untuk
fungsi meminta inputan user
public
class Kasir { // baris class dan nama
class di sini harus sama dengan nama file .java
public static void main(String[] args){ //baris awal program utama
Hitung htg=new Hitung(); // mendeklarasikan class Hitung yang akan kita
panggil dengan variabel htg
System.out.println("\n
============================\n
Program Mesin Kasir\n ============================"); //*perintah mencetak string
htg.inputBrg(); //memanggil prosedur
inputBrg dari class variabel htg
htg.tampil(); //memanggil prosedur tampil
dari class variabel htg
System.out.println("\n\n============================================="); //*perintah mencetak string
System.out.println(" Terima Kasih
Telah Menggunakan Program Kami"); //*perintah
mencetak string
System.out.println("============================================="); //*perintah mencetak string
System.exit(0); //keluar dari program dengan interasi 0 artinya program tidak ada
error
}
}
Soucecode pada file Hitung.java
import
java.util.Scanner; // Import java
untuk fungsi meminta inputan user
class
Hitung{ //mendeklarasikan class
public String nama[]=new String[20]; //mendeklarasikan nama beripe string array
memiliki maksimal 20
public int hargaBrg[]=new int[15]; //mendeklarasikan hargaBrg beripe data integer
array memiliki maksimal 15 data
public int jumlahBrg[]=new int[15]; //mendeklarasikan jumlahBrg beripe data
integer array memiliki maksimal 15 data
public int i,jumlahBeli; //mendeklarasikan i dan jumlahBeli beripe data
integer
public double hargaTtl[]=new double[15]; //mendeklarasikan hargaTtl beripe data
double array memiliki maksimal 15 data
public double
totalHarga=0,diskon=0,totalBayar=0; //mendeklarasikan
totalHarga, diskon dan totalBayar beripe data double
Scanner masukkan=new Scanner(System.in); // kita masukan fungsi abstract Scanner
kedalam sebuah object yang bernama input
public void inputBrg(){ //mendeklarasikan prosedure dengan nama
inputBrg
System.out.print("\n Jumlah
Pembelian: "); jumlahBeli=masukkan.nextInt(); //* bila tanpa ln maka kursor berada di sebelahnya
System.out.println("\n
==================================="); //*perintah
mencetak string
for(i=1;i<=jumlahBeli;i++){ //perintah perulangan dari i=1 sampai
jumlahMk dengan step i=1
System.out.print("\n Nama
Barang ke-"+i+" : "); nama[i]=masukkan.next(); //* dan bila tanpa ln maka kursor berada di
sebelahnya
System.out.print(" Jumlah
Barang : ");
jumlahBrg[i]=masukkan.nextInt(); //* dan
bila tanpa ln maka kursor berada di sebelahnya
System.out.print(" Harga
Barang :Rp ");
hargaBrg[i]=masukkan.nextInt(); //* dan
bila tanpa ln maka kursor berada di sebelahnya
hargaTtl[i]=jumlahBrg[i]*hargaBrg[i]; //menginput nilai hargaTtl dengan
perkalian jumlahBrg dan hargaBrg
totalHarga=hargaTtl[i]+totalHarga; //menginput nilai totalHarga dengan
penjumlahan hargaTtl dan totalHarga sebelumnya
}
System.out.println("\n
================================="); //*perintah
mencetak string
if (totalHarga>=1000000)
diskon=0.2*totalHarga; //menyeleksi kondisi jika totalHarga>=1000000 dengan
diskon 20%
else if ((totalHarga>=500000)
&& (totalHarga<1000000)) diskon = 0.1*totalHarga; //menyeleksi kondisi jika
500000<=totalHarga<1000000
else diskon = 0;// nyeleksi jika
<500000
totalBayar=totalHarga-diskon;
//menjumlahkan totalBayar hasil dari totalHarga dikurang diskon
}
public void tampil(){ //mendeklarasikan
prosedur dengan nama tampil
System.out.println("\n\n Daftar Barang Pembelian"); //*perintah mencetak string
System.out.println("
==========================================================="); //*perintah mencetak string
System.out.println(" || Nama Barang || Jumlah || Harga
|| Total ||"); //*perintah
mencetak string
System.out.println("
==========================================================="); //*perintah mencetak string
for(i=1;i<=jumlahBeli;i++){
//perulangan untuk mencetak isi array pada nama,jumlahBrg,hargaBrg,dan hargaTtl
/*perintah mencetak string dan
tertata rapih itu berkat bantuan perintah String.format
penjelasan sama seperti pada
pemrograman bahasa C yaitu
%s untuk mencetak tipe data string,
%d untuk mencetak tipe data desimal, dan %f untuk mencetak tipe data float
%-16s artinya mencetak nama[i]
memiliki 16 karakter dan min artinya rata kiri
%3d artinya mencetak jumlahBrg[i]
memiliki 3 karakter
%6d artinya mencetak hargaBrg[i]
memiliki 6 karakter
%7.0f artinya mencetak hargaTtl[i]
memiliki 7 karakter didepan koma dan 0 karakter di belakan koma
*/
System.out.println(String.format(" || %-16s || %3d
|| Rp %6d || Rp %7.0f ||",nama[i],jumlahBrg[i],hargaBrg[i],hargaTtl[i]));
}
System.out.println("
==========================================================="); //*perintah mencetak string
System.out.println(String.format("\n Total =Rp %10.0f",totalHarga)); //*perintah mencetak string
System.out.println(String.format("
Diskon
=Rp %10.0f",diskon)); //*perintah
mencetak string
System.out.println(String.format("
Total Pembayaran
=Rp %10.0f",totalBayar)); //*perintah
mencetak string
}
}
Logika Program
File
yang di compile cukup file Kasir.java saja dan file Hitung.java tidak perlu di
compile karena pada saat kita mengcompile Kasir.java itu sudah sekalian kita
mengcompile Hitung.java karena ada perintah Hitung htg=new Hitung();.
Alir
program adalah pada saat program di jalan kan makan prosesn yang di jalankan
adalah memanggil prosedure inputBrg() dengan
perintah htg.inputBrg();, kenapa htg? Karena di awal program kita
mendeklarasikan htg sebagai nama
variabel class Hitung.java untuk di
panggil. Di dalam procedure inputBrg()
perintah yang pertama kali dilakukan adalah meminta jumlah inputan untuk jumlah
pembelian dengan variabel jumlahBeli.
Setelah jumlah pembelian sudah di input makan program akan melakukan perintah
penginputan data-data barang dari nama barang, jumlah barang, dan harga barang
dengan variabel nama[i], jumlahBrg[i],
dan hargaBrg[i] bertipe array dan perintah penginputan ini di sisipkan pada
suatu perintah perulangan dengan perintah dimulai dari 1 sampai jumlahBeli
dengan bertambah 1 dengan perintah for(i=1;i<=jumlaBeli;i++) dan
didalam perulangan juga ada proses penjumlahan dan pengalian untuk mencari
nilai hargaTtl untuk total harga
masing-masing barang dan totalHarga untuk menjumlahkan total
harga seluruh barang. Setelah penginputan selesai maka akan dilakukan seleksi
untuk melihat apakan mendapatkan diskon atau tidak dengan kondisi jika totalHarga>1000000 makan diskon 20%
dan jika 500000<=totalHarga<1000000
dan tidak mendapatkan diskon jika totalHarga<500000,
sehingga totalBayar=totalHarga-diskon.
Selesai itu program akan kembali ke file Kasir.java dan program melanjutkan akan memangil procedure tampil() dengan perintah htg.tampil();, proses yang ada pada
procedure tampil adalah hanya menampilkan data-data saja karena sehubungan
data-data sebelumnya adalah array makan perintah untuk mencetak semuanya adalah
dengan bantuan peruangan. Jika proses menampilkan data sudah selesai maka alur
program kembali ke file Kasir.java dan
program selesai dan keluar dengan tidak ada error dengan perintah System.exit(0);.
Kelompok:
56411569 SAMPE TUA OMPUNG SUNGGU
55411155 NIA RYANTHY SUGIANA 58411242 ROFATUL WIDAD
54411543 MOCHAMMAD LUTFI R A
51411210 ARVI AZMI MAULANA