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



Implementasi: 

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();
}
}
view raw gistfile1.txt hosted with ❤ by GitHub
output:

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
view raw output hosted with ❤ by GitHub


Berikut merupakan laporan dalam bentuk paper :

 


Berikut Merupakan video presentasi sebagai demo:



Komentar

Postingan populer dari blog ini

Tugas 1 - PPB F