Algoritma & Struktur Data 2 fileAlgoritma & Struktur Data 2 P-6 Fery Updi, M.Kom 1. Capaian...

24
Algoritma & Struktur Data 2 P-6 Fery Updi, M.Kom 1

Transcript of Algoritma & Struktur Data 2 fileAlgoritma & Struktur Data 2 P-6 Fery Updi, M.Kom 1. Capaian...

Algoritma & Struktur Data 2P-6

Fery Updi, M.Kom

1

Capaian Kompetensi• Mahasiswa mampu:

1. Memahami konsep Stack

2. Menjelaskan apa yang dimaksud dengan stack dan aplikasinya

2

Pokok Bahasan

• Stack

3

StackStack merupakan suatu struktur data yang memiliki sifat Last In FirstOut (LIFO). Seperti kata stack yang berarti tumpukan, stack dapatdianalogikan seperti suatu tumpukan.Tumpukan tersusun dari bawah ke atas, dengan setiap elemen yangbaru selalu diletakkan di bagian paling atas tumpukan. Analogi daristack dapat dilihat di gambar berikut:

Stack

Sesuai namanya, struktur data ini digambarkan seperti keadaantumpukan piring atau tumpukan buku. Cara yang paling mudah untukmeletakkan piring ke dalam tumpukan yakni dengan menaruhnya dibagian puncak. Begitu juga kalau Anda ingin mengambil piring. Piringdiambil dari data yang berada di puncak tumpukan.

Stack

Stack

Tumpukan memiliki sifat Last In First Out (LIFO). Artinya, data yangterakhir kali dimasukkan/disisipkan akan menjadi data yang pertamakali keluar. Pada contoh di atas, yang berisi tumpukan A, B, dan C jelasterlihat bahwa C adalah data yang terakhir kali ditumpukkan. Jikaterjadi operasi pengambilan data maka C adalah data yang akan keluarterlebih dulu.

Operasi dasar pada tumpukan (Stack) adalah PUSH dan POP1. Push (insert)

Pada stack, proses insert elemen baru dinamakan push. Proses pushselalu meletakkan elemen baru di atas elemen yang paling atas(top).

2. Pop (delete) Pada stack, proses delete elemen dinamakan pop. Proses pop selalumenghapus elemen yang terletak paling atas (top). Elemen yangdihapus oleh proses pop dikembalikan (return). Agar dapatdigunakan oleh baris yang memanggil proses pop.

cara kerja stack dapat di ilustrasikan sebagai berikut:

| D | ---> atas| C || B || A | ---> bawah

Anggaplah gambar diatas sebagai tumpukan data, D sebagainode(struktur) yang atas (terkhir dimasukkan) dan A sebagai node yangbawah (pertamakali dimasukkan). Jika kita melakukan operasi Push(menambah), misalnya E, maka penambahan akan dilakukan pada nilaiyang paling atas, yaitu D, sehingga menjadi:

| E | ---> atas| D || C || B || A | ---> bawah

Sehingga nilai E menjadi nilai atas yang baru, dan jika dilakukan operasipop (delete), maka stack akan menjadi seperti gambar yang pertamadiatas, yaitu nilai D menjadi nilai atas, dan nilai E akan dihapus daritumpukan (stack).

Operasi-operasi stack secara lengkap adalah sebagai berikut :

1. Pendeklarasian stackProses pendeklarasian stack adalah proses pembuatan struktur stackdalam memori. Karena stack dapat direpresentasikan dalam 2 cara,maka pendeklarasian stack pun ada 2 yaitu :

a. Pendeklarasian stack yang menggunakan array. Suatu stackmemiliki beberapa bagian yaitu:• top yang menunjuk posisi data terakhir (top)• elemen yang berisi data yang ada dalam stack. Bagian ini lah yang

berbentuk array.• maks_elemen yaitu variable yang menunjuk maksimal banyaknya

elemen dalam stack.Dalam bahasa C, pendeklarasiannya adalah :

b. Pendeklarasian stack yang menggunakan single linked listAdapun stack yang menggunakan single linked list, hanyamemerlukan suatu pointer yang menunjuk ke data terakhir. Setiapelemen linked list mempunyai 2 field yaitu elemen datanya danpointer bawah yang menunjuk posisi terakhir sebelum proses push.

Pendeklarasian dalam bahasa C adalah :

2. Inisialisasi

Inisialisasi stack adalah proses pembuatan suatu stack kosong. Adapunlangkah-langkah proses tersebut berdasarkan jenis penyimpanannyaadalah :

a. Inisialisasi stack yang menggunakan array.b. Inisialisasi stack yang menggunakan single linked list

a. Inisialisasi stack yang menggunakan array.Proses inisialisasi untuk stack yang menggunakan array adalah denganmengisi nilai field top dengan 0 (nol) jika elemen pertama diawali dengannomor 1. Kalau elemen pertama array dimulai dengan 0 (contoh bahasaC), maka top diisi dengan nilai -1.Implementasinya dalam bahasa C adalah :

b. Inisialisasi stack yang menggunakan single linked listProses inisialisasi untuk stack yang menggunakan single linked list adalahdengan mengisi nilai pointer stack dengan NULL. Implementasi dalambahasa C adalah :

3. Operasi IsEmpty

Operasi ini digunakan untuk memeriksa apakah stack dalam keadaankosong. Operasi ini penting dilakukan dalam proses pop. Ketika suatustack dalam keadaan kosong, maka proses pop tidak bisa dilakukan.Adapun langkah-langkah operasi ini adalah :a. Operasi IsEmpty pada stack yang menggunakan array.b. Operasi IsEmpty pada stack yang menggunakan single linked list.

a. Operasi IsEmpty pada stack yang menggunakan array.Operasi ini dilakukan hanya dengan memeriksa field top. Jika top bernilai 0 (untukelemen yang dimulai dengan index 1) atau top bernilai -1 (untuk elemen yang dimulaidengan index 0), maka berarti stack dalam keadaan empty (kosong) yang akan me-return-kan true (1) dan jika tidak berarti stack mempunyai isi dan me-return-kan nilaifalse (0). Implementasi dalam bahasa C adalah :int isempty(tstack stack){if (stack.top==-1)return 1;elsereturn 0;}

Cara penggunaannya adalah :

//Penggunaan isempty dalam statement ifif( isempty(stack) ) ...

b. Operasi IsEmpty pada stack yang menggunakan single linked list.Operasi IsEmpty pada stack yang menggunakan single linked list adalahdengan memeriksa apakah pointer stack bernilai NULL. Jika stack bernilaiNULL maka menandakan stack sedang keadaan empty (kosong) dan akanme-return-kan nilai 1 dan jika tidak NULL maka menandakan stackmempunyai isi (tidak kosong) sehingga operasi tersebut akan me-return-kan nilai false (0). Implementasinya dalam bahasa C adalah :int isempty(PStack stack){if (stack==NULL)return 1;elsereturn 0;}

Stack

Stack

Stack

Output Stack

TUGASDari Output diatas coba anda masukkan angka (6, 1, 8, 2, 5) dengan memilih pilihan nomor 2 masukan angka6 lakukan hal yg sama hingga angka 5, lalu pilih nomor 1, lalu pilih nomor 3, dan lalu pilih nomor 4, danterakhir nomor 5 setiap langkah-langkah tersebut screenshot dalam bentuk file pdf kirim ke email:[email protected] dengan Subject/topic : Tugas Stack Unpri Nama_mhs, paling lambat 23 April 2018 jam00.00 Wib

24