
Stack (tumpukan) adalah salah satu struktur data yang dapat digunakan untuk menyimpan data. Ide penyimpanan dari metode Stack ini adalah dengan melakukan penyimpanan dan pengambilan data pada bagian teratas dari tumpukan. Selain dapat digunakan pada data berjenis array, stack juga dapat digunakan pada data linked list (stack linked list).
Kode program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
program stack_single_linked_list; { Raka Suryaardi Widjaja Copyright (c) 2016 Gurisa Developers https://www.gurisa.com/ } uses crt; type point = ^data; data = record info:integer; next:point; end; var top:point; input_data, get_data, i, j, k, l, m:integer; ulang_pop, ulang:char; procedure create_linked_list(var top:point); begin top := nil; end; function empty_stack(var top:point):boolean; begin empty_stack := top = nil; end; procedure push_data(var top:point; var input_data:integer); var baru:point; begin new(baru); baru^.info := input_data; baru^.next := top; top := baru; end; procedure pop_data(var top:point; var get_data:integer); var bantu:point; begin if (not empty_stack(top)) then begin get_data := top^.info; bantu := top; top := top^.next; dispose(bantu); end else begin write('<STACK KOSONG>'); end; end; procedure show_stack(top:point; m:integer); var bantu:point; begin if (not empty_stack(top)) then begin bantu := top; while (bantu <> nil) do begin gotoxy(39,17+i+j+k+l+m);write(bantu^.info); bantu := bantu^.next; j := j + 1; end; end else begin write('<STACK KOSONG>'); end; end; begin repeat create_linked_list(top); j := 0; k := 0; l := 0; m := 0; textcolor(15);gotoxy(21,2);write('STACK DATA SINGLE LINKED LIST GURISA.COM'); textcolor(14);gotoxy(21,3);write('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'); textcolor(10);gotoxy(32,5);write('DATA AWAL STACK'); textcolor(15);gotoxy(33,7);show_stack(top, 0); textcolor(10);gotoxy(28,10);write('PUSH DATA KE DALAM STACK'); textcolor(15); for i := 1 to 5 do begin gotoxy(32,12+i);write('Masukan Data : ');readln(input_data); push_data(top, input_data); end; textcolor(10);gotoxy(30,14+i);write('DATA DI DALAM STACK'); textcolor(15);show_stack(top, 0); textcolor(10);gotoxy(30,18+i+j);write('POP DATA DARI STACK'); repeat textcolor(14);gotoxy(30,20+i+j+k+l);write('POP Data [Y/T] : ');readln(ulang_pop); if ((ulang_pop = 'Y') or (ulang_pop = 'y')) and (not empty_stack(top)) then begin textcolor(15);gotoxy(25,22+i+j+k+l);pop_data(top, get_data); k := k + 1; end; until (ulang_pop = 'T') or (ulang_pop = 't') or (empty_stack(top)); textcolor(10);gotoxy(31,23+i+j+k+l);write('DATA AKHIR STACK'); textcolor(15);gotoxy(32,25+i+j+k+l);show_stack(top, 9); textcolor(14);gotoxy(27,28+i+j+k+l+m);write('Ulangi Program [Y/T] : ');readln(ulang); clrscr(); until (ulang = 'T') or (ulang = 't'); end. { Raka Suryaardi Widjaja Copyright (c) 2016 Gurisa Developers https://www.gurisa.com/ } |
Eksekusi


Secara umum data linked list dapat digunakan dengan jumlah yang tidak terbatas (tergantung kapasitas memori). Oleh karena itu, penggunaan linked list sangat bermanfaat dibandingkan array yang sebelumnya harus diinisialisasi terlebih dahulu (pada pascal dan beberapa jenis bahasa pemrograman lainnya).
Summary
Reviewer
Users
Review Date
Reviewed Item
Contoh program stack linked list pascal
Author Rating










(Visited 944 times, 1 visits today)
Leave a Reply