LAPORAN PRAKTIKUM
MODUL 8
STRUKTUR DATA
STACK / TUMPUKAN
Diajukan untuk memenuhi tugas sebagai bahan praktikum
Dosen : Endra Suseno, M.Kom
Disusun oleh :
Egi Legitasari
20160910045
Sistem informasi A 2016
FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN
2016
PRAKTIKUM 1
PRAKTIKUM 2
Script Program menggunakan C/C++
#include<iostream.h>
#include<conio.h>
#define
max 10
struct
tumpukan{
int
atas;
int
data[max];
}T;
void
awal(){
T.atas=-1;
}
int kosong
(){
if(T.atas==-1)
return 1;
else
return 0;
}
int
penuh(){
if(T.atas==max-1)
return 1;
else
return 0;
}
void
input(int data){
if(kosong()==1)
{T.atas++;
T.data[T.atas]=data;
cout<<"Data
"<<T.data[T.atas]<<"masuk ke stack";}
else
if(penuh()==0)
{T.atas++;
T.data[T.atas]=data;
cout<<"Data
"<<T.data[T.atas]<<"masuk ke stack";}
else
cout<<"Tumpukan
penuh";
}
void
hapus(){
if
(kosong()==0){
cout<<"Data
teratas sudah terambil";
T.atas--;
}
else
cout<<"Data
kosong";
}
void
tampil(){
if(kosong()==0)
{for(int
i=T.atas; i>=0; i--)
{cout<<"\nTumpukan
ke"<<i<<"="<<T.data[i];}
}
else
cout<<"Tumpukan
kosong";
}
void
bersih(){
T.atas=-1;
cout<<"Tumpukan
kosong!";
}
void
main(){
int pil,
data;
awal();
do
{
clrscr();
cout<<"1.
Input\n2. Hapus\n3. Tampil\n4. Bersih\n5. Keluar\n Masukan pilihan :";
cin>>pil;
switch(pil)
{case
1:cout<<"Masukan Data =";cin>>data;
input(data);
break;
case
2:hapus();
break;
case
3:tampil();
break;
case
4:bersih();
break;
case 5:
cout<<"Terimakasih, tekan enter untuk keluar";
}
getch();
}
while(pil!=5);
}
|
Pembahasan
Pada program ini yaitu menu input nya akan kita masukan beberapa nilai dengan stack yang bersifat Last in first out (LIFO). Menu hapus untuk menghapus stack data teratas, tampil; untuk menampilkan keseluruhan stack dan bersihkan; untuk menghapus semua stack, dan pilihan keluar.
Hasil running
Script Program menggunakan C/C++
#include<iostream.h>
#include<conio.h>
#include<string.h>
struct
{
char data [15][100], max [15];
int i,j;
}
stack;
void
push() //push untuk memasukan dta
{
stack.i++;
cout<<"masukan data : ";
cin>>stack.max;
strcpy (stack.data[stack.i],stack.max);
}
void pop()
//pop untuk mengambil data
{
if (stack.i>0)
{
cout<<"data yang terambil :
"<<stack.data[stack.i]<<endl;
stack.i--; stack.j--;
}
else
cout<<"tak ada data yang terambil "<<endl;
}
void view
(int n) //print untuk menampilkan data
{
if (stack.j>0)
{
for (int e=n; e>=1; e--)
{
cout<<stack.data[e]<<endl;
}
}
else
cout<<"tak ada data tersimpan"<<endl;
}
void
main()
{
int n,plh;
ayo:
clrscr();
cout<<"contoh program stack (tumpukan \n\n";
cout<<"maksimal tumpukan data : "; cin>>n;
stack.data[n];
stack.i=0;
stack.j=0;
balik:
clrscr();
cout<<"\n1.
push \n2. pop \n3. view \n4. clear \n5. quit \n";
cout<<"\npilih :"; cin>>plh;
cout<<"\n";
if (plh==1)
{
if (stack.j<n)
{
stack.j++; push();
}
else
{
cout<<"tumpukan penuh"<<endl;
getch();
}
goto balik;
}
else if (plh==2)
{
pop(); getch(); goto balik;
}
else if (plh==3)
{
view (stack.i); getch(); goto balik;
}
else if (plh==4)
{
getch();
goto balik;
}
else if (plh==5)
{
getch(); goto ayo;
}
else
{
cout<<"input yang anda masukan salah !!!";
getch();
goto ayo;
}
}
|
Pembahasan
Pada program ini yaitu akan menentukan batasan ruang stack yang memiliki nilai maksimal 20.
Maka akan bisa di PUSH, dan mengeluarkan POP untuk stack yang bersifat LIFO (Last ini First Out).
Maka akan bisa di PUSH, dan mengeluarkan POP untuk stack yang bersifat LIFO (Last ini First Out).
Hasil running
LATIHAN 1
Script Program menggunakan C/C++
#include<conio.h>
#include<stdio.h>
#define N 20
main()
{
int nilai[N],i,jml;
printf(" Jumlah
Maksimal Tumpukan (<=20) = ");
scanf("%d",&jml);
for(i=0; i<jml;
i++)
{
printf(" Data
ke-%d = ", i+1);
scanf("%d",&nilai[i]);
if(i==jml-1)
{
printf("Tumpukan
Penuh");
getch();
}
}
for(i=jml-1;
i>=0;i--)
{
printf("\n data
ke-%d = %d", i+1, nilai[i]);
}
getch();
return 0;
}
|
:
Pembahasan
Program ini yaitu untuk menentukan batasan stack, misalnya nilainya 10. Maka setelah itu kita akan menginputkan 10 nilai sembarang sesuai dengan ruang stack nya. Setelah itu stack akan terisi penuh dengan otomatis, dana akan tampil urutan stack yang terakhir sampai pertama secara menurun.
Hasil running
Tidak ada komentar:
Posting Komentar