laporan hasil pratikum modul 3

41
LAPORAN HASIL PRATIKUM ALGORITMA DAN PEMOGRAMAN 1 NAMA : YUSUP HIDAYAT NIM : DBC 114 161 KELAS : C MODUL : 3 (LINKED LIST) JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK

Upload: febriagungalikurniawan

Post on 19-Dec-2015

43 views

Category:

Documents


8 download

DESCRIPTION

laporan hasil linked list

TRANSCRIPT

LAPORAN HASIL PRATIKUMALGORITMA DAN PEMOGRAMAN 1

NAMA: YUSUP HIDAYATNIM: DBC 114 161KELAS: CMODUL: 3 (LINKED LIST)

JURUSAN TEKNIK INFORMATIKAFAKULTAS TEKNIKUNIVERSITAS PALANGKARAYA2015

BAB ITUJUAN DAN LANDASAN TEORI1.1 Tujuana. Memahami struktur data linked list.b. Mengetahui implementasi linked list dengan pointer.c. Mampu menggunakan struktur data linked list dalam menyelesaikan masalah pemrograman.

1.2 Landasan TeoriLinked list merupakan struktur data yang memiliki kelebihan dalam efisiensi memori dan kecepatan dalam menyisipkan data. Pada pemakaian sehari-hari istilah list adalah kumpulan linear sejumlah data. Gambar a, dibawah ini menunjukkan list yang berisi daftar belanjaan, yang berupa barang pertama, kedua, ketiga dan seterusnya. Untuk hari berikutnya, maka daftar tersebut bisa berubah sesuai dengan barang yang harus dibeli lagi atau barang yang ridak perlu dibeli lagi. Gambar b, menunjukkan daftar belanjaan semula setelah ditambah dengan 3 barang lain dan menghapus 2 barang (dengan mencoret) yang tidak perlu dibeli lagi. Pepsodent Kain Pel Rinso Sabun LIfebouy Pepsodent Kain Pel Rinso Sabun LIfebouy Sikat gigi Sabun Lux Jovan Musk Oil

Gambar aGambar b

Pengolah data yang kita lakukan dikomputer mirip dengan ilustrasi di atas, yang antara lain berupa penyimpanan data dan pengolahan lain dari sekelompok data yang telah terorganisir dalam suatu urutan tertentu. Linked list berguna untuk menyimpan beberapa data dalam memori. Komponen dasar dari suatu list disebut sebagai node. Sebuah node terdiri dari dua buah bagian. Bagian pertama adalah bagian yang memuat informasi data, bagian kedua adalah bagian yang menunjukkan alamat data berikutnya atau disebut juga dengan bagian penunjuk.

Linked List dengan PointerLinked List sering disebut juga Senarai Berantai. Linked List saling terhubung dengan bantuan variabel pointer. Pointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori. Dalam penulisan pointer biasa digambar dengan panah, sedangkan bagian memori yang ditunjuk digambar dengan kotak, dan isinya ditulis di dalam kotak.Suatu pointer dapat menunjuk ke data bertipe elementer, terstruktur, pointer yang lain, atau tidak bertipe. Jika suatu pointer tidak menunjuk ke mana-mana, pointer itu dinamakan dangling, sedangkan bagian memori yang tidak dapat diakses karena tidak ada pointer yang menunjuk dinamakan garbage (sampah).Pascal menyediakan prosedur standar untuk membuat dan menghapus sebuah variabel dinamis, yaitu new dan dispose. Jika P telah dideklarasikan sebagai sebuah variabel pointer bertipe node, maka pernyataan new(P) akan menciptakan sebuah variabel dinamis baru bertipe node dan menandai lokasinya dengan pointer P. Sedangkan pernyataan dispose(P) akan mengembalikan ruang yang digunakan pada lokasi yang ditunjuk P ke sistem komputer; pointer P menjadi tidak terdefinisikan lagi. Ilustrasi penggunaannya adalah sebagai berikut :P:=NilNew(P)PNilP??123

PP^:=123

??PDispose(P)

Ilustrasi penggunaan pointer

Pointer-pointer yang membentuk linked list

Deklarasi Linked List dengan PointerTypetipeinfo = recordnim : string;nilai : integer;end;tipeptr = ^tipenode;tipelist = tipeptr;tipenode = recordinfo : tipeinfo;next : tipeptr;end;var list : tipelist;

Elemen-elemen list berupa record yang memuat field berisi informasi data serta sebuah field bertipe pointer yang berisi alamat elemen berikutnya.

Operasi pada Linked List1. Membuat ListProsedur ini berupa prosedur untuk membuat list pertama kali, yaitu mengalokasikan pointer untuk head. Nilai awal dari list adalah kosong (nil).

procedure inisialisasi (var list : tipelist);beginnew(list);list := nil;end;2. Mengetahui Panjang List (Jumlah Elemen)Mengetahui panjang list dilakukan dengan menghitung seluruh node. Caranya adalah mengunjungi setiap node dan menaikkan nilai counter hingga dijumpai node terakhir. Contoh fungsinya adalah :function size (list : tipelist) : integer;var i : integer;begini := 0;while list nil dobegini := i + 1;list := list^.next;end;size := i;end;

3. Menyisipkan Node BaruMenyisipkan node baru pada list dilakukan dengan cara mencari lokasi tempat node baru akan disisipkan, kemudian menyisipkan node baru tersebut. Hal ini dapat dilakukan menggunakan bantuan sebuah pointer untuk mencari sebuah node yang akan tersambung langsung dengan node baru. Kemudian, node baru dapat disisipkan pada lokasi sebelum atau sesudah node tersebut. Sebagai contoh, prosedur berikut adalah untuk menyisipkan node baru sebelum node:procedure sisipnode (var list : tipelist; IB : tipeinfo);var NB, ptr : tipeptr;ketemu : boolean;beginnew(NB);NB^.info := IB;NB^.next := nil;if list = nil then list := NBelseif IB.nim = IB.nim thenketemu := trueelse ptr := ptr^.nextend;NB^.next := ptr^.next;Ptr^.next := NBendend;

4. Mengganti Nilai Informasi pada Suatu Node dalam ListMengganti nilai informasi hanya akan mengganti info pada suatu node tanpa menghapus node tersebut. Hal ini dapat dilakukan dengan mencari node yang sesuai dengan nilai yang akan diganti, selanjutnya mengganti nilai lama dengan nilai yang baru.Berikut ini contoh prosedur untuk mengganti nilai pada suatu list :a. Mengganti nilai mahasiswa berdasarkan nomor mahasiswa,b. Mengganti semua node yang mempunyai nilai tertentu (nilai lama) dengan nilai yang baru.procedure gantinode1 (var list : tipelist; KunciGanti : string; nilaibaru : integer);var ptr : tipeptr;beginnew(ptr);ptr := list;while (ptr nil) and (ptr^.info.nim KunciGanti) doptr := ptr^.next;if ptr nil thenptr^.info.nilai := nilaibaruend;

procedure gantinode2 (var list : tipelist; nlama, nbaru : integer);var ptr : tipeptr;beginnew(ptr);ptr := list;while (ptr nil) dobeginif ptr^.info.nilai := nlama thenptr^.info.nilai := nbaru;ptr := ptr^.nextend;end;5. Menghapus Node dari Suatu ListMenghapus node adalah menghapus sebuah elemen dari list. Hal ini dapat dilakukan dengan mencari/menandai node yang akan dihapus, yaitu node yang memuat nilai seperti yang akan dihapus, kemudian mengarahkan pointer pada node sebelumnya ke arah node sesudah node yang akan dihapus, dan kemudian menghapus node yang dimaksud.procedure hapusnode (var list : tipelist; KunciHapus : string);var ptr1, ptr2 : tipeptr;beginnew(ptr1);new(ptr2);ptr1 := nil;ptr2 := nil;while (ptr2^.info.nim KunciHapus) dobeginptr1 := ptr2;ptr2 := ptr2^.nextend;if ptr1 = nil thenlist := list^.nextelseptr1^.next := ptr2^.nextdispose(ptr2)end;.

BAB IILANGKAH KERJA1. Buatlah program untuk menambah, menghapus dan menampilkan data dengan linier linked list dan data tersebut harus urut.

BAB IIIPEMBAHASAN3.1 Pembahasan CodingProgram Linked_List;uses crt;

Merupakan bagian judul dari program. Judul programnya adalah Linked_List. Di dalam Pascal, judul program sifatnya opsional dan tidak signifikan di dalam program, sehingga tidak adapun tidak apa-apa. Judul program jika ditulis, memiliki aturan khusus didalam penulisannya, yaitu harus terletak pada awal program, tidak boleh diberi spasi, dan diakhiri titik koma. Oleh karema itu, umumnya untuk menulis judul program untuk memisah kata satu dengan yang lain digunakanlah tanda garis bawah (_).Penggunaan uses crt sangat penting, digunakan untuk memanipulasi layar teks (windowing, peletakan cursor di layar, Color pada teks, kode extended keyboard dan lain sebagainya). Tanpa sintaks ini, clrscr tidak akan dapat dikenali oleh compiler Pascal.Perlu diingat bahwa, setiap pernyataan perlu diberikan tanda semicolon ;.type simpul=^data; data=record nim:string; nilai:integer; next:simpul;end;

Deklarasi ini digunakan untuk menyebutkan tipe setiap data yang akan digunakan pada program Pascal. Dengan menggunakan perintah Type, programmer bisa menjadikan kata lain yang difungsikan sebagai sebuah tipe data. Dalam hal ini, dapat dirincikan bahwa simpul merupakan nama perubah yang bertipe pointer. data merupakan nama pointer-nya. data juga dideklarasikan sebagai sebuah record. Tipe data record digunakan untuk membuat struktur data yang tersusun atas elemen-elemen yang jumlahnya tertentu dan tipe data elemennya dapat berbeda-beda. Dalam program ini, nim merupakan nama field dari data yang bertipe data string dan nilai bertipe data integer. Untuk next sendiri ialah nama field yang bertipe data pointer. Pada record list, untuk menentukan record selanjutnya dilakukan dengan mendeklarasi sebuah pointer variabel next yang menunjuk ke record itu sendiri. end untuk mengakhiri pendeklarasian ini.var awal, akhir:simpul; pilih:char;

Bagian ini juga masih merupakan bagian pendeklarasian. Deklarasi ini digunakan untuk menyebutkan setiap variabel penampung data yang akan digunakan pada program Pascal beserta tipe datanya.Var adalah instruksi yang menandakan diadakannya pendeklarasian variabel. awal dan akhir bertipe simpul, yang mana sebelumnya simpul telah dideklarasikan sebagai sebuah pointer. pilih bertipe data char, yang mampu menampung 1 buah karakter.Setiap pernyataan perlu diberikan tanda semicolon ;. Ini bertujuan sebagai penanda akhir suatu pernyataan. Untuk pendeklarsian menggunakan var tidak perlu adanya end.function MENU:char;var P:char;beginrepeatclrscr;writeln('MENU PILIHAN : ');writeln('1. Tambah Data');writeln('2. Urut Belakang);writeln('3. Hapus Data');writeln('4. Exit');write('Pilih salah satu [1/2/3/4] :');readln(P);until p in ['1'..'4'];MENU:=P;end;

writeln('4. Urut Depan');writeln('4. Hapus Data');writeln('5. Exit');write('Pilih salah satu [1/2/3/4/5] :');readln(P);until p in ['1'..'5'];MENU:=P;end;

Fungsi ini dibuat sebagai tampilan menu yang nantinya ditampilkan sejak awal program dijalankan. Karena merupakan suatu deskripsi fungsi, maka diperlukan adanya nilai balik bagi fungsi ini.MENU merupakan nama dari fungsinya. Penamaan ini dilakukan sebagai penginisialisasian atau penanda jika nantinya fungsi ini ingin dijalankan. Karena fungsi dapat memberikan nilai balik, maka fungsi memerlukan tipe data yang langsung diberikan. Tipe data pada fungsi ini adalah char, yang merupakan tipe data penampung sebuah karakter.Var adalah instruksi yang menandakan diadakannya pendeklarasian variabel. Hanya ada satu variabel yang dideklarasikan didalam fungsi ini sebagai variabel lokal, yaitu p dengan tipe data char.Begin berfungsi untuk membuka atau mengawali bagian deskripsi pada fungsi ini.Repeat merupakan salah satu bentuk perulangan yang memberikan kondisi diakhir, berbeda dengan for do dan while do yang memberikan kondisinya diawal. Kondisi pada repeat ditandai dengan penggunaan until. Ditandai bahwa pernyataan setelah repeat akan terus diulang hingga nilai input variabel p ialah karakter diantara bilangan 1 sampai 5.Clrscr, digunakan untuk membersihkan layar output sebelumnya. Sehingga tampilan output akan terlihat lebih rapi, tanpa tulisan-tulisan bawaan lain yang tidak diinginkan.Writeln berfungsi untuk menampilkan data didalam kurung dan memberikan jarak bagi pernyataan agar tampil dibaris selanjutnya. Yang akan ditampilkan diantaranya ialah tulisan 'MENU PILIHAN : , 1. Tambah Data, 2. Urut Belakang, 3. Urut Depan, 4. Hapus Data, dan 5. Exit. Untuk Pilih salah satu [1/2/3/4/5] juga akan ditampilkan, tetapi karena hanya menggunakan perintah write, maka perintah selanjutnya yaitu readln akan ditampilkan dibaris yang sama. Readln akan menunggu inputan yang ditampung oleh variabel p.Karakteristik pada fungsi adalah pengenal fungsinya dapat langsung menampung nilai sesuai dengan tipe data yang dideklarasikan. Sehingga, MENU:=p artinya ialah End berfungsi untuk mengakhiri pendeskripsian fungsi.procedure Tambah(N:integer);var baru:simpul;begin if N 0 then begin writeln('Menambah Data Baru'); end; writeln; baru:=data_baru; if awal=nil then akhir:=baru else baru^.next:=awal; awal:=baru;end;

Prosedur ini dibuat dengan tujuan sebagai sarana untuk menambahkan data pada program linked list. Nama prosedurnya ialah Tambah. Dilakukan pendeklarasian didalam kurung yang bertujuan sebagai pintu masuk data bagi prosedur Tambah. Variabel N yang bertipe data integer.Didalam prosedur ini dideklarasikan 1 variabel lokal, yaitu baru yang bertipe simpul. Maka baru juga akan berfungsi sebagai sebuah pointer.Begin untuk mengawali prosedur.Diawali dengan proses pemilihan suatu kondisi dengan perintah if then. Kondisi yang ditulis ialah if N 0 yang artinya jika N lebih atau kurang dari 0 (bukan 0), maka masuklah kepernyataan dibawahnya, namun jika N sama dengan 0 maka pernyatan ini tidak akan dieksekusi.Untuk terpilihnya kondisi N 0, maka pernyataan lanjutannya yang akan dieksekusi. Dimulai dengan begin untuk membuka pengeksekusian badan program prosedur ini. Perintah writeln akan menampilkan tulisan Menambah Data Baru dilayar output, dan memisahkan dengan hasil output selanjutnya dibaris berikutnya. End untuk mengakhiri pernyataan ini didalam pemilihan if then. Writeln ini digunakan untuk memberi jarak 1 baris kosong dengan output selanjutnya. Variabel Baru bertindak sebagai pointer di prosedur ini yang akan mengarahkan data ke fungsi data_baru yang akan dipanggil disini. Pemilihan if then else ini untuk mengecek keadaan data awal dan akhir pada linked list. Nil merupakan reserved word dalam Pascal, di mana pointer yang bernilai nil dianggap tidak menunjuk alamat memori manapun. Nil biasa digambarkan dengan lambang ground. Sehingga kemungkinan pertama yang dideskripsikan seperti if awal = Nil saat variabel awal yang dideklarasikan sebagai sebuah simpul tidak menunjuka kesuatu alamat memoripun (kosong) maka variabel akhir sama dengan simpul. Sedangkan untuk kemungkinan lainnya yang ditandai dengan else, maka penambahan data akan variabel baru sebagai simpul ke record data selanjutnya. Awal sama dengan pointer baru.Penulisan end selanjutnya menyatakan akhir dari prosedur ini.

procedure cetak;var bantu:simpul; i:integer;begin i:=1; writeln('Membaca isi linked list'); bantu:=awal; if bantu=nil then writeln('Linked list masih kosong') else while bantu nil do beginwriteln('List: ',i:2,'--> Nim : ',bantu^.nim); writeln(i:15,'Nilai: ',bantu^.nilai); bantu:=bantu^.next; inc(i); end; repeat until keypressedend;

Prosedur ini digunakan untuk menampilkan semua data pada linked list yang telah diinputkan jika ada dan memberitahukan linked list masih kosong jika tidak ada data didalamnya. Data yang ditampilkan menggunakan prosedur ini akan ditampilkan secara urut belakang (descending).Nama prosedurnya ialah cetak. Dilakukan pendeklarasian variabel lokal untuk prosedur ini yang ditandai dengan perintah var. Ada 2 variabel yang dideklarasikan. bantu bertipe simpul (pointer) dan i bertipe data integer (menampung bilangan bulat).Begin untuk mengawali prosedur.Diawali dengan pemberian nilai pada variabel i, yaitu 1. Perintah writeln akan menampilkan tulisan Membaca isi linked list dilayar output, dan memisahkan dengan hasil output selanjutnya dibaris berikutnya. Variabel bantu sama dengan awal. Masuk kebagian pemilihan if then else, karena ada 2 kemungkinan yaitu apakah data kosong atau tidak. if bantu = nil merupakan kemungkinan pertama, yang artinya jika pointer bantu yang dideskripsikan sama dengan awal tidak menunjuk pada alamat memori apapun (nil) maka perintah writeln akan dieksekusi dan menampilkan tulisan Linked list masih kosong. Namun, jika kemungkinan ini salah program akan mengeksekusi kemungkinan lain yang ditandai dengan perintah else. Perintah yang akan dieksekusi adalah sebagai berikut. ... while bantu nil do beginwriteln('List: ',i:2,'--> Nim : ',bantu^.nim);writeln( 'Nilai: ',bantu^.nilai); bantu:=bantu^.next; inc(i); end; repeat until keypressed...While do merupakan suatu jenis perintah perulangan (loop). Ketika pointer bantu yang dideskripsikan sama dengan awal tidak bernilai nil, maka masuklah ke badan perulangan while do. Diawali dengan perintah begin. Writeln yang pertama ini akan menampilkan tulisan List: diikuti dengan nilai variabel i yang diberi perintah lanjutan :2 agar hasilnya ditampilkan masuk kedalam 2 karakter. Dan diikuti tulisan Nim : juga nilai dari variabel nim yang diarahkan oleh pointer bantu. Begitu pula untuk bagian penampilan nilai. Writeln yang pertama ini akan menampilkan tulisan Nilai :: juga nilai dari variabel nilai yang diarahkan oleh pointer bantu. Pointer bantu sama dengan pointer bantu diarahkan oleh pointer next ke data berikutnya jika ada. Kedinamisan terlihat jelas disini. Perulangan akan berlanjut sampai banyaknya data yang di input tanpa harus ditentukan nilai maksimalnya diawal. Inc(i) artinya naikkan nilai variabel i satu angka disetiap perulangannya.Repeat until keypressed difungsikan untuk menunggu penekanan suatu karakter keyboard.End terakhir pada prosedur, untuk mengakhiri pendeklarasian prosedur enqueue.procedure cetak2;var bantu,B:simpul; i:integer;begin bantu:=awal; awal:=akhir; repeat beginb:=bantu; while bantu^.next akhir do b:=b^.next; akhir^.next:=b; akhir:=b; end; until akhir=bantu; akhir^.next:=nil;end;

Prosedur dengan nama cetak2 difungsikan untuk membalik pointer. Pada proses pemanggilan nanti, prosedure membalik pointer ini akan dijalankan dengan prosedur cetak. Hal ini dikarenakan pada prosedur ini hanya akan membalik pointer, tidak sampai menampilkan data yang dibalik. Dengan tambahan prosedur ini data yang ditampilkan dapat urut depan (ascending). Dilakukan pendeklarasian variabel lokal untuk prosedur ini yang ditandai dengan perintah var. Ada 3 variabel yang dideklarasikan. bantu dan B bertipe simpul (pointer). i bertipe data integer (menampung bilangan bulat).Begin untuk mengawali prosedur.Dideskripsikan pointer bantu bernilai sama dengan pointer awal, dan pointer awal bernilai sama dengan pointer akhir posisinya. Yang artinya pointer bantu diposisikan didata paling akhir.Perulangan repeat digunakan untuk mengulang proses pembalikan pointer sampai data terbelakangnya sama dengan pointer bantu. Hal ini ditandai dengan pernyataan until akhir=bantu. Begin untuk mengawali badan program yang diulang. Pointer B bernilai sama dengan pointer bantu. Selanjutnya ada perulangan while do. Perulangan ini dibuat agar proses pembalikan pointer sampai data terdepan dari data terbelakang. Perulangan ini berkondisi ketika pointer bantu yang diarahkan next tidak berposisi di akhir (data terbelakang), maka perintah selanjutnya pun dieksekusi. Perintah selanjutnya yang pertama ialah pointer b bernilai sama dengan pointer b yang diarahkan pointer next. Pointer akhir mengarah ke pointer next yang bernilai sama dengan pointer b yang telah berposisi di data akhir. Hingga akhirnya arah pointer berbalik mengarah kedepan. Namun, pembalikan pointer ini hanya terjadi sekali, sehingga data-data yang lain belum dibalik pointernya. Perulangan terjadi karena pointer bantu belum berada diujung data. akhir:=b; menunjukkan bahwa pointer akhir bernilai sama dengan pointer b.Setelah perulangan selesai dan kondisi terpenuhi, dibawah perintah until dapat dilihat bahwa pointer akhir diarahkan oleh pointer next ke memori kosong. Yang artinya sudah tidak menunjuk kedata manapun atau pointer akhir berada diujung data.procedure Hapus;beginif awal nil thenbeginawal:=awal^.next;writeln(Linked list terhapus);endelsewriteln('Linked list kosong');repeat until keypressedend;

Disini perintah untuk menghapus data dijalankan. Sehingga data linked list akan dihilangkan dari memori.Nama prosedurnya adalah Hapus. if awal nil merupakan jenis pemilihan yang menjelaskan jika awal tidak bernilai nil atau sedang mengarahkan kesuatu memori yang artinya linked list memiliki data maka eksekusi instruksi selanjutnya, namun jika awal bernilai nil maka instruksi selanjutnya akan dilewati, melainkan akan mengeksekusi atau mencari kemungkinan lain jika ada dengan ditandai perintah else dan mengeksekusi perintah didalamnya.Ketika awal tidak bernilai nil (linked list tidak kosong), maka perintah selanjutnya adalah begin yang artinya mengawali bagian deskripsi instruksi pemilihan ini. Awal sama dengan awal diarahkan oleh pointer next ke data berikutnya. Yang artinya simpul awal diputus 1 dan data berikutnya yang diarahkan oleh awal. Writeln akan menampilkan tulisan Linked list terhapus. End untuk mengakhiri badan pemilihan ini.Untuk kemungkinan lain yang ditandai dengan else, akan dieksekusi perintah writeln yaitu Linked List kosong.Repeat until keypressed difungsikan untuk menunggu penekanan suatu karakter keyboard.End terakhir pada prosedur, untuk mengakhiri pendeklarasian prosedur enqueue.{main program}begin awal:=nil; akhir:=nil; repeat pilih:=MENU; clrscr; case pilih of '1':Tambah(1); '2':Cetak;'2':beginCetak2;Cetak;Readkey;Cetak2;End; '4':Hapus; '5':exit; end; until pilih='6' end.

Ini merupakan bagian program utama yang akan dieksekusi pertama kali oleh program Pascal. Kurung kurawal merupakan bagian keterangan, yang tidak akan dieksekusi oleh program Pascal. Setiap pernyataan perlu diberikan tanda semicolon ;. Ini bertujuan sebagai penanda akhir suatu pernyataan.Program utama diawali dengan pernyataan Begin sebagai penanda bahwa program tersebut akan masuk kebagian badan program. Diberikan nilai awal kepada variabel awal dan akhir yaitu nil (tidak mengarah kememori manapun).Repeat merupakan sebuah pengulangan yang kondisinnya diberikan di bagian akhir. pilih:=MENU artinya variabel p sama dengan prosedur MENU. Maka akan ditampilkan fungsi MENU. Perintah clrscr digunakan untuk membersihkan layar output sebelumnya.Nilai input p yang ada pada fungsi MENU memiliki 5 pilihan yaitu tambah data, urut depan, urut belakang, hapus data, dan keluar. Sehingga nilai input-nya haruslah diantara 1 sampai 5 dan tidak boleh lebih. Untuk itu diperlukan instruksi pemilihan case of. Karena fungsi MENU sama dengan variabel p, dan telah dideklarasikan juga bahwa variabel pilih sam dengna MENU, untuk bentuk perintah pemilihan case of seperti ini case pilih of. Untuk nilai pilih adalah 1, maka kondisi paling pertama yang akan langsung dieksekusi. Jika bernilai 2, maka kondisi kedua dan jika bernilai 3, maka kondisi ketiga yang dieksekusi. Jika bernilai 4, maka kondisi pertama, kedua dan kondisi ketiga akan dilewatkan dan yang dieksekusi kondisi keempat. Begitu juga untuk kondisi ke-5. Lalu case of ini ditutup dengan end.Untuk kondisi pertama, yaitu berbentuk 1:Tambah(1) , yang artinya akan memanggil dan menjalankan perosedur Tambah untuk menambah data. Nilai didalam kurung ditampung oleh variabel n.Untuk kondisi kedua, yaitu berbentuk 2:Cetak , yang artinya akan memanggil dan menjalankan perosedur Cetak untuk menampilkan data secara urut dari data terbelakang. Khusus kondisi ketiga memiliki logika pemanggilan sendiri. Kondisi ketiga, berbentuk : '3':beginCetak2;Cetak;Readkey;Cetak2;End; Begin digunakan karena isi dari kondisi ketiga ini lebih dari 1 pernyataan. Pada kondisi ini program akan memanggil prosedur cetak2 yang bertugas untuk membalik pointer dari belakang ke depan. Sehingga saat dipanggil prosedur cetak, akan menampilkan data secara urut dari depan ke belakang. Readkey digunakan agar prosed menampilkan tidak langsung hilang. Dan setelah ditekan sembarang tombol di keyboard, prosedur cetak2 akan dipanggil kembali yang artinya pointer akan dibalik menjadi kekeadan semula kembali.Untuk kondisi keempat, yaitu berbentuk 4:Hapus , yang artinya akan memanggil dan menjalankan perosedur Hapus untuk menghapus data. Untuk kondisi kelima, yaitu berbentuk 5:exit , tidak akan menampilkan prosedur apapun melainkan perintah exit merupakann perintah dalam Pascal yang berarti program akan mengeluarkan program yang dijalankan.. End disini merupakan end terkhir yang berfungsi untuk mengakhiri pendeklarasian bagian main program ini.

BAB IVKESIMPULANLinked list merupakan sekumpulan data yang disambungkan oleh pointer. Banyaknya data bersifat dinamis seusai dengan banyaknya data yang diinputkan. Berbeda dengan penggunaan array yang bersifat statis dan memerlukan nilai batas maksimal terlebih dahulu. Untuk ilustrasi dari linked list sebagai berikut.

Pointer-pointer yang membentuk linked list

Diketahui juga bahwa nama lain dari pointer ialah simpul. Ada beberapa instruksi yang selalu dipakai dalam linked list selain pointer, yaitu nil dan next (berikut).Untuk nil merujuk pada tidak adanya pointer yang mengarah pada memori. Penggunaanya akan berpengaruh pada pengecekan apakah linked list kosong atau tidak.Untuk next merujuk sebagai pointer pengarah ke data selanjutnya. Penggunaannya berpengaruh pada pengecekan data selanjutnya dan penghapusan data sebelumnya.Saat pencetakan data, agar semua data dapat ditampilkan maka diperlukan penggunaan perulangan while do. Nilai-nilai yang ditampilkan diarahakan oleh pointer kealamt memori yang menyimpan data inputan. Ada penggunaan perintah baru yaitu inc (increase) yang berfungsi untuk menambahkan data bernilai integer satu angka.

BAB VDAFTAR PUSTAKASantosa, M.Sc, Ir. P. Insap. 2004. Struktur Data Menggunakan TURBO PASCAL 6.0. Yogyakarta. ANDI OFFSET.Penyusun, Tim. 2015. Modul Praktikum Struktur Data. Jurusan Teknik Informatika : Universitas Palangkaraya. Palangkaraya.Ri, Elasha. (2013). Senarai (Linked List) Pascal. From, http://esarkuliah.blogspot.com/2013/04/senarai-linked-list-pascal.html, (online, diakses 20 April 2015)Anonim. (2009). ELEMEN ELEMEN BAHASA DALAM PASCAL. From http://www.nusinau.com/elemen-bahasa-dalam-pascal.html, (online, diakses 30 Oktober 2014)Muntahal, Fauzan. (2013). Pengertian Tipe Data. From http://siteblogforu.blogspot.com/2013/09/pengertian-tipe-data.html, (online, diakses 6 Novermber 2014)Arys, Kang. (2013). Pointer Dalam Turbo Pascal. From, http://indahnya---berbagi.blogspot.com/2013/04/pointer-dalam-turbo-pascal.html, (online, diakses 5 Mei 2015)Ridwan. (Tanpa Tahun). Penulisan Daftar Pustaka yang Baik dan Benar. From http://ridwantask.com/bahasa/penulisan-daftar-pustaka-yang-baik-dan-benar.html, (online, diakses 6 Oktober 2014)

BAB VLAMPIRAN# Program Linked List Coding pada Turbo Pascal

Output ProgramTampilan Menu

Tampilan Pilihan Menu 1 dan penambahan 2 data

Tampilan Cetak Data Pilihan 2 Urut Belakang

Tampilan Cetak Data Pilihan 2 Urut Belakang

Tampilan Hapus Data