Contoh program STACK
![](http://img2.blogblog.com/img/icon18_edit_allbkg.gif)
http://im-informatika.blogspot.com/2015/05/contoh-program-stack.html
Sebelum memahami contoh program stack, pahami terlebih dahulu tentang STACK
Berikut source code contoh program Stack menggunakan array
Hasil program :
![contoh program stack menggunakan array 1 contoh program stack menggunakan array 1](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_2Z4zwLScn1qx8n9rfAO6GVzCKSG4oP4iBEP5B_2U5iuCUoq2XfMSf6ZYaFTuDS8cnTV6CKCKWyIy6XW23rksrfmVqIQp78oty7kMTlGoexIN3Wx1IL1NW1BUw0X3wUsKJs6Hpi6LdzM/s1600/02_contoh_program_stack_menggunakan_array_01.PNG)
![contoh program stack menggunakan array 2 contoh program stack menggunakan array 2](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgboQbNFKZSGkiYZDFboB_lHOVKQBsdntd4PIApQ5J70opIah9dkI0vp1ubS2V3FEto21mEkMiOl_39AFIH-53ePTe-qnGMoEST7EzK2Yvw2dSVKPGxa-gainim_VPgwLRqkkKpAHhksBQ/s1600/02_contoh_program_stack_menggunakan_array_02.PNG)
![contoh program stack menggunakan array 3 contoh program stack menggunakan array 3](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsMPF4ggJrjrBrPIbRcUs2o6Aw5cPnCIPLXs6fgrQ3PnAZ47Lg8O7wTq4b52s21OPwUeKvwMIp6BNKD-ONh5wibrbP7cWXjGBYDTiWPLRTf6DzzRJ8iHUt2X3EUAT6e55Dy8dtHZaUsTM/s1600/02_contoh_program_stack_menggunakan_array_03.PNG)
![contoh program stack menggunakan array 4 contoh program stack menggunakan array 4](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0iFl-BhbBEltTV5KP-xKNzvkwWfH8MRMVRlmtJtpzHRRLHNT3zbendSZAbqB5k2R6zelYMnG5NYW_NNYEME7v3mvvybyLqqIttaDx9z3g6WR7g4VeMsHmIJ6wqZFJ3j_vSaPUH36bVII/s1600/02_contoh_program_stack_menggunakan_array_04.PNG)
Berikut source code contoh program Stack menggunakan array
#include <stdio.h> #include <conio.h> #include <string.h> #define MAX_STACK 10 struct STACK { int top; char data[10][10]; }; STACK tumpuk; void inisialisasi(){ tumpuk.top = -1; } int IsFull(){ if(tumpuk.top == MAX_STACK-1) return 1; else return 0; } int IsEmpty(){ if(tumpuk.top == -1) return 1; else return 0; } void Push(char d[10]){ tumpuk.top++; strcpy(tumpuk.data[tumpuk.top],d); } void Pop(){ printf("Data yang terambil = %s\n",tumpuk.data[tumpuk.top]); tumpuk.top—--; } void Clear(){ tumpuk.top=-1; } void TampilStack(){ for(int i=tumpuk.top;i>=0;i--){ printf("Data ke %d : %s\n",i+1,tumpuk.data[i]); } } int main(){ int pil; bool exit=true; inisialisasi(); char dt[10]; while(exit){ clrscr(); printf("1. push\n"); printf("2. pop\n"); printf("3. print\n"); printf("4. clear\n"); printf("5. exit\n"); printf("Pilihan : ");scanf("%d",&pil); switch(pil){ case 1: clrscr();if(IsFull() != 1){ printf("Data = ");scanf("%s",dt);Push(dt); } else printf("\nSudah penuh!\n");getch();break; case 2: clrscr();if(IsEmpty() != 1) Pop(); else printf("\nMasih kosong!\n");getch();break; case 3: clrscr();if(IsEmpty() != 1) TampilStack(); else printf("\nMasih kosong!\n");getch();break; case 4: clrscr();Clear(); printf("\nSudah kosong!\n");getch();break; case 5: exit=false; break;} } }
Hasil program :