Pages

LAPORAN PRAKTIKUM STRUKTUR DATA MODUL 8

Senin, 12 Juni 2017

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

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










PRAKTIKUM 2

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).

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


LINK POST TEST 

Post Test 1

Post Test 2

Tidak ada komentar:

Posting Komentar

 
FREE BLOGGER TEMPLATE BY DESIGNER BLOGS