Anda di halaman 1dari 4

PRAKTIKUM KE 4

stack

Gumelar danang a w
209533421965
PTI 09 Offering c

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI S1 PEND. TEKNIK INFORMATIKA
Februari 2010
Tujuan :
1. dapat menjelaskan mengenai algoritma stack
2. dapat membuat dan mendeklarasikan struktur algoritma stack
3. dapat menerapkan dan mengimplementasikan stack pada program

Troublesoting
#include <iostream.h>
#include <stdio.h>
#define maxstack 5
int top;
struct STACK { //Membuat jenis data abstrak 'STACK'
int top;
float dta[4];
};
float dta;
struct STACK stackbaru;

bool isfull() { //Menanyakan : Penuhkah?


if (stackbaru.top ==maxstack) return true;
else return false;
}
bool isempty() { //Menanyakan : kosongkah?
if (stackbaru.top==-1) return true;
else return false;
}
void push (float dta) { //mengisi stack (menyimpan data di stack)
if (isfull() ==true) {
puts("maaf, stack penuh");
}
else {
stackbaru.top++;
stackbaru.dta[top]=dta;

}
}
void pop() { //mengambil isi stack
if (isempty() ==true) {
cout<<"Data telah kosong!";
}
else {
cout<<"data yang terambil : " <<stackbaru.dta[top]<<endl;
stackbaru.top--;
}
}
void print() { //mencetak stack
for (int i=0; i<=top; i++) {
cout <<stackbaru.dta[i] <<" ";
}
}
void clear() {
top = -1;
}
void inisialisasi()
{
stackbaru.top=-1;
}
void main()
{
inisialisasi();
char menu;
char ulang;

do { printf ("Menu:\n");
puts ("1. pop stack");
puts ("2. push stack");
puts ("3. cetak");
puts ("4. bersihkan stack");
puts ("5. exit");

cout <<"Menu pilihan anda: ";


cin >> menu;

if (menu =='1') {
pop();
ulang = 'y';
}
else if (menu =='2'){
cout <<"data yang akan disimpan di stack: ";
cin >> dta;
push (dta);
ulang = 'y';
}
else if (menu =='3'){
print();
cout <<"Ulang? (y/t)";
cin>>ulang;
}
else if (menu =='4'){
clear();
cout <<"ulang? (y/t)";
cin>>ulang;
}
else if (menu =='5'){

break;
}
} while (ulang =='Y' || ulang == 'y');
}

#include<iostream.h>
#include<conio.h>
#define maxstack 50 // menyediakan maksimal data dalam stack hanya 50
void rumusbalik();

struct stack
{ int c;
char huruf[100];
};
char kata[100];
struct stack balik;

void main ()
{ cout<<"\n*****************************************************";
cout<<"\n PROGRAM MEMBALIK KATA ";
cout<<"\n oleh : Gumelar Danang";
cout<<"\n*****************************************************\n\n";
cout<<"=== Masukan kata === ::";
cin.getline(kata, sizeof(kata)); //inputan data disimpan dalam variabel kal

rumusbalik();// memanggil fungsi rumus


cout<<"\n==== HASIL SETELAH DIBALIK==== ::"<<balik.huruf[balik.c]; balik.c--;

for (int k=balik.c;k>=0;k--)// perulangan untuk menampilkan hasil


{ cout<<balik.huruf[k]; } cout<<"\n\n";

}
void rumusbalik ()// rumus pembalik kata
{ for(int i=0;kata[i]!='\0';i++)// \n merupakan bil null
{balik.c++;
balik.huruf[balik.c]=kata[i];
}}

Source :

Online : http://www.daniweb.com/forums/thread148370.html#

Kadir, A.2005.Algoritma Pemrograman menggunakan c++.yogyakarta:andi.

Anda mungkin juga menyukai