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,

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”

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). :

  1. Nama Barang (String) ==>saya singkat menjadi “nm”
  2. Harga Barang (int) ==>saya singkat menjadi “hg”
  3. diskon (float), karena kemungkinan besar akan menggunakan desimal ==>saya singkat menjadi “ds”

di class Model nya codingnya seperti ini

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
37
38
39
40
public class Model {
int hg;
String nm;
float ds;

public Model (String nm, int hg, float ds)
{
this.nm = nm;
this.hg = hg;
this.ds = ds;
}

public Model() {
}

public void setHg(int hg) {
this.hg = hg;
}

public void setDs(float ds) {
this.ds = ds;
}

public void setNm(String nm) {
this.nm = nm;
}

public String getNm(){
return nm;
}

public int getHg(){
return hg;
}

public float getDs(){
return ds;
}

}

–> 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 import

1
2
import 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).

  1. Fungsi login
    didalam fungsi login ini kita harus memasukkan username dan password yang telah didaftarkan menggunakan equals untuk dapat memproses fungsi selanjutnya
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Scanner 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");
}
}
  1. 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
    17
    static 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();
    }
    }
    }
  2. 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 dimunculkan

    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
    static 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();
    }

    }
  3. Fungsi inputulang
    Kegunaan dari fungsi input ulang adalah user / admin dapat menginputkan barang lagi tanpa harus menghapus data barang yang sudah terdaftar pada array listnya

    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
    static 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();
    }
    }
  4. 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
    37
    static 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();
    }
  5. Fungsi menutmbhkasir
    Sebenarnya Kegunaan dari menutmbhkasir ini hanya untuk memunculkan dialog “Anda ingin beli lagi”.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    static 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();
    }
    }
  6. Fungsi stop
    Kegunaan dari fungsi ini adalah menutup semua jalurdengan ucapan “terima kasih”

    1
    2
    3
    4
    5
    static void stop() {
    System.out.println("=========================================");
    System.out.println("Terima Kasih telah belanja di CoderStore");
    System.out.println("=========================================");
    }
  7. Fungsi Utama (public static void main(String[] args))
    Fungsi main ini sangatlah penting untuk menjalanlan fungsi yang lain

    1
    2
    3
    4
    public static void main(String[] args) {
    lst = new ArrayList<Model>();
    login();
    }

Code Keseluruhan Java Class Program

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
public class Program {

static ArrayList<Model> lst;

static void login() {
Scanner 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("dhika") && password.equals("dhika")) {
System.out.println("----Selamat Datang di CoderStore----");
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");
}
}
}

static 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();
}
}
}

static 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();
}

}

static 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();
}
}

static 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();
}

static 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();
}
}

static void stop() {
System.out.println("=========================================");
System.out.println("Terima Kasih telah belanja di CoderStore");
System.out.println("=========================================");
}

public static void main(String[] args) {
lst = new ArrayList<Model>();
login();
}
}

Kesimpulan

  1. Array list kita buat global (static), karena agar dapat diakses ke fungsi fungsi yang lain.

    1
    static ArrayList<Model> lst;
  2. 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>();

Apabila Anda mengalami kesulitan silahkan hubungi contact yang saya, Terimakasih