17. gotoxy(25,8); printf("3. Preview "); gotoxy(25,9); printf("4. Clear "); gotoxy(25,10); printf("5. Exit "); gotoxy(25,11); printf("==============="); gotoxy(25,12); printf("Masukkan pilihan : "); scanf("%i", &pil); MEMINTA INPUTAN BILANGAN INTEGER DAN DIMASUKKAN DALAM VARIABEL pil
18. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; }
19.
20. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } JIKA ISI VARIABEL pil=1 MAKA STATEMENT DALAM BLOK INI AKAN DILAKSANAKAN
21. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } MASUKKAN BILANGAN YANG AKAN MASUK KE STACK
22. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } MEMINTA INPUTAN BILANGAN INTEGER DAN DIMASUKKAN DALAM VARIABEL bil
23. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } PANGGIL FUNGSI push() YANG MENGINPUT ISI VARIABEL BIL KE DALAM STACK X
24. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } break; AKAN KELUAR DARI switch SEHINGGA PERINTAH YANG ADA DI BAWAHNYA TIDAK AKAN DILAKSANAKAN
25. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } JIKA NILAI VARIABEL pil=2 MAKA PANGGIL FUNGSI pop() UNTUK MENGELUARKAN ISI STACK
26. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } JIKA NILAI VARIABEL pil=3 MAKA PANGGIL FUNGSI tampil() UNTUK MENAMPILKAN ISI STACK
27. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } JIKA NILAI VARIABEL pil=4 MAKA PANGGIL FUNGSI reset() UNTUK MENGEMBALIKAN ISI VARIABEL atas dan dasar
28. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } JIKA NILAI VARIABEL pil=5 MAKA PANGGIL FUNGSI exit(0) DIMANA PROGRAM AKAN SELESAI
29. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } MENUJU KE LABEL menu
30. switch(pil) { case 1 : gotoxy(25,13); printf("Masukkan bil = "); scanf("%i", &bil); push(); getch(); break; case 2 : pop(); break; case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break; case 5 : exit(0); break; } goto menu; } AKHIR FUNGSI main()
31. void push() { if(atas<5) { x[atas] = bil; atas++; gotoxy(25,14); printf("%i telah masuk",bil); tampil(); } else { gotoxy(25,14); printf("Stack penuh"); } } FLOWCHART PUSH() atas<5 x[atas]=bil atas++ penuh berhasil
32.
33. void push() { if(atas<5) { x[atas] = bil; atas++; gotoxy(25,14); printf("%i telah masuk",bil); tampil(); } else { gotoxy(25,14); printf("Stack penuh"); } } DALAM PROSES push() PERTAMA KALI DIPE- RIKSA APAKAH STACK SUDAH PENUH. JIKA atas MASIH KURANG DARI 5 (JUMLAH MAX STACK) MAKA STACK MASIH BISA DIISI
34. void push() { if(atas<5) { x[atas] = bil; atas++; gotoxy(25,14); printf("%i telah masuk",bil); tampil(); } else { gotoxy(25,14); printf("Stack penuh"); } } ISI VARIABEL bil DISALIN KE STACK x INDEX YANG KE- atas
35. void push() { if(atas<5) { x[atas] = bil; atas++; gotoxy(25,14); printf("%i telah masuk",bil); tampil(); } else { gotoxy(25,14); printf("Stack penuh"); } } POINTER atas DIGESER KE KANAN. atas = atas+1
36. void push() { if(atas<5) { x[atas] = bil; atas++; gotoxy(25,14); printf("%i telah masuk",bil); tampil(); } else { gotoxy(25,14); printf("Stack penuh"); } } NYATAKAN BAHWA ISI VARIABLE bil TELAH MASUK KE STACK
38. void push() { if(atas<5) { x[atas] = bil; atas++; gotoxy(25,14); printf("%i telah masuk",bil); tampil(); } else { gotoxy(25,14); printf("Stack penuh"); } } NYATAKAN STACK PENUH JIKA KONDISI ATAS<5 TIDAK TERPENUHI
39. void pop() { if(atas>0) { atas --; bil = x[atas]; gotoxy(25,13); printf("%i telah dihapus",bil); } else { gotoxy(25,13); printf("Stack kosong"); } getch(); } FLOWCHART POP() atas>5 atas -- bil=x[atas] kosong terhapus
40. void pop() { if(atas>0) { atas --; bil = x[atas]; gotoxy(25,13); printf("%i telah dihapus",bil); } else { gotoxy(25,13); printf("Stack kosong"); } getch(); } FUNGSI pop() YANG AKAN MENGELUARKAN BILANGAN DALAM STACK SATU PER SATU
41. void pop() { if(atas>0) { atas --; bil = x[atas]; gotoxy(25,13); printf("%i telah dihapus",bil); } else { gotoxy(25,13); printf("Stack kosong"); } getch(); } DALAM PROSES pop() PERTAMA KALI DIPE- RIKSA APAKAH STACK KOSONG. JIKA atas MASIH LEBIH BESAR DARI 0 (NILAI AWAL atas ) MAKA STACK MASIH ADA ISINYA
42. void pop() { if(atas>0) { atas --; bil = x[atas]; gotoxy(25,13); printf("%i telah dihapus",bil); } else { gotoxy(25,13); printf("Stack kosong"); } getch(); } POINTER atas DIGESER KE KIRI. atas = atas-1
43. void pop() { if(atas>0) { atas --; bil = x[atas]; gotoxy(25,13); printf("%i telah dihapus",bil); } else { gotoxy(25,13); printf("Stack kosong"); } getch(); } ISI VARIABEL x[atas] DISALIN KE VARIABEL bil
44. void pop() { if(atas>0) { atas --; bil = x[atas]; gotoxy(25,13); printf("%i telah dihapus",bil); } else { gotoxy(25,13); printf("Stack kosong"); } getch(); } NYATAKAN BAHWA ISI VARIABLE bil TELAH DIHAPUS DARI STACK
45. void pop() { if(atas>0) { atas --; bil = x[atas]; gotoxy(25,13); printf("%i telah dihapus",bil); } else { gotoxy(25,13); printf("Stack kosong"); } getch(); } NYATAKAN STACK KOSONG JIKA KONDISI atas>0 TIDAK TERPENUHI
46. void tampil() { int i,baris; i = 0;baris=17; gotoxy(25,15); printf("=================="); gotoxy(25,16); printf("Isi stack : "); while(i<atas) { gotoxy(25,baris); printf("x[%i] = %2i", i, x[i]); i++; baris++; } gotoxy(25,baris); printf("================="); gotoxy(25,++baris); printf("Press any key ...."); } FLOWCHART TAMPIL() int i=0; i<atas i++; cetak isi stack
47. void tampil() { int i,baris; i = 0;baris=17; gotoxy(25,15); printf("=================="); gotoxy(25,16); printf("Isi stack : "); while(i<atas) { gotoxy(25,baris); printf("º x = %2i", x[i]); i++; baris++; } gotoxy(25,baris); printf("================="); gotoxy(25,++baris); printf("Press any key ...."); } PERULANGAN UNTUK MENAMPILKAN ISI STACK. PERULANGAN DIMULAI DARI i=0 SELAMA i<atas
48. void reset() { atas = 0; dasar = 0; printf("Stack telah dikosongkan....."); } FUNGSI reset() UNTUK MENGEMBALIKAN STACK KE KEADAAN SEMUA(AWAL) DIMANA atas=0 DAN dasar=0