Free Music at divine-music.info
Kata - Kata Motivasi
Cinta Kepada ALLAH adalah puncaknya cinta dan lembahnya cinta adalah cinta kepada manusia
About me
- Wadah Informasi
- Assalamuaikum Wr'Wb Perkenalkan ... Namaku Ati Normala, bisa dipanggil Attin Sekarang saya berstatus sebagai seorang Mahasiswi di Politeknik Negeri Banjarmasin
CHAT disini !!!
Follower
Labels
- Bahasa Pemrograman (1)
- Islam (1)
- Makanan Khas Banjar (2)
- Mata Kuliah (3)
- Musik (1)
- Rahasia Dapur (3)
- Teknologi (3)
- Tips n Trik Blog (1)
- Wisata Banjar (1)
Select Your Language
by : BTF
1.1. Tujuan
1.1.1. Praktikum dapat mengimplementasikan struktur data dengan stack.
1.1.2. Praktikum dapat membuat program struktur data dengan stack.
1.2. Alat dan Bahan.
1.2.1. Satu set komputer
1.2.2. Program Bahasa C
1.3. Dasar Teori
Secara sederhana, stack bisa diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakkan di atas data yang yang lain. Satu hal yang perlu kita ingat adalah bahwa kita bisa menambah (menyisipkan) data, dan mengambil (menghapus data lewat ujung yang sama, yang disebut sebagai utung atas tumpukan (top of stack).
Untuk menjelaskan pengertian di atas kita ambil contoh sebagai berikut. Misalnya kita mempunyai dua buah kotakyang kita tumpuk, sehingga kotak kita letakkan di atas kotak yang lain. Jika kemudian tumpukan dua buah kota itu kita tambah dengan kotak ketiga, keempat dan seterusnya, maka kita peroleh tumpukan kotak, yang terdiri dari N kotak.
Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar 1.1. di bawah ini. Dari gambar ini kita bisamengatakan bahwa kotak B adata di atas kotak A dan ada di bawah kotak C. Gambar di bawah ini menujukkan bahwa dalam tumpukan kita hanya bisa menambah atau mengambil sebuah kotak lewat sata ujung, yaitu ujung bagian atas. Dapat dilihat pula bahwa tumpukan merupakan kumpulan data yang sifatnya dinamis artinya kita bisa menambah dan mengambal data darinya.
Gambar 1.1. Stack yang terdiri dari 6 kotak
Timbul pertanyaan, ujung yang manakah yang kita anggap sebagai ujung atas tumpukan tersebut. Untuk menjawab pertanyaan ini kita harus menentukan ujung mana yang kita gunakan untuk mengambil atau menyisipkan data yang baru. Dengan pengambaran tumpukan seperti gambar 1.1. di atas, kita menganggap atau memilih bahwa kotak F adalah bagian atas dari tumpukan tersebut. Jika ada kotak lain yang akan disisipkan, maka ia akan diletakkan di atas kotak F, dan jika ada kotak yang akan diammbil, maka kotak F lah yang akan diambil pertama kali.
Penggambaran tumpukan tidak harus seperti di atas. Kita bisa menggambar tumpukan dengan cara lain, seperti terlihat pada gambar 1.2. Untuk mempermudah pemahaman, dan seterusnya kita akan menggambarkan seperti tumpukan gambar 1.1.
Dengan memperlihatkan ilustrasi-ilustrasi yang disebutkan maka kita bisa melihat bahwa tumpukan merupakan suatu list yang mempunyai watak “masuk terakhir keluar pertama” (last in first out – LIFO).
Gambar 1.2. Cara lain penggambaran Stack
1.3.1. Stack dengan array
Operasi/fungsi pada stack
v Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
v Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
v Clear : digunakan untuk mengosongkan stack
v IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
v IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh
Inisialisasi stack
§ Definisikan Stack dengan menggunakan struct
Contoh: typedef struct STACK{ int top;
Char data[10][10]; };
§ Definisikan MAX_STACKuntuk maksimum isi stack
Contoh: #define MAX_STACK 10//hati-hati mulai dari 0 jadi 0-9
§ Buatlah variable array data sebagai implementasi stack secara nyata
Contoh: STACKtumpuk;
§ Pada mulanya isi top dengan 1, karena array dalam C dimulai dari 0, yang berarti stack adalah KOSONG!
§ Top adaah suatu variable penanda dalam STACK yang menunjukkan elemen teratas stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH!
Ilustrasi stack saat inisialisasi
| ||
8 | ||
7 | ||
| ||
5 | ||
4 | ||
3 | ||
2 | ||
1 | ||
|
Fungsi isfull
Ø Untuk memeriksa apakah stack sudah penuh?
Ø
|
Fungsi isempty
· Untuk memeriksa apakah stack masih kosong?
· Dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong!
|
Fungsi push
ü Untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack
ü Tambah satu (increment) nilai top of stack terlebih dahulu setiap kali ada penambahan elemen stack, asalkan stack masih belum penuh, kemudian isikan nilai baru ke stack berdasarkan indeks top of stack setelah ditambah satu (diincrement)
|
Fungsi pop
o Untuk mengambil elemen teratas dari stack.
o Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack, tampilkan nnilai yang akan diambil terlebih dahulu, baru didecrement nilai top of stack sehingga jumlah elemen stack berkurang
|
Fungsi print
Untuk menampilkan semua elemen-elemen stack
Dengan cara looping semua nilai array secara terbalik, karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke indeks yang kecil!
|
Langkah Percobaan Stack Dengan Array
Buatlah program stack dengan array menggunakan Bahasa C untuk masukan data, Hapus data, Me-reset Stack, dan Tampil isi Stack. Data-data yang tersedia adalah sebagai berikut :
NAMA |
Astari Ayu Attin Dessy Kartini Nita |
Struktur datanya adalah sebagai berikut :
Char dt[10];
Printf(“Nama : “); scanf(“%s”, &dt);
Tampilan menu utama program setelah di-run adalah sebagai berikut :
Pilihan Proses
[1] Masukan data
[2] Hapus data
[3] Tampil Isi Stack
[4] Mereset Stack
[5] Keluar
Masukkan kode pilihan (1 … 5)
[1] Masukan data
Jika lakukan pilihan 1, berarti kita akan masukan data stack, silakan masukan nama anda :
Nama =
[2] Hapus data
Pilihan 2, adalah prosedur hapus data, setelah selesai melakukan prosedur ini munculkan pesan “'Elemen terakhir Stack sudah dihapus”.
[3] Tampil isi data
Pilihan 3, adalah prosedur untuk menampilkan semua record yang telah kita masukkan, dengan tampilan sebagai berikut :
Data : Nita
Data : Kartini
Data : Dessy
Data : Attin
Data : Ayu
Data : Astari
[4] Me-reset Stack
Pilihan 4, adalah prosedur Me-reset Stack, berarti semua record yang telah dimasukkan akan dihapus, setelah selesai melakukan prosedur ini munculkan pesan ''Stack sudah dihapus”.
[5] Keluar
Pilhan 5, adalah prosedur untuk keluar dari program stack array, kembali ke program Bahasa C.
Listing Program Stack Array
#include <stdio.h>
#include <conio.h>
#include <string.h>
void inisialisasi();
void push();
void pop();
void clear();
#define MAX_STACK 10
typedef struct STACK
{ int top;
char data[10][10];};
STACK tumpuk;
void inisialisasi()
{ tumpuk.top= -1;}
int IsFull()
{ if(tumpuk.top== MAX_STACK-1) return 1; else return 0;}
int IsEmpty()
{ if(tumpuk.top== -1) return 1; else return 0;}
void Push(char d[10])
{ tumpuk.top++;
strcpy(tumpuk.data[tumpuk.top],d); }
void Pop()
{ printf("Elemen terakhir stack sudah dihapus, yaitu : %s\n",tumpuk.data[tumpuk.top]);
tumpuk.top--; }
void Clear()
{ tumpuk.top=-1; }
void TampilStack()
{
for(int i=tumpuk.top;i>=0;i--)
{ printf("Data : %s\n",tumpuk.data[i]); }
}
int main()
{
int pil;
inisialisasi();
char dt[10];
do{
clrscr();
printf("PILIHAN PROSES\n");
printf("[1] Masukan Data\n");
printf("[2] Hapus Data\n");
printf("[3] Tampil Isi Stack\n");
printf("[4] Mereset Stack\n");
printf("[5] Keluar\n");
printf("Masukan kode pilihan (1 ... 5) : "); scanf("%d",&pil);
switch(pil)
{
case 1: if(IsFull() != 1)
{ printf("Nama = ");scanf("%s",dt);
Push(dt); }
else
printf("\nSudah penuh, push gagal!\n");
break;
case 2: if(IsEmpty() != 1)
Pop();
else
printf("\nMasih kosong!\n");
break;
case 3: if(IsEmpty() != 1)
TampilStack();
else
printf("\nStack kosong!\n");
break;
case 4: Clear();
printf("\nStack sudah di hapus!\n");
break;
}
getch();
} while(pil!= 5);
getch();
}
Hasil Program Stack Array
Jika program tersebut di atas dijalankan (di run) maka akan muncul tampilan menu utama sebagai berikut :
Pilihan Proses
[1] Masukan data
[2] Hapus data
[3] Tampil isi stack
[4] Me-reset Stack
[5] Keluar
Masukkan kode pilihan {1 … 5)
Ketik angka 1 untuk pilihan [1] Masukan data, maka silakan masukan nama anda
Nama =
Kemudian kita masukan berturut-turut sebanyak enam record, seperti di bawah ini :
Nama = Astari
Nama = Ayu
Nama = Attin
Nama = Dessy
Nama = Kartini
Nama = Nita
Tekan enter, kemudian ketik 1 untuk memasukan record yang baru
Untuk menampilkan atau melihat isi stack yang telah dimasukkan ketik 3, [3] Tampil isi Stack, maka akan tampak pada layar :
Tekan enter untuk kembali ke menu utama
Ketik angka 2, untuk pilihan [2] Hapus data, pada layar komputer akan tampak pesan “'Elemen terakhir Stack sudah dihapus yaitu : Nita”.
Untuk menampilkan atau melihat isi stack setelah dihapus ketik 3, [3] Tampil isi Stack, maka akan tampak pada layar :
Record yang teakhir kita masukkan telah dihapus, sehingga record hanya tersisa sebanyak 5 record. Tekan enter untuk kembali ke menu utama.
Ketik angka 4 untuk pilihan [4] Me-reset Stack, pada layar komputer akan tampak pesan
”Stack sudah dihapus”, berarti, semua data yang dimasukkan telah dihapus (di-reset) .
Untuk menampilkan atau melihat isi stack setalah d-reset ketik 3, [3] Tampil isi Stack, maka akan tampak pada layar :
Data yang ditampilkan kosong karena, sebelumnya telah di-reset, untuk melanjutkan ke menu utama tekan tombol enter.
Ketik angka 5 untuk pilihan [5] Keluar, komputer akan menghentikan jalanya program dan kembali ke program Bahasa C.
1 komentar to "STRUKTUR DATA DENGAN STACK"
dwi_suharto_jkt says:
ga bisa running gan