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 prosedureinputBrg() 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 sampaijumlahBeli dengan bertambah 1 dengan perintahfor(i=1;i<=jumlaBeli;i++) dan didalam perulangan juga ada proses penjumlahan dan pengalian untuk mencari nilaihargaTtl untuk total harga masing-masing barang dantotalHarga 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, sehinggatotalBayar=totalHarga-diskon. Selesai itu program akan kembali ke file Kasir.java dan program melanjutkan akan memangil procedure tampil() dengan perintahhtg.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);.
output:
kelompok:
2IA12
58411242 - ROFATUL WIDAD
56411569 - SAMPE TUA OMPUNG SUNGGU
55411155 - NIA RYANTHY SUGIANA
51411210 - ARVI AZMI MAULANA
54411543 - MOCHAMMAD LUTFI R A
0 komentar:
Posting Komentar