Algoritma Pseudocode UAS PSTD
Algoritma Pseudocode UAS PSTD
Pembagian Tugas
1. Fadli Ahmad Febriana : Class Main
2. Rifandika Faqih Ahzami : Class Toko, Constructor
3. Puji Yanto : Insert, Display, Search, Delete, UpdateBarang, Update Jumlah Barang,
Update Harga, Tranversal
4. Muhamad Ikhrasul Amal : Order, display order, update jumlah order, delete order, mencari
orderan, tranversal order.
Class BMS
Program BMS_Frozen_Food
Kamus :
namaFrozen Food :string
jumlahFrozen Food :integer
hargaFrozen Food :integer
order :string
jumlahOrder :integer
hargaOrder :integer
Deskripsi :
namaFrozen Food ← new String[max]
jumlahFrozen Food ← new int[max]
hargaFrozen Food ← new int[max]
order ← new String[max]
jumlahOrder ← new int[max]
hargaOrder ← new int[max]
n ← 0
m ← 0
Tambah Data
public void display()
output("nama\tjumlah\tharga")
for (int i ← 0; i < n; i++)
System.out.println(namaFrozen Food[i] + "\t\t" + jumlahFrozen
Food[i] + "\t\t" + hargaFrozen Food[i])
output()
Cari Frozen Food
public boolean search(String namaFrozen Food)
boolean kondisi false
for (int i ← 0; i < n; i++)
if (namaFrozen Food.equalsIgnoreCase(this.namaFrozen
Food[i]))
output("---Data")
output ("nama\tjumlah\tharga")
output (this.namaFrozen Food[i] + "\t\t" + jumlahFrozen
Food[i] + "\t\t" + hargaFrozen Food[i])
output ()
kondisi ← true;
break
return kondisi
Update Data
Update Nama Frozen Food
public boolean updateNama(String namaFrozen Food, String namaFrozen
FoodBaru)
int i ← tranversal(namaFrozen Food);
if (i == n)
return false
else
this.namaFrozen Food[i] ← namaFrozen FoodBaru;
return true;
Update Jumlah Frozen Food
public boolean updateJumlah(String namaFrozen Food, int jumlahFrozen
Food)
int i ← tranversal(namaFrozen Food)
if (i == n)
return false
else
this.jumlahFrozen Food[i] ← jumlahFrozen Food
return true
Update Jumlah Harga
public boolean updateHarga(String namaFrozen Food, int harga)
int i ← tranversal(namaFrozen Food)
if (i == n)
return false
else
this.hargaFrozen Food[i] ← harga;
return true
Mencari Indeks Frozen Food yg dicari pada data Frozen Food
public int tranversal(String namaFrozen Food)
int i ← 0;
for (i ← 0; i < n; i++)
if (namaFrozen Food.equalsIgnoreCase(this.namaFrozen
Food[i]))
break;
return i
Order
public boolean order(String namaFrozen Food, int jumlahFrozen Food)
int j ← tranversalOrder(namaFrozen Food);
int i ← tranversal(namaFrozen Food);
if (i == n)
return false;
else
if (this.jumlahFrozen Food[i] == 0)
output("stok habis");
else if (this.jumlahFrozen Food[i] >= jumlahFrozen Food)
if (j != m)
this.jumlahOrder[j] ← this.jumlahOrder[j] +
jumlahFrozen Food;
this.jumlahFrozen Food[i] ← this.jumlahFrozen
Food[i] - jumlahFrozen Food;
else
this.order[m] ← namaFrozen Food;
this.jumlahOrder[m] ←jumlahFrozen Food;
this.hargaOrder[m] ← this.hargaFrozen Food[i];
this.jumlahFrozen Food[i] ← this.jumlahFrozen
Food[i] - jumlahFrozen Food;
m++;
else
output("stok tidak cukup");
return true;
Lihat Order
public void displayOrder()
output("nama\tjumlah\tharga satuan\t total");
int totalBiaya ← 0;
for (int i = 0; i < m; i++) {
output(order[i] + "\t\t" + jumlahOrder[i] + "\t\t" +
hargaOrder[i] + "\t\t\t"
+ jumlahOrder[i] * hargaOrder[i]);
totalBiaya = totalBiaya + jumlahOrder[i] * hargaOrder[i];
output ("---");
output ("Total Biaya: " + totalBiaya);
output ();
Update Jumlah Frozen Food
public boolean updateJumlahOrder(String namaFrozen Food, int
jumlahOrder)
int selisih ← 0;
int j ← tranversal(namaFrozen Food)
int i ← tranversalOrder(namaFrozen Food)
if (i == n)
return false;
else
if (jumlahOrder > this.jumlahFrozen Food[i] +
this.jumlahOrder[i])
output("jumlah Frozen Food melebihi stok")
return false
else
selisih ← jumlahOrder - this.jumlahOrder[i];
this.jumlahOrder[i] ← jumlahOrder;
this.jumlahFrozen Food[j] ← this.jumlahFrozen Food[j] -
selisih
this.jumlahOrder[i] ← jumlahOrder;
return true
Hapus Order
public boolean deleteOrder(String namaFrozen Food)
int k ← tranversal(namaFrozen Food)
int i ← tranversalOrder(namaFrozen Food)
if (i == n)
return false;
else
this.jumlahFrozen Food[k] ← this.jumlahFrozen Food[k] +
this.jumlahOrder[i];
for (int j ← i; j < n; j++)
this.order[j] ← this.order[j + 1]
this.order[j] ← this.order[j + 1]
m--
return true
Class Main
program yang memproses data-data pada kamus
Kamus :
max: integer
namaBarang: String
jumlahBarang: integer
hargaBarang: integer
pilih: integer
kondisi: boolean
konsidi1: Boolean
kondisi2: Boolean
indeks: integer
Deskripsi/Algoritma:
//deklarasi variabel
Output(BMS Frozen Food))
max 100
Toko a new(max)
Scanner input new Scanner(System.in)
//inputan awal
a.insert("sosis",100,10000)
a.insert("nugget",90,6000)
a.insert("risoles",80,8000)
//Menu utama
while(kondisi)
kondisi1 true
kondisi2 true
output("============================================")
output("Menu pilihan: \n1. Penjual \n2. Pembeli \n3.
Keluar\n")
output(“-pilih: “)
input(pilih)
swith(pilih)
case 1: //menu penjual
while(kondisi1)
output("===================================
=========")
output(“ penjual”)
output("Menu pilihan: \n1. Tambah Frozen
Food \n2. Tampilkan Data \n3. Cari Frozen
Food \n4. Delete Frozen Food \n5. Update
Data \n6. Kembali \n7. Keluar\n")
output(“-pilih: “)
input(pilih)
swith(pilih)
case 1:
output("---- Tambah Frozen Food
----")
output("Masukkan nama Frozen Food:
")
input(namaFrozen Food)
if a.search(namaFrozen Food)=true
then
output("Frozen Food sudah ada
dalam list")
indeks
a.tranversal(namaFrozen Food)
output("Masukkan jumlah Frozen
Food: ")
input(jumlahFrozen Food)
a.insert(namaFrozen
Food,jumlahFrozen
Food,a.hargaFrozen
Food[indeks])
else
output("Masukkan jumlah Frozen
Food: ")
input(jumlahFrozen Food)
output("Masukkan harga jual:
")
input(hargaFrozen Food)
a.insert(namaFrozen
Food,jumlahFrozen
Food,hargaFrozen Food)
case 2:
output("---- List Frozen Food
----")
a.display()
case 3:
output("---- Cari Frozen Food
----")
output("Masukkan nama Frozen Food:
")
input(namaFrozen Food)
if a.search(namaFrozen Food)=true
then
output("--> Frozen Food
",namaFrozen Food, " terdapat
dalam list")
else
output("--> Frozen Food
",namaFrozen Food," tidak ada
dalam list")
case 4:
output("---- Delete Frozen Food
----")
output("Masukkan nama Frozen Food:
")
input(namaFrozen Food)
if a.delete(namaFrozen Food)=true
then
output("--> Frozen Food
",namaFrozen Food, " berhasil
di delete")
else
output("--> Frozen Food
",namaFrozen Food," tidak ada
dalam list")
case 5:
output("---- Update Data ----")
output("Masukkan nama Frozen Food:
")
input(namaFrozen Food
if a.search(namaFrozen Food)=true
then
("Menu pilihan: \n1. Update
Nama Frozen Food\n2. Update
Jumlah Frozen Food \n3.
Update Jumlah Harga\n4.
Kembali\n5. Keluar\n")
output("-Pilih: ")
input(pilih)
swith(pilih)
case 1:
output("--> Nama Frozen
Food")
output ("Masukkan nama
Frozen Food baru: ")
input(namaFrozen
FoodBaru)
if
a.updateNama(namaFroz
en Food,namaFrozen
FoodBaru)=true then
output ("Nama
Frozen Food
berhasil di
update")
a.search(namaFrozen
Food)
else
output("Frozen Food
tidak ada dalam
list")
case 2:
output ("--> Jumlah
Frozen Food")
output ("Masukkan
jumlah Frozen Food: ")
input(jumlahFrozen
Food)
if
a.updateJumlah(namaFro
zen Food,jumlahFrozen
Food)=true then
output ("Jumlah
Frozen Food
berhasil di
update")
a.search(namaFrozen
Food)
else
output("Frozen Food
tidak ada dalam
list")
case 3:
output ("--> Harga
Frozen Food")
output ("Masukkan harga
Frozen Food: ")
input(hargaFrozen Food)
if
a.updateHarga(namaFroz
en Food,hargaFrozen
Food)=true then
output ("Harga
Frozen Food
berhasil di
update")
a.search(namaFrozen
Food)
else
output("Frozen Food
tidak ada dalam
list")
case 4:
break
case 5:
return
default:
output ("Frozen Food
tidak ada dalam list")
else
output("--> Frozen Food
",namaFrozen Food," tidak ada
dalam list")
case 6:
kondisi false
case 7:
break
default:
output ("Frozen Food tidak ada
dalam list")
case 2: //menu pembeli
while(kondisi)
output
("======================================
======")
output ("--> Pembeli")
output ("Menu pilihan: \n1. Katalog \n2.
Cari Frozen Food \n 3. Order \n4. Lihat
Orderan \n5. Edit Orderan \n6.
Kembali\n7. Keluar\n")
output(“pilih: “)
input(pilih)
switch(pilih)
case 1:
output ("---- Katalog ---")
a.display()
case 2:
output ("---- Cari Frozen Food
---")
output ("Masukkan jumlah Frozen
Food: ")
input(jumlahFrozen Food)
if a.search(namaFrozen Food)=true
then
output("Frozen Food terdapat
dalam list")
else
output("Frozen Food tidak ada
dalam list")
case 3:
output ("---- Order Frozen Food
----")
output ("Masukkan jumlah Frozen
Food: ")
input(jumlahFrozen Food)
if a.search(namaFrozen Food)=true
then
output ("Masukkan jumlah
Frozen Food: ")
input(jumlahFrozen Food)
a.order(namaFrozen
Food,jumlahFrozen Food)
else
output("Frozen Food tidak ada
dalam list")
case 4:
output ("---- Hasil Orderan ----")
a.displayOrder()
case 5:
output ("---- Edit Orderan")
output ("Masukkan nama Frozen
Food: ")
input(namaFrozen Food)
if a.searchOrderan(namaFrozen
Food)=true then
output ("Menu pilihan: \n1.
Update jumlah Frozen Food
\n2. Hapus Orderan \n3.
Kembali\n4. Keluar")
output(“pilih: “)
input(pilih)
swith(pilih)
case 1:
output ("--> Update
jumlah Frozen Food")
output ("Masukkan
jumlah Frozen Food:
")
input(jumlahFrozen
Food)
if jumlahFrozen
Food>0 then
a.updateJumlahO
rder(namaFroze
n Food,
jumlahFrozen
Food)
a.searchOrdera
n(namaFrozen
Food)
else
output ("Jumlah
tidak valid")
a.searchOrderan
(namaFrozen
Food)
case 2:
output ("--> Hapus
Orderan")
a.deleteOrder(namaFroze
n Food)
output ("-->Frozen Food
",namaFrozen Food,"
berhasil di delete")
case 3:
break
case 4:
return
default:
output ("Pilihan menu
tidak tersedia")
else
output("Frozen Food tidak ada
dalam list")
case 6:
kondisi2 false
case 7:
return
default:
output ("Pilihan menu tidak
tersedia")
case 3:
kondisi false
default:
output("Pilihan menu tidak tersedia")
Coding Java
Class BMS
package ProjectUAS;
// Tambah Barang
public void insert(String namaBarang, int jumlahBarang, int hargaBarang)
{
int i = tranversal(namaBarang);
if (i == n) {
this.namaBarang[n] = namaBarang;
this.hargaBarang[n] = hargaBarang;
this.jumlahBarang[n] = jumlahBarang;
n++;
} else {
this.jumlahBarang[i] = this.jumlahBarang[i] + jumlahBarang;
}
}
// Tambah Data
public void display() {
System.out.println("nama\tjumlah\tharga");
for (int i = 0; i < n; i++) {
System.out.println(namaBarang[i] + "\t\t" + jumlahBarang[i] +
"\t\t" + hargaBarang[i]);
}
System.out.println();
}
// Cari Barang
public boolean search(String namaBarang) {
boolean kondisi = false;
for (int i = 0; i < n; i++) {
if (namaBarang.equalsIgnoreCase(this.namaBarang[i])) {
System.out.println("---Data");
System.out.println("nama\tjumlah\tharga");
System.out.println(this.namaBarang[i] + "\t\t" +
jumlahBarang[i] + "\t\t" + hargaBarang[i]);
System.out.println();
kondisi = true;
break;
}
}
return kondisi;
}
// Hapus Barang
public boolean delete(String namaBarang) {
int i = tranversal(namaBarang);
if (i == n) {
return false;
} else {
for (int j = i; j < n; j++) {
this.namaBarang[j] = this.namaBarang[j + 1];
this.jumlahBarang[j] = this.jumlahBarang[j + 1];
this.hargaBarang[j] = this.hargaBarang[j + 1];
}
}
n--;
return true;
}
// Update Data
// Update Nama Barang
public boolean updateNama(String namaBarang, String namaBarangBaru) {
int i = tranversal(namaBarang);
if (i == n) {
return false;
} else {
this.namaBarang[i] = namaBarangBaru;
return true;
}
}
// Order
public boolean order(String namaBarang, int jumlahBarang) {
int j = tranversalOrder(namaBarang);
int i = tranversal(namaBarang);
if (i == n) {
return false;
} else {
if (this.jumlahBarang[i] == 0) {
System.out.println("stok habis");
} else if (this.jumlahBarang[i] >= jumlahBarang) {
if (j != m) {
this.jumlahOrder[j] = this.jumlahOrder[j] +
jumlahBarang;
this.jumlahBarang[i] = this.jumlahBarang[i] -
jumlahBarang;
} else {
this.order[m] = namaBarang;
this.jumlahOrder[m] = jumlahBarang;
this.hargaOrder[m] = this.hargaBarang[i];
this.jumlahBarang[i] = this.jumlahBarang[i] -
jumlahBarang;
m++;
}
} else {
System.out.println("stok tidak cukup");
}
return true;
}
}
// Lihat Orderan
public void displayOrder() {
System.out.println("nama\tjumlah\tharga satuan\t total");
int totalBiaya = 0;
for (int i = 0; i < m; i++) {
System.out.println(order[i] + "\t\t" + jumlahOrder[i] + "\t\t" +
hargaOrder[i] + "\t\t\t"
+ jumlahOrder[i] * hargaOrder[i]);
totalBiaya = totalBiaya + jumlahOrder[i] * hargaOrder[i];
}
System.out.println("---");
System.out.print("Total Biaya: " + totalBiaya);
System.out.println();
}
// Hapus Order
public boolean deleteOrder(String namaBarang) {
int k = tranversal(namaBarang);
int i = tranversalOrder(namaBarang);
if (i == n) {
return false;
} else {
this.jumlahBarang[k] = this.jumlahBarang[k] +
this.jumlahOrder[i];
for (int j = i; j < n; j++) {
this.order[j] = this.order[j + 1];
this.order[j] = this.order[j + 1];
}
}
m--;
return true;
}
Class Main
package ProjectUAS;
import java.util.Scanner;