silahkan buat class baru bernama
FungsiProsedur. Lalu impor class-class yang dibutuhkan.import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
Setelah itu buat variabel global di dalam class
FungsiProsedur:static ArrayList listBuah = new ArrayList();
static boolean isRunning = true;
static InputStreamReader inputStreamReader = new InputStreamReader(System.in);
static BufferedReader input = new BufferedReader(inputStreamReader);
Penjelasan:
- Variabel
listBuahadalah variabel global untuk menyimpan nama-nama buah. - Variabel
isRunningadalah variabel global untuk membuat loop. - Kemudian
inputStreamReaderdaninputadalah objek yang kita butuhkan untuk mengambil input dari keyboard.
Setelah itu, buat masing-masing fungsi.
Fungsi untuk menampilkan menu:
static void showMenu() throws IOException {
System.out.println("========= MENU ========");
System.out.println("[1] Show All Buah");
System.out.println("[2] Insert Buah");
System.out.println("[3] Edit Buah");
System.out.println("[4] Delete Buah");
System.out.println("[5] Exit");
System.out.print("PILIH MENU> ");
int selectedMenu = Integer.valueOf(input.readLine());
switch(selectedMenu){
case 1:
showAllBuah();
break;
case 2:
insertBuah();
break;
case 3:
editBuah();
break;
case 4:
deleteBuah();
break;
case 5:
System.exit(0);
break;
default:
System.out.println("Pilihan salah!");
}
}
Fungsi tersebut bertugas untuk menampilkan menu dan menentukan fungsi mana yang akan dipanggil berdasarkan nomer menu yang diinputkan.
Apa itu
throws IOException?
Nanti saya akan bahas di kesempatan berikutnya. Untuk saat ini diabaikan saja dulu. Ini karena kita menggunakan Buffereader, jadi
throws IOException wajib ditulis.
Fungsi untuk menampilkan data:
static void showAllBuah(){
if(listBuah.isEmpty()){
System.out.println("Belum ada data");
} else {
// tampilkan semua buah
for(int i = 0; i < listBuah.size(); i++){
System.out.println(String.format("[%d] %s",i, listBuah.get(i)));
}
}
}
Fungsi tersebut bertugas menampilkan isi dari
listBuah. Kalau listBuah kosong, maka akan ditampilkan pesan "Belum ada data".
Fungsi untuk menambah data buah:
static void insertBuah() throws IOException{
System.out.print("Nama buah: ");
String namaBuah = input.readLine();
listBuah.add(namaBuah);
}
Pada fungsi tersebut, kita menggunakan method
listBuah.add(namaBuah); untuk menambah data ke dalam listBuah berdasarkan namaBuah yang diberikan.
Fungsi untuk mengubah data buah:
static void editBuah() throws IOException{
showAllBuah();
System.out.print("Pilih nomer buah: ");
int indexBuah = Integer.valueOf(input.readLine());
System.out.print("Nama Baru: ");
String namaBaru = input.readLine();
// ubah nama buah
listBuah.set(indexBuah, namaBaru);
}
Pertama kita perlu tampilkan dulu daftar buahnya, lalu kita minta user untuk memilih buah mana yang akan diedit.
Setelah itu, kita update buahnya dengan method
listBuah.set(indexBuah, namaBaru);.
Fungsi untuk menghapus buah:
static void deleteBuah() throws IOException{
showAllBuah();
System.out.print("Pilih nomer buah: ");
int indexBuah = Integer.valueOf(input.readLine());
// hapus buah
listBuah.remove(indexBuah);
}
Hampir sama seperti edit buah, untuk menghapus buah kita juga butuh nomer indeks buah yang akan dihapus.
Lalu mengapusnya dengan method
listBuah.remove(indexBuah);.
Fungsi main:
public static void main(String[] args) throws IOException {
do {
showMenu();
} while (isRunning);
}
Lengkap sudah, berikut ini bentuk kode lengkapnya.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class FungsiProsedur {
static ArrayList listBuah = new ArrayList();
static boolean isRunning = true;
static InputStreamReader inputStreamReader = new InputStreamReader(System.in);
static BufferedReader input = new BufferedReader(inputStreamReader);
static void showMenu() throws IOException{
System.out.println("========= MENU ========");
System.out.println("[1] Show All Buah");
System.out.println("[2] Insert Buah");
System.out.println("[3] Edit Buah");
System.out.println("[4] Delete Buah");
System.out.println("[5] Exit");
System.out.print("PILIH MENU> ");
int selectedMenu = Integer.valueOf(input.readLine());
switch(selectedMenu){
case 1:
showAllBuah();
break;
case 2:
insertBuah();
break;
case 3:
editBuah();
break;
case 4:
deleteBuah();
break;
case 5:
System.exit(0);
break;
default:
System.out.println("Pilihan salah!");
}
}
static void showAllBuah(){
if(listBuah.isEmpty()){
System.out.println("Belum ada data");
} else {
// tampilkan semua buah
for(int i = 0; i < listBuah.size(); i++){
System.out.println(String.format("[%d] %s",i, listBuah.get(i)));
}
}
}
static void insertBuah() throws IOException{
System.out.print("Nama buah: ");
String namaBuah = input.readLine();
listBuah.add(namaBuah);
}
static void editBuah() throws IOException{
showAllBuah();
System.out.print("Pilih nomer buah: ");
int indexBuah = Integer.valueOf(input.readLine());
System.out.print("Nama Baru: ");
String namaBaru = input.readLine();
// ubah nama buah
listBuah.set(indexBuah, namaBaru);
}
static void deleteBuah() throws IOException{
showAllBuah();
System.out.print("Pilih nomer buah: ");
int indexBuah = Integer.valueOf(input.readLine());
// hapus buah
listBuah.remove(indexBuah);
}
public static void main(String[] args) throws IOException {
do {
showMenu();
} while (isRunning);
}
}
Setelah itu, silahkan dijalankan dan perhatikanlah hasilnya.
========= MENU ========
[1] Show All Buah
[2] Insert Buah
[3] Edit Buah
[4] Delete Buah
[5] Exit
PILIH MENU> 1
Belum ada data
========= MENU ========
[1] Show All Buah
[2] Insert Buah
[3] Edit Buah
[4] Delete Buah
[5] Exit
PILIH MENU> 2
Nama buah: Apel
========= MENU ========
[1] Show All Buah
[2] Insert Buah
[3] Edit Buah
[4] Delete Buah
[5] Exit
PILIH MENU> 1
[0] Apel
========= MENU ========
[1] Show All Buah
[2] Insert Buah
[3] Edit Buah
[4] Delete Buah
[5] Exit
PILIH MENU>
Silahkan coba untuk melakukan insert, edit, dan delete.
CREDIT : petanikode.com