Struktur data Stack Bab 2 Buku :.

Slides:



Advertisements
Presentasi serupa
UKURAN NILAI PUSAT UKURAN NILAI PUSAT ADALAH UKURAN YG DAPAT MEWAKILI DATA SECARA KESELURUHAN JENIS UKURAN NILAI PUSAT : MEAN , MEDIAN, MODUS KUARTIL,
Advertisements

Teori Graf.
Statistika Deskriptif: Distribusi Proporsi
(Matematika Al-Quran)
START.
Wido Hanggoro ` Research and Development Department Indonesia Meteorological Climatological and Geophysical Agency.
Bulan maret 2012, nilai pewarnaan :
Menempatkan Pointer Q 6.3 & 7.3 NESTED LOOP.
Tugas Praktikum 1 Dani Firdaus  1,12,23,34 Amanda  2,13,24,35 Dede  3,14,25,36 Gregorius  4,15,26,37 Mirza  5,16,27,38 M. Ari  6,17,28,39 Mughni.
Input/Output.
Tugas: Perangkat Keras Komputer Versi:1.0.0 Materi: Installing Windows 98 Penyaji: Zulkarnaen NS 1.

1 Diagram berikut menyatakan jenis ekstrakurikuler di suatu SMK yang diikuti oleh 400 siswa. Persentase siswa yang tidak mengikuti ekstrakurikuler.
BADAN KOORDINASI KELUARGA BERENCANA NASIONAL DIREKTORAT PELAPORAN DAN STATISTIK DISAJIKAN PADA RADALGRAM JAKARTA, 4 AGUSTUS 2009.
LINKED LIST.
Bab 11B
PENCAPAIAN KKP PROGRAM KB NASIONAL PROV RIAU BULAN : JUNI 2010.
BOROBUDUR (4) FAHMI BASYA
Mari Kita Lihat Video Berikut ini.
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
Statistika Deskriptif
Bab 6B Distribusi Probabilitas Pensampelan
WEEK 6 Teknik Elektro – UIN SGD Bandung PERULANGAN - LOOPING.
HITUNG INTEGRAL INTEGRAL TAK TENTU.
STATISTIK - I.
UKURAN PENYEBARAN DATA
DISTRIBUSI FREKUENSI oleh Ratu Ilma Indra Putri. DEFINISI Pengelompokkan data menjadi tabulasi data dengan memakai kelas- kelas data dan dikaitkan dengan.
Pengolahan Citra Digital: Konsep Dasar Representasi Citra
Rabu 23 Maret 2011Matematika Teknik 2 Pu Barisan Barisan Tak Hingga Kekonvergenan barisan tak hingga Sifat – sifat barisan Barisan Monoton.
Soal Latihan.
PENINGKATAN KUALITAS PEMBELAJARAN DAN PEMAHAMAN PERANCANGAN PERCOBAAN MAHASISWA SEMESTER VI FAKULTAS KEDOKTERAN HEWAN UNIVERSITAS AIRLANGGA SURABAYA PENANGGUNG.
: : Sisa Waktu.
Nonparametrik: Data Peringkat 2
PERKEMBANGAN KELULUSAN SMP/MTS, SMA/MA DAN SMK KOTA SEMARANG DUA TAHUN TERAKHIR T.P DAN 2013.
UKURAN PEMUSATAN DATA Sub Judul.
Fungsi Invers, Eksponensial, Logaritma, dan Trigonometri
Bab 16 Sekor Komposit dan Seleksi Sekor Komposi dan Seleksi
KONTROL ALUR EKSEKUSI PROGRAM
Selamat Datang Dalam Kuliah Terbuka Ini
INHERITANCE.
Bulan FEBRUARI 2012, nilai pewarnaan :
AREAL PARKIR PEMERINTAH KABUPATEN JEMBRANA
1 Certified Assessor Training Galeri 678 Kemang, 26 – 28 Agustus 2008 TEST PREFERENSI Materi Kuliah Program Magister Psikologi Unika Atmajaya Agustus 2008.
Teori Graf.
KINERJA SAMPAI DENGAN BULAN AGUSTUS 2013
Bab 13A Nonparametrik: Data Peringkat I Bab 13A
Nonparametrik: Data Peringkat 2
PENGAJAR: DR. SRI MULYANINGSIH
Graf.
Soal-Soal Latihan Mandiri
Statistika Deskriptif: Statistik Sampel
DISTRIBUSI FREKUENSI.
Bersyukur.
Statistika Deskriptif: Distribusi Proporsi
Nilai Ujian Statistik 80 orang mahasiswa Fapet UNHAS adalah sebagai berikut:
Teknik Numeris (Numerical Technique)
• Perwakilan BKKBN Provinsi Sulawesi Tengah•
BAB2 QUEUE 6.3 & 7.3 NESTED LOOP.
Bab 7 Nilai Acuan Norma.
Pohon (bagian ke 6) Matematika Diskrit.
Korelasi dan Regresi Ganda
DISTRIBUSI PELUANG Pertemuan ke 5.
Data dan Struktur Data.
Algorithm and Data Structures.
stack ==tumpukan== Tenia wahyuningrum st3 telkom purwokerto
Universitas Budi Luhur
BAB3 QUEUE 6.3 & 7.3 NESTED LOOP.
STACK 6.3 & 7.3 NESTED LOOP.
STACK Yohana Nugraheni.
Double STACK 6.3 & 7.3 NESTED LOOP.
Transcript presentasi:

struktur data Stack Bab 2 Buku :

struktur Stack

struktur Stack menggunakan : Array Satu Dimensi Linked List

menggunakan array satu dimensi Stack menggunakan array satu dimensi Single Stack Double Stack

struktur Stack menggunakan array satu dimensi

Single Stack 6.3 & 7.3 NESTED LOOP

STACK ( tumpukan )

1.01 delete STACK insert A stack is an ordered collection of items into which new items may be inserted and from which items may be deleted at one end, called the top of the stack. 7 6 5 4 3 2 1 ( Yedidyah L, Moshe J. A., and Aaron M. Tenenbaum; Data Structures Using C and C++)

1. Single Stack. Stack Tunggal, satu stack dalam satu collection 1.01 1. Single Stack. Stack Tunggal, satu stack dalam satu collection 1.1 Ilustrasi Single Stack. Nomor Urut Masuk (PUSH) Nomor Urut Keluar (POP) 1 2 3 4 Top Buku-4 4 3 2 1 Buku-3 Buku-2 Buku-1 Meja

Prinsip atau Konsep prosesnya disebut : L I F O ( Last In First Out ) 1.01 Dalam struktur STACK, digunakan istilah : - PUSH untuk : Simpan, atau Masuk, atau Insert, atau Tulis. - POP untuk : Ambil, atau Keluar, atau Delete, atau Baca, atau Hapus Prinsip atau Konsep prosesnya disebut : L I F O ( Last In First Out )

S[ ] 1.2 Representasi Single Stack menggunakan Array Satu Dimensi. 1.2.1 Ilustrasi Single Stack menggunakan Array Satu Dimensi misal n = 10 n-1 0 1 2 3 4 5 6 7 8 9 S[ ] 25 12 17 10 misal dibuat dengan : Top #define n 10 - int S[n]; int Top, X; 3 Top X

n-1 0 1 2 3 4 5 6 7 8 9 PUSH S[ ] 25 12 17 10 POP Top 3 Top X Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah PUSH ( Isi, Masuk, Simpan) maka akan diisi di elemen nomor : ? dan Top akan menunjuk elemen nomor : ?

n-1 0 1 2 3 4 5 6 7 8 9 PUSH S[ ] 25 12 17 10 POP Top 3 Top X Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah POP ( Keluar, Ambil) maka akan diambil isi elemen nomor : ? dan Top akan menunjuk elemen nomor : ?

Ilustrasi Stack. Diilustrasikan sebagai berikut : n-1 25 12 17 10 S[ ] 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 S[ ] Top 3 Top X Diilustrasikan sebagai berikut : 0 1 2 3 4 5 6 7 8 9 n-1 X X X X S[ ] Top

1.2.2 Prinsip / Konsep Proses pada Stack LIFO (Last In First Out) 1.2.3 Macam Proses pada Stack a. AWAL (Inisialisasi) b. PUSH (Insert, Masuk, Simpan, Tulis) c. POP (Delete, Keluar, Ambil , Baca / Hapus)

void AWAL( ) { Top = -1; } a) Proses AWAL Catatan : n-1 S[ ] -1 Top X Untuk memudahkan pembuatan program, maka array untuk Stack dan beberapa variabel yang terkait dibuat bersifat Global 0 1 2 3 4 5 6 7 8 9 n-1 S[ ] -1 Top Top X

Algoritma dasar untuk PUSH

Pertanyaan : dalam keadaan seperti sekarang 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 S[ ] Top 3 15 Top X Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah PUSH (Isi, Masuk, Simpan) maka akan diisi di elemen nomor : ? dan Top akan menunjuk elemen nomor : ?

0 1 2 3 4 5 6 7 8 9 n-1 S[ ] 25 12 17 10 15 Top 4 15 Top X Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah PUSH (Isi, Masuk, Simpan) maka akan diisi di elemen nomor : 4 dan Top akan menunjuk elemen nomor : 4

? Pilih algoritma yang benar untuk PUSH a. Top = Top + 1; S[Top] = X; Sebelum nilai X diPUSH Ke Stack 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 a. Top = Top + 1; S[Top] = X; S[ ] Top 3 15 b. S[Top] = X; Top = Top + 1; Top X Setelah nilai X diPUSH Ke Stack c. Top = Top + 1; X = S[Top]; 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 15 S[ ] d. X = S[Top]; Top = Top + 1; 4 15 Top ? Top X

? ? A = B; A = B; 25 17 A B A B Yang diisi, variabel A atau variabel B Sebelum : A B A = B; ? Sesudah : A B

A = B; A = B; 25 17 A B 17 17 A B Yang diisi adalah : variabel A Sebelum : A B A = B; 17 17 Sesudah : A B

? A a. A[3] = X; X = A[3]; b. Untuk mengisi elemen A[3] Pilih instruksi yang benar : 1 2 3 4 5 A 17 a. A[3] = X; b. X = A[3]; 17 X ?

? Pilih algoritma yang benar untuk PUSH a. Top = Top + 1; S[Top] = X; Sebelum nilai X diPUSH Ke Stack 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 a. Top = Top + 1; S[Top] = X; S[ ] Top 3 15 b. S[Top] = X; Top = Top + 1; Top X Setelah nilai X diPUSH Ke Stack c. Top = Top + 1; X = S[Top]; 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 15 S[ ] d. X = S[Top]; Top = Top + 1; 4 15 Top ? Top X

Pilih algoritma yang benar untuk PUSH Sebelum nilai X diPUSH Ke Stack 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 a. Top = Top + 1; S[Top] = X; S[ ] Top 3 15 b. S[Top] = X; Top = Top + 1; Top X Setelah nilai X diPUSH Ke Stack c. Top = Top + 1; X = S[Top]; 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 15 S[ ] d. X = S[Top]; Top = Top + 1; 4 15 Top Top X

Top = Top + 1; S[Top] = X; Untuk PUSH Algoritma yang benar n-1 25 12 Sebelum nilai X diPUSH Ke Stack 0 1 2 3 4 5 6 7 8 9 n-1 Untuk PUSH Algoritma yang benar 25 12 17 10 S[ ] Top = Top + 1; S[Top] = X; Top 3 15 Top X Setelah nilai X diPUSH Ke Stack 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 15 S[ ] 4 15 Top Top X

Top = Top + 1; S[Top] = X; Algoritma PUSH yang benar : Sebelum : 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 3 15 S[ ] Top X Top 0 1 2 3 4 5 6 7 8 9 n-1 Dengan : Top = Top + 1; 25 12 17 10 4 15 S[ ] Top X Top Sesudah : 0 1 2 3 4 5 6 7 8 9 n-1 Dengan : S[Top] = X; 25 12 17 10 15 4 15 S[ ] Top X Top

S[Top] = X; Top = Top + 1; Algoritma PUSH yang SALAH : Sebelum : 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 3 15 S[ ] Top X Top 0 1 2 3 4 5 6 7 8 9 n-1 Dengan : S[Top] = X; 25 12 17 15 3 15 S[ ] Top X Top Sesudah : 0 1 2 3 4 5 6 7 8 9 n-1 Dengan : Top = Top + 1; 25 12 17 15 4 15 S[ ] Top X Top

Algoritma dasar untuk PUSH Top = Top + 1; S[Top] = X; atau : Top+= 1; S[Top] = X; Top++; S[Top] = X; atau : S[++Top] = X; atau :

Algoritma dasar untuk POP

Pertanyaan : dalam keadaan seperti sekarang 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 S[ ] Top 3 Top X Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah POP ( Keluar, Ambil) maka akan diambil isi elemen nomor : ? dan setelah itu Top akan menunjuk elemen nomor : ?

Pertanyaan : dalam keadaan seperti sekarang 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 S[ ] Top 3 Top X Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah POP ( Keluar, Ambil) maka akan diambil isi elemen nomor : 3 dan setelah itu Top akan menunjuk elemen nomor : 2

Pertanyaan : dalam keadaan seperti sekarang 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 S[ ] Top 2 10 Top X Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah POP ( Keluar, Ambil) maka akan diambil isi elemen nomor : 3 dan setelah itu Top akan menunjuk elemen nomor : 2

? Untuk POP, Pilih algoritma yang benar a. X = S[Top]; Top = Top - 1; Sebelum POP 0 1 2 3 4 5 6 7 8 9 n-1 a. X = S[Top]; Top = Top - 1; 25 12 17 10 S[ ] Top 3 b. Top = Top - 1; X = S[Top]; Top X c. Top = Top - 1; S[Top] = X; Setelah POP 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 S[ ] d. S[Top] = X; Top = Top - 1; 2 10 Top ? Top X

Pilih algoritma yang benar Untuk POP, Pilih algoritma yang benar Sebelum POP 0 1 2 3 4 5 6 7 8 9 n-1 a. X = S[Top]; Top = Top - 1; 25 12 17 10 S[ ] Top 3 b. Top = Top - 1; X = S[Top]; Top X c. Top = Top - 1; S[Top] = X; Setelah POP 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 S[ ] d. S[Top] = X; Top = Top - 1; 2 10 Top Top X

X = S[Top]; Top = Top - 1; Untuk POP Algoritma yang benar n-1 25 12 17 Sebelum POP 0 1 2 3 4 5 6 7 8 9 n-1 Untuk POP Algoritma yang benar 25 12 17 10 S[ ] X = S[Top]; Top = Top - 1; Top 3 Top X Setelah POP 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 S[ ] 2 10 Top Top X

Setelah Top dipindahkan menunjuk S[2] apakah nilai 10 0 1 2 3 4 5 6 7 8 9 n-1 Sebelum POP Pertanyaan : Setelah 10 disimpan di X apakah nilai 10 masih ada dalam S[3] ? 25 12 17 10 S[ ] 3 Top Top X 0 1 2 3 4 5 6 7 8 9 n-1 Jawab : Isi X 25 12 17 10 S[ ] Pertanyaan : Setelah Top dipindahkan menunjuk S[2] apakah nilai 10 masih ada dalam S[3] ? 3 10 Top Top X Setelah POP 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 S[ ] Jawab : 2 10 Top Top X

Setelah Top dipindahkan menunjuk S[2] apakah nilai 10 0 1 2 3 4 5 6 7 8 9 n-1 Sebelum POP Pertanyaan : Setelah 10 disimpan di X apakah nilai 10 masih ada dalam S[3] ? 25 12 17 10 S[ ] 3 Top Top X Jawab : masih ada 0 1 2 3 4 5 6 7 8 9 n-1 Isi X 25 12 17 10 S[ ] Pertanyaan : Setelah Top dipindahkan menunjuk S[2] apakah nilai 10 masih ada dalam S[3] ? 3 10 Top Top X Setelah POP 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 S[ ] Jawab : masih ada tapi untuk keperluan ilustrasi, nilainya dihapus 2 10 Top Top X

Kita Ulangi X = S[Top]; Top = Top - 1; Algoritma POP yang benar : n-1 0 1 2 3 4 5 6 7 8 9 n-1 Sebelum POP 25 12 17 10 3 S[ ] Top X Top Kita Ulangi

X = S[Top]; Top = Top - 1; Algoritma POP yang benar : 0 1 2 3 4 5 6 7 8 9 n-1 Sebelum POP 25 12 17 10 3 S[ ] Top X Top 0 1 2 3 4 5 6 7 8 9 n-1 Dengan : X=S[Top]; 25 12 17 10 S[ ] 3 10 Top X Top

X = S[Top]; Top = Top - 1; Algoritma POP yang benar : 0 1 2 3 4 5 6 7 8 9 n-1 Sebelum POP 25 12 17 10 3 S[ ] Top X Top 0 1 2 3 4 5 6 7 8 9 n-1 Dengan : X=S[Top]; 25 12 17 10 S[ ] 3 10 Top X Top 0 1 2 3 4 5 6 7 8 9 n-1 Dengan : Top = Top -1; 25 12 17 S[ ] 2 10 Top X Top

Algoritma dasar untuk POP X = S[Top]; Top = Top - 1; X = S[Top]; Top-=1; atau : X = S[Top]; Top--; atau : X = S[Top--]; atau :

Top = Top - 1; X = S[Top]; Algoritma POP yang SALAH : 0 1 2 3 4 5 6 7 8 9 n-1 Sebelum POP 25 12 17 10 3 S[ ] Top X Top 0 1 2 3 4 5 6 7 8 9 n-1 Dengan : Top = Top -1; 25 12 17 10 S[ ] 2 Top X Top 0 1 2 3 4 5 6 7 8 9 n-1 Dengan : X = S[Top]; 25 12 10 S[ ] 2 17 Top X Top

b) Proses PUSH void PUSH( void) { Top = Top + 1; S[Top] = X; } Catatan : Semua variabel dibuat bersifat GLOBAL c) Proses POP void POP(void) { X = S[Top]; Top = Top - 1; }

Semua variabel bersifat GLOBAL #include<stdio.h> void AWAL (void); void PUSH(void); void POP(void); define n 10 int S[n]; int Top, X; void main( ) { AWAL( ); - scanf(“%i”, &X); PUSH(); POP( ); printf(“%i”, X); } void AWAL(void) { Top = -1; } void PUSH (void) { Top = Top + 1; S[top] = X; void POP (void) { X = S[top]; Top = Top - 1; Semua variabel bersifat GLOBAL

Diilustrasikan sebagai berikut : Ilustrasi Stack. 0 1 2 3 4 5 6 7 8 9 n-1 25 12 17 10 S[ ] Top 3 Top X Diilustrasikan sebagai berikut : 0 1 2 3 4 5 6 7 8 9 n-1 X X X X S[ ] Top

1.2.4 Kondisi Stack. a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA

Kondisi Stack. a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA lawannya

Kondisi Stack. Kondisi Stack : a. KOSONG 1 b. PENUH c. BISA DIISI 0 1 2 3 4 5 6 7 8 9 n-1 a. KOSONG 1 b. PENUH Top c. BISA DIISI d. ADA ISINYA 0 1 2 3 4 5 6 7 8 9 n-1 2 X X X X Top 0 1 2 3 4 5 6 7 8 9 n-1 3 X X X X X X X X X X Top

Kondisi Stack. Kondis Stack : 1 a. KOSONG b. PENUH 2 c. BISA DIISI 0 1 2 3 4 5 6 7 8 9 n-1 1 a. KOSONG Gambar : ? Top b. PENUH 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : ? 2 X X X X c. BISA DIISI Gambar : ? Top d. ADA ISINYA 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : ? 3 X X X X X X X X X X Top

Kondisi Stack. Kondis Stack : 1 a. KOSONG 1 b. PENUH 2 c. BISA DIISI 0 1 2 3 4 5 6 7 8 9 n-1 1 a. KOSONG Gambar : 1 Top b. PENUH 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : ? 2 X X X X c. BISA DIISI Gambar : ? Top d. ADA ISINYA 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : ? 3 X X X X X X X X X X Top

Kondisi Stack. Kondis Stack : 1 a. KOSONG 1 b. PENUH 3 2 c. BISA DIISI 0 1 2 3 4 5 6 7 8 9 n-1 1 a. KOSONG Gambar : 1 Top b. PENUH 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : 3 2 X X X X c. BISA DIISI Gambar : ? Top d. ADA ISINYA 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : ? 3 X X X X X X X X X X Top

Kondisi Stack. Kondis Stack : 1 a. KOSONG 1 b. PENUH 3 2 c. BISA DIISI 0 1 2 3 4 5 6 7 8 9 n-1 1 a. KOSONG Gambar : 1 Top b. PENUH 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : 3 2 X X X X c. BISA DIISI Gambar : 1 2 Top d. ADA ISINYA 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : ? 3 X X X X X X X X X X Top

Kondisi Stack. Kondis Stack : 1 a. KOSONG 1 b. PENUH 3 2 c. BISA DIISI 0 1 2 3 4 5 6 7 8 9 n-1 1 a. KOSONG Gambar : 1 Top b. PENUH 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : 3 2 X X X X c. BISA DIISI Gambar : 1 2 Top d. ADA ISINYA 0 1 2 3 4 5 6 7 8 9 n-1 Gambar : 2 3 3 X X X X X X X X X X Top

Kondisi Stack. Kondis Stack : cirinya 1 1 3 2 1 2 3 2 3 n-1 0 1 2 3 4 5 6 7 8 9 n-1 cirinya 1 a. KOSONG : ? 1 Top 0 1 2 3 4 5 6 7 8 9 n-1 b. PENUH : ? 3 2 X X X X c. BISA DIISI : ? Top 1 2 0 1 2 3 4 5 6 7 8 9 n-1 d. ADA ISINYA : ? 3 X X X X X X X X X X 2 3 Top

Kondisi Stack. Kondis Stack : cirinya 1 1 3 2 1 2 3 2 3 n-1 0 1 2 3 4 5 6 7 8 9 n-1 cirinya 1 a. KOSONG : Top = -1 1 Top 0 1 2 3 4 5 6 7 8 9 n-1 b. PENUH : ? 3 2 X X X X c. BISA DIISI : ? Top 1 2 0 1 2 3 4 5 6 7 8 9 n-1 d. ADA ISINYA : ? 3 X X X X X X X X X X 2 3 Top

Kondisi Stack. Kondis Stack : cirinya 1 1 3 2 1 2 3 2 3 n-1 0 1 2 3 4 5 6 7 8 9 n-1 cirinya 1 a. KOSONG : Top = -1 1 Top 0 1 2 3 4 5 6 7 8 9 n-1 b. PENUH : Top = n-1 3 2 X X X X c. BISA DIISI : ? Top 1 2 0 1 2 3 4 5 6 7 8 9 n-1 d. ADA ISINYA : ? 3 X X X X X X X X X X 2 3 Top

Kondisi Stack. Kondis Stack : cirinya 1 1 3 2 1 2 3 2 3 n-1 0 1 2 3 4 5 6 7 8 9 n-1 cirinya 1 a. KOSONG : Top = -1 1 Top 0 1 2 3 4 5 6 7 8 9 n-1 b. PENUH : Top = n-1 3 2 X X X X c. BISA DIISI : Top < n-1 Top 1 2 0 1 2 3 4 5 6 7 8 9 n-1 d. ADA ISINYA : ? 3 X X X X X X X X X X 2 3 Top

Kondisi Stack. Kondis Stack : cirinya 1 1 3 2 1 2 3 2 3 n-1 0 1 2 3 4 5 6 7 8 9 n-1 cirinya 1 a. KOSONG : Top = -1 1 Top 0 1 2 3 4 5 6 7 8 9 n-1 b. PENUH : Top = n-1 3 2 X X X X c. BISA DIISI : Top < n-1 Top 1 2 0 1 2 3 4 5 6 7 8 9 n-1 d. ADA ISINYA : Top > -1 3 X X X X X X X X X X 2 3 Top

Kondisi Stack. Kondis Stack : cirinya a. KOSONG Top = -1 b. PENUH 0 1 2 3 4 5 6 7 8 9 n-1 X X X X Top Kondis Stack : cirinya a. KOSONG Top = -1 b. PENUH Top = n-1 c. BISA DIISI Top < n-1 d. ADA ISINYA Top > -1

1.2.4 Kondisi Stack. 1 2 3 Kondisi Stack c i r i n-1 n-1 Top X X X X (posisi Top) Ilustrasi gambar a. b. c. d. KOSONG tak ada isinya PENUH tak bisa diisi lagi BISA DIISI (kebalikan dari PENUH) ADA ISINYA (kebalikan dari KOSONG) Top = -1 Top = n-1 Top < n-1 Top > -1 Gambar 1 Gambar 3 Gambar 1 dan 2 Gambar 2 dan 3 0 1 2 3 4 5 6 7 8 9 n-1 1 0 1 2 3 4 5 6 7 8 9 n-1 Top 2 X X X X 0 1 2 3 4 5 6 7 8 9 n-1 Top 3 X X X X X X X X X X Top

Algoritma PUSH dan POP yang lengkap. 1.2.5 Algoritma PUSH dan POP yang lengkap.

a. Algoritma yang lengkap untuk proses PUSH 0 1 2 3 4 5 6 7 8 9 n-1 Bila ada instruksi PUSH maka akan d isi di elemen nomor : ? X X X X Top

a. Algoritma yang lengkap untuk proses PUSH 0 1 2 3 4 5 6 7 8 9 n-1 Bila ada instruksi PUSH maka akan d isi di elemen nomor : ? X X X X Top 0 1 2 3 4 5 6 7 8 9 n-1 Bila ada instruksi PUSH maka akan d isi di elemen nomor : 4 X X X X Top

a. Algoritma yang lengkap untuk proses PUSH 0 1 2 3 4 5 6 7 8 9 n-1 Bila ada instruksi PUSH maka akan diisi di elemen nomor : 4 X X X X Top 0 1 2 3 4 5 6 7 8 9 n-1 Dalam kondisi PENUH Bolehkah melakukan PUSH ? X X X X X X X X X X Jawab : ? Top

a. Algoritma yang lengkap untuk proses PUSH 0 1 2 3 4 5 6 7 8 9 n-1 Bila ada instruksi PUSH maka akan d isi di elemen nomor : 4 X X X X Top 0 1 2 3 4 5 6 7 8 9 n-1 Dalam kondisi PENUH Bolehkah melakukan PUSH ? X X X X X X X X X X Top Jawab : TIDAK BOLEH

? a. Algoritma yang lengkap untuk proses PUSH Ilustrasi Stack n-1 X X 0 1 2 3 4 5 6 7 8 9 n-1 X X X X Top Bila Stack PENUH, maka Tidak Boleh melakukan PUSH sehingga, sebelum PUSH, perlu dioeriksa apakah Stack dalam keadaan : a. apakah KOSONG b. apakah PENUH c. apakah BISA DIISI d. apakah ADA ISINYA ?

a. Algoritma yang lengkap untuk proses PUSH Ilustrasi Stack 0 1 2 3 4 5 6 7 8 9 n-1 X X X X Top Bila BISA DIISI silahkan PUSH sebaliknya (else) jangan PUSH Bila PENUH jangan PUSH sebaliknya (else) silahkan PUSH

a. Algoritma yang lengkap untuk proses PUSH void PUSH(void) { if ( BISA DIISI ) { Top = Top + 1; S[Top] = X; } else printf( “Stack Penuh”);

a. Algoritma yang lengkap untuk proses PUSH void PUSH(void) { if ( Top < n-1 ) { Top = Top + 1; S[Top] = X; } else printf( “Stack Penuh”); Bila BISA DIISI lakukan PUSH atau void PUSH(void) { if ( Top == n-1 ) printf( “Stack Penuh”); else { Top = Top + 1; S[Top] = X; } Bila PENUH jangan PUSH else lakukan PUSH

b. Algoritma yang lengkap untuk proses POP void POP(void) { if (Top > -1 ) X = S[Top]; Top = Top-1; } else printf(“Stack Kosong”); Bila ADA ISINYA lakukan POP atau : Algoritma yang lengkap untuk proses POP dengan ‘logika terbalik’ void POP(void) { if ( Top == -1 ) printf(“Stack Kosong”); else X = S[Top]; Top = Top - 1; } Bila KOSONG jangan POP else lakukan POP

1.2.6 Contoh Soal PUSH dan POP . Baca sendiri di buku

1.3 Aplikasi Stack. 1.3.1. Memeriksa kelengkapan pasangan kurung buka dan kurung tutup suatu arithmetic statement A + B * ( C - D) / ( E + F ) BENAR A + B * ( C - D / ( E + F ) SALAH Merobah (konversi) bentuk INFIX menjadi bentuk POSTFIX 1.3.2. INFIX POSTFIX A + B + C * D A + (B + C) * D A B + C D * + A B C + D * + 1.3.3. Mencatat Return Address oleh Operating System sewaktu menjalankan sebuah program pada pelaksanaan call suatu function.

1.4 Pointer sebagai penunjuk Stack. Menyiapkan Stack dan Pointer : n-1 0 1 2 3 4 5 6 7 8 9 10 Top BatasAtas Dasar define n 11 - int S[n], *Top, *BatasAtas, *Dasar Dasar = &S[-1]; Top = &S[-1]; BatasAtas = &S[n-1];

if(Top < BatasAtas) Top++; *Top = X; else printf(“Stack Penuh); 0 1 2 3 4 5 6 7 8 9 10 BatasAtas Top Dasar a. Algoritma untuk PUSH if(Top < BatasAtas) Top++; *Top = X; else printf(“Stack Penuh); b. Algoritma untuk POP if(Top > Dasar) X = *Top; Top--; else printf(“Stack Penuh);

1.5 Representasi Stack menggunakan structure. Perhatikan contoh berikut ini : a. Menyiapkan Stack. #define MAXSTACK 10 typedef char ItemType; typedef struct StackTag { int Top; ItemType S[MAXSTACK]; } StackType; tipe : char dibuat 10 elemen S[0] sampai dengan S[9] b. Initialisasi. void Intitialize(StackType *P ) { P->Top = -1; }

1.5 Representasi Stack menggunakan structure. Perhatikan contoh berikut ini : c. Proses PUSH. void PUSH(ItemType item, StackType *P) { if(P->Top >= MAXSTACK-1) printf(“Stack Penuh”); else P->entry[++P->Top] = item; d. Proses POP. void POP(ItemType *Q, StackType *P) { if(P->Top <= -1) printf(“Stack Kosong”); else *Q = P->S[P->Top--]; }

Soal-soal Latihan Mandiri X X X X Latihan Mandiri Buku : halaman 56 Top Soal-I. Untuk Stack yang diilustrasikan pada Gambar diatas : 1. Sebutkan ciri bahwa Stack : a. Kosong b. Penuh c. Bisa diisi d. Ada isinya 2. Tulis algoritma dasar untuk: a. PUSH b. POP 3. Tulis algoritma yang lengkap untuk: a. PUSH b. POP 4. Tulis program (penggalan program) untuk menginput data melalui keyboard satu persatu dan mem Push data tersebut ke Stack sampai Stack penuh tak bisa diisi lagi. 5. Tulis program (penggalan program) untuk mengeluarkan (POP) isi Stack satu per satu dan mencetaknya, sampai Stack menjadi kosong.

6. Dianggap tempat yang tersedia masih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebu ke Stack 7. Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar 8. Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan dipush sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh.

9. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak hanya 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong.

latihan di kelas soal 6 & 7

6. Dianggap tempat yang tersedia masih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebut ke Stack. waktu : 2 menit 1 menit membaca soal 1 menit menyelesaikan jawaban soal

6. Dianggap tempat yang tersedia mesih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebut ke Stack. maksud Soal ?

6. Dianggap tempat yang tersedia mesih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebut ke Stack. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 X X X X 3 INPUT Top Top X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 X X X X x x x x x x x x x x 13 Menginput dan mengisi 10 elemen stack Top Top X

7. Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar waktu : 2 menit 1 menit membaca soal 1 menit menyelesaikan jawaban soal

7. Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar maksud Soal ?

7. Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 X X X X X X X X X X X X X X X 14 Top Top X

7. Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 X X X X X X X X X X X X X X X 14 Top Top X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 X X X X X Mengeluarkan (POP) 10 elemen stack 4 Top Top X

Latihan Kelas di atau dikerjakan rumah di Soal 8 - 9

8. Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan dipush sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh. 9. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak hanya 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong.

8. Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan di push sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh.

8. Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan di push sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh. maksud Soal ?

8. Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan di push sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 Masih tersedia kurang dari 10 lokasi X X X X X X X X X X X X X X X 14 Top Top X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 Diisi sampai penuh X X X X X X X X X X X X X X X x x x x x x n-1 Mengisi stack sebanyak sisa yang tersedia (sampai penuh) karena sisa elemen yang tersedia kurang dari 10 elemen Top Top X

8. Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan di push sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 n-1 Masih tersedia >= 10 lokasi X X X X X X X X X 8 Top Top X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 n-1 Diisi sampai penuh X X X X X X X X X x x x x x x x x x x 18 Mengisi stack sebanyak 10 lokasi karena sisa elemen yang tersedia masih cukup untuk 10 lokasi Top Top X

9. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong.

9. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong. maksud Soal ?

9. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 X X X X X X X X 7 Top Top X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 Mengeluarkan seluruh isi stack , karena isinya kurang dari 10 elemen -1 Top Top X

9. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 x x x x x x x x x x x x x x x 14 Top Top X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1 x x x x x Mengeluarkan 10 elemen stack karena jumlah elemen yang ada isinya >= 10 elemen 4 Top Top X

SOAL-SOAL latihan di kelas

1 Sudah ada sebuah stack yang dibuat dengan int S[n], dengan variabel Top bertipe int sebagai penunjuk posisi isi stack yang ‘paling atas’. Tidak diketahui apakah stack tersebut dalam keadaan kosong, penuh, bisa diisi, atau ada isinya. Tulis program (penggalan program) untuk menginput data melalui keyboard satu persatu dan mem Push data tersebut ke Stack (bila stack tersebut bisa diisi) sampai Stack penuh tak bisa diisi lagi. waktu : 2 menit 1 menit membaca soal 1 menit menyelesaikan jawaban soal

2 Sudah ada sebuah stack yang dibuat dengan int S[n], dengan variabel Top bertipe int sebagai penunjuk posisi isi stack yang ‘paling atas’. Tidak diketahui apakah stack tersebut dalam keadaan kosong, penuh, bisa diisi, atau ada isinya. Tulis program (penggalan program) untuk mengeluarkan isi stack tersebut (bila ada isinya), dan mencetaknya ke layar monitor, satu persatu sampai stack tersebut kosong. waktu : 2 menit 1 menit membaca soal 1 menit menyelesaikan jawaban soal

SOAL-SOAL untuk Pekerjaan Rumah

Soal-II. 1. Sudah ada 2 buah Stack yaitu A dan B, yang dibuat dengan int A[50] dan int B[50], masing-masing dengan penunjuk posisi paling atas dengan nama : TopA, dan TopB. Stack A sudah ada isinya nilai-nilai ujian mahasiswa. Stack B belum ada isinya, dengan ilustrasi pada Gambar-2.11a TopA 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 62 74 80 95 53 70 TopB 65 A B Gambar-2.11a

Susun program ( penggalan program ) untuk memindahkan isi Stack A ke Stack B sedemikian rupa sehingga Stack A menjadi kosong, dan isi Stack B urut terbalik dibandingkan isi Stack A semula, seperti yang diilustrasikan pada Gambar-2.11b. TopA TopB 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 62 65 70 74 53 80 95 95 80 53 70 TopB 74 TopA 65 62 A B A B Gambar-2.11a Gambar-2.11b buku : 58 halaman

2. Sudah ada 3 buah Stack yaitu A, B dan C, yang dibuat dengan int A[50], int B[50], dan int C[50], masing-masing dengan penunjuk posisi paling atas dengan nama : TopA, TopB, dan TopC. Stack A sudah ada isinya nilai-nilai ujian mahasiswa. Stack B dan Stack C belum ada isinya, dengan ilustrasi pada Gambar-2.12a TopA C 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 62 74 80 95 53 70 TopB TopC 65 A B Gambar-2.12a

Semua proses, harus mengikuti prinsip proses stack PUSH dan POP Susun program ( penggalan program ) untuk memindahkan isi Stack A ke Stack B sedemikian rupa sehingga Stack A menjadi kosong, dan isi Stack B urutannya sama dengan isi Stack A semula, seperti yang diilustrasikan pada Gambar-2.12b. Stack C dapat digunakan bila diperlukan. Catatan : Semua proses, harus mengikuti prinsip proses stack PUSH dan POP TopA C 1 2 3 4 5 6 7 -1 TopB 62 74 80 95 53 70 65 B C 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 62 74 80 95 53 70 TopB TopC TopA TopC 65 A B A Gambar-2.12a Gambar-2.12b

3. Sudah ada 3 buah Stack yaitu A, B dan C, yang dibuat dengan int A[50], int B[50], dan int C[50], masing-masing dengan penunjuk posisi paling atas dengan nama : TopA, TopB, dan TopC. Stack A sudah ada isinya nilai-nilai ujian mahasiswa. Stack B dan Stack C belum ada isinya, dengan ilustrasi pada Gambar-2.13a TopA 62 74 80 95 53 70 65 A C 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 TopB TopC B Gambar-2.13 a

Susun program ( penggalan program ) untuk memindahkan isi Stack A ke Stack B sedemikian rupa sehingga yang dipindahkan ke Stack B hanyalah yang nilainya dibawah 70, sedangkan yang nilainya 70 keatas, tetap berada di Stack A ( atau dikembalikan lagi ke Stack A) sehingga ilustrasi hasil prosesnya seperti yang diperlihatlkan pada Gambar-2.13b. TopA C 1 2 3 4 5 6 7 -1 TopB C 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 -1 1 2 3 4 5 6 7 -1 62 74 80 95 74 53 80 62 70 TopB TopC TopA TopC 95 53 65 70 65 -1 A -1 B A B Gambar-2.13a Gambar-2.13b

4. Sudah ada dua buah stack SA dan SB yang dibuat dengan int SA[20] dan SB[20], belum ada isinya. Penunjuk data paling ‘atas’ : TopA untuk SA, dan TopB untuk SB. Sudah ada 10 buah data integer dalam lembar dokumen sebagai berikut : 12, 17, 5, 10, 15, 7, 25, 11, 22, 19 25 22 19 17 15 12 11 10 7 5 9 8 6 4 3 2 1 -1 TopB SA SB TopA Susun program untuk menginput data diatas satu per satu sesuai urutan data ( pertama 12, kedua 17, dan seterusnya ) dan menyimpannya ke dalam stack SA sedemikian rupa sehingga isi stack SA urut nilai menaik seperti yang diilustrasikan pada Gambar-2.14. Stack SB dapat digunakan bila diperlukan. Gambar-2.14 Catatan : Semua proses menggunakan operasi stack PUSH dan POP

5. Sudah ada 3 buah Stack yaitu A, B dan C, yang dibuat dengan int A[50], int B[50], dan int C[50], masing-masing dengan penunjuk posisi paling atas dengan nama : TopA, TopB, dan TopC. Stack A sudah ada isinya nilai-nilai ujian mahasiswa. Stack B dan Stack C belum ada isinya, dengan ilustrasi pada Gambar-2.16a. 55 74 80 95 53 66 59 A C TopA 7 7 7 6 6 6 5 5 5 4 4 4 3 3 3 2 2 2 1 TopB 1 TopC 1 -1 -1 -1 B Gambar-2.16a

Susun program ( penggalan program ) untuk memindahkan isi Stack A ke Stack B sedemikian rupa sehingga Stack A menjadi kosong, dan isi Stack B nilainya urut menaik, dari nilai terkecil sampai dengan nilai terbesar seperti yang diilustrasikan pada Gambar-2.16b. Stack C dapat digunakan bila diperlukan. 55 74 80 95 53 66 59 A B C A 95 80 74 66 59 55 53 B C TopA TopB 7 7 7 7 7 7 6 6 6 6 6 6 5 5 5 5 5 5 4 4 4 4 4 4 3 3 3 3 3 3 2 2 2 2 2 2 1 TopB 1 TopC 1 TopA 1 1 TopC 1 -1 -1 -1 -1 -1 -1 Gambar-2.16a Gambar-2.16a Catatan : Semua proses, harus mengikuti prinsip proses stack PUSH dan POP