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