Daftar Blog Saya

Sabtu, 03 Oktober 2020

TUGAS STRUKTUR DATA PERTEMUAN KE-4 " STACK (TUMPUKKAN) "

Bismillah, 

Assalamualaikum Wr.Wb.


Hello My Name Is Alif Yoga Prasetya 😉

Disini Saya Akan Membagikan Tugas Perkuliahan Dengan Mata Kuliah " Struktur Data "



SOAL :

1.Buatlah suatu program Animasi Stack dengan 4 buah pilihan : PUSH, POP,

CETAK STACK, QUIT.Jika dipilih

PUSH : program akan meminta user untuk menginput sebuah karakter yang

akan dimasukan ke dalam stack Jika dipilih POP : maka karakter teratas akan

dikeluarkan dari stack Jika dipilih CETAK

STACK : komputer menampilkan karakter yang ada pada stackJika dipilih

QUIT : program keluar

2. Buatlah program yang akan mengisi dan menjumlahkan isi stack.



JAWABAN :

///////////////PROGRAM KE-1//////////////

1. #include <iostream>

#include <conio.h>

#define maxstack 5

using namespace std; //untuk melegalkan header iostream

//pendeklarasian struct

struct STACK

{

 int top;

 float data[4];

};

float dta;

/*struct yang telah dibuat (STACK) dijadikan suatu Tipe data, dimana disebut

tipe data abstrak*/

struct STACK stackbaru;

//fungsi boolean untuk mengetahui apakah stack penuh

bool isfull()

{

 if(stackbaru.top == maxstack)

 return true;

 else

 return false;

}

//fungsi boolean untuk mengetahui apakah stack kosong

bool isempty()

{

 if(stackbaru.top == -1)

 return true;

 else

 return false;

}

//fungsi untuk menambahkan data pada stack

void push(float dta)

{

 if(isfull() == true) /*panggil fungsi isempty(), jika kondisi benar pernyataan

dijalankan*/

 {

 puts("Maaf, stack penuh");

 }

 else{

 stackbaru.top++;

 stackbaru.data[stackbaru.top]=dta;

 }

}

//fungsi untuk mengambil data pada stack

void pop()

{

 if(isempty() == true) //panggil fungsi isempty(), jika kondisi benar

pernyataan dijalankan

 {

 cout<<"Data telah kosong!";

 }

 else

 {

 cout<<"Data yang terambil : " <<stackbaru.data[stackbaru.top]<<endl;


 }

}

//fungsi untuk mencetak data pada stack

void print()

{

 printf("\nData yang terdapat dalam stack : \n");

 printf("--------------------------------\n");

 for(int i=0; i<=stackbaru.top; i++)

 {

 cout<<stackbaru.data[i]<<" ";

 }

}

//fungsi untuk membersihkan data dalam stack

void clear()

{

 stackbaru.top = -1;

 printf("\nSekarang stack kosong");

}

//fungsi utama

int main()

{

 stackbaru.top = -1;

 //pendeklarasian variabel

 char menu;

 char ulang;

 //perulangan dengan do-while

 do

 {

 system("cls");

 printf("\t PROGRAM STACK\n");

 printf("\t===============\n");

 printf("Menu : ");

 puts("\n1. Pop stack");

 puts("2. Push stack");

 puts("3. Cetak");

 puts("4. Bersihkan stack");

 puts("5. Exit");


 cout<<"Menu pilihan Anda : ";

 cin>>menu;


 if(menu == '1')

 {

 pop(); //panggil fungsi pop()

 ulang = 'y';

 getch();

 }

 else if(menu == '2')

 {

 cout<<"\nTambah Data";

 cout<<"\n-----------";

 cout<<"\nData yang akan disimpan di stack : ";

 cin>>dta;

 push(dta); /*panggil fungsi push(dta)--dta sesuai dengan data ynag

diinput*/

 ulang = 'y';

 }

 else if(menu == '3')

 {

 print(); /*panggil fungsi untuk mencetak data dalam stack*/

 cout<<"\n\nUlang ? (y/t)";

 cin>>ulang;

 }

 else if(menu == '4')

 {

 clear(); //panggil fungsi untuk membersihkan stack

 cout<<"\n\nUlang ? (y/t)";

 cin>>ulang;

 }

 else if(menu == '5')

 {

 exit(0); //keluar dari program

 }

 }while(ulang == 'Y' || ulang == 'y'); /*akan selalu diulang ketika ulang ==

'y' || ulang'Y'*/

}


SOURCE CODE PROGRAM


INPUT DATA





CETAK DATA





PADA SAAT MEMILIH 1. POP STACK, DATA YG PALING TERAKHIR YAITU 100 TERAMBIL





HAPUS DATA





EXIT




///////////////////////////////PROGRAM KE-2///////////////////////////////////


2. #include<iostream>

#define maxstack 5

using namespace std;

struct STACK

{

int top;

float data[4];

};

float dta;

struct STACK stackbaru;

using namespace std;


int main()

{

int n,i, nilai, hasil=0;

cout<<"masukkan jumlah = ";

cin>>n;

for(i=1;i<=n; i++)

{

cout<<"masukkan nilai ke- "<<i<<" = ";

cin>>nilai;

hasil=hasil+nilai;

}

if(hasil%2==0)

{

cout<<"\n jumlah semua nilai diatas adalah "<<hasil<<"dan merupakan bilangan genap \n";

}else{

cout<<"\n jumlah semua nilai diatas adalah "<<hasil<<"dan merupakan bilangan ganjil \n";

}

}



SOURCE DATA PROGRAM




Wa'alaikumussalam Warahmatullahi Wabarakatuh 😎

Tidak ada komentar:

Posting Komentar

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.

TUGAS STRUKTUR DATA PERTEMUAN KE-4 " STACK (TUMPUKKAN) "

Bismillah,  Assalamualaikum Wr.Wb. Hello My Name Is Alif Yoga Prasetya 😉 Disini Saya Akan Membagikan Tugas Perkuliahan Dengan Mata Kuliah &...