Penjelasan, Script, serta Perbedaan dari Logika Pengurutan Data LIFO dan FIFO

Share:


Penjelasan, Script, serta Perbedaan dari Logika Pengurutan Data LIFO dan FIFO



Dalam postingan kali ini saya akan menjelaskan apa itu LIFO apa itu FIFO, apa perbedaannya, bagaimana Scriptnya. Baik tidak panjang lebar langsung saja simak selengkapnya.

Yang akan saya bahas pertama adalah Script dari logika pengurutan data LIFO (Last In First Out) tersebut. Berikut saya menggunakan Visual Studio 2010 untuk membuat programnya.




Jika script diatas kurang jelas, bisa anda lihat selengkapnya dibawah ini.(Kode program LIFO)


/*Belajar STACK (Last In First Out)*/
#include <windows.h>
#include<stdio.h>
#include <stdlib.h>
#include<conio.h>
#define MAX 10
int s[MAX],top=-1;
//Defines gotoxy() for ANSI C compilers.
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
void clrscr()
{
system("@cls||clear");
}
main()
{
char a;
menu();
do
{
a=getch();
switch(a)
{
case 'p':
case 'P':
push(); /*pemanggilan fungsi push()*/
break;
case 'o':
case 'O':
pop(); /*pemanggilan fungsi pop()*/
break;
}
}while(a!=27);
}
menu() /*1*/
{
clrscr();
printf("\n P : Push");
printf("\n O : Pop");
printf("\n esc: Keluar\n");
gotoxy(1,23);printf("Max 10 tumpukan");
display();
}
push() /*2 penambahan*/
{
int input;
char a[6];
gotoxy(3,15);printf(" ");
gotoxy(3,17);printf(" ");
if(top<MAX-1) /*nilai MAX=10*/
{
gotoxy(3,15);printf("Masukkan Nilai :");
scanf("%s",a);
input=atoi(a); /*mengubah karakter ASCII menjadi Integer*/
s[++top]=input;
menu();
gotoxy(3,17);printf("%d dimasukkan tumpukkan",input);
}
else
{ gotoxy(3,17);printf("tumpukan penuh"); }
}
pop() /*3 keluaran*/
{
int y;
gotoxy(3,17);printf(" ");
if(top>=0)
{
y=s[top--];
menu();
gotoxy(3,15);printf("nilai %d dikeluarkan dari tumpukan",y);
}
else
{
gotoxy(3,15);printf(" ");
gotoxy(3,17);printf("tumpukan sudah habis");
}
}
display() /*4 tampilan*/
{
int y=24,i;
if(top<0)
{ gotoxy(60,12);printf("Kosong");return; }
gotoxy(60,y--);printf("--------");
for(i=0;i<=top;i++)
{
gotoxy(60,y--);printf("|%6d|",s[i]);
gotoxy(60,y--);printf("--------");
}
}


Jika sudah mengikuti script diatas maka jika berhasil akan menghasilkan output seperti gambar dibawah ini.




Selanjutnya adalah pembahasan mengenai perbedaan, kelemahan dan kelebihan, contoh, dan kesimpulan dari LIFO dan FIFO

1.       Perbedaan antara LIFO dan FIFO:
·         Fungsi push(): digunakan untuk menaikkan posisi TOP satu level ke level atas/memasukkan elemen
-Perbedaan : pada FIFO data yang pertama kali masuk akan diproses terlebih dulu, sedangkan pada LIFO data yang terakhir masuk akan diproses terlebih dahulu
-Persamaan : sama sam adigunakan untuk menginputkan data/elemen
·         Fungsi pop(): digunakan untuk menghapus elemen yang terletak pada posisi paling atas dari sebuah stack.
-Perbedaan : pada FIFO data yang masuk pertama kali akan dihapus terlebih dahulu sedangkan pad LIFO dat ayang terakhir diinputkan akan dihapus terlebih dahulu
-persamaan : fungsi pop() sama sma digunakan untuk menghapus
·         Fungsi display() : menampilkan hasil akhir
-Perbedaan : pada FIFO hasil akan ditampilkan secara horizontal dan pada LIFO secara vertikal
-Persamaan : sama sama digunakan untuk menampilkan hasil akhir
·         Fungsi menu() : digunakan untuk menampilkan menu
-perbedaan : menu yang ditampilkan program sesuai dengan # (header) yang terdapat pada program
-persaman : sama sama digunkan untuk menampilkan menu pada program

2.  Kelemahan dan kelebihan program FIFO dan LIFO
·         jika menggunakan metode FIFO
Kelemahan:
-data yang terakhir masuk, bila waktu pelayanan habis kemungkinan bisa tidak dilayani
-akses terhadap datanya memakan waktu lama
      Kelebihan:
-data yang pertama masuk maka akan pertama dilayani
·         Jika  menggunakan metode LIFO
Kelemahan:
-penghapusan dan pencarian data lama
-membutuhkan memori yang lebih banyak
Kelebihan:
-penambahan data dilakukan dengan cepat dan akses data yang terakhir kali dimasukkan dapat dilakukan dengan cepat
-selama memori masih tersedia, penambahan data bis aterus dilakukan

3.       -FIFO( first in first out) dimana orang yang pertama datang yang akan dilayani, sehingga ketika orang pertama belum selsesai, orang kedua tidak bisa mengambil/menyerobot.
Contoh dalah kehidupa sehari hari:
·         Antrian printer job pada sebuah jaringan
·         Antrian nasabah pada seuah bank
·         Antrian loket bioskop
·         Antrian di SPBU
 -LIFO(last in, first out) dimana benda yang baru dimasukkan yang dapat diakses atau dilihat.
Contoh dalam kehidupan sehari hari:
·         Setumpuk koran, dimana koran yang paling terakhir ditambahkan dan ditaruh di atas tumpukan yang dapat dilihat
·         Tumpukan buku di meja, dimana buku yang paling atas yang dapat dilihat terlebih dahulu
·         Tumpukan kaos di lemari, maka yang akan mudah dijangkau adalah kaos yang paling atas 

4.    Kesimpulan

FIFO: pada program yang menggunakan metode FIFO, data yang pertama masuk akan diproses terlebih dahulu.
Contoh: jika kita inputkan angka 1,2,3,4,5 maka jika dihapus maka data yang pertama kali akan dihapus ada angka 1
LIFO: pada program yang menggunakan metode LIFO, maka data yang terakhik diinputkan akan dilayane terlebih dahulu.
Contoh: jika menginputkan angka 1,2,3,4,5 maka jika dihapus, data yang pertama kali akan terhapus adlah angka 5.

Demikianlah artikel saya kali ini, semoga bermanfaat, dan tetap semangat!

3 komentar: