PROGRAM KESEPULUH : SEQUENTIAL SEARCH JAVA
SEQUENTIAL SEARCH JAVA
Pada sebuah program warung makan, seringkali terdapat menu makanan yang banyak sehingga pembeli harus membaca dari awal sampai akhir. namun dengan ditambahkannya sequential search, pembeli dapat langsung memilih menu makanan berdasarkan nama ataupun range harga. dengan demikian akan mempermudah untuk langsung menemukan menu makanan yang sesuai keinginan dan budget. Berikut contoh source code program warung makan menggunakan sequential search:
package search;
import java.util.Scanner;
public class Search {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int porsi [] = new int [10];
int total [] = new int [10];
int pilih=0, pilih2=0, totalbeli=0,totalharga1=0, totalharga2=0, uangpembeli, kembalian;
String belimakan[]=new String[5];
int beliharga[]=new int [5];
int jumlahbeli=0;
//array makanan dan harga
String makanan[] = {"Kol Goreng","Tempe Bacem", "Telur Dadar", "Lele Goreng", "Burung Puyuh", "Burung Dara", "Ikan Mujair", "Ikan Nila", "Ayam Goreng", "Bebek Goreng"};
int harga[] = {2000, 4000, 5000, 8000,10000, 12000, 15000, 17000, 20000, 23000};
System.out.println("\n========= WARUNG PECEL LELE LAMONGAN =========");
//looping menu program
do {
System.out.println("\nMENU");
System.out.println("1. Daftar Makanan");
System.out.println("2. Cari Makanan");
System.out.println("3. Selesai");
System.out.print("Pilih = ");
pilih=sc.nextInt();
switch(pilih){
case 1:
//Pengurutan daftar menu
System.out.println("Menu\t\tHarga");
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10-1; j++) {
if (makanan[j].compareToIgnoreCase(makanan[j+1])>0){
String t = makanan[j];
makanan[j] = makanan[j+1];
makanan[j+1] = t;
int h = harga[j];
harga[j]= harga[j+1];
harga[j+1] = h;
}
}
}
for (int i = 0; i < 10; i++) {
System.out.println(makanan[i]+"\t"+harga[i]);
}
break;
case 2:
//looping untuk memilih pencarian berdasarkan nama atau range harga
do{
System.out.println("1. Berdasarkan nama");
System.out.println("2. Berdasarkan range harga");
System.out.println("3. Selesai");
System.out.print("Pilih = ");
pilih2 = sc.nextInt();
switch(pilih2) {
case 1:
System.out.print("Cari Makanan = ");
String cari1 = sc.next();
String carimakan1 []= new String[10];
int cariharga1[]= new int [10];
int idx1 = 0;
for (int i = 0; i < makanan.length; i++) {
if(makanan[i].contains(cari1)){
carimakan1[idx1]=makanan[i];
cariharga1[idx1]=harga[i];
idx1++;
System.out.println(idx1+"."+makanan[i]+"\t"+harga[i]);
}
}
//pilih menu
System.out.print("Pilih menu = ");
int pilih3 = sc.nextInt();
belimakan[jumlahbeli]=carimakan1[pilih2-1];
beliharga[jumlahbeli]=cariharga1[pilih2-1];
System.out.print("Porsi = ");
porsi[jumlahbeli] = sc.nextInt();
total[jumlahbeli] = beliharga[jumlahbeli] * porsi[jumlahbeli];
totalharga1 = totalharga1 + total[jumlahbeli];
jumlahbeli++;
break;
case 2:
System.out.print("Minimal Harga = ");
int min = sc.nextInt();
System.out.print("Maksimal Harga = ");
int maks = sc.nextInt();
int cariharga2[] = new int[10];
String carimakan2[] = new String[10];
int idx2 = 0;
for (int i = 0; i < makanan.length; i++) {
if (harga[i]>=min && harga[i]<=maks){
carimakan2[idx2] = makanan[i];
cariharga2[idx2] = harga[i];
idx2++;
System.out.println(idx2+". "+makanan[i]+"\t"+harga[i]);
}
}
//pilih menu
System.out.print("Pilih Menu = ");
pilih = sc.nextInt();
belimakan[jumlahbeli]=carimakan2[pilih-1];
beliharga[jumlahbeli]=cariharga2[pilih-1];
System.out.print("Porsi = ");
porsi[jumlahbeli] = sc.nextInt();
total[jumlahbeli] = beliharga[jumlahbeli] * porsi[jumlahbeli];
totalharga2 = totalharga2 + total[jumlahbeli];
jumlahbeli++;
break;
case 3 :
System.out.println("Silahkan Ditunggu");
break;
}
}while(pilih2 != 3);
}
}while(pilih!=3);
System.out.println("==============DAFTAR PESANAN=================");
System.out.println("Menu \t\t\tHarga\tPorsi\tTotal");
for (int i = 0; i < jumlahbeli; i++) {
System.out.println((i+1)+". "+belimakan[i]+"\t"+beliharga[i]+"\t"+porsi[i]+"\t"+total[i]);
totalbeli = totalharga1 + totalharga2;
}
System.out.println("Total Biaya\t\t\t\t= "+totalbeli);
System.out.print("Pembayaran Tunai\t\t\t= ");
uangpembeli = sc.nextInt();
kembalian = uangpembeli-totalbeli;
if(uangpembeli == totalbeli){
System.out.println("uang anda pas");
}
else{
System.out.println("Kembalian"+"\t\t\t\t= "+ kembalian);
}
System.out.println("==========TERIMA KASIH SUDAH BERKUNJUNG===========");
}
}
Berikut merupakan cuplikan output source code di atas :