• Tidak ada hasil yang ditemukan

Laporan Praktikum 4

N/A
N/A
Protected

Academic year: 2021

Membagikan "Laporan Praktikum 4"

Copied!
31
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM IV

STACK

Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data

Dibimbing oleh Bapak Utomo Pujianto

Oleh :

Anidia Wulan Sari

(150533601651)

Dimas Galih Ramadhan

(150533600571)

S1 PTI’15 OFF A

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA

Maret 2016

(2)

MODUL IV

STACK

1.

TUJUAN

1. Memahami terminologi yang terkait dengan struktur data stack.

2. Memahami operasi-operasi yang ada dalam stack.

3. Dapat mengidentifikasi permasalahan-permasalahan pemrograman yang harus

diselesaikan dengan menggunakan stack, sekaligus menyelesaikannya.

2. DASAR TEORI

1. Pengertian Stack

Stack merupakan sebuah kumpulan data yang diletakkan di atas data lainya, seperti

sebuah tumpukan. Dengan demikian, stack merupakan salah satu struktur data yang

menerapkan prinsip LIFO (Last In First Out). Dimana elemen yang terakhir disimpan

dalam stack, menjadi elemen yang pertama diambil. Untuk meletakkan sebuah elemen

pada bagian atas dari stack, maka dilakukan operasi push. Sedangkan untuk

memindahkan sebuah elemen dari tempat atas tersebut dalam sebuah stack, maka

dilakukan operasi pop.

2. Operasi Dasar Pada Stack

Create

Merupakan operator yang berfungsi untuk membuat sebuah stack kosong.

(3)

Merupakan operator yang berfungsi untuk menentukan apakah suatu stack

merupakan stack kosong. Tanda bahwa sebuah stack kosong adalah Top bernilai

kurang dari nol (-1).

IsFull

Merupakan operator yang digunakan untuk memeriksa apakah stack yang

ada sudah penuh. Stack akan penuh jika puncak stack terletak tepat dibawah

jumlah maksimum yang dapat ditampung stack (Top = MAX_STACK-1).

Push

Merupakan operator yang berfungsi untuk menambahkan satu elemen ke

dalam stack dan tidak dapat dilakukan jika stack dalam keadaan penuh.

Pop

Merupakan operator yang berfungsi untuk mengeluarkan satu elemen

teratas dari dalam stack dengan syarat stack tidak dalam kondisi kosong.

(4)

Clear

Fungsi yang digunakan untuk mengosongkan stack dengan cara mengeset

Top dengan -1. Jika Top bernilai kurang dari nol maka stack dianggap kosong.

Retrieve

Fungsi yang digunakan untuk melihat nilai yang berada pada posisi

tumpukan teratas.

3. Pointer Sebagai Penunjuk Stack

Selain menggunakan indeks, untuk menunjuk sebuah Top atau posisi teratas dari

stack, dapat juga digunakan pointer sebagai berikut.

Membuat Stack Dengan Pointer

(5)

Proses Pop

4. Representasi Proses Stack

Stack adalah salah satu dari contoh struktur data yang terdiri dari satu collection,

yang juga menerapkan prinsip LIFO. Bila stack tersebut menggunakan array satu

dimensi, maka stack tersebut dapat diilustrasikan sebagai berikut :

Pada gambar 4.2 diatas diilustrasikan ada sebuah indeks array yang masih kosong

pada awal pembuatan stcak dimana n[10], variabel Top berada pada -1 yang

menunjukkan indeks masih dalam keadaan kosong.

(6)

Pada gambar 4.3 adalah keadaan ketika stack sudah diisi data. Pada kondisi ini data

pertama yang diinputkan adalah S[0]=11, data kedua S[1]=7, data ketiga S[2]=15, data

keempat S[23]=23. Kondisi Top sudah berubah menjadi data yang terakhir diinputkan

(data keempat) sehingga Top[3] X=23.

Variabel Top digunakan sebagai indeks untuk menunjuk nomor elemen array yang

berisi nilai stack yang berada paling kanan atau Top, yang ditunjukan dengan angka 3.

Variabel X bertipe integer digunakan sebagai perantara, dimana data yang akan

disimpan kedalam stack harus berasal dari X. Demikian juga data yang baru diambil

dari dalam stack harus diterima terlebih dahulu oleh variabel X, kemudian baru

diberikan ke variabel lain untuk diolah.

Oleh karena itu, jika ada instruksi PUSH, maka data baru (yang diambil dari isi

variabel X) akan disimpan dalam elemen S[4] sehingga indeks Top harus diarahkan ke

posisi no.4. Artinya, Top maju terlebih dahulu satu langkah ke S[4], kemudian baru

mengisi nilai pada S[4]. Sedangkan jika ada instruksi Pop, maka yang akan diambil

adalah isi dari S[3] dan datanya akan disimpan terlebih dahulu dalam variabel X,

kemudian indeks Top menjadi mundur satu langkah sehingga akan menunjuk S[2].

5. Double Stack

Double Stack atau Stack Ganda adalah dua stack yang berada dalam satu array.

Satu array digunakan untuk dua stack dimana dasar Stack1 berada pada sisi indeks

yang

terkecil dan dasar Stack2 berada pada sisi indeks yang terbesar. Sama halnya dengan

Single Stack, Double Stack juga menerapkan prinsip LIFO (Last in Firt Out).

(7)

Pada gambar 4.4 diatas adalah ilustrasi indeks array pada double stack. Padastack 1

kondisi data pertama yang diinputkan adalah S[0], data kedua S[1], data ketiga S[2]

dan Top=data input terakhir S[2]. Sedangkan pada stack 2 data pertama adalah S[9],

data kedua S[8], data ketiga S[7], data keempat S[6] dan Top=data input terakhir S[6].

6. Operasi Dasar Pada Double Stack

Inisialisasi

Proses awal adalah proses menyiapkan indeks petunjuk stack untuk pertama

kali. Pada tahap ini ditetapkan Top1=-1 (sama seperti single stack) dan

Top2=banyak jumlah data.

Is Empty

Sama dengan single stack, yaitu proses pengecekan stack dalam kondisi kosong

Is Full

(8)

Push (Stack1 dan Stack2)

Proses mengisi data pada stack1 maupun 2

Pop (Stack1 dan Stack2)

Proses mengambil data pada stack1 maupun 2

3. Latihan Praktikum

Latihan Praktikum 1

Pemrograman C++

Nama Program

: Single Stack

(9)

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

:

#include <iostream> #include <stdio.h> #include <conio.h> #include <windows.h> #define maxstack 4 using namespace std;

struct STACK { //Membuat jenis data abstrak 'STACK' int top;

float data[4]; };

float dta;

struct STACK stackbaru; void inisialisasi() { stackbaru.top=-1; } bool isfull() { if(stackbaru.top==maxstack) return true; else return false; } bool isempty() { if(stackbaru.top==1) return true; else return false; }

void push(float dta) {

if(isfull()==true) {

puts("Maaf, stack penuh"); getch(); } else { stackbaru.top++; stackbaru.data[stackbaru.top]=dta; } }

(10)

void pop() {

if(isempty()==true) {

cout<<"Data telah kosong!"; getch();

} else {

cout<<"Data yang terambil adalah data ke: "<<stackbaru.data[stackbaru.top]<<endl; stackbaru.top--; getch(); } } void print() { for(int i=0;i<=stackbaru.top;i++) {cout<<stackbaru.data[i]<<" ";} } void clear() { stackbaru.top=-1; } int main() { inisialisasi(); char menu; char uulang; do{ system("cls"); printf("\t ---\n"); printf("\t | STACK |\n"); printf("\t ---\n"); printf("\n\ --> Menu STACK :\n\n"); puts("1. push stack");

puts("2. pop stack"); puts("3. cetak");

puts("4. bersihkan stack"); puts("5. exit");

cout<<"Menu pilihan anda: "; cin>>menu; if(menu=='2') { pop(); uulang='y'; } else if(menu=='1') {

(11)

cout<<"data yang akan disimpan di stack: "; cin>>dta; push(dta); uulang='y'; } else if(menu=='3') { print(); cout<<"\nUlang?(y/t) "; cin>>uulang; } else if(menu=='4') { clear(); cout<<"\nUlang?(y/t) "; cin>>uulang; } else if(menu=='5') { exit(0); } } while(uulang=='Y' || uulang=='y'); }

Output Program

:

(12)

Algoritma

:

1. Mulai.

2. Membaca file header.

3. Membaca fungsi struct STACK.

4. Membaca tipe data integer top, float data yang berisikan array dengan

elemen berjumlah 4 (float data [4]).

5. Membaca tipe data float dta.

6. Membaca fungsi struct STACK stackbaru.

7. Membaca fungsi inisialisasi.

8. Membaca fungsi bool isfull.

9. Membaca fungsi bool isempty.

10. Membaca fungsi push(float dta)

11. Membaca fungsi pop.

12. Membaca fungsi print ( untuk mencetak data ).

13. Membaca fungsi clear (untuk menghapus/ mengosongkan data).

14. Membaca fungsi utama.

15. Pemanggilan fungsi inisialisasi.

16. Membaca tipe data charr menu dan uulang.

17. Membaca pemanggilan percabangan do-while, yand didalamnya terdapat

pilihan menu dengan menggunakan perulangan if else.

18. Jika 1 maka pemanggilan fungsi pop dan uulang berfungsi.

19. Jika 2 maka fungsi push dan uulang, serta inputan data yang akan disimpan.

20. Jika 3 maka fungsi print dan uulang.

21. Jika 4 maka fungsi clear dan uulang.

22. Jika 5 maka fungsi exit (keluar).

23. Cetak hasil.

24. Selesai.

Diskripsi

:

Pada program ini menggunakan 4 file header. Penggunaan logika Boolean

pada fungsi pop dan push harus benar , jika tidak maka program saat dijalankan

akan error(outputnya tidak akan keluar dengan benar/ sesuai dengan yang

ditargetkan). Penulisan fungsi pop dan push perlu diperhatikan. Untuk menjalankan

setiap menu yang disediakan menggunakan percabangan do- while dengan

perulangan if else. Menu 1 apabila memilih pop maka fungsi pop akan berfungsi

mulai menjalankan logika Boolean yang ada pada deklarasi fungsi pop. Jika benar

maka data telah kosong jika salah maka data yang terambil diambl dengan

pembacaan fungsi stackbaru.data[stackbaru.top]. Menu 2 apabila memilih menu

push, maka fungsi push akan berfungsi, jika logika Boolean benar maka stack,

(13)

penuh

jika tidak maka akan berfungsi

“stackbaru.top++;

stackbaru.data[stackbaru.top]=dta;”.

Latihan Praktikum 2

Pemrograman C++

Nama Program

: Double Stack

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

:

#include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 10 #define true 1 #define false 0 char stack[MAX]; int top1, top2; void init(void);

void push(char data, int nomorstack); char pop(int nomorstack);

void clear(int nomorstack); int full(void);

int empty(int nomorstack); void baca();

int main() {

char data;

int pilih, nomorstack; init();

do{

system("cls");

printf("Contoh program double stack"); printf("\n1. Push");

printf("\n2. Pop"); printf("\n3. Clear"); printf("\n4. Cetak Data"); printf("\n5. Selesai"); printf("\nPilihan anda: "); scanf("%i", &pilih); switch(pilih){ case 1: printf("Push\n"); printf("Masukkan datanya:\n");

(14)

scanf("%s", &data);

printf("Mau dimasukkan ke stack berapa? 1 atau 2? \n"); scanf("%i", &nomorstack); push(data, nomorstack); break; case 2: printf("Pop\n");

printf("Masukkan nomor stack\n"); scanf("%i", &nomorstack);

printf("\nData yang akan dikeluarkan adalah %s", &data); pop(nomorstack); getch(); break; case 3: printf("Clear\n");

printf("Nomor stack yang akan dikosongkan\n"); scanf("%s", &nomorstack); clear(nomorstack); break; case 4: printf("Cetak Data:\n\n"); baca(); break; case 5: printf("Exit"); break; default:

printf("Pilihan yang anda masukkan tidak ada"); break; } } while(pilih!=5); getch(); } void init() { top1=-1; top2=MAX+1; }

(15)

{ if(full()!=true) { switch(nomorstack) { case 1: top1++; stack[top1]=data; break; case 2: top2--; stack[top2]=data; break; default:

printf("\nNomor stack salah"); break; } } else printf("\nStack penuh"); getch(); }

char pop(int nomorstack) { char data; if(empty(nomorstack)!=true) { switch(nomorstack) { case 1: data=stack[top1]; top1--; return data; break; case 2: data=stack[top2]; top2++; return data; break; default:

printf("\nNomor stack salah"); break;

} }

else

printf("\nStack masih kosong"); getch();

(16)

} int full(void) { if(top2-top1==1){ return true; } else return false; }

int empty(int nomorstack) { switch(nomorstack) { case 1: if(top1==0) return true; else return false; break; case 2: if(top2==MAX+1) return true; else return false; break; } }

void clear(int nomorstack) { switch(nomorstack) { case 1: top1=1; break; case 2: top2=MAX; break; default:

printf("Nomor stack salah"); break; } } void baca() { int i;

(17)

for(i=0;i<=top1;i++) {

printf("%c", stack[i]); printf("\n");

}

printf("Cetak isi stack kedua:\n"); for(i=MAX; i>=top2; i--)

{ printf("%c",stack[i]); printf("\n"); } getch(); }

Output Program

:

Algoritma

:

(18)

1. Mulai.

2. Membaca file header.

3. Membaca fungsi utama.

4. Membaca fungsi push

5. Membaca fungsi pop.

6. Membaca fungsi clear

7. Membaca fungsi print ( untuk mencetak data ).

8. Menampilkan Menu program double stack

9. Membaca tipe data charr menu dan uulang.

10. Membaca pemanggilan percabangan do-while, yand didalamnya terdapat

pilihan menu dengan menggunakan perulangan if else.

11. Jika 1 maka fungsi push dan uulang, serta inputan data yang akan disimpan.

12. Jika 2 maka pemanggilan fungsi pop dan uulang berfungsi.

13. Jika 3 maka fungsi clear dan uulang.

14. Jika 4 maka fungsi print dan uulang.

15. Jika 5 maka fungsi exit (keluar).

16. Cetak hasil.

17. Selesai.

Diskripsi

:

Pada program ini menggunakan 3 file header. Penggunaan logika pada

fungsi pop dan push harus benar , jika tidak maka program saat dijalankan akan

error(outputnya tidak akan keluar dengan benar/ sesuai dengan yang ditargetkan).

Penulisan fungsi pop dan push perlu diperhatikan. Untuk menjalankan setiap menu

yang disediakan menggunakan percabangan Menu 2 apabila memilih pop maka

fungsi pop akan berfungsi mulai menjalankan logika yang ada pada deklarasi

fungsi pop. Menu 1 apabila memilih menu push, maka fungsi push akan berfungsi,

jika logika benar .

Latihan Praktikum 3

Pemrograman C++

Nama Program

: Program pembalik kata dengan stack

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

:

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

(19)

#include <string.h> #include <stdlib.h> #define MAX 75 #define true 1 #define false 0 char stack[MAX]; int top; void init(void); int full(void); int empty(void); char pop(void); void clear(void); void push(char info); main()

{

char pilih; char kal[75]; int k,p;

printf("-*- PROGRAM MEMBALIK KATA DENGAN STACK -*-\n\n");

init(); do {

printf(" ======================\n"); printf(" || MENU PILIHAN ||\n"); printf(" ======================\n"); printf(" ||[1] Masukan Kata ||\n"); printf(" ||[2] Balik Kata ||\n"); printf(" ||[3] Selesai ||\n"); printf(" ======================\n"); printf(" Pilihan: "); scanf("%s",&pilih); system("cls"); switch(pilih) { case '1': printf("\nMasukkan data: "); scanf("%s",&kal); p=strlen(kal); for(k=0;k<=p;k++) push(kal[k]);

printf("\nKata yang masuk: "); for(k=0;k<=p;k++) printf("%c", stack[k]); printf("\n"); break; case '2': if(empty()!=true) {

(20)

for(k=top;k>=0;k--)

printf("%c", pop()); printf("\n");

}

else printf("\nStack kosong!!\n"); break;

case '3': break; default:

printf("\nPilihan anda salah!!\n"); } printf("\n"); } while(pilih!='3'); } void init(void) { top=0; }

void push(char info) { if(full()!=true) { top++; stack[top]=info; } else printf("\nStack overlow...\n"); } char pop(void) { char info; if(empty()!=true) { info=stack[top]; top--; return(info); } else printf("\nStack underflow...\n"); } int full(void) { if(top==MAX) return(true); else return(false);

(21)

} int empty(void) { if(top==0) return(true); else return(false); }

Output Program

:

Algoritma

:

1. Mulai.

2. Membaca file header.

3. Membaca tipe data char stack[max] .

4. Membaca fungsi utama

5. Mencetak Menu dari program membalik kata denagn stack

6. Membaca pemanggilan percabangan

7. Jika 1 maka masuk pada case 1 masukkan kata

8. Jika 2 maka masuk pada case 2 balik kata

9. Jika 3 maka exit (keluar).

10. Cetak hasil.

11. Selesai.

Diskripsi

:

Program diatas merupaka program yang berfungsi membalikkan kalimat

dengan memanfaatkan fungsi- fungsi dalam stack. Penggunaan fungsi

operasi-operasi dasar dari stack , kemudia penggunaan tipe data char stack[MAX] yang

(22)

berfungsi menampung kalimat yang akan dibalik sebanyak 75 elemen yang

tersedia. Kemudian Penggunaan fungsi perulangan for yang digunakan untuk

membalikkan kata , yaitu :

for(k=0;k<=p;k++)

printf("%c", stack[k]);

4. Tugas Rumah

Tugas Rumah

Pemrograman C++

Nama Program

: Program Penyimpanan Data Mahasiswa

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

:

#include <iostream> #include <windows.h> #include <conio.h> using namespace std;

struct mahasiswa{char nim[50]; char nama[50];int data_nilai;}; void tmbh_mhs(); void push(mahasiswa); void init(); bool isFull(); bool isEmpty(); void sorting(int); void baca_mhs(); mahasiswa pop(); void baca_sorting();

(23)

int flag = -1; const int MAX = 10; mahasiswa db_mhs[MAX]; int main()

{

system("cls"); char inputan;

cout << "\t+++++++++++++ Program stack mahasiswa ++++++++ +++++\n";

cout << endl << endl;

cout << "\tJumlah stack : " << flag+1 << " Batas Maksimum : " << MAX;

cout << endl << endl;

cout << "\t+--- MENU UTAMA ---+\n";

cout << "\t| NO | PILIHAN |\n";

cout << "\t+----+---+\n";

cout << "\t| 1 | Tambahkan data mahasiswa (Push Stack) |\n";

cout << "\t| 2 | Tampilkan data mahasiswa (Pop stack) |\n";

cout << "\t| 3 | Tampilkan data dan sorting (Pop sorting) |\n";

cout << "\t+----+---+\n";

cout << "\tPilih menu : ";cin >> inputan; switch(inputan) { case '1' : tmbh_mhs(); break; case '2' : baca_mhs(); break; case '3' : baca_sorting(); break; }

(24)

} void push(mahasiswa mhs) { flag++; db_mhs[flag] = mhs; cout << db_mhs[flag].nim; } void tmbh_mhs() { int ipt; mahasiswa mhs; system("cls");

cout << "\t+++++++++++++Tambah Mahasiswa Menu (Push Menu) +++++++++++++\n";

cout << endl << endl;

cout << "\tMasukkan jumlah data : ";cin >> ipt;cout<<endl;

for(int i = 0;i < ipt;i++) { if(!isFull()) {

cout << "\tMahasiswa ke : " << i+1 << endl; cout << "\tMasukkan NIM : ";cin >> mhs.nim; cout << "\tMasukkan Nama : ";cin >> mhs.nama; cout << "\tMasukkan Nilai : ";cin >> mhs.data_nilai;

push(mhs);

cout << "\tData telah di push " << endl << endl; }

else {

cout << "\tData penuh."<<endl; break; } } system("pause"); system("cls"); main(); } bool isEmpty() {

if(flag == -1) return true; else return false;

}

bool isFull() {

if(flag == MAX-1) return true; else return false;

(25)

} mahasiswa pop() { return db_mhs[flag--]; } void baca_mhs() { int ipt; mahasiswa mhs; system("cls");

cout << "\t+++++++++++++Baca Mahasiswa Menu (Pop menu)+++ ++++++++++\n";

cout << endl << endl; if(isEmpty()) {

cout << "Data kosong\n"; system("pause");

main(); }

cout << "\tMasukkan jumlah data yang dikeluarkan : ";cin >> ipt;cout<<endl;

if(ipt <= flag+1) {

cout << "\t+---+---+---+\n";

cout << "\t| Nim Mahasiswa | Nama Mahasiswa | Nilai Mahasiswa |\n";

cout << "\t+---+---+---+\n";

for(int i = 0;i < ipt;i++) { if(!isEmpty()) {

mhs = pop();

cout << "\t " << mhs.nim << " \t\t " << mhs.nama << " \t\t " << mhs.data_nilai << endl << endl;

cout << "\t Data telah di pop " << endl << endl;

cout << "\t---\n";

} else {

cout << "\tData kosong."<<endl; break;

(26)

} } else {

cout << "Data tidak sebanyak itu\n"; } system("pause"); main(); } void sorting(int jml) { int j; int temp; char temp_i[2][50];

for(int i=0; i<jml; i++) {

temp = db_mhs[i].data_nilai; strcpy(temp_i[0],db_mhs[i].nim); strcpy(temp_i[1],db_mhs[i].nama); j = i-1;

while (db_mhs[j].data_nilai>temp && j>=0) {

db_mhs[j+1].data_nilai = db_mhs[j].data_nilai; strcpy(db_mhs[j+1].nama,db_mhs[j].nama); strcpy(db_mhs[j+1].nim,db_mhs[j].nim); j--; } db_mhs[j+1].data_nilai = temp; strcpy(db_mhs[j+1].nim,temp_i[0]); strcpy(db_mhs[j+1].nama,temp_i[1]); } } void baca_sorting() { int ipt; mahasiswa mhs; system("cls");

cout << "\t+++++++++++++Baca Mahasiswa Sorting Menu (Pop menu)+++++++++++++\n";

cout << endl << endl; if(isEmpty()) {

cout << "Data kosong\n"; system("pause");

main(); }

(27)

cout << "\tMasukkan jumlah data yang dikeluarkan : ";cin >> ipt;cout<<endl;

if(ipt <= flag+1) {

cout << "Sebelum sorting : \n\n";

cout << "\t+---+---+---+\n";

cout << "\t| Nim Mahasiswa | Nama Mahasiswa | Nilai Mahasiswa |\n";

cout << "\t+---+---+---+\n";

for(int i = ipt;i >= 0;i--) { if(!isEmpty()) {

mhs = db_mhs[i];

cout << "\t " << mhs.nim << " \t\t " << mhs.nama << " \t\t " << mhs.data_nilai << endl << endl;

cout << "\t Data tidak di pop " << endl << endl;

cout << "\t---\n";

} else {

cout << "\tData kosong."<<endl; break;

} }

sorting(ipt);

cout << "Sesudah Sorting : \n\n";

cout << "\t+---+---+---+\n";

cout << "\t| Nim Mahasiswa | Nama Mahasiswa | Nilai Mahasiswa |\n";

cout << "\t+---+---+---+\n";

for(int i = 0;i < ipt;i++) { if(!isEmpty()) {

mhs = pop();

cout << "\t " << mhs.nim << " \t\t " << mhs.nama << " \t\t " << mhs.data_nilai << endl << endl;

(28)

cout << "\t Data telah di pop " << endl << endl; cout << "\t---\n"; } else {

cout << "\tData kosong."<<endl; break;

} } } else {

cout << "Data tidak sebanyak itu\n"; }

system("pause"); main();

}

(29)

Algoritma Program

:

1. Mulai program

2. Menampilkan Menu Utama

3. Apabila memasukkan inputan 1 maka akan masuk pada Menu Push Stack

4. Pada menu ini diminta inputan jumlah data

5. Memasukkan NIM

6. Memasukkan Nama

7. Memasukkan Nilai

8. Tekan keyboard untuk kembali ke Menu Utama

9. Apabila memasukkan inputan 2 maka akan masuk pada Menu Pop Stack

10. Pada menu ini diminta memasukkan inputan Jumlah data yang dikeluarkan

11. Tekan keyboard untuk kembali ke Menu Utama

12. Apabila memasukkan inputan 3 maka akan masuk pada Menu delete barang

13. Pada menu ini ini diminta memasukkan inputan Jumlah data yang dikeluarkan

14. Menampilkan data sebelum sorting

15. Menampilkan data setelah sorting

16. Tekan keyboard untuk kembali ke manu

17. Selesai

Penjelasan Program :

Program ini kita menggunakan header iostream, windows.h, dan conio.h. untuk

header iostream digunakan untuk menampilkan fungsi cout dan cin, windows digunakan

(30)

untuk memberikan warna, sedangkan conio.h digunakan untuk menampilkan fungsi getch

dan clscr.

Dalam program ini kita membuat sebuah program stack mahasiswa, dengan jumlah

stack 0 dan batas maksimumnya 10. Pada program ini akan disajikan pilihan menu yaitu

(1) Tambahkan data mahasiswa (Push Stack), pilihan (2) Tampilkan data mahasiswa (Pop

Stack), pilihan (3) Tampilkan data dan sorting (Pop Sorting). Pada menu pilihan (1)

diminta inputan jumlah data dengan rincian inputan yang dimasukkan adalah NIM, Nama,

dan Nilai. Untuk pilihan (2) diminta inputan jumlah data yang dikeluarkan yaitu data telah

di pop. Untuk pilihan (3) diminta inputan jumlah data yang dikeluarkan, setelah itu

program akan menampilkan data sebelum di sorting dan data sesudah di sorting.

(31)

KESIMPULAN

1. Stack merupakan sebuah kumpulan data yang diletakkan di atas data lainya, seperti

sebuah tumpukan.

2. Untuk meletakkan sebuah elemen pada bagian atas dari stack, maka dilakukan

operasi push. Sedangkan untuk memindahkan sebuah elemen dari tempat atas

tersebut dalam sebuah stack, maka dilakukan operasi pop.

DAFTAR RUJUKAN

1. Tim Asisten Dosen. 2014. Modul II, Sorting. Malang: Unversitas Negeri

Malang.

2. Tim Asisten Dosen. 2014. Modul III, Searching. Malang: Unversitas Negeri

Malang.

3. Tim Asisten Dosen. 2014. Modul IV, Stack. Malang: Unversitas Negeri

Malang.

4. Kadir, Abdul. 2012. Buku Pintar C++ Untuk Pemula. Yogyakarta:

MediaKom.

5. Shalahuddin , M. dan Rosa A. S.2009 . Belajar Bahasa Pemrograman

Referensi

Dokumen terkait

Adalah angkutan dari satu kota ke kota lain yang melalui antar daerah kabupaten atau kota dalam suatu daerah provinsi dengan menggunakan mobil bus umum yang

Variabel kompensasi non-finansial berpengaruh negatif dan tidak signifikan terhadap produktivitas karyawan.Hal ini terjadi dikarenakan para karyawan merasa imbalan

Kajian Lingkungan Hidup Strategis yang selanjutnya disingkat KLHS adalah proses mengintegrasikan pembangunan berkelanjutan yang berwawasan lingkungan hidup dalam

1996: xv). Dalam kaitan inilah organisasi perlu memperhatikan kondisi-kondisi lingkungan yang ada dan belajar daripadanya agar dapat menyesuaikan diri dan

Maksudnya, dan salah satu tanda keagungan Allah yang terang untuk mereka berfikir ialah malam; Kami hilangkan siang daripadanya, maka dengan serta-merta mereka berada

Jika hasil dari kondisi sama dengan nilai konstanta tertentu, maka pernyataan pada konstanta tersebut akan dijalankan sampai ditemukan pernyataan break9. Jika

Jika hasil dari kondisi sama dengan nilai konstanta tertentu, maka pernyataan pada konstanta tersebut akan dijalankan sampai ditemukan pernyataan break.. Jika

ƒ Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai logika = 0), maka pernyataan yang mengikutinya tidak akan diproses.. Mengenai kodisi harus ditulis