AJIBLOG

Menulis Blog Adalah Salah Satu Hobi Saya di Waktu Luang dan Sebagai Catatan Eksperimen Tentang Informasi dan Teknologi , Silahkan Share , Subscribe dan Komen Jika Anda Suka Artikel saya ini, anda juga dapat menuliskan masalah yang anda alami pada saat mengikuti artiker diatas pada kolom komentar dibawah ini

Jumat, 19 Mei 2017

Belajar C++ Struktur Data - Stack

Stack

Stack (tumpukan) dapat diartikan sebagai list yang operasi penghapusan dan penyisipannya dapat dilakukan di satu ujung, atau dapat diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakkan diatas data lainnya.

Operasi Utama Stack
Operasi push  yaitu operasi menambahkan elemen pada urutan terakhir(paling atas).
Operasi pop yaitu operasi mengambil sebuah elemen data pada urutasn terakhir dan menghapus elem
en tersebut dari stack.

Operasi Tambahan 

Clear  : untuk mengosongkan stack.
IsEmpty : untuk memeriksa apakah stack kosong.
IsFull : untuk memeriksa apakah satck  sudah penuh.
Retrieve  : untuk mendapatkan nilai dari item teratas.
Peek : untuk melihat element teratas dari stack

Stack Dengan Array Dari Struct

Definisikan Stack dengan menggunakan suatu struct
Definisikan konstanta MAX_STACK untuk menyimpan maksimum isi stack
Elemen struct Stack adalah array data dan top untuk menadakan posisi data teratas
Buatlah variabel tumpuk sebagai implementasi dari struct Stack
Deklarasikan operasi-operasi/function di atas dan buat implemetasinya

Video Tutorial Stack



Source Code & Program - Contoh Kasus

#include <iostream> //file header standart
#include <stdio.h>
using namespace std; //mengunakan namespace std
struct STACK{ //definisi struct stack
int data[5]; //definisi data
int top; //definisi top
};
STACK tumpukan; //pemangginalan stract struck
void inisialisasi(); //pendeklarasian fungsi inisialisasi
int IsEmpty(); //pendeklarasian fungsi isEmpty
int IsFull(); //pendeklarasian fungsi isFull
void push(int data); //pendeklarasian fungsi push
void pop(); //pendeklarasian fungsi pop
int main(void){//pendeklarasian fungsi main program utama yang di jalankan program
int pilih, input, i; //pendeklarasian variable pilih input dan i interget
inisialisasi(); //memanggil fungsi inisialisasi
do{ //membuat perulangan
cout<<"1. Push Data"<<endl; //menampilkan text ke layar
cout<<"2. Pop Data"<<endl; //menampilkan text ke layar
cout<<"3. Print Data"<<endl; //menampilkan text ke layar
cout<<"4. Clear Data"<<endl; //menampilkan text ke layar
cout<<endl; //menampilkan baris baru
cout<<"Pilih : "; //menampilkan text ke layar
cin>>pilih; //input pilihan
switch(pilih){
case 1:{
if(IsFull() == 1){
cout<<"Tumpukan penuh!";
}else{
cout<<"Data yang akan di push: ";
cin>>input;
push(input);
}
cout<<endl;
break;
}
case 2:{
if(IsEmpty() == 1){
cout<<"Tumpukan kosong!";
}else{
cout<<"Data yang akan di pop :"<<tumpukan.data[tumpukan.top]<<endl;
}
cout<<endl;
break;
}
case 3:{
if(IsEmpty() == 1){
cout<<"Tumpukan Kosong !"<<endl;
}else{
cout<<"Data :"<<endl;
for(i = 0;i<=tumpukan.top;i++){
cout<<tumpukan.data[i]<<" ";
}
cout<<endl;
}
cout<<endl;
break;
}
case 4:{
inisialisasi();
cout<<"Tumpukan sudah kosong!"<<endl;
cout<<endl;
break;
}
default:{
cout<<"Tidak ada dalam pilihan"<<endl;
}
}
}while(pilih >=1 && pilih<=4);
return 0;
}

void inisialisasi(){ //pengisian fungsi inisialisasi 
tumpukan.top = -1;
}
int IsEmpty(){ //pengisian fungsi isempty
if(tumpukan.top == -1){
return 1;
}else{
return 0;
}
}
int IsFull(){  //pengisian fungsi isfull
if(tumpukan.top == 5-1){
return 1;
}else{
return 0;
}
}
void push(int data){ //pengisian fungsi push
tumpukan.top++;
tumpukan.data[tumpukan.top] = data;
}
void pop(){ //pengisian fungsi pop
tumpukan.top = tumpukan.top - 1;
if(tumpukan.top < 0){
tumpukan.top = -1;
}
}


 Download PDF Kumpulan Laporan Struktur Data disini : https://drive.google.com/drive/folders/0BwweuGyQqkVJV2ZSSUpSZDMzcGM?usp=sharing

Tidak ada komentar:

Posting Komentar

Footer Ads

Like , Comment , Follow Blog Saya ...

Label

LinuxMint/Ubuntu (73) BLC-Telkom (33) Kegiatan (26) Debian (23) Tool (17) Kumpulan Tugas (12) Mikrotik (10) CentOS7 (8) Coding PHP (7) CentOS6 (6) Google (6) IDE (3) IPFire (3) Raspberry PI (3) github (3) NodeJS (2) Virtualisasi (2) Windows (2) GIS (1) Vuejs (1)

Contact us

Nama

Email *

Pesan *