Blogger Templates

09 May 2014

ALGORITMA STACK/TUMPUKAN

Stack atau Tumpukan adalah salah satu algoritma dari bahasa pemrograman,. stack atau tumpukan ini sering juga ditemukan dalam kehidupan sehari-hari, contohnya seperti disetiap pelabuhan pelabuhan itu terdapat box box besar yang akan dibawa oleh perahu, box box tersebut ditumpuk terlebih dahulu sebelum akhirnya dibawa, layaknya tumpukan tersebut barang yang akan diangkat terlebih dahulu ya.... pasti yang paling atas.

sama saja seperti Algoritma Stack proses itu disebut dengan LIFO (last in first out),. atau terakhir masuk pertama kali keluar. gambar dibawah ini adalah contoh dari Algoritma Stack LIFO..



push istilah yang digunakan Algoritma Stack untuk menambahkan Elemen, dan Pop digunakan untuk mengurangi atau menghapus Elemen dalam Algortima Stack.

ilustrasi dari algoritma Stack ini bisa didownload disini

http://www.ziddu.com/download/15438972/ilustrasi_stack.swf.html


Algoritma dari stack ini.
1. pertama melakukan pemeriksaan,... apakah antrian kosong atau penuh
2. ketika akan melakukan proses push lakukan pemeriksaan pada tumpukan apakah tumpukan penuh,. jika salah maka lakukan proses No: 3. jika benar maka lakukan proses No: 6.
3. memasukan Elemen dalam tumpukan tersebut.
4. ketika akan melakukan proses pop lakukan pemeriksaan terlebih dahulu pada tumpukan apakah tumpukan sudah kosong,. jika benar maka lakukan proses No : 5. jika salah proses No: 6.
6. Menghapus Elemen yang ada paling atas.
5. tampilkan pemberitahuan bahwa tumpukan penuh atau kosong.

contoh PROGRAM STACK.
//latihan_stack.cpp

#include<stdio.h>
#include<stdlib.h>
#define max_stack 5
struct STACK{
int data[max_stack];
int top;
};
struct STACK stack;
int main(){
int pilih, data, i;
stack.top=-1;
do{
printf("menu operasi stack\n");
printf("==================\n");
printf("1. push data\n");
printf("2. pop data \n");
printf("3. tampil data\n");
printf("4. keluar\n");
printf("masukan pilihan anda [1-4] =");scanf("%d",&pilih);
switch(pilih){
case 1:
if (stack.top==(max_stack-1)){
printf("stack penuh.");
}
else{
printf("\nmasukan data yang ingin dipush :");scanf("%d",&data);
stack.top++;
stack.data[stack.top]=data;
}
break;
case 2:
if(stack.top==-1){
printf("stack kosong....!!!\n");
}
else{
printf("\n\nstack yang dipopkan :%d.\n\n\n",stack.data[stack.top]);
stack.top--;
}
break;
case 3:
if(stack.top==-1){
printf("stack kosong...!!!\n");
}
else{
printf("Data :\n");
for(i=stack.top;i>=0;i--){
printf("|\t%d\t|\n-----------------\n",stack.data[i]);
}
printf("\n");
}
break;
case 4: exit(0);
}
}
while(pilih>0 && pilih<=4);
return 0;
}

No comments:

Post a Comment