- Praktikum 1
- Script Program
#include <iostream>
#include <conio.h>
using namespace std;
#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!";
}
main(){
int pil,data;
awal();
do
{
system("cls");
cout<<"1. Input\n2. Hapus\n3. Tampil\n4. Bersihkan\n5. Keluar\nMasukkan pilihan :";
cin>>pil;
switch(pil)
{case 1:cout<<"Masukkan 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);
}
3. Tampil Data
4. Bersihkan Data
- Penjelasan
Program ini untuk membuat sebuah tumpukan, dimana pada prosesnya terdapat input data, hapus data, tampilkan data, dan bersihkan data. Dan variabel pada program ini disimpan pada fungsi Struct T. Pada awal program ditampilkan sebuah menu terdiri dari input,hapus,tampil,bersihkan,dan keluar, User di intruksikan untuk memilih dari ke 5 pilihan tersebut.
1. Input
pada proses input program akan menjalankan fungsi input yang ada pada script program
1. Input
pada proses input program akan menjalankan fungsi input yang ada pada script program
- void input(int data) => fungsi input dengan parameter variabel data
- if(kosong()==1) => jika fungsi kosong = 1 atau nilai balikan fungsi kosong adalah 1 maka akan menjalankan perintah yang ada di fungsi if ini
- T.atas++; => variabel atas dalam struct akan di increment(+1), seperti yang kita ketahui variabel T.atas sudah di isi oleh -1 pada fungsi awal, jadi variabel T.atas nilainya menjadi 0
- T.data[T.atas]=data; => variabel T.data dengan indeks T.atas yaitu indeks ke 0
- cout<<"Data "<<T.data[T.atas]<<" masuk ke stack"; => tampilan bahwa data inputan sudah masuk
- else if(penuh()==0) => jika fungsi kosong != 1 (tidak terpenuhi) maka program akan memriksa fungsi penuh jika = 0 maka akan menjalankan perintah yang ada pada if ini, cara kerjanya seperti if sebelumnya, tetapi indeksnya berubah menjadi 1 atau lebih karena variabel T.atas sudah terisi nilai dari inputan sebelumnya
- else cout<<"Tumpukan penuh"; => jika semua if tidak terpenuhi atau dengan kata lain indeks dari varibel T.data sudah terisi semuanya maka perintah ini akan dijalankan
2. Kosong
pada proses hapus program akan menjalankan fungsi hapus yang ada pada script program
- void hapus() => fungsi hapus
- if(kosong()==0) => jika fungsi kosong = 0 atau nilai balikan fungsi kosong adalah 0 maka akan menjalankan perintah yang ada di fungsi if ini
- cout<<"Data teratas sudah terambil"; => tampilan bahwa data sudah diambil
- T.atas--; => variabel atas dalam struct akan di decrement(-1), seperti yang kita ketahui variabel T.atas sudah berubah nilainya karena user sudah memasukan inputan, misalkan varibel T.atas=10 maka akan berubah nilainya menjadi 9.
- else cout<<"Data kosong"; => jika nilai fungsi kosong=1 maka perintah ini akan dijalankan
3. Tampil
pada proses tampil program akan menjalankan fungsi tampil yang ada pada script program
- void tampil() => fungsi tampil
- if(kosong()==0) => jika fungsi kosong = 0 atau nilai balikan fungsi kosong adalah 0 maka akan menjalankan perintah yang ada di fungsi if ini
- for(int i=T.atas;i>=0;i--) => sebuah perulangan for dimulai dari nilai variabel i yang berisi nilai dari varibel T.atas dikurangi 1 sampai nilainya menjadi 0
- cout<<"\nTumpukan ke "<<i<<"="<<T.data[i]; => Tampilan nilai yang ada pada variabel T.data dengan indeksnya
- else cout<<"Tumpukan kosong"; => jika nilai fungsi kosong=1 maka perintah ini akan dijalankan
4. Bersihkan
pada proses Bersihkan program akan menjalankan fungsi bersih yang ada pada script program
- void bersih() => fungsi bersih
- T.atas=-1; => variabel T.atas akan di isi menjadi -1
- cout<<"Tumpukan kosong!"; => menyatakan bahwa variabel T.atas sudah kosong
- Praktikum 2
- Script Program
#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
struct
{
char data[15][100],max[15];
int i,j;
}stack;
void push()
{
stack.i++;
cout<<"Masukan Data : ";cin>>stack.max;
strcpy(stack.data[stack.i],stack.max);
}
void pop()
{
if(stack.i>0){
cout<<"Data yang terambil : "<<stack.data[stack.i]<<endl;
stack.i--; stack.j--;}
else{
cout<<"Tak ada data terambil"<<endl;}
}
void view(int n)
{
if(stack.j>0){
cout<<endl;
for(int e=n;e>=1;e--){
cout<<stack.data[e]<<" ";}}
else
cout<<"Tak ada data tersimpan"<<endl;
}
void clear()
{
stack.j=0; stack.i=0;
}
main()
{
int n,plh;
ayo :
system("cls");
cout<<"Contoh Program Stack (Tumpukan)\n\n";
cout<<"Maksimal tumpukan data : ";cin>>n;
stack.data[n];
stack.i=0;
stack.j=0;
balik :
system("cls");
cout<<"1. Push\n2. Pop\n3. View\n4. Clear\n5. Quit\n\nPilih : ";cin>>plh;
if(plh==1)
{
if(stack.j<n){
stack.j++;push();}
else{
cout<<"Tumpukan Penuh"<<endl;}
getch();
goto balik;
}
if(plh==2){pop();getch();goto balik;}
if(plh==3){view(stack.i);getch();goto balik;}
if(plh==4){clear();getch();goto balik;}
if(plh==5){getch();}
else{cout<<"Inputan Salah!";getch();goto ayo;}
}
- Penjelasan
Program ini sama dengan program tumpukan lainnya, hanya saja pada program ini ditentukan batasan maksimal tumpukan oleh user. Dan cara kerja programnya hampir sama seperti pada praktikum ke 1 tetapi pada program ini variabelnya menggunakan variabel array, jadi pada program ini cara kerjanya lebih mudah dibandingkan dengan program sebelumnya
LATIHAN
- Latihan 1
- Studi Kasus
Konsep stack dilogikakan seperti sebuah tumpukan barang yang tersusun ke atas dengan ketinggian tumpukan yang telah ditentukan, untuk mengilustrasikannya program dibawah ini.
- Script Program
#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;
}
- Penjelasan
Program ini untuk membuat sebuah inputan tumpukan lalu ditampilkan kembali, kita dapat menentukan jumlah tumpukan dengan jumlah maksimal tumpukan 20. Data tumpukan akan disimpan di variabel nilai[i] hingga tumpukan penuh lalu hasilnya akan ditampilkan.
POST TEST
- Post Test 1 : Youtube
- Post Test 2 : Youtube
Belum ada tanggapan untuk "Laporan Praktikum Struktur Data Modul 8 Tumpukan (Stack)"
Posting Komentar