stack linier 2

50
STACK LINIER STACK LINIER Contoh Program dan Penjelasannya Contoh Program dan Penjelasannya Oleh Achmad Solichin Oleh Achmad Solichin Assisten Laboratorium Komputer FTI Assisten Laboratorium Komputer FTI Universitas Budi Luhur Universitas Budi Luhur 08 April 2004 08 April 2004

Post on 13-Sep-2014

1.264 views

Category:

Education


2 download

DESCRIPTION

Presentasi Algoritma dan Pemrograman dengan Bahasa C (Contoh program Stack Linier). Dibuat oleh Achmad SOlichin (http://achmatim.net)

TRANSCRIPT

Page 1: Stack Linier 2

STACK LINIERSTACK LINIERContoh Program dan PenjelasannyaContoh Program dan Penjelasannya

Oleh Achmad SolichinOleh Achmad SolichinAssisten Laboratorium Komputer FTI Assisten Laboratorium Komputer FTI

Universitas Budi LuhurUniversitas Budi Luhur08 April 200408 April 2004

Page 2: Stack Linier 2

Niscaya Allah akan meninggikan derajat Niscaya Allah akan meninggikan derajat orang-orang yang beriman di antara orang-orang yang beriman di antara

kamu dan orang-orang kamu dan orang-orang

yang diberi ilmu pengetahuan yang diberi ilmu pengetahuan

beberapa derajat beberapa derajat

Dan Allah Maha Mengetahui apa yang Dan Allah Maha Mengetahui apa yang kamu kerjakan.kamu kerjakan.

(QS Al-Mujaadalah : 11) (QS Al-Mujaadalah : 11)

Page 3: Stack Linier 2

#include "stdio.h"#include "stdio.h"

#include "conio.h"#include "conio.h"

#include "stdlib.h"#include "stdlib.h"

#include "ctype.h"#include "ctype.h"

void push();void push();

void pop();void pop();

void tampil();void tampil();

void reset();void reset();

int x[5],dasar=0;int x[5],dasar=0;

int atas=0,pil,bil;int atas=0,pil,bil;

HEADER FUNGSI

Page 4: Stack Linier 2

#include "stdio.h"#include "stdio.h"

#include "conio.h"#include "conio.h"

#include "stdlib.h"#include "stdlib.h"

#include "ctype.h"#include "ctype.h"

void push();void push();

void pop();void pop();

void tampil();void tampil();

void reset();void reset();

int x[5],dasar=0;int x[5],dasar=0;

int atas=0,pil,bil;int atas=0,pil,bil;

DEKLARASI FUNGSI push();

Page 5: Stack Linier 2

DEKLARASI FUNGSI pop();

#include "stdio.h"#include "stdio.h"

#include "conio.h"#include "conio.h"

#include "stdlib.h"#include "stdlib.h"

#include "ctype.h"#include "ctype.h"

void push();void push();

void pop();void pop();

void tampil();void tampil();

void reset();void reset();

int x[5],dasar=0;int x[5],dasar=0;

int atas=0,pil,bil;int atas=0,pil,bil;

Page 6: Stack Linier 2

DEKLARASI FUNGSI tampil();

#include "stdio.h"#include "stdio.h"

#include "conio.h"#include "conio.h"

#include "stdlib.h"#include "stdlib.h"

#include "ctype.h"#include "ctype.h"

void push();void push();

void pop();void pop();

void tampil();void tampil();

void reset();void reset();

int x[5],dasar=0;int x[5],dasar=0;

int atas=0,pil,bil;int atas=0,pil,bil;

Page 7: Stack Linier 2

DEKLARASI FUNGSI reset();

#include "stdio.h"#include "stdio.h"

#include "conio.h"#include "conio.h"

#include "stdlib.h"#include "stdlib.h"

#include "ctype.h"#include "ctype.h"

void push();void push();

void pop();void pop();

void tampil();void tampil();

void reset();void reset();

int x[5],dasar=0;int x[5],dasar=0;

int atas=0,pil,bil;int atas=0,pil,bil;

Page 8: Stack Linier 2

DEKLARASI stack x[5], variabel dasar, atas, pil

dan bil

#include "stdio.h"#include "stdio.h"

#include "conio.h"#include "conio.h"

#include "stdlib.h"#include "stdlib.h"

#include "ctype.h"#include "ctype.h"

void push();void push();

void pop();void pop();

void tampil();void tampil();

void reset();void reset();

int x[5],dasar=0;int x[5],dasar=0;

int atas=0,pil,bil;int atas=0,pil,bil;

Page 9: Stack Linier 2

void main()void main()

{{

menu :menu :

clrscr();clrscr();

gotoxy(25,3); gotoxy(25,3); printf("====================");printf("====================");

gotoxy(25,4); gotoxy(25,4);

printf(“ Menu pilihan : printf(“ Menu pilihan : "); ");

gotoxy(25,5); gotoxy(25,5); printf("====================");printf("====================");

gotoxy(25,6); printf(" 1. Push ");gotoxy(25,6); printf(" 1. Push ");

gotoxy(25,7); printf(" 2. Pop ");gotoxy(25,7); printf(" 2. Pop ");

Page 10: Stack Linier 2

void main()void main()

{{

menu :menu :

clrscr();clrscr();

gotoxy(25,3); gotoxy(25,3); printf("====================");printf("====================");

gotoxy(25,4); gotoxy(25,4);

printf(“ Menu pilihan : printf(“ Menu pilihan : "); ");

gotoxy(25,5); gotoxy(25,5); printf("====================");printf("====================");

gotoxy(25,6); printf(" 1. Push ");gotoxy(25,6); printf(" 1. Push ");

gotoxy(25,7); printf(" 2. Pop ");gotoxy(25,7); printf(" 2. Pop ");

FUNGSI main();

Page 11: Stack Linier 2

DEKLARASI LABEL

void main()void main()

{{

menu :menu :

clrscr();clrscr();

gotoxy(25,3); gotoxy(25,3); printf("====================");printf("====================");

gotoxy(25,4); gotoxy(25,4);

printf(“ Menu pilihan : printf(“ Menu pilihan : "); ");

gotoxy(25,5); gotoxy(25,5); printf("====================");printf("====================");

gotoxy(25,6); printf(" 1. Push ");gotoxy(25,6); printf(" 1. Push ");

gotoxy(25,7); printf(" 2. Pop ");gotoxy(25,7); printf(" 2. Pop ");

Page 12: Stack Linier 2

MEMBERSIHKAN LAYAR

void main()void main()

{{

menu :menu :

clrscr();clrscr();

gotoxy(25,3); gotoxy(25,3); printf("====================");printf("====================");

gotoxy(25,4); gotoxy(25,4);

printf(“ Menu pilihan : printf(“ Menu pilihan : "); ");

gotoxy(25,5); gotoxy(25,5); printf("====================");printf("====================");

gotoxy(25,6); printf(" 1. Push ");gotoxy(25,6); printf(" 1. Push ");

gotoxy(25,7); printf(" 2. Pop ");gotoxy(25,7); printf(" 2. Pop ");

Page 13: Stack Linier 2

MEMINDAHKAN CURSOR KE BARIS 25 , KOLOM 3

void main()void main()

{{

menu :menu :

clrscr();clrscr();

gotoxy(25,3); gotoxy(25,3); printf("====================");printf("====================");

gotoxy(25,4); gotoxy(25,4);

printf(“ Menu pilihan : printf(“ Menu pilihan : "); ");

gotoxy(25,5); gotoxy(25,5); printf("====================");printf("====================");

gotoxy(25,6); printf(" 1. Push ");gotoxy(25,6); printf(" 1. Push ");

gotoxy(25,7); printf(" 2. Pop ");gotoxy(25,7); printf(" 2. Pop ");

3

25

Page 14: Stack Linier 2

gotoxy(25,8); gotoxy(25,8);

printf("3. Preview ");printf("3. Preview ");

gotoxy(25,9); gotoxy(25,9);

printf("4. Clear ");printf("4. Clear ");

gotoxy(25,10); gotoxy(25,10);

printf("5. Exit ");printf("5. Exit ");

gotoxy(25,11); gotoxy(25,11); printf("===========printf("===============");====");

gotoxy(25,12); gotoxy(25,12);

printf("Masukkan pilihan : printf("Masukkan pilihan : "); scanf("%i", &pil);"); scanf("%i", &pil);

Page 15: Stack Linier 2

gotoxy(25,8); gotoxy(25,8);

printf("3. Preview ");printf("3. Preview ");

gotoxy(25,9); gotoxy(25,9);

printf("4. Clear ");printf("4. Clear ");

gotoxy(25,10); gotoxy(25,10);

printf("5. Exit ");printf("5. Exit ");

gotoxy(25,11); gotoxy(25,11); printf("===========printf("===============");====");

gotoxy(25,12); gotoxy(25,12);

printf("Masukkan pilihan : printf("Masukkan pilihan : "); scanf("%i", &pil);"); scanf("%i", &pil);

SAMPAI DI SINI PROGRAM AKAN MENAMPILKAN MENU PILIHAN BERUPA :1. Push2. Pop3. Preview4. Clear5. Exit

Page 16: Stack Linier 2

gotoxy(25,8); gotoxy(25,8);

printf("3. Preview ");printf("3. Preview ");

gotoxy(25,9); gotoxy(25,9);

printf("4. Clear ");printf("4. Clear ");

gotoxy(25,10); gotoxy(25,10);

printf("5. Exit ");printf("5. Exit ");

gotoxy(25,11); gotoxy(25,11); printf("===========printf("===============");====");

gotoxy(25,12); gotoxy(25,12);

printf("Masukkan pilihan : printf("Masukkan pilihan : "); scanf("%i", &pil);"); scanf("%i", &pil);

Masukkan Pilihan

Page 17: Stack Linier 2

gotoxy(25,8); gotoxy(25,8);

printf("3. Preview ");printf("3. Preview ");

gotoxy(25,9); gotoxy(25,9);

printf("4. Clear ");printf("4. Clear ");

gotoxy(25,10); gotoxy(25,10);

printf("5. Exit ");printf("5. Exit ");

gotoxy(25,11); gotoxy(25,11); printf("===========printf("===============");====");

gotoxy(25,12); gotoxy(25,12);

printf("Masukkan pilihan : printf("Masukkan pilihan : "); scanf("%i", &pil);"); scanf("%i", &pil);

MEMINTA INPUTAN BILANGAN INTEGER DAN DIMASUKKAN DALAM VARIABEL pil

Page 18: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

Page 19: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

STRUKTUR switch … case AKAN MEMERIKSA ISI VARIABEL pil YANG AKAN MENENTUKAN PERINTAH MANA YANGDILAKSANAKAN

Bentuk umum :switch(pilihan) { case 1 : <statemen>;

break; case 2 : <statemen>;

break; …… default : <statemen>;}

Page 20: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

JIKA ISI VARIABEL pil=1MAKA STATEMENTDALAM BLOK INI AKANDILAKSANAKAN

Page 21: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

MASUKKAN BILANGANYANG AKAN MASUKKE STACK

Page 22: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

MEMINTA INPUTAN BILANGAN INTEGER DAN DIMASUKKAN DALAM VARIABEL bil

Page 23: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

PANGGIL FUNGSI push() YANG MENGINPUTISI VARIABEL BIL KEDALAM STACK X

Page 24: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

break; AKAN KELUAR DARI switch SEHINGGAPERINTAH YANG ADADI BAWAHNYA TIDAKAKAN DILAKSANAKAN

Page 25: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

JIKA NILAI VARIABEL pil=2 MAKA PANGGIL FUNGSI pop() UNTUK MENGELUARKANISI STACK

Page 26: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

JIKA NILAI VARIABEL pil=3 MAKA PANGGIL FUNGSI tampil() UNTUK MENAMPILKANISI STACK

Page 27: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

JIKA NILAI VARIABEL pil=4 MAKA PANGGIL FUNGSI reset() UNTUK MENGEMBALIKAN ISIVARIABEL atas dan dasar

Page 28: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

JIKA NILAI VARIABEL pil=5 MAKA PANGGIL FUNGSI exit(0) DIMANAPROGRAM AKAN SELESAI

Page 29: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

MENUJU KE LABEL menu

Page 30: Stack Linier 2

switch(pil)switch(pil) { case 1 : gotoxy(25,13); { case 1 : gotoxy(25,13);

printf("Masukkan bil = "); printf("Masukkan bil = "); scanf("%i", &bil);scanf("%i", &bil); push();push(); getch();getch(); break;break;

case 2 : pop(); break;case 2 : pop(); break; case 3 : tampil(); getch(); break;case 3 : tampil(); getch(); break; case 4 : reset(); getch(); break;case 4 : reset(); getch(); break; case 5 : exit(0); break;case 5 : exit(0); break; }} goto menu;goto menu;}}

AKHIR FUNGSI main()

Page 31: Stack Linier 2

void push()void push()

{ if(atas<5){ if(atas<5)

{ x[atas] = bil;{ x[atas] = bil;

atas++;atas++;

gotoxy(25,14); gotoxy(25,14);

printf("%i telah masuk",bil);printf("%i telah masuk",bil);

tampil();tampil();

} else {} else {

gotoxy(25,14);gotoxy(25,14);

printf("Stack penuh"); printf("Stack penuh");

}}

}}

atas<5

x[atas]=bil

atas++

penuh

berhasil

FLOWCHART PUSH()

Page 32: Stack Linier 2

void push()void push()

{ if(atas<5){ if(atas<5)

{ x[atas] = bil;{ x[atas] = bil;

atas++;atas++;

gotoxy(25,14); gotoxy(25,14);

printf("%i telah masuk",bil);printf("%i telah masuk",bil);

tampil();tampil();

} else {} else {

gotoxy(25,14);gotoxy(25,14);

printf("Stack penuh"); printf("Stack penuh");

}}

}}

FUNGSI push() YANGAKAN MENAMBAHKANBILANGAN YANG DIINPUT KE DALAMSTACK

Page 33: Stack Linier 2

void push()void push()

{ if(atas<5){ if(atas<5)

{ x[atas] = bil;{ x[atas] = bil;

atas++;atas++;

gotoxy(25,14); gotoxy(25,14);

printf("%i telah masuk",bil);printf("%i telah masuk",bil);

tampil();tampil();

} else {} else {

gotoxy(25,14);gotoxy(25,14);

printf("Stack penuh"); printf("Stack penuh");

}}

}}

DALAM PROSES push()PERTAMA KALI DIPE-RIKSA APAKAH STACK SUDAH PENUH. JIKA atas MASIH KURANG DARI 5 (JUMLAH MAXSTACK) MAKA STACK MASIH BISA DIISI

Page 34: Stack Linier 2

void push()void push()

{ if(atas<5){ if(atas<5)

{ x[atas] = bil;{ x[atas] = bil;

atas++;atas++;

gotoxy(25,14); gotoxy(25,14);

printf("%i telah masuk",bil);printf("%i telah masuk",bil);

tampil();tampil();

} else {} else {

gotoxy(25,14);gotoxy(25,14);

printf("Stack penuh"); printf("Stack penuh");

}}

}}

ISI VARIABEL bilDISALINKE STACK x INDEXYANG KE-atas

Page 35: Stack Linier 2

void push()void push()

{ if(atas<5){ if(atas<5)

{ x[atas] = bil;{ x[atas] = bil;

atas++;atas++;

gotoxy(25,14); gotoxy(25,14);

printf("%i telah masuk",bil);printf("%i telah masuk",bil);

tampil();tampil();

} else {} else {

gotoxy(25,14);gotoxy(25,14);

printf("Stack penuh"); printf("Stack penuh");

}}

}}

POINTER atas DIGESER KE KANAN. atas = atas+1

Page 36: Stack Linier 2

void push()void push()

{ if(atas<5){ if(atas<5)

{ x[atas] = bil;{ x[atas] = bil;

atas++;atas++;

gotoxy(25,14); gotoxy(25,14);

printf("%i telah masuk",bil);printf("%i telah masuk",bil);

tampil();tampil();

} else {} else {

gotoxy(25,14);gotoxy(25,14);

printf("Stack penuh"); printf("Stack penuh");

}}

}}

NYATAKAN BAHWAISI VARIABLE bilTELAH MASUK KESTACK

Page 37: Stack Linier 2

void push()void push()

{ if(atas<5){ if(atas<5)

{ x[atas] = bil;{ x[atas] = bil;

atas++;atas++;

gotoxy(25,14); gotoxy(25,14);

printf("%i telah masuk",bil);printf("%i telah masuk",bil);

tampil();tampil();

} else {} else {

gotoxy(25,14);gotoxy(25,14);

printf("Stack penuh"); printf("Stack penuh");

}}

}}

PANGGIL FUNGSI tampil() UNTUK ME-NAMPILKAN ISI STACK

Page 38: Stack Linier 2

void push()void push()

{ if(atas<5){ if(atas<5)

{ x[atas] = bil;{ x[atas] = bil;

atas++;atas++;

gotoxy(25,14); gotoxy(25,14);

printf("%i telah masuk",bil);printf("%i telah masuk",bil);

tampil();tampil();

} else {} else {

gotoxy(25,14);gotoxy(25,14);

printf("Stack penuh"); printf("Stack penuh");

}}

}}

NYATAKAN STACK PENUH JIKA KONDISI ATAS<5 TIDAK TERPENUHI

Page 39: Stack Linier 2

void pop()void pop()

{ if(atas>0){ if(atas>0)

{ atas --;{ atas --;

bil = x[atas];bil = x[atas];

gotoxy(25,13); gotoxy(25,13);

printf("%i telah dihapus",bil);printf("%i telah dihapus",bil);

} else {} else {

gotoxy(25,13); gotoxy(25,13);

printf("Stack kosong");printf("Stack kosong");

}}

getch();getch();

}}

atas>5

atas --

bil=x[atas]

kosong

terhapus

FLOWCHART POP()

Page 40: Stack Linier 2

void pop()void pop()

{ if(atas>0){ if(atas>0)

{ atas --;{ atas --;

bil = x[atas];bil = x[atas];

gotoxy(25,13); gotoxy(25,13);

printf("%i telah dihapus",bil);printf("%i telah dihapus",bil);

} else {} else {

gotoxy(25,13); gotoxy(25,13);

printf("Stack kosong");printf("Stack kosong");

}}

getch();getch();

}}

FUNGSI pop() YANGAKAN MENGELUARKANBILANGAN DALAMSTACK SATU PER SATU

Page 41: Stack Linier 2

void pop()void pop()

{ if(atas>0){ if(atas>0)

{ atas --;{ atas --;

bil = x[atas];bil = x[atas];

gotoxy(25,13); gotoxy(25,13);

printf("%i telah dihapus",bil);printf("%i telah dihapus",bil);

} else {} else {

gotoxy(25,13); gotoxy(25,13);

printf("Stack kosong");printf("Stack kosong");

}}

getch();getch();

}}

DALAM PROSES pop()PERTAMA KALI DIPE-RIKSA APAKAH STACK KOSONG. JIKA atas MASIH LEBIH BESARDARI 0 (NILAI AWAL atas) MAKA STACK MASIH ADA ISINYA

Page 42: Stack Linier 2

void pop()void pop()

{ if(atas>0){ if(atas>0)

{ atas --;{ atas --;

bil = x[atas];bil = x[atas];

gotoxy(25,13); gotoxy(25,13);

printf("%i telah dihapus",bil);printf("%i telah dihapus",bil);

} else {} else {

gotoxy(25,13); gotoxy(25,13);

printf("Stack kosong");printf("Stack kosong");

}}

getch();getch();

}}

POINTER atas DIGESER KE KIRI. atas = atas-1

Page 43: Stack Linier 2

void pop()void pop()

{ if(atas>0){ if(atas>0)

{ atas --;{ atas --;

bil = x[atas];bil = x[atas];

gotoxy(25,13); gotoxy(25,13);

printf("%i telah dihapus",bil);printf("%i telah dihapus",bil);

} else {} else {

gotoxy(25,13); gotoxy(25,13);

printf("Stack kosong");printf("Stack kosong");

}}

getch();getch();

}}

ISI VARIABEL x[atas]DISALINKE VARIABEL bil

Page 44: Stack Linier 2

void pop()void pop()

{ if(atas>0){ if(atas>0)

{ atas --;{ atas --;

bil = x[atas];bil = x[atas];

gotoxy(25,13); gotoxy(25,13);

printf("%i telah dihapus",bil);printf("%i telah dihapus",bil);

} else {} else {

gotoxy(25,13); gotoxy(25,13);

printf("Stack kosong");printf("Stack kosong");

}}

getch();getch();

}}

NYATAKAN BAHWAISI VARIABLE bilTELAH DIHAPUS DARISTACK

Page 45: Stack Linier 2

void pop()void pop()

{ if(atas>0){ if(atas>0)

{ atas --;{ atas --;

bil = x[atas];bil = x[atas];

gotoxy(25,13); gotoxy(25,13);

printf("%i telah dihapus",bil);printf("%i telah dihapus",bil);

} else {} else {

gotoxy(25,13); gotoxy(25,13);

printf("Stack kosong");printf("Stack kosong");

}}

getch();getch();

}}

NYATAKAN STACK KOSONG JIKA KONDISI atas>0 TIDAK TERPENUHI

Page 46: Stack Linier 2

void tampil()void tampil()

{ int i,baris;{ int i,baris;

i = 0;baris=17;i = 0;baris=17;

gotoxy(25,15); gotoxy(25,15); printf("==================printf("==================");");

gotoxy(25,16); gotoxy(25,16);

printf("Isi stack : ");printf("Isi stack : ");

while(i<atas)while(i<atas)

{ gotoxy(25,baris);{ gotoxy(25,baris);

printf("x[%i] = %2i", i, x[i]);printf("x[%i] = %2i", i, x[i]);

i++; baris++;i++; baris++;

}}

gotoxy(25,baris); gotoxy(25,baris); printf("=================\printf("=================\n");n");

gotoxy(25,++baris); gotoxy(25,++baris);

printf("Press any key ....");printf("Press any key ....");

}}

int i=0;

i<atas

i++;

cetakisi

stack

FLOWCHART TAMPIL()

Page 47: Stack Linier 2

void tampil()void tampil()

{ int i,baris;{ int i,baris;

i = 0;baris=17;i = 0;baris=17;

gotoxy(25,15); gotoxy(25,15); printf("==================printf("==================");");

gotoxy(25,16); gotoxy(25,16);

printf("Isi stack : ");printf("Isi stack : ");

while(i<atas)while(i<atas)

{ gotoxy(25,baris);{ gotoxy(25,baris);

printf("º x = %2i", x[i]);printf("º x = %2i", x[i]);

i++; baris++;i++; baris++;

}}

gotoxy(25,baris); gotoxy(25,baris); printf("=================\printf("=================\n");n");

gotoxy(25,++baris); gotoxy(25,++baris);

printf("Press any key ....");printf("Press any key ....");

}}

PERULANGAN UNTUKMENAMPILKAN ISISTACK. PERULANGANDIMULAI DARI i=0SELAMA i<atas

Page 48: Stack Linier 2

void reset()void reset()

{{

atas = 0;atas = 0;

dasar = 0;dasar = 0;

printf("Stack telah printf("Stack telah dikosongkan.....");dikosongkan.....");

}}

FUNGSI reset() UNTUKMENGEMBALIKAN STACK KEKEADAAN SEMUA(AWAL)DIMANA atas=0 DAN dasar=0

Page 49: Stack Linier 2

SELESAISELESAI

Page 50: Stack Linier 2

Alhamdulillahi Robbil ‘AlamiinAlhamdulillahi Robbil ‘Alamiin