Pada kesempatan kali ini saya akan membahas bagaimana cara membuat kode pemrograman menggunakan pemrograman berbasis objek yaitu java netbeans.
Kita akan membuat Program Toko Kelontong yang dapat input barang dari user dan menyediakan menu kasir dengan alur pemrograman sebagai berikut
jika anda belum install dan belum download software JDK 8 dan NetBeans 2.8 silahkan download di link berikut lalu install, karena pada dasarnya syarat dapat di install neatbeans harus sudah terinstall JDK :
Download: JDK8
Download: NetBeans8.2
Setelah software diatas terinstal buka neatbeans 2.8, ikuti langkah langkah dibawah ini yaa…
Membuat Project baru
dengan langkah sebagai berikut,
Buat project mu, dengan menggunakan tipe java application, setelah itu next,
![saveproject](/2019/02/14/toko-kelontong/save%20project.png)
Atur nama project yang kamu inginkan, saya sarankan kamu menghilangkan centang pada “Creat Main Class”, setelah itu finish. Project sudah terbentuk, selanjutnya kita double klik project setelah muncul “Source Packages” lalu klik kanan “new” lalu “Java Packages” seperti gambar berikut, lalu berinama misal “tokoku”.
![newpackage](/2019/02/14/toko-kelontong/newpackage.png)
Setelah Packages terbentuk Klik kanan tokoku pilih “new” pilih lagi “Java Class” seperti gambar berikut.
Buatlah 2 “Java Class” yakni model dan main kodingnya dengan nama “Model” dan “Program”
Perlu DIINGAT KAPITALISASI NAMANYA!
Setelah langkah diatas sudah selesai mari kita mulai Kodingnya…
Java Class Model
Pertama kita harus membuat Class Model. Mengapa ? karena didalam kelas model nya itu sendiri akan mendaftarkan apa aja nanti yang akan digunakan.
Contohnya pada kasus ini kita akan membuat program toko kelontong dimana kita mempunyai Class Model yang terdiri dari 3 member variable yg diisi pada waktu object nantinya diinstansiasi(diisi pada konstruktor). :
- Nama Barang (String) ==>saya singkat menjadi “nm”
- Harga Barang (int) ==>saya singkat menjadi “hg”
- diskon (float), karena kemungkinan besar akan menggunakan desimal ==>saya singkat menjadi “ds”
di class Model nya codingnya seperti ini
1 | public class Model { |
–> method set digunakan untuk mengisi data ke dalam object ArrayList, sedangkan get digunakan untuk menampilkan data
Informasi lengkap : Array
Java Class Program
Sebelumnya kita harus import1
2import java.util.ArrayList;
import java.util.Scanner;
Didalam Class Program marilah kita membuat beberapa Fungsi yang bertujuan efisiensi koding sebab dengan adanya fungsi kita tinggal memanggil fungsi tersebut, misal fungsi “bagus” manggilnya “bagus();”.
Mari kita buat beberapa fungsi yang akan kita gunakan nanti sesuai dengan alur pemrograman diatas (FlowChart).
Fungsi login
didalam fungsi login ini kita harus memasukkan username dan password yang telah didaftarkan menggunakan equals untuk dapat memproses fungsi selanjutnya1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Scanner lg = new Scanner(System.in);
System.out.println("Anda ingin masuk?, silahkan login");
System.out.print("Username : ");
String username = lg.nextLine();
System.out.print("Password : ");
String password = lg.nextLine();
if (username.equals("admin") && password.equals("admin")) //ini username dan password kamu
{
System.out.println("----Selamat Datang di Tokoku----");
menu();
} else {
Scanner eror = new Scanner(System.in);
System.out.println("Username / Password Salah");
System.out.print("Apakah anda ingin login kembali\n Ya(y) / Tidak (n) : ");
String lanjut = eror.next();
if (lanjut.equals("y")) {
login();
} else {
System.out.println("Terima Kasih");
}
}
}Fungsi menu
kegunaan dari fungsi menu ini adalah menu dimana user ingin input barang / ke kasir (kasir ini menggunakan Switch Case)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17static void menu() {
Scanner menu = new Scanner(System.in);
System.out.println("----Menu----");
System.out.println("1. Input Barang");
System.out.println("2. Kasir");
System.out.print("Masukkan Pilihan : ");
int pilihan = menu.nextInt();
switch (pilihan) {
case 1: {
input();
}
break;
case 2: {
kasir();
}
}
}Fungsi input
Kegunaan dari fungsi ini ialah user / admin dapat menginputkan barang sesuai dengan keinginan (didaftarkan pada arraylist), dimana data yang sudah di input dapat langsung dimunculkan1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35static void input() {
Scanner input = new Scanner(System.in);
System.out.println("+===============INPUTAN=BARANG==================+");
System.out.print("Masukkan banyak data = ");
int data = input.nextInt();
for (int a = 1; a <= data; a++) {
Model barang = new Model();
System.out.println("------Data ke-" + a + "------");
System.out.print("Masukan NAMA BARANG = ");
barang.nm = input.next();
System.out.print("Masukan HARGA BARANG = ");
barang.setHg(input.nextInt());
System.out.print("Masukan DISCOUNT ($) = ");
barang.setDs(input.nextFloat());
lst.add(barang);
}
for (int i = 0; i < lst.size(); i++) {
Model brg = lst.get(i);
System.out.println("----BARANG KE " + (i + 1) + "----");
System.out.println("NAMA BARANG : " + brg.getNm());
System.out.println("HARGA BARANG : " + brg.getHg());
System.out.println("DISCOUNT BARANG : " + brg.getDs() + " %");
}
Scanner in = new Scanner(System.in);
System.out.print("Apakah anda ingin input barang kembali\n Ya(y) / Tidak (n) : ");
String lanjut = in.next();
if (lanjut.equals("y")) {
inputulang();
} else {
menu();
}
}Fungsi inputulang
Kegunaan dari fungsi input ulang adalah user / admin dapat menginputkan barang lagi tanpa harus menghapus data barang yang sudah terdaftar pada array listnya1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32static void inputulang() {
Scanner input = new Scanner(System.in);
System.out.print("Masukkan banyak data = ");
int data = input.nextInt();
for (int a = 1; a <= data; a++) {
Model barang = new Model();
System.out.println("------Data ke-" + a + "------");
System.out.print("Masukan NAMA BARANG = ");
barang.nm = input.next();
System.out.print("Masukan HARGA BARANG = ");
barang.setHg(input.nextInt());
System.out.print("Masukan DISCOUNT (%) = ");
barang.setDs(input.nextFloat());
lst.add(barang);
}
for (int i = 0; i < lst.size(); i++) {
Model brg = lst.get(i);
System.out.println("----BARANG KE " + (i + 1) + "----");
System.out.println("NAMA BARANG : " + brg.getNm());
System.out.println("HARGA BARANG : " + brg.getHg());
System.out.println("DISCOUNT BARANG : " + brg.getDs() + " %");
}
Scanner ul = new Scanner(System.in);
System.out.print("Apakah anda ingin input barang kembali\n Ya(y) / Tidak (n) : ");
String lanjut = ul.next();
if (lanjut.equals("y")) {
inputulang();
} else {
menu();
}
}Fungsi Kasir
Kegunaan dari fungsi kasir ini adalah user / admin dapat mencari barang yang akan dibeli. Jika pada saat cari barang ternyata barangnya ada maka secara otomatis akan keluar notanya / total harga barang. Sebaliknya jika tidak ada maka akan print “Barang Tidak ditemukan”1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37static void kasir() {
System.out.println("=== SELAMT DATANG DI KASIR ===");
Scanner T = new Scanner(System.in);
int tandaADA = 0;
int datake = 0;
System.out.print("Masukan nama barang : ");
String ng = T.next();
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i).nm.equalsIgnoreCase(ng)) {
tandaADA = 1;
datake = i;
}
}
if (tandaADA > 0) {
Model barang = new Model();
barang = lst.get(datake);
Scanner input = new Scanner(System.in);
System.out.print("Banyak barang yang anda inginkan : ");
int bnyak = input.nextInt();
System.out.println("+====================================+");
System.out.println("+ DAFTAR BARANG | TOTAL +");
System.out.println("+====================================+");
System.out.println("|" + " Nama Barang : " + barang.nm + " |");
System.out.println("|" + " Harga Satuan : " + lst.get(datake).getHg() + " |");
System.out.println("|" + " Diskon (%) : " + lst.get(datake).getDs() + " |");
System.out.println("+====================================+");
int hn = barang.hg;
float ds = ((bnyak * barang.hg) * (barang.ds /100));
System.out.println("Harga Normal " + barang.nm + " : " + "Rp." + barang.hg);
System.out.println("Diskon (Rp.) " + barang.nm + " : " + "Rp. " + ds);
System.out.println("Total Bayar " + barang.nm + " : " + "Rp. " + (hn-ds));
} else {
System.out.println("Barang tidak ditemukan");
}
menutmbhkasir();
}Fungsi menutmbhkasir
Sebenarnya Kegunaan dari menutmbhkasir ini hanya untuk memunculkan dialog “Anda ingin beli lagi”.1
2
3
4
5
6
7
8
9
10static void menutmbhkasir() {
Scanner input = new Scanner(System.in);
System.out.print("Anda ingin beli lagi ? Ya(y) atau Tidak(n) : ");
String tambah = input.next();
if (tambah.equals("y")) {
kasir();
} else {
stop();
}
}Fungsi stop
Kegunaan dari fungsi ini adalah menutup semua jalurdengan ucapan “terima kasih”1
2
3
4
5static void stop() {
System.out.println("=========================================");
System.out.println("Terima Kasih telah belanja di CoderStore");
System.out.println("=========================================");
}Fungsi Utama (public static void main(String[] args))
Fungsi main ini sangatlah penting untuk menjalanlan fungsi yang lain1
2
3
4public static void main(String[] args) {
lst = new ArrayList<Model>();
login();
}
Koding keseluruhan Java Class program
1 | public class Program { |
Kesimpulan
Array list kita buat global (static), karena agar dapat diakses ke fungsi fungsi yang lain
1
static ArrayList<Model> lst;
new Array listnya kita ketik sekali saja pada main sebelum login yang bertujuan agar pada saat input barang lagi barang yang sebelumnya tidak hilang / tidak terhapus
1
lst = new ArrayList<Model>();