STRUKTUR DATA PERTEMUAN 4 vandawaa@yahoo.com
STACK / TUMPUKAN Stack / tumpukan adalah konsep penyimpanan data dengan cara menggunakan konsep LIFO (Last In First Out) Artinya, data yang terakhir masuk, data tersebut yang pertama kali keluar. Untuk merepresentasikan stack , kita dapat menggunakan variabel statis alias Array atau variabel dinamis alias Pointer. Stack juga dapat digunakan untuk mengecek ekspresi matematika , dan mengubah suatu ekspresi. Infix menjadi Prefix atau sebaliknya.
ARRAY (LARIK) STACK / TUMPUKAN Operasi penyisipan dan penghapusan elemen-elemennya dilakukan pada satu sisi saja yang disebut sebagai “TOP” atau “ATAS”.
ARRAY (LARIK) STACK / TUMPUKAN Operasi pada STACK : PUSH : Memasukkan Data POP : Mengambil Data
STACK / TUMPUKAN
ARRAY (LARIK) STACK / TUMPUKAN
STACK / TUMPUKAN DEKLARASI TUMPUKAN const MaxElemen = 4; type Tumpukan = record Isi : array[1..MaxElemen] of char; Atas : 0..MaxElemen; end; var T : Tumpukan; 4 3 2 1
STACK / TUMPUKAN Prosedur AWAL procedure AWALAN(var T : Tumpukan); 4 3 2 1 procedure AWALAN(var T : Tumpukan); begin T.Atas :=0; end; T.Atas := 0
A Y A M STACK / TUMPUKAN Prosedur PUSH Nilai = A procedure PUSH (var T : Tumpukan; nilai = char); Begin if (T.Atas = MaxElemen) then write(‘Tumpukan PENUH Beroow’) else begin T.Atas := T.Atas + 1; T.Isi[T.Atas] := nilai; end; M T.Atas := 4 4 3 2 1 T.Atas := 3 T.Atas := 2 T.Atas := 1 T.Atas := 0
M A Y A STACK / TUMPUKAN Prosedur POP procedure POP (var T : Tumpukan); Begin if (T.Atas = 0) then write(‘Tumpukan KOSONG Beroow’) else begin write(‘nilai yang diambil : ’ ,T.Isi[T.Atas]); T.Atas := T.Atas - 1; end; M T.Atas := 4 4 3 2 1 A T.Atas := 3 Y T.Atas := 2 A T.Atas := 1 T.Atas := 0
U S U S STACK / TUMPUKAN PUSH Data PUSH(T, ‘U’); PUSH(T, ‘S’); 4 Nilai = U procedure PUSH (var T : Tumpukan; nilai = char); Begin if (T.Atas = MaxElemen) then write(‘Tumpukan PENUH Beroow’) else begin T.Atas := T.Atas + 1; T.Isi[T.Atas] := nilai; end; S T.Atas := 4 4 3 2 1 T.Atas := 3 PUSH(T, ‘U’); PUSH(T, ‘S’); T.Atas := 2 T.Atas := 1 T.Atas := 0
S U S U STACK / TUMPUKAN POP Data POP(T); 4 3 2 1 T.Atas := 4 procedure POP (var T : Tumpukan); Begin if (T.Atas = 0) then write(‘Tumpukan KOSONG Beroow’) else begin write(‘nilai yang diambil : ’ ,T.Isi[T.Atas]); T.Atas := T.Atas - 1; end; S T.Atas := 4 4 3 2 1 U T.Atas := 3 S POP(T); T.Atas := 2 U T.Atas := 1 T.Atas := 0
Tugas 3 Buatlah program dalam bahasa pemrograman Pascal untuk membalikkan kata. Buatlah program dalam bahasa pemrograman Pascal untuk perhitungan perkalian faktorial. **Input banyak kata-kata dan angka diisi saat program running **Gunakan tipe data yang tepat **Gunakan prosedur dalam mendeklarasikan PUSH dan POP.
Tugas 3 1 2
THE END OF THIS DAY KANGGOANG NAAAHHH,,,,!!!!