Final Project - Eas
- Nabila Zakiyah Khansa' Machrus - 5025201139
- Sarah Alissa Putri - 5025201272
Penerapan FIFO dalam Stok Gudang
Seiring dengan perkembangan zaman, perkembangan teknologi turut mengalami kemajuan yang cukup pesat, hal ini dibuktikan dengan banyaknya inovasi dan penemuan dibidang teknologi baik yang sederhana hingga sangat rumit. Pada final project ini, kami membuat program sederhana untuk mengatur stok yang ada di gudang dengan menerapkan First In First Out atau First In First Serve pada queue. Penerapan metode First In First Out dapat mengurangi kerugian pada gudang akibat masa berlaku produk. Produk-produk yang terdapat di dalam gudang adalah produk yang masa berlakunya lebih lama dibandingkan dengan barang yang lebih dulu berada di gudang. Program sederhana ini diharapkan bisa membantu pekerjaan agar terasa lebih mudah dibandingkan dengan cara manual.
![]() |
Queue (antrian) adalah barisan elemen
yang apabila elemen ditambah maka penambahannya berada di posisi belakang (rear) dan jika dilakukan
pengambilan elemen dilakukan di elemen paling depan (front). Oleh karena itu, queue bersifat FIFO (first in first
out).
Contoh :
Front Rear
5 |
6 |
7 |
9 |
|
Operasi-operasi dasar dari sebuah queue adalah :
1.
Enqueue : proses penambahan atau memasukkan satu
elemen di belakang
2.
Dequeue : proses pengambilan atau mengeluarkan satu
elemen di posisi depan
import java.util.Scanner; | |
import java.util.InputMismatchException; | |
import java.util.Iterator; | |
import java.util.LinkedList; | |
import java.util.Queue; | |
public class FIFO{ | |
private static int kapasitas = 10; | |
private static Queue<Integer> barang = new LinkedList<>(); | |
private static Queue<String> jeniss = new LinkedList<>(); | |
private static int list = 0; | |
private static boolean storage() { | |
if(barang.size() < kapasitas) { | |
return true; | |
} | |
else { | |
return false; | |
} | |
} | |
private static void tambahBarang() { | |
int urutan = 0; | |
int stok = 0; | |
Scanner gudangX = new Scanner(System.in); | |
String jenis=null; | |
while(urutan == 0) { | |
System.out.print("Masukkan Nama Barang: "); | |
jenis = gudangX.nextLine(); | |
System.out.print("Masukkan Stok (angka): "); | |
try { | |
stok = gudangX.nextInt(); | |
urutan = 1; | |
barang.add(stok); | |
jeniss.add(jenis); | |
} | |
catch(InputMismatchException e) { | |
System.out.println("Inputan harus berupa Angka!"); | |
urutan = 0; | |
} | |
} | |
} | |
private static void hapusBarang() { | |
barang.remove(); | |
jeniss.remove(); | |
System.out.println("Barang pertama dalam gudang sudah dikeluarkan"); | |
} | |
private static void showBarang() { | |
System.out.print("Barang dalam Gudang: \n"); | |
for(Iterator itr = jeniss.iterator(); | |
itr.hasNext(); | |
) | |
{ | |
for(Iterator itr2 = barang.iterator(); | |
itr2.hasNext(); | |
){ | |
System.out.println("Nama Barang: "+itr.next()); | |
System.out.println("Stok: "+itr2.next()); | |
} | |
} | |
System.out.println(""); | |
} | |
private static void keluar() { | |
String quitss = "y"; | |
System.out.print("Keluar dari Program? (Y/T): "); | |
quitss = new Scanner(System.in).nextLine(); | |
if(quitss.equalsIgnoreCase("y")) { | |
System.exit(0); | |
} | |
else { | |
menuProgram(); | |
} | |
} | |
private static void menu(int choosenMenu) { | |
switch(choosenMenu) { | |
case 1: | |
boolean check = storage(); | |
if(check) { | |
tambahBarang(); | |
} | |
else { | |
System.out.println("Antrian Penuh! Kosongkan satu barang terlebih dahulu!"); | |
} | |
break; | |
case 2: | |
hapusBarang(); | |
break; | |
case 3: | |
System.out.println("Status Storage: "); | |
System.out.println("Kapasitas: " + kapasitas); | |
System.out.println("Terisi : " + barang.size()); | |
break; | |
case 4: | |
showBarang(); | |
break; | |
case 5: | |
keluar(); | |
break; | |
} | |
menuProgram(); | |
} | |
private static void menuProgram() { | |
int urutan = 0; | |
int choosenMenu = 0; | |
while(urutan == 0) { | |
System.out.println("\nAplikasi Gudang G-Dragon"); | |
System.out.println("Menu: "); | |
System.out.println("1. Tambah Barang"); | |
System.out.println("2. Keluarkan 1 Barang"); | |
System.out.println("3. Status Gudang"); | |
System.out.println("4. Tampilkan Barang"); | |
System.out.println("5. Keluar dari Program"); | |
System.out.print("Your Choice: "); | |
Scanner menuOption = new Scanner(System.in); | |
try { | |
choosenMenu = menuOption.nextInt(); | |
urutan = 1; | |
}catch(InputMismatchException e) { | |
System.out.println("Masukan harus Angka!"); | |
} | |
} | |
System.out.println(""); | |
menu(choosenMenu); | |
} | |
public static void main(String[] args) { | |
menuProgram(); | |
} | |
} |
Aplikasi GD X | |
Menu: | |
1. Tambah Barang | |
2. Keluarkan 1 Barang | |
3. Status Gudang | |
4. Tampilkan Barang | |
5. Keluar dari Program | |
Your Choice: 1 | |
Masukkan Nama Barang: Sendok | |
Masukkan Stok (angka): 2 | |
Aplikasi GD X | |
Menu: | |
1. Tambah Barang | |
2. Keluarkan 1 Barang | |
3. Status Gudang | |
4. Tampilkan Barang | |
5. Keluar dari Program | |
Your Choice: 1 | |
Masukkan Nama Barang: Sisir | |
Masukkan Stok (angka): 1 | |
Aplikasi GD X | |
Menu: | |
1. Tambah Barang | |
2. Keluarkan 1 Barang | |
3. Status Gudang | |
4. Tampilkan Barang | |
5. Keluar dari Program | |
Your Choice: 3 | |
Status Storage: | |
Kapasitas: 10 | |
Terisi : 2 | |
Aplikasi GD X | |
Menu: | |
1. Tambah Barang | |
2. Keluarkan 1 Barang | |
3. Status Gudang | |
4. Tampilkan Barang | |
5. Keluar dari Program | |
Your Choice: 2 | |
Barang pertama dalam gudang sudah dikeluarkan | |
Aplikasi GD X | |
Menu: | |
1. Tambah Barang | |
2. Keluarkan 1 Barang | |
3. Status Gudang | |
4. Tampilkan Barang | |
5. Keluar dari Program | |
Your Choice: 4 | |
Barang dalam Gudang: | |
Nama Barang: Sisir | |
Stok: 1 | |
Aplikasi GD X | |
Menu: | |
1. Tambah Barang | |
2. Keluarkan 1 Barang | |
3. Status Gudang | |
4. Tampilkan Barang | |
5. Keluar dari Program | |
Your Choice: 5 | |
Keluar dari Program? (Y/T): Y |
Komentar
Posting Komentar