Saturday, 10 June 2017

Latihan 1 Modul 8

Konsep stack di logika kan seperti sebuah tumpkan barang yang tersusun ke atas dengan ketinggian tumpukan yang telah di tentukan, untuk mengilustrasikannya program dibawah ii. Jalnkan program ini  bila belum sesuai peraiki.

#include
#include
#define N 20
main()
{
int nilai[N],i,jml;
printf(" Jumlah Maksimal Tumpukan (<=20) = ");
scanf("%d",&jml);
for(i=0; i
{
printf(" Data ke-%d = ", i+1);
scanf("%d",&nilai[i]);

}
for(i=jml-1; i>=0;i--)
{
printf("\n data ke-%d = %d", i+1, nilai[i]);
}
if(jml>=N)
{
printf("\nTumpukan Penuh");
}
getch();
return 0;
}

Hasil Running :



Keterangan :


Pada program diatas sbuah konsep stack dilogikakan sperti sebuah tumpukan yan tingginya 20. Cara kerja diatas yang pertama, disana menggunakan perulangan for yang akan menglooping sebuah data tumpukan yang sebelumnya diminta untuk masukan data tumpukan. Lalu ada fungsi perulangan for lagi untuk menglooping sebuah cerminan data tumpukan pada for yang pertama dengan output tersusun dari yang terbesar ke terkecil. Lalu di bawah nya ada sebuah statment if yang dimana jika jumlah lebih dari N maka tumpukan penuh  dan  N tersebut bernilai 20 yang tertera pada header. Lalu return 0; untuk memberhentikan program.

Praktikum 2 Modul 8

#include
#include
#include
using namespace std;
struct stack
{
char data [15] [100], max [15];
int i,j;
}stack;

void push()  // push untuk memasukan data
{
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.i--; stack.j--;
}
else
cout<<"tak ada data yang terambil"<
}

void view(int n) // printf untuk menampilkan data
{
if(stack.j>0)
{
for(int e=n; e>=1; e--)
{
cout<
}
}
else
cout<<"tak ada data yang tersimpan"<
}

void clear () // clear untuk menghapus data
{
stack.j=0; stack.i=0;
}

main (void)
{
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
{
stack.j++; push();
}
else
{
cout<<"tumpukan penuh"<
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)
{
clear(); getch(); goto balik;
}
else
if(plh==5)
{
getch(); goto ayo;
}
else
{
cout<<"input yang anda masukan salah !!!";
getch();
goto ayo;
}
}


Hasil Running :






Keterangan :
Pada Program diatas sama saja seperti pada praktikum 1 modul 8 dengan cara kerja yang sederhana hanya menginput angka dan mengoutput anggka yang tadi di input. Program diatas memakai fungsi struct dan memliki 5 fungsi diantaranya, VOID PUSH untuk memasukan data, VOID POP untuk mengambil data yang sudah di input, VOID VIEW untuk menampilkan data, VOID CLEAR untuk menghapus data, dan VOID MAIN untukmenampilkan inputan dan disana ada sebuah statment  IF jika pilih 1 maka kita di tempatkan untuk menginput berapa data yang akan dimasukan dan  data tersebut sebagai minimal data yang harus dimasukan. Contoh  jika kita pilih 1, maka kita menginput adengan angka 4 dan agka 4 tersebut sebagai data yang harus dimasukan  minimal 4 dan jika memasukan data lebih dari 4 maka program akan menampilkan output TUMPIKAN PENUH. Dan disana ada fungsi ELSE IF dimana jika kita memilih nomer 2 sampai 4 program akan balik lagi pada menu fungsi stack karena pada  ELSE IF terdapat fungsi GOTO. Lalu pada ELSE IF lagi  yang  dimana jika kita memilih 5 maka proram akan menampikan tampilan pertama saat meng running program diatas. Dan pada fungsi  ELSE  yang terakhir dimana kita memasukan pilihan yang bukan dari 1 sampai 5 maka program akan menampilkan output INPUT YANG ANDA MASUKAN SALAH.

Praktikum 1 Modul 8

#include
#include
#define max 10
using namespace std;
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 "<
}
else
if (penuh()==0)
{
T.atas++;
T.data[T.atas]=data;
cout<<"Data "<
}
else
cout<<"Tumpukan Penuh\n"<
}
void hapus()
{
if(kosong ()==0)
{
cout<<"Data teratas sudah terambil\n"<
T.atas--;
}
else
cout<<"Data Kosong\n"<
}
void tampil ()
{
if(kosong()==0)
{
for(int i=T.atas; i>=0; i--)
{
cout<<"\nTumpukan ke "<
}
}
else
cout<<"tumpukan kosong\n"<

}
void bersih ()
{
T.atas=-1;
cout<<"Tumpukan Kosong !\n"<
}
main(void)
{
int pil,data;
awal ();
do
{
// clrscr();
cout<<"1. Input\n2. Hapus\n3. Tampil\n4. Bersihkan\n5. keluar\nMasukan 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);
}

Hasil Running :






Keterangan :



Program diatas hanya menginput dan menampilkan sebuah bilangn yang akan dimasukan degan program menggunakan stack/tumpukan. Dimana stack diartikan sebagai sekumpulan data yang seolah-olah diletakan di atas data yang lain. Cara kerja program diatas adalah pada function terdapat 7 function yang didalamnya memiliki perintah berbeda-beda. Function tersebut adalah void awal() digunakan untuk nilai awal atau menandakan nilai paling atas, int kosong() digunakan untuk menyatakan data kosong atau tidak menggunakan fungsi return, int penuh() digunakan untuk memastikan data penuh atau tidak menggunakan return , void input (int data) digunakan untuk memasukan data, void hapus() digunkan untuk menghapus data bagian paling atas, void tampil() digunakan untuk menampilkan keseluruhan data, dan void bersih() digunakan untuk menghapus keseluruhan data yang ada. Pada fungsi main() didalam nya terdapat fungsi switch - case untuk memilih pilihan menu yang ada dan terdapat perulangan do - while untuk mengulang pemilihan menu sampai kita memilih keluar menu.


Pada hasil running ada sebuah menu