• Tidak ada hasil yang ditemukan

VARIASI REPRESENTASI LIST LINIER

N/A
N/A
Protected

Academic year: 2019

Membagikan "VARIASI REPRESENTASI LIST LINIER"

Copied!
14
0
0

Teks penuh

(1)

VARIASI REPRESENTASI

LIST LINIER

List linier biasanya direpresentasi sebagai berikut :

Ini adalah bentuk list linier yang paling dasar dan sederhana. List ini semacam ini mewakili banyak persoalan nyata, misalnya dapat mewakili list of Windows, list of

item pada suatu Menu, list of object pada suatu editor gambar, ... Jadi elemen list adalah suatu objek yang sama.

List tersebut dapat direpresentasi dalam berbagi kamus seperti yang diuraikan pada latihan soal bab sebelumnya.

Jika L adalah sebuah list, dan P adalah alamat sebuah elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L)

Elemen terakhir : Last(L) adalah sebuah elemen beralamat P, dengan Next(P) = Nil

List kosong : First(L) = Nil

Untuk macam-macam keperluan, representasi lojik seperti yang digambarkan di atas dapat dibuat variasinya.

First

List dengan 3 elemen

List Kosong

(2)

Inggriani Liem : " Algoritma dan Pemrograman Prosedural Bagian II", Jurusan Teknik Informatika - ITB Listlinv.doc/Variasi List Linier Lojik -2 6/16/03 9:52 AM

1. List linier yang dicatat alamat elemen pertama dan elemen akhir

List ini dibutuhkan jika seringkali dilakukan operasi terhadap elemen terakhir, misalnya penambahan elemen yang selalu dilakukan di akhir. Fungsi dari LAST adalah untuk menghindari traversal untuk mencapai elemen terakhir. Jadi alamat elemen Last dimemorisasi. Konsekuensinya adalah setiap operasi yang menyangkut elemen terakhir harus memperhatikan apakah Last perlu diubah.

Jika L adalah sebuah list, dan P adalah alamat sebuah elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L) Elemen terakhir : Last(L)=P List kosong : First(L) = Nil

List Kosong

First Last First

List dengan 3 elemen

(3)

2. List yang elemen terakhir menunjuk pada diri sendiri :

List dengan representasi ini dipilih jika tidak dikehendaki mendapatkan suatu alamat P yang bernilai Nil pada akhir traversal. Dengan representasi ini maka traversal selalu “terhenti” pada elemen terakhir. Operasi terhadap elemen terakhir (misalnya penambahan sebuah elemen menjadi element terakhir) tidak memerlukan memorisasi alamat elemen sebelumnya.

Jika L adalah sebuah list, dan P adalah alamat sebuah elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L)

Elemen terakhir : Last(L ) = P, degan Next(P)=P List kosong : First(L) = Nil

List Kosong

First First

(4)

Inggriani Liem : " Algoritma dan Pemrograman Prosedural Bagian II", Jurusan Teknik Informatika - ITB Listlinv.doc/Variasi List Linier Lojik -4 6/16/03 9:52 AM

3a. List dengan elemen fiktif pada ekor :

List dengan elemen fiktif dibuat agar list kosong tidak berbeda dengan list biasa sehingga semua test terhadap list kosong dapat dihapuskan. Dengan elemen fiktif pada ekor, maka insertFirst pada list kosong menjadi sama dengan insertFirst pada list biasa First(L) tidak pernah Nil, melainkan selalu terdefinisi, pada saat CreateList.

Jika L adalah sebuah list, dan P adalah alamat sebuah elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L)

Elemen terakhir : Last(L) = dummy@ List kosong : First(L) = dummy@

dengan dummy@ yang terdefinisi pada saat list kosong dibuat

First

List dengan 2 elemen

List Kosong

(5)

3b. List dengan elemen fiktif pada kepala:

Dengan elemen fiktif pada kepala, maka insertLast pada list kosong menjadi sama dengan insertLast pada list biasa. First(L) tidak pernah Nil, melainkan selalu terdefinisi, pada saat CreateList.

Jika L adalah sebuah list, dan P adalah alamat sebuah elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L)

Elemen terakhir : First(L) = dummy@ List kosong : First(L) = dummy@

dengan dummy@ yang terdefinisi pada saat list kosong dibuat

3.c List dengan elemen fiktif pada kepala dan ekor First

List dengan 2 elemen

List Kosong

(6)

Inggriani Liem : " Algoritma dan Pemrograman Prosedural Bagian II", Jurusan Teknik Informatika - ITB Listlinv.doc/Variasi List Linier Lojik -6 6/16/03 9:52 AM

List ini dipilih jika operasi penambahan dan penghapusan sebagai elemen pertama dan terakhir ingin dihindari. Dengan representasi semacam ini, semua operasi penambahan dan penghapusan menjadi operasi “di tengah” (After)

Jika L adalah sebuah list, dan P adalah alamat sebuah elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L)= dummyFirst@ Elemen terakhir : Last(L) = dummyLast@ List kosong : First(L)=dummyFirst@

dengan dummyFirst@, DummyLast@ yang terdefinisi pada saat list kosong dibuat List Kosong

First

List dengan 2 elemen

(7)

4. List dengan elemen fiktif di awal dan pencatatan alamat elemen akhir

Jika L adalah sebuah list, maka ciri dari list dengan representasi ini adalah : Elemen pertama : First(L)

Elemen terakhir : Last(L)

List kosong : First(L) = dummy@ =Last(L)

dengan dummy@ yang terdefinisi pada saat list kosong dibuat

First

List dengan 2 elemen

List Kosong

First Last

(8)

Inggriani Liem : " Algoritma dan Pemrograman Prosedural Bagian II", Jurusan Teknik Informatika - ITB Listlinv.doc/Variasi List Linier Lojik -8 6/16/03 9:52 AM

5. List dengan elemen fiktif dan elemen terakhir yang menunjuk diri sendiri

Jika L adalah sebuah list, maka ciri dari list dengan representasi ini adalah : Elemen pertama : First(L)= dummyFirst@

Elemen terakhir : Jika P adalah Last(L), Next(Last(L)) = Last(L) List kosong : First(L) = dummyFirst@, Next(First(L)) = First(L) dengan dummyFirst@ yang terdefinisi pada saat list kosong dibuat.

List dengan 2 elemen

First

First

(9)

6. List sirkuler :

List dengan representasi ini sebenarnya tidak mempunyai “First”. First adalah “Current Pointer”. Representasi ini dipakai jika dilakukan proses terus menerus terhadap anggota list (misalnya dalam round robin services pada sistem operasi). Seakan-akan terjadi suatu “loop”. Perhatikan bahwa dengan representasi ini, penambahan dan penghapusan pada elemen pertama akan berakibat harus melakukan traversal untuk mengubah Next dari elemen Last.

Jika L adalah sebuah list, dan P adalah alamat elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L)= P, dengan P adlah address salah satu elemen list Elemen terakhir : Last(L)= P, Next(P)= First

List kosong : First(L) = Nil

First

List sirkuler dengan 1 elemen

First

List sirkuler dengan 3 elemen

First

(10)

Inggriani Liem : " Algoritma dan Pemrograman Prosedural Bagian II", Jurusan Teknik Informatika - ITB Listlinv.doc/Variasi List Linier Lojik -10 6/16/03 9:52 AM

7. List dengan pointer ganda :

List dengan pointer ganda dibutuhkan jika banyak operasi terhadap elemen predesesor, untuk menghindari pencatatan Prec pada beberapa algoritma yang pernah didefinisikan. Perhatikan bahwa representasi ini membuat operasi dasar menjadi sangat kompleks (buat sebagai latihan), dan setiap elemen memakan banyak memori. Jika representasi list kontigu, maka representasi ini menguntungkan karena tidak memerlukan memorisasi secara eksplisit (Prev dan Next dilakukan dengan kalkulasi), struktur menjadi “identik” dengan tabel biasa.

List dengan pointer ganda pada contoh ini adalah list ber-pointer ganda yang paling sederhana. List bentuk lain dapat pula diimplementasi dengan pointer ganda seperti pada contoh-contoh yang berikutnya.

Jika L adalah sebuah list, dan P adalah alamat elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L)

Elemen terakhir : Last(L)=P, dan Next(P)= Nil List kosong : First(L) = Nil

INFO

NEXT PREV

Elemen List dengan pointer ganda :

List dengan 3 elemen

First

1 elemen

First

kosong

(11)

Representasi ini dapat diperluas dengan mencatat LAST:

Jika L adalah sebuah list, dan P adalah alamat elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L)

Elemen terakhir : Last(L)=P dan Next(P)= Nil List kosong : First(L) = Last(P) = Nil

First Last

List dengan 3 elemen

First

1 elemen

Last

First

kosong

(12)

Inggriani Liem : " Algoritma dan Pemrograman Prosedural Bagian II", Jurusan Teknik Informatika - ITB Listlinv.doc/Variasi List Linier Lojik -12 6/16/03 9:52 AM

8. List dengan pointer ganda dan sirkuler:

Jika L adalah sebuah list, dan P adalah alamat elemen list, maka ciri dari list dengan representasi ini adalah :

Elemen pertama : First(L)

Elemen terakhir : Last(L)=P,

Next(P) = First(L) dan Prev(First(L))= P List kosong : First(L) = Nil

9. List yang informasi elemennya adalah alamat dari suatu informasi First

kosong List dengan 3 elemen

First

First

(13)

List dengan implementasi ini dapat menjadi dua kasus : @ menyimpan suatu pointer ke type yang sama, atau boleh ke type yang berbeda. Diskusikan keuntungan dan kerugiannya !

List dengan representasi ini dibutuhkan jika pada saat didefinisikan, belum diketahui Info yang disimpan bertype apa, dan baru dialokasi pada saat eksekusi.

Salah satu representasi list yang pernah digambarkan di atas dapat dipilih untuk list dengan definisi elemen list semacam ini.

Jika bahasa pemrograman untuk melakukan implementasi list ini memungkinkan parametrisasi terhadap type, dan memungkinkan pula adanya bagian varian dari suatu type terstruktur, maka implementasi list ini menjadi jauh lebih mudah dan sederhana, karena kita tidak perlu menyimpan address, melainkan langsung memakai type yang ditentukan pada saat elemn list dibuat.

List Kosong

First

List dengan 3 elemen

First

@ @ @

Ruang memori

(14)

Inggriani Liem : " Algoritma dan Pemrograman Prosedural Bagian II", Jurusan Teknik Informatika - ITB Listlinv.doc/Variasi List Linier Lojik -14 6/16/03 9:52 AM

Latihan soal :

1 Carilah representasi lojik lain yang masih mungkin untuk list linier.

Referensi

Dokumen terkait

Pengaruh Pemanfaatan Media Internet dan Perpustakaan Sebagai Sumber Belajar Terhadap Prestasi Akademik Mahasiswa Progra Studi Pendidikan Ekonomi Universitas Sebelas

Penerapan sistem pengelolaan kehadiran berbasis sidik jari (Finger Print Time Attendance) yang telah dilakukan di lokasi mitra pengabdian dapat menyelesaikan

Sungai Lueng Putu yang melintasi pemukiman penduduk di Kecamatan Bandar Baru dan bermuara di garis pantai Kecamatan Bandar Baru Kabupaten Pidie Jaya.. Sumber : BPBD Kabupaten

Selain itu, variabel penelitian ini melihat pengaruh antara pemahaman, minat dan motivasi terhadap keputusan investasi di pasar modal dan penelitian Kusmawati (2011) menggunakan

Yang menarik pada hal tersebut di MTs Mambaul Hasan Sumberrejo Paiton Probolinggo ini nilai-nilai pembentukan karakter sangat diterapkan dan yang paling berperan aktiv

1) Jasa Akses Internet, maksudnya adalah penyedia jasa sebuah akses internet yang diberikan kepada masyarakat untuk digunakan dan diambil manfaatnya. 2) Alat

Adapun hasil penelitian pada perusahan yang dinyatakan pailit, para pekerja harus mendapatkan hak yang bersifat ekonomis, hak yang bersifat politis dan hak yang bersifat

Tujuan mata kuliah ini adalah untuk memberikan kepada mahasiswa teknik-teknik untuk melakukan pemodelan dari aliran barang, informasi, dan uang di sepanjang rantai pasok dengan