Coretanku

Tempatku Berbagi…

Stack di C++

Wokey, ketemu lagi dengan coretanku :D, kali ini akan ngebahas stack karena ada tugas kuliah dan temen2 ane ada yg nanya (lebih tepatnya minta jawaban :D), daripada males ngirimin email satu-satu mending posting aja di blog.. hehe

Ok,, langsung aja Stack sendiri merupakan sebuah konsep untuk menyimpan dan mengambil dengan algoritma LIFO (“Last In First Out”) dimana data yang masuk duluan yang akan dikeluarkan terlebih dahulu, contoh realnya ketika kita memasukkan bola ke dalam suatu tabung, maka bola yang dimasukkan pertama kali akan diambil terakhir kali,, nah seperti itulah kira2 konsep stack..

Operasi-operasi yang ada di stack yaitu antara lain
– push yang digunakan untuk menyimpankan data
– pop untuk mengambil data
– isEmpty untuk menentukan stack dalam keadaan kosong
– isFull untuk menentukan stack dalam keadaan penuh
– clear untuk menghapus stack
yah, kira2 itu yang perlu diperhatikan.. langsung ke contoh source code ja…

#include <stdio.h>
#include <conio.h>
#include <iostream.h>

#define MAXSTACK 100

typedef int itemType;
typedef struct {
	int item[MAXSTACK];
   int jml;
} Stack;

void init(Stack *s){
 	s->jml=0;
}

int kosong(Stack *s){
 	return (s->jml==0);
}

int penuh(Stack *s){
	return (s->jml==MAXSTACK);
}

void isi(itemType x, Stack *s){
	if(penuh(s))
    	printf("\nMaaf data sudah penuh\n");
   else{
   	s->item[s->jml]=x;
      ++(s->jml);
   }
}

void ambil(Stack *s, itemType *x){
	if(kosong(s))
   	printf("\nMaaf data masih kosong\n");
   else
   {
    	--(s->jml);
      *x=s->item[s->jml];
      s->item[s->jml]=0;
      printf("\nData %i berhasil diambil\n",*x);
   }
}

void tampil(Stack *s){
	if(kosong(s))
   	printf("\nMaaf Data masih kosong\n");
   else
   	printf("\n");
		for(int i=s->jml-1;i>=0;i--){
   		printf("Data: %d\n",s->item[i]);
   	}
}

void hapus(Stack *s){
	s->jml=0;
   printf("\nSemua data berhasil dihapus\n");
}

void main(){
	int pil;
   Stack tumpukan;
   itemType data;
   init(&tumpukan);

   do{
   	printf("\nMENU: \n 1. Isi\n 2. Ambil\n 3. Lihat\n 4. Hapus\n 5. Keluar\n");
   	printf("Masukkan pilihan: "); scanf("%i",&pil);

      switch(pil){
      	case 1:
         	printf("\nMasukkan data: "); scanf("%i",&data);;
            isi(data,&tumpukan);
            break;
         case 2:
         	ambil(&tumpukan,&data);
            break;
         case 3:
         	tampil(&tumpukan);
            break;
         case 4:
            hapus(&tumpukan);
            break;
      }
   }while(pil!=5);

   getch();
}

Wokey,, itu contoh sourcecodenya, tinggal dijalanin aja,, o ya sedikit keterangan tentang fungsi yang ada
fungsi isi=push
fungsi ambil=pop
fungsi kosong=isEmpty
fungsi penuh=isFull
fungsi hapus=Clear
udah itu aja cuman namahin dikit,, hasilnya setelah dijalankan kira2 kayak gini:


yah udah kelar, tampilannya ga menarik sama sekali ya.. hehehe cuman item putih kaya’ gitu.. ckckck,, udah segitu aja,, semoga bermanpaat ea.. mau tidur dulu udah ngantuk e..

Advertisements

14 responses to “Stack di C++

  1. Mas Dana May 3, 2010 at 3:01 pm

    mas bosh…scrip bwt mengetahui ip addrs dll pc pengunjung pa..kyk pny mas bosh tu di sisi kanan atas..
    hhhehe

  2. Mas Dana May 5, 2010 at 6:23 am

    Oke Pher..
    aqn aku coba..’
    mksh bwt info’a..
    _^

  3. Mas Dana May 5, 2010 at 6:41 am

    lah..b jerman je..
    kata2 lies/daftar’a g’ ketemu je..
    mohon petunjuk’a
    😀

  4. Mas Dana May 5, 2010 at 3:00 pm

    akhir’a aq bisa bosh…hhhehehe
    mksh mas dab_^

  5. Tomy May 17, 2010 at 3:05 pm

    Gan tolong bantu ane dong gan masalah stack…
    Kasusnya gini gan
    Stack Single linked list..
    Mengubah ekspresi infix(a+b) menjadi postfix(ab+)…
    Misalkan kita input a=2 b=2 hasil=4
    Tapi harus melalui proses infix menjadi postfix…
    Tolong bantu ya gan…
    Thx Sebelumnya…

  6. eno December 14, 2010 at 10:25 pm

    ma ksih kang, coretannya mmbantu !

  7. Pingback: Stack di C++ « Indradevilbat's Blog

  8. godjer January 18, 2011 at 6:38 am

    untuk push gmana ya codenya?
    tks

  9. Dezi March 31, 2011 at 12:17 pm

    thankz…!!!1
    izin copy eaaahhhh pakek belajar wd ztackk……

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: