Buku Ajar Struktur Data

Ukuran: px
Mulai penontonan dengan halaman:

Download "Buku Ajar Struktur Data"

Transkripsi

1 B a g i a n Tujuan Instruksional Khusus Pokok Bahasan Mahasiswa mampu menjelaskan struktur data linier List berkait. Mahasiswa mampu menjelaskan operasi-operasi yang dilakukan pada struktur data List berkait. Struktur data List secara umum. Representasi List berkait dalam memori. Operasi pada List berkait: traversing, searching, Penyisipan, penghapusan. stilah list sering digunakan dalam kehidupan sehari-hari dan merujuk pada daftar dari sejumlah item. Gambar.(a) adalah daftar I item barang yang akan dibeli, yang berisi elemen pertama, elemen kedua,...., dan elemen terakhir. Sering terjadi, dari daftar tersebut ada yang item data dihapus dan ada item data yang akan ditambahkan. Gambar.(b) adalah daftar item barang yang akan dibeli setelah ada item data yang ditambahkan dan item data yang dihapus. Susu Telur Mentega Tomat Apel Jeruk Roti Susu Telur Mentega Tomat Apel Jeruk Roti Jagung buncis (a) (b) Gambar.. Daftar belanja harian Kadwi Suharsono

2 Pemrosesan data sering melakukan penyimpanan dan pemrosesan yang diorganisasikan ke dalam list. Salah satu cara untuk menyimpan data tersebut adalah dengan menggunakan array, seperti yang telah dibahas di bagian. Hubungan linier antara elemen data suatu array linier merefleksikan hubungan fisik data yang tersimpan dalam memori. Hal ini memudahkan dalam menghitung alamat elemen data array. Sebaliknya Array mempunyai kelemahan, misalnya, relatif terlalu mahal untuk menyisipkan dan mengahapus elemen dari suatu array. Karena array biasanya menempati suatu blok memori, sangat sulit untuk melipat gandakan atau menjadikan kali lipat ukuran array pada waktu diperlukan. Oleh karena itu array disebut juga dengan struktur data statis. Cara lain untuk menyimpan list dalam memori adalah dengan menambah field ke dalam list sebagai pointer, yang berisi alamat dari elemen berikut dalam list. Elemen berikutnya dari suatu elemen tidak harus menempati lokasi memori yang berdekatan. Cara ini memudahkan dalam proses penyisipan dan penghapusan elemen dari list. Oleh karena itu jika diperlukan suatu aplikasi yang sering melakukan proses searching pada seluruh data agar dapat dilakukan proses penyisisipan dan penghapusan data ke dalam list, seperti pengolah kata, data sebaiknya tidak disimpan dalam array tetapi disimpan dalam list yang menggunakan pointer. Jenis struktur data berikut ini adalah list berkait (linked list). Suatu list berkait, atau list satu-arah adalah sekumpulan elemen data linier, yang disebut dengan simpul (node), urutan liniernya ditentukan oleh pointernya. Oleh karena itu setiap simpul dibagi menjadi bagian, yaitu pertama berisi informasinya, dan bagian kedua yang berisi adalah field penghubung atau field pointer berikut, yang berisi alamat dari simpul berikutnya. Gambar. adalah diagram skematik dari suatu list berkait dengan simpul, setiap simpul digambarkan memiliki bagian. Sebelah kiri adalah adalah representasi dari bagian informasi dari simpul, yang dapat berupa keseluruhan record suatu item data, misalnya berisi data Nama, Alamat dan seterusnya. Bagian kanannya representasi dari field berikutnya simpul, yang digambarkan adanya anak panah yang menuju ke simpul berikutnya dalam list. Pointer dari simpul terakhir berisi nilai khusus, yang disebut dengan pointer null, yang merupakan alamat yang salah. Nama atau Start field pointer berikut dari simpul x bagian informasi dari simpul Gambar.. list berkait dengan simpul Dalam penggunaan praktis, angka atau bilangan negatif digunakan untuk pointer null. Pointer null, dalam diagram disimbolkan dengan x, merupakan tanda akhir dari list. Suatu list berkait juga mempunyai variabel Kadwi Suharsono

3 pointer, yang sering disebut dengan NAMA atau START, yang berisi alamat simpul pertama dari list; oleh karena itu dalam diagram terdapat panah dari Nama ke simpul pertama dari list. Pada kondisi tertentu, yaitu list tidak mempunyai simpul, atau listnya kosong, maka pointer NAMA atau START akan berisi pointer null. Contoh.. Sebuah kamar rumah sakit berisi tempat tidur, yang terisi pasien, seperti yang tertera dalam gambar.. Daftar pasien disusun berdasarkan nama secara alfabetis. Untuk itu diperlukan field pointer, NEXT. Di sini variabel START berisi, karena Arjuno adalah pasien menempati tempat tidur no. Arjuno memiliki pointer NEXT yang berisi. Karena Durno menempati tempat tidur no, maka Durno adalah pasien berikutnya Arjuno. Pointer NEXT-nya Durno berisi. Karena Fetruk menempati tempat tidur no, maka Fetruk adalah pasien berikutnya Durno. Dan seterusnya. Pointer simpul terakhir dalam list, Semar, berisi pointer Null, dengan simbol. Beberapa tanda panah diberikan untuk menunjukkan hubungan di antara simpul dalam list. START Nobed Pasien Next Kresno Durno Mbilung Arjuno Limbuk Gareng Semar Fetruk Narodo Gambar.. List Berkait Pasien Representasi List Berkait dalam Memori Jika LIST adalah sebuah list berkait, maka LIST tersebut akan disimpan di memori seperti berikut ini. Pertama, LIST memerlukan array linier, misalnya INFO dan LINK. Isi dari INFO[K] adalah bagian informasi dan isi LINK[K] adalah pointer ke simpul berikut dalam LIST. LIST juga memerlukan variabel START, yang berisi alamat dari simpul pertama dari LIST, dan jika INFO[K] berisi null, menunjukkan akhir dari list. Contoh berikut adalah list berkait yang menunjukkan bahwa simpul-simpul dari list tersebut tidak harus berada pada lokasi memori yang berdekatan, tetapi tetap dapat dikelola layaknya array linier. Kadwi Suharsono

4 Contoh.. Gambar. menggambarkan list berkait dalam memori, masing-masing simpul berisi karakter tunggal. Urutan list tersebut dapat ditelusuri sebagai berikut: START =, dan INFO[] = N, merupakan karakter pertama LINK[] =, dan INFO[] = O, merupakan karakter kedua LINK[] =, dan INFO[] = (blank), merupakan karakter ketiga LINK[] =, dan INFO[] = E, merupakan karakter keempat LINK[] =, dan INFO[] = X, merupakan karakter kelima LINK[] =, dan INFO[]= I,merupakan karakter keenam LINK[] =, dan INFO[] = T,merupakan karakter ketujuh LINK[] =, pointer null, merupakan simpul terakhir dari list. Jadi string karakternya adalah : NO EXIT START INFO O T X N I E LINK Gambar.. List Berkait di memori Contoh.. Gambar. menggambarkan nilai matakuliah Algoritma, ALG, dan Geometri, GEOM disimpan di memori dalam array linier TEST dan LINK. Nama matakuliah juga dijadikan variabel pointer. Pada gambar tersebut, ALG berisi, merupakan simpul pertama dari list ALG, dan GEOM berisi, merupakan simpul pertama dalam list GEOM. Dengan mengikuti pointernya dapat diketahui isi nilai dari matakuliah ALG adalah:,,, dan isi nilai dari matakuliah GEOM adalah:,,,,, Kadwi Suharsono

5 ALG GEOM TEST LINK Gambar.. Dua List Berkait Simpul dari ALG Simpul dari ALG Simpul dari GEOM Simpul dari GEOM Simpul dari ALG Simpul dari GEOM Simpul dari ALG Contoh.. Sebuah perusahaan mempunyai broker, dan masing-masing broker mempunyai daftar pelanggannya. Data tersebut diorganisasikan seperti yang terlihat pada gambar.. Dalam hal ini daftar nama pelanggan dari keempat broker disimpan dalam array Pelanggan yang sama, dan array LINK berisi pointer dari simpul berikutnya dalam list. Terdapat juga array Broker, yang berisi list broker dan array pointer POINT, POINT[K] menunjuk awal dari list Pelanggan dari Broker[K]. Oleh karena itu, daftar Pelanggan Bimo adalah Gatotkoco, Srikandi, Vibisana, Kunti. Daftar pelanggan Kresno adalah Hanoman, Madri, Emban dan daftar nama Pelanggan Narodo adalah Togog, Janoko, Arimbi, Rahwana, Widura sedangkan Hanggodo tidak mempunyai daftar Pelanggan, karena isi POINT-nya adalah pointer null atau. Kadwi Suharsono

6 .... Broker Bimo Kresno Hanggodo Narodo Point Pelanggan Vibisana Hanoman Kunti Emban Rahwana Togog Janoko Gatotkoco Madri Widura Srikandi Arimbi LINK Gambar.. List Berkait dengan Pointer Bagian informasi dari suatu simpul mungkin berupa record. Dalam hal ini, maka data harus disimpan dalam record, seperti contoh berikut: Contoh.. Data karyawan dari sebuah perusahaan terdiri dari orang yang berisi data: Nama, NIP, Jenis Kelamin, Gaji bulanan Secara umum, diperlukan array linier, yaitu: Nama, NIP, Kelamin, Gaji untuk dapat menyimpan data pegawai tersebut. Gambar. menunjukkan bagaimana data tersebut disimpan di memori dalam struktur list berkait dengan diurutkan berdasarkan nama secara alfabetis, dengan menggunakan array tambahan LINK. LINK digunakan untuk menghubungkan antar simpul dalam list. Variabel START digunakan untuk menunjuk ke record pertama dari list. Kadwi Suharsono

7 Nama NIP Kelamin Gaji LINK START..... Durno Kresno Gatotkoco Bismo Limbuk Wanita Cakil Rahwono Emban Hanoman Wanita Gambar.. List Berkait dengan Record Traversing Sebuah List Berkait. List berkait LIST disimpan di memori dalam array linier INFO dan LINK dengan variabel START, yang menunjuk simpul pertama dalam list, dan NULL mengindikasikan akhir dari list. Akan dilakukan operasi Traversing pada list agar setiap simpul dapat diproses. Algoritma traversing berikut menggunakan variabel PTR yang menunjuk simpul yang sedang diproses. Oleh karena itu, LINK[PTR] menunjuk pada simpul yang sedang diproses. Jadi, perintah PTR := LINK[PTR] adalah memindahkan pointer ke simpul berikutnya dalam list, seperti yang tergambar dalam gambar.. PTR Gambar.. Proses memindahkan Pointer Algoritma detilnya adalah sebagai berikut. Inisialisasi nilai PTR dengan nilai START. Kemudian proses INFO[PTR], yaitu informasi dari simpul yang pertama dalam list. Mutakhirkan nilai PTR dengan perintah PTR := LINK[PTR] agar PTR pindah ke simpul kedua. Kemudian proses INFO [PTR] yang merupakan informasi dari simpul kedua dalam list. Mutakhirkan lagi nilai PTR dengan perintah PTR := LINK[PTR], dan proses INFO[PTR], yang merupakan informasi dari simpul ketiga. Dan seterusnya. Lanjutkan sampai PTR = NULL, yang merupakan tanda akhir list. Algortima lengkapnya adalah sebagai berikut. Kadwi Suharsono

8 Algoritma.. (Traversing List Berkait) LIST adalah list berkait yang disimpan di memori. Algoritma ini adalah operasi traversing pada LIST, melakukan operasi PROSES untuk setiap elemen dalam LIST. Variabel PTR menunjuk simpul yang sedang diproses.. PTR := START [Inisialisasi pointer PTR].. Ulangi langkah dan selama PTR NULL.. Lakukan PROSES pada INFO[PTR].. PTR := LINK[PTR] [PTR berpindah ke simpul berikut.] [Akhir dari perulangan.]. Selesai. Perhatikan persamaan antara algoritma. dengan., yang melakukan operasi traversing pada array linier. Persamaannya adalah karena keduanya merupakan struktur data linier, di mana berisi elemen yang mempunyai urutan. Contoh. Procedure berikut mencetak informasi setiap simpul dari list berkait. Karena melakukan operasi traversing, maka mirip dengan algoritma.. PRINT(INFO, LINK, START) Procedure berikut mencetak informasi setiap simpul dalam list. PTR := START.. Ulangi langkah dan selama PTR NULL.. Cetak: INFO[PTR].. PTR := LINK[PTR] [Mutakhirkan pointer.] [Akhir dari Perulangan.]. Selesai. Contoh.. Procedure berikut menghitung nilai NUM, yang merupakan jumlah elemen dalam list. COUNT(INFO, LINK, START, NUM). NUM :=. [Inisialisasi pencacah.]. PTR := START. [Inisialisasi Pointer.]. Ulangi langkah dan selama PTR NULL.. NUM := NUM +.. PTR := LINK[PTR] [Mutakhirkan pointer.] [Akhir dari Perulangan.]. Selesai. Procedure untuk menghitung jumlah elemen dalam list tersebut juga mirip dengan algoritma.. Perbedaannya adalah ada diperlukan proses inisialisasi untuk variabel NUM sebelum melakukan operasi traversing. Kadwi Suharsono

9 Searching Sebuah List Berkait Sebuah list berkait LIST disimpan di memori seperti yang telah dibahas di bagian sebelumnya, yaitu Representasi list di memori dan traversing sebuah list berkait. Suatu ITEM tertentu akan dicari dalam list. Terdapat algoritma untuk menemukan lokasi simpul, LOC dalam list, yang pertama kali ditemukan. Algoritma pertama mengasumsikan data dalam list tidak terurut, sedangkan yang algortima kedua data dalam list sudah terurut. Jika ITEM adalah nilai kunci, dan dicari dalam file untuk mendapatkan record yang berisi ITEM, maka ITEM akan muncul hanya kali. List yang Tidak Terurut. Data yang tersimpan dalam LIST adalah tidak terurut. Akan dicari ITEM dalam LIST dengan menggunakan operasi traversing dengan menggunakan variabel pointer PTR dan membandingkan ITEM dengan isi dari INFO [PTR] atau setiap simpul, satu per satu. Sebelum memutakhirkan isi variabel pointer PTR dengan PTR := LINK[PTR] diperlukan pengujian. Pertama adalah menguji apakah sudah di akhir list, dengan kondisi PTR = NULL, kemudian diuji juga apakah INFO[PTR] = ITEM Kedua pengujian tersebut tidak dapat dilakukan secara bersamaan, karena INFO[PTR] tidak dapat didefinisikan jika PTR = NULL. Oleh karena itu digunakan pengujian pertama untuk mengendalikan pelaksanaan perulangan, dan pengujian kedua diletakkan di dalam perulangan. Algoritma lengkapnya sebagai berikut: Algoritma.. SEARCH(INFO, LINK, START, ITEM, LOC) LIST adalah list berkait yang disimpan di memori. Algoritma ini adalah mencari lokasi LOC suatu simpul, di mana ITEM muncul pertama kali dalam LIST, atau LOC = NULL. PTR := START.. Ulangi langkah selama PTR NULL:. Jika ITEM = INFO[PTR], maka: LOC := PTR, dan Selesai. Lainnya: PTR:=LINK[PTR]. [PTR berpindah ke simpul berikut] [Akhir dari struktur Jika] [Akhir dari perulangan]. LOC := NULL. [Search tidak berhasil]. Selesai. Kompleksitas algoritma search list sama dengan algoritma search pada array linier. Waktu pelaksanaan untuk kondisi terjelek adalah sama de- Kadwi Suharsono

10 ngan jumlah elemen dalam listnya, dan rata-rata waktu search-nya adalah n/. Contoh.. Perhatikan file personal seperti yang terlihat dalam gambar.. modul berikut membaca NIP: NNN dari seorang karyawan, dan mengubah Gajinya dengan penambahan %.. Baca: NNN.. Panggil SEARCH(NIP, LINK, START, NNN, LOC).. Jika LOC NULL, maka: Gaji[LOC] := Gaji[LOC] + Gaji[LOC] *.. Lainnya: Cetak: NNN tidak terdapat dalam file. [Akhir dari struktur Jika.]. Selesai. List Sudah Terurut Data yang tersimpan dalam LIST sudah terurut. Akan dicari ITEM dalam LIST dengan traversing list menggunakan variabel pointer PTR dan membandingkan ITEM dengan isi INFO[PTR] pada setiap simpul dalam LIST. Kompleksitas dari algoritma ini tetap sama dengan algoritma pencarian linier; kondisi terjelek adalah setara dengan jumlah elemen dalam LIST dan rata-rata pencariannya kira-kira n/. Perlu diingat bahwa pencarian linier dapat menggunakan pencarian biner yang memerlukan log n. Algoritma pencarian biner tidak dapat diaplikasikan pada list berkait yang terurut, karena tidak tersedia indeks untuk elemen tengah dari list. Algoritma.. SEARCHSL(INFO, LINK, START, ITEM, LOC) LIST adalah list terurut yang disimpan di memori. Algoritma ini adalah mencari lokasi LOC suatu simpul, di mana ITEM muncul pertama kali dalam LIST, atau LOC = NULL. PTR := START.. Ulangi langkah selama PTR NULL:. Jika ITEM < INFO[PTR], maka: PTR := LINK[PTR]. [PTR sekarang menunjuk ke simpul berikutnya] Lainnya Jika ITEM = INFO[PTR], maka: LOC := PTR, dan Selesai. [Pencarian berhasil] Lainnya: LOC := NULL, dan Selesai. [ITEM sudah melebihi INFO[PTR].] [Akhir dari struktur Jika] [Akhir dari perulangan]. LOC := NULL. [Search tidak berhasil]. Selesai. Kadwi Suharsono

11 Contoh.. Perhatikan lagi file personal pada gambar.. Modul berikut membaca nama PEG dari pegawai dan memberikan tambahan % untuk gajinya. (Bandingkan dengan contoh.). Baca: PEG.. Panggil SEARCHSL(NAMA, LINK, START, PEG, LOC).. Jika LOC NULL, maka: Gaji[LOC] := Gaji[LOC] + Gaji[LOC] *.. Lainnya: Cetak: PEG tidak terdapat dalam list. [Akhir dari struktur Jika.]. Selesai. Alokasi Memori dan Koleksi Memori Sisa Pengelolaan list berkait di memori akan terjadi penyisipan simpul baru ke dalam list, sehingga diperlukan beberapa mekanisme untuk menyediakan memori yang sedang tidak terpakai, dapat digunakan untuk simpul baru. Beberapa mekanisme diperlukan agar lokasi memori yang sudah dihapus menjadi memori yang tersedia untuk penggunaan berikutnya. Bersamaan dengan adanya list berkait di memori, suatu list khusus dibuat, yang berisi lokasi memori yang sudah tidak terpakai. List ini mempunyai pointer sendiri, yang disebut dengan list dari ruang yang kosong. List berkait yang digunakan, akan berhubungan dengan list dari memori yang kosong, sehingga setiap kali terjadi penyisipan simpul baru ke dalam list atau penghapusan suatu simpul dari list akan melibatkan list dari memori yang kosong ini. Memori yang kosong ini membentuki list berkait dengan menggunakan variabel pointer AVAIL. Contoh. Data List pasien yang terdapat dalam contoh. disimpan dalam array linier NOBED dan NEXT. Memori yang kosong dalam array linier NOBED dikaitkan seperti yang tertera dalam gambar.. Perhatikan bahwa NOBED[] adalah no bed yang pertama kali tersedia, NOBED[] adalah no bed yang kedua tersedia, dan NOBED[] adalah no bed terakhir yang tersedia, karena NOBED[] berisi pointer null pada field NEXT-nya, NEXT[] =. Kadwi Suharsono

12 START Nobed Pasien Next AVAIL Kresno Durno Mbilung Arjuno Limbuk Gareng Semar Fetruk Narodo Gambar.. List dari Memori Sisa Contoh. (a) Memori yang tersedia pada array linier TEST pada gambar. dapat dikaitkan seperti tertera pada gambar.. masing-masing list, yaitu ALG dan GEOM menggunakan list AVAIL. Karena AVAIL =, maka TEST[] adalah simpul bebas pertama dalam list AVAIL. Karena LINK[AVAIL] = LINK[] =, maka TEST[] adalah simpul bebas kedua dalam list AVAIL. Dan seterusnya. (b) Perhatikan file karyawan pada gambar.. Memori yang tersedia pada array linier NAMA dapat dikaitkan seperti yang tertera pada gambar.. perhatikan bahwa list memori bebasnya adalah NAMA[], NAMA[], NAMA[], NAMA[] dan NAMA[]. ALG GEOM AVAIL TEST Gambar.. List Memori Sisa. LINK Kadwi Suharsono

13 (c) Memori yang tersedia dalam array linier PELANGGAN pada gambar. dapat dikaitkan seperti yang tertera pada gambar.. Perlu ditegaskan di sini bahwa list yang ada menggunakan list AVAIL untuk penambahan PELANGGAN baru. Nama NIP Kelamin Gaji LINK START.... Durno Kresno Gatotkoco AVAIL. Bismo --. Limbuk -- Wanita... Cakil Rahwono Emban Hanoman Wanita Gambar.. List Memori Sisa.... Broker Bimo Kresno Hanggodo Narodo Avail Point Pelanggan Vibisana Hanoman Kunti Emban Rahwana Togog Janoko Gatotkoco Madri Widura Srikandi Arimbi LINK Gambar.. List Memori Sisa dari List Pointer Contoh.. Kadwi Suharsono

14 Misalnya LIST(INFO, LINK, START,AVAIL) mempunyai lokasi memori sebanyak, n = simpul. Jika LIST diinisialisasi, artinya LIST kosong, maka isi dari list AVAIL adalah seperti yang terlihat pada gambar.. Perhatikan bahwa START =, karena LIST-nya kosong. START AVAIL INFO LINK Gambar.. List Memori Sisa pada Inisialisasi List Operasi Penyisipan ke dalam suatu List Berkait LIST merupakan list berkait yang mempunyai simpul berurutan A dan B, seperti yang tertera dalam gambar.(a). misalkan akan disisipkan simpul N yang akan diletakkan di antara simpul A dengan simpul B. Diagram skematik proses penyisipan tersebut tertera pada gambar.(b). Dalam hal ini simpul A menunjuk ke SImpul N, dan Simpul N menunjuk ke simpul B, yang sebelumnya ditunjuk oleh simpul A. Pada gambar. tersebut tidak terlihat munculnya simpul baru tersebut berasal dari list AVAIL. Untuk memudahkan operasi, simpul pertama dari list AVAIL akan digunakan untuk simpul baru, N. Diagram skematik yang lebih detil dari operasi penyisipan tersebut adalah seperti yang tertera pada gambar.. terdapat pointer yang berubah: () Field pointer dari simpul A sekarang menunjuk ke simpul baru N, yang sebelumnya ditunjuk oleh pointer AVAIL () AVAIL sekarang menunjuk simpul kedua dalam list AVAIL, yang sebelumnya ditunjuk oleh simpul N () Field pointer dari simpul N sekarang menunjuk ke simpul B, yang sebelumnya ditunjuk oleh simpul A. Kadwi Suharsono

15 START Simpul A Simpul B x START (a) Sebelum penyisipan Simpul A Simpul B x Simpul N (b) Setelah penyisipan Gambar.. Penyisipan sebuah Simpul pada List Terdapat hal yang bersifat khusus. Jika simpul baru N adalah simpul pertama dalam LIST, maka START akan menunjuk ke N, dan jika simpul baru N adalah simpul terakhir dari LIST, maka N akan mempunyai pointer Null. START List Data Simpul A Simpul B x AVAIL Simpul N x List memori kosong Gambar.. Penggunaan AVAIL untuk penyisipan List. Contoh. (a) Perhatikan gambar., List Pasien yang urut berdasarkan nama. Jika terdapat pasien baru, Hanoman, maka Hanoman akan diletakkan pada no bed, bed yang pertama tersedia Hanoman akan diletakkan dalam list di antara Gareng dan Kresno Terdapat perubahan pointer, yaitu:. NEXT[] := [Sekarang Gareng menunjuk Hanoman]. NEXT[] :=. [Sekarang Hanoman menunjuk Kresno]. AVAIL :=. Kadwi Suharsono

16 (b) Perhatikan gambar., list broker dan Pelanggan. Karena list PELANGGAN tidak diurutkan, dapat diasumsikan bahwa PELANGGAN baru akan ditambahkan di awal list. Jika terdapat penambahan PELANGGAN baru Gareng, dari broker Kresno, maka: Gareng diletakkan pada array linier PELANGGAN[], simpul pertama yang tersedia Gareng disisipkan sebelum Hanoman, yang sebelumnya adalah pelanggan pertama dari broker Kresno Terdapat perubahan pointer, yaitu:. POINT[] =. [Sekarang list Kresno diawalidengan Gareng]. LINK[] =. [Sekarang Gareng menunjuk Hanoman]. AVAIL =. [Sekarang AVAIL menunjuk ke simpul tersedia, kedua] (c) Elemen data A, B,C, D, E, dan F disisipkan ke dalam list kosong, seperti yang terlihat pada gambar.. Jika diasumsikan bahwa simpul baru selalu diletakkan di awal list, maka setelah penyisipan, F akan menunjuk ke E, D menunjuk ke D, D menunjuk ke C, C menunjuk ke B dan B menunjuk ke A. A akan berisi pointer null. AVAIL akan berisi, yaitu simpul pertama yang tersedia setelah terjadi penyisipan. START =, lokasi dari simpul pertama dalam list, F. Gambar. adalah list baru tersebut. START AVAIL INFO LINK Gambar.. Penyisipan Elemen ke dalam List Kosong A B C D E F Algoritma Penyisipan Algoritma penyisipan simpul ke dalam list berkait bisa terjadi dalam beberapa situasi. Hanya saja yang akan dibahas. Pertama adalah penyisipan terjadi di awal list, kedua adalah penyisipan setelah simpul tertentu, ketiga adalah penyisipan simpul ke dalam list yang terurut. Semua algoritma diasumsikan bahwa list berkait di memori membentuk LIST(INFO, LINK, START, AVAIL) dan variabel ITEM berisi informasi yang akan disisipkan ke dalam list. Kadwi Suharsono

17 Karena algoritma penyisipan ini akan menggunakan simpul yang ada di AVAIL, semua algoritma akan meliputi langkah-langkah berikut:. Memeriksa apakah tersedia ruang di list AVAIL. Jika tidak, kondisinya adalah AVAIL = NULL, maka algoritma akan mencetak pesan: OVERFLOW. Menghapus simpul pertama dari list AVAIL. Menggunakan variabel BARU untuk mencatat alamat simpul baru, langkah ini dapat dilakukan dengan menggunakan pasangan perintah berikut: BARU := AVAIL, AVAIL := LINK[AVAIL]. Mengisikan informasi baru ke dalam simpul baru atau dengan INFO[BARU] := ITEM Diagram skematik dari perintah tersebut tertera pada gambar. BARU List memori kosong ITEM x AVAIL.. Diagram Skematik Penggunaan List AVAIL Penyisipan di awal List Jika list berkait yang digunakan adalah tidak terurut, dan tidak ada alasan untuk menyisipkan simpul baru di mana saja dalam list, maka cara paling mudah adalah menyisipkan simpul baru tersebut di awal list, seperti yang terlihat pada algoritma berikut ini: Algoritma.: INSFIRST(INFO, LINK, START, AVAIL, ITEM) Algoritma ini menyisipkan ITEM sebagai simpul pertama dari list.. [OVERFLOW?] Jika AVAIL = NULL, maka: Cetak:OVERFLOW, dan Selesai.. [Hapus elemen pertama dari list AVAIL] BARU := AVAIL dan AVAIL := LINK[AVAIL].. INFO[BARU] := ITEM. [Salin data baru ke dalam simpul baru.]. LINK[BARU] := START. [Simpul baru sekarang menunjuk ke list awal]. START := BARU. [Ubah START agar menunjuk ke simpul baru.]. Selesai. Langkah sampai telah dibahas sebelumnya, dan diagram skematik dari langkah dan tertera pada gambar., sedangkan diagram skematik langkah dan tertera pada gambar.. Kadwi Suharsono

Buku Ajar Struktur Data

Buku Ajar Struktur Data BARU ITEM Gambar.. Penyisipan di awal List. Contoh.. Perhatikan lagi list test pada gambar.. Jika nilai test ditambahkan di awal list Geometri. Simulasi dari algoritma., ITEM =, INFO = TEST, = GEOM. INSFIRST(TEST,

Lebih terperinci

BAB 5 LINKED LIST. LINKED LIST ATAU ONE-WAY LIST Adalah koleksi linier dari elemen data yang disebut Simpul atau Node.

BAB 5 LINKED LIST. LINKED LIST ATAU ONE-WAY LIST Adalah koleksi linier dari elemen data yang disebut Simpul atau Node. BAB 5 LINKED LIST LINKED LIST ATAU ONE-WAY LIST Adalah koleksi linier dari elemen data yang disebut Simpul atau. Cara melinierkan urutan adalah dengan menggunakan Penuding atau Pointer. Setiap simpul terdiri

Lebih terperinci

Buku Ajar Struktur Data

Buku Ajar Struktur Data B a g i a n 5 Tujuan Instruksional Khusus Pokok Bahasan Mahasiswa mampu menjelaskan struktur data nonlinier Tree. Mahasiswa mampu memahami operasi pada struktur data Tree Struktur data Tree secara umum.

Lebih terperinci

Struktur & Organisasi Data 2 LINKED LIST. LINKED LIST ATAU ONE-WAY LIST Adalah koleksi linier dari elemen data yang disebut Simpul atau Node.

Struktur & Organisasi Data 2 LINKED LIST. LINKED LIST ATAU ONE-WAY LIST Adalah koleksi linier dari elemen data yang disebut Simpul atau Node. LINKED LIST LINKED LIST ATAU ONE-WAY LIST Adalah koleksi linier dari elemen data yang disebut Simpul atau Node. Cara melinierkan urutan adalah dengan menggunakan Penuding atau Pointer. Setiap simpul terdiri

Lebih terperinci

Semua algoritma diasumsikan bahwa Linked List tersimpan di dalam memori dalam bentuk LIST(INFO, LINK, START, AVAIL)

Semua algoritma diasumsikan bahwa Linked List tersimpan di dalam memori dalam bentuk LIST(INFO, LINK, START, AVAIL) ALGORITMA PENYISIPAN Terdiri dari : 1. Algoritma Penyisipan Simpul pada bagian awal list. 2. Algoritma Penyisipan Simpul sesudah suatu simpul yang diketahui lokasinya. 3. Algoritma Penyisipan Simpul ke

Lebih terperinci

BAB V LINKED LIST. Pointer A 50 B Alamat Memori. Gambar 5-1 : Logika Linked List

BAB V LINKED LIST. Pointer A 50 B Alamat Memori. Gambar 5-1 : Logika Linked List BAB V LINKED LIST STRUKTUR BERKAIT. Struktur berkait adalah bentuk khusus dari list linier yang cara melinierkan urutannya dengan mengkaitkan setiap elemen datanya. Pointer A 50 B 100 50 Alamat Memori

Lebih terperinci

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IX LINKED LIST (SENARAI BERANTAI) BAB IX LINKED LIST (SENARAI BERANTAI) Double Linked List Double Linked List adalah suatu linked list yang mempunyai penunjuk yaitu penunjuk ke data sebelumnya dan berikutnya. Perhatikan gambar di bawah

Lebih terperinci

POINTER. 100 Alamat memori. Gambar 5.1. Struktur berkait

POINTER. 100 Alamat memori. Gambar 5.1. Struktur berkait LINKED LIST. STRUKTUR BERKAIT Pada pembicaraan kita dalam Bab, telah disinggung sekilas tentang sejenis struktur yang dibentuk dengan cara mengaitkan struktur yang lebih sederhana. Perhatikan Gambar..

Lebih terperinci

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IX LINKED LIST (SENARAI BERANTAI) BAB IX LINKED LIST (SENARAI BERANTAI) Linked list atau biasa disebut senarai berantai adalah suatu kumpulan data yang saling terhubung antar 1 data dengan data berikutnya. Suatu element (disebut dengan

Lebih terperinci

Pada kondisi ini proses penghapusan tidak bisa dilakukan Kondisi linked list memiliki hanya 1 data{satu simpul} Akhir. Akhir

Pada kondisi ini proses penghapusan tidak bisa dilakukan Kondisi linked list memiliki hanya 1 data{satu simpul} Akhir. Akhir 3. Penghapusan a. Penghapusan di awal/depan Penghapusan data di awal adalah proses menghapus simpul pertama (yang ditunjuk oleh variabel pointer ), sehingga variabel pointer akan berpindah ke simpul berikutnya.

Lebih terperinci

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka LINKed LIST PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahkan saat dibutuhkan, tidak dialokasikan dengan

Lebih terperinci

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar. QUEUE (ANTREAN) ANTREAN (Queue) Suatu bentuk khusus dari linear list, dengan operasi penyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut REAR, dan operasi penghapusan (deletion)

Lebih terperinci

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Algoritma dan Struktur Data. Pertemuan 7 Linked List Algoritma dan Struktur Data Pertemuan 7 Linked List Definitions Linked List Struktur data yang terdiri atas sekumpulan data bertipe sama Memperhatikan urutan Array Struktur data yang terdiri atas sekumpulan

Lebih terperinci

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri Senarai berantai linked list Pertemuan keenam Struktur data st3telkom.ac.id by : tenia wahyuningrum & Sisilia Thya Safitri Senarai berantai Dalam pemakaian sehari-hari istilah senarai berantai (list) adalah

Lebih terperinci

LIST. Dewi Sartika, M.Kom

LIST. Dewi Sartika, M.Kom LIST PENDAHULUAN Linked List adalah sejumlah objek yang dihubungkan (linked) satu dengan yang lainnya membentuk suatu list. Objek adalah gabungan dari beberapa data (variable) yang dijadikan satu kelompok

Lebih terperinci

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e 03 LINKED LIST Slide 0 voice Pada perkuliahan ini kita akan membahas topik linked list atau senarai berkait. Slide 1 voice Terdapat tujuh bilangan bulat yang nilainya terurut secara menaik (ascending)

Lebih terperinci

Algoritma Pemrograman & Struktur Data

Algoritma Pemrograman & Struktur Data MODUL PERKULIAHAN Algoritma Pemrograman & Struktur Data Linked List Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fakultas Ilmu Informatika Komputer 03 87042 Abstract Penjelasan mengenai linked

Lebih terperinci

Jadi satu simpul di double linked list adalah sebagai berikut : Info. Kiri. Kanan

Jadi satu simpul di double linked list adalah sebagai berikut : Info. Kiri. Kanan II. Double Linked List Double Linked List adalah suatu linked list yang mempunyai penunjuk yaitu penunjuk ke simpul sebelumnya dan ke simpul berikutnya. Perhatikan gambar di bawah ini : 5 Deklarasi secara

Lebih terperinci

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1 Pengenalan Algoritma & Struktur Data Pertemuan ke-1 Apa itu Struktur Data? PROGRAM ALGO RITMA STRUKTUR DATA Algoritma.. deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis 1. Ditulis

Lebih terperinci

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan STACK (TUMPUKAN) Stack adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Contoh dalam kehidupan sehari-hari adalah tumpukan piring di sebuah restoran

Lebih terperinci

Linked List 6.3 & 7.3 NESTED LOOP

Linked List 6.3 & 7.3 NESTED LOOP Linked List 6.3 & 7.3 NESTED LOOP 1 Linked List ( List yang di-link satu dengan lainnya ) 2 apa itu List? 3 Contoh sebuah LIST int A[5]; 0 1 2 3 4 Array satu dimensi Disebut juga : Vector Kadang-kadang

Lebih terperinci

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal :

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal : Double linked list Link list yang kita pelajari sebelumnya hanya mempunyai sebuah pointer pada setiap simpulnya. Hal ini merupakan kelemahan bahwa link list tersebut hanya bisa dibaca dalam satu arah saja,

Lebih terperinci

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ; Maka sekarang kita mempunyai dua buah simpul yang ditunjuk oleh P1 dan P2. Setelah itu kita dapat melakukan pengaksesan data, yaitu dengan menuliskan : P1^.Nama_Peg := Ariswan ; P1^.Alamat := Semarang

Lebih terperinci

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus. 1 ARRAY & LINKED LIST MODUL 1 Standar kompetensi: 1. Mahasiswa mengetahui perbedaan array dan linked list. 2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus. 3. Mahasiswa

Lebih terperinci

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul struktur data fd [page 1 of 7] SENARAI BERANTAI Dalam pemakaian sehari-hari istilah senarai berantai (list) adalah kumpulan linier sejumlah data. Contohnya seperti daftar belanja harian, dimana setiap

Lebih terperinci

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

List Linear (Linked List) Farah Zakiyah Rahmanti 2014 List Linear (Linked List) Farah Zakiyah Rahmanti 2014 Overview Single Linked List Double Linked List Circular List SINGLE LINKED LIST Deskripsi Single linked list atau biasa disebut dengan linked list

Lebih terperinci

Struktur Data. PDE - Struktur Data 1

Struktur Data. PDE - Struktur Data 1 Struktur Data Copyright@Ihsan Jatnika PDE - Struktur Data 1 Objektif Mengetahui maksud struktur data dan menjelaskan penggunaannya dalam pemrograman Mengetahui operasi yang terkait dengan struktur data

Lebih terperinci

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Bab ini membahas analisis perancangan perangkat lunak (diberi nama c2p) dari segi struktur data dan analisis aliran data. Hal-hal yang dibahas diantaranya

Lebih terperinci

STRUKTUR DATA. Literatur

STRUKTUR DATA. Literatur STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS Literatur Sjukani Moh, (2007), Struktur Data (Algoritma & Struktur Data 2) dengan C, C++, Mitra Wacana Media Utami Ema dkk, (2007), Struktur Data (Konsep

Lebih terperinci

Algoritma dan Struktur Data. Linked List

Algoritma dan Struktur Data. Linked List Algoritma dan Struktur Data Linked List Syntax: struct nama_struct { tipe_data_1 nama_var_1; tipe_data_2 nama_var_2; tipe_data_3 nama_var_3; }; 2 KONSEP ALOKASI MEMORY DINAMIS 1. Deklarasikan pointer yang

Lebih terperinci

A. TUJUAN PEMBELAJARAN

A. TUJUAN PEMBELAJARAN Praktikum 8 Double Linked List (2) A. TUJUAN PEMBELAJARAN Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami konsep operasi menyisipkan sebelum simpul tertentu 2. Memahami

Lebih terperinci

ALGORITMA & PEMROGRAMAN

ALGORITMA & PEMROGRAMAN ALGORITMA & PEMROGRAMAN Oleh: Tim Algoritma & Pemrograman IF Linked List PENGERTIAN LINKED LIST Salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung,

Lebih terperinci

Single Linked List (1)

Single Linked List (1) Praktikum 5 Single Linked List (1) A. TUJUAN PEMBELAJARAN Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami konsep membangun single linked list 2. Memahami konsep operasi

Lebih terperinci

POHON CARI BINER (Binary Search Tree)

POHON CARI BINER (Binary Search Tree) POHON CARI BINER (Binary Search Tree) 50 24 70 10 41 61 90 3 12 35 47 55 67 80 99 POHON CARI BINER (Binary Search Tree) Definisi : bila N adalah simpul dari pohon maka nilai semua simpul pada subpohon

Lebih terperinci

SENARAI BERANTAI (LINK LIST)

SENARAI BERANTAI (LINK LIST) SENARAI BERANTAI (LINK LIST) Salah satu solusi untuk mengatasi kekurangan array adalah dengan Linked List. Linked List (senarai berantai satu arah atau one way list) merupakan struktur data dinamis yang

Lebih terperinci

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR (SINGLE LINKED LIST NON CIRCULAR) DEKLARASI LINKED LIST Sebelum membuat sebuah senarai (Link List) kita harus mendeklarasikan tipe data dan pointer yang akan kita

Lebih terperinci

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List Algoritma dan Struktur Data Pertemuan 9 Circular Linked List Struktur Circular Linked List plist A B C Node (elemen) circular linked list saling berkait melalui pointer. Bagian next sebuah node menunjuk

Lebih terperinci

Lab. Teknik Informatika Struktur Data 1

Lab. Teknik Informatika Struktur Data 1 2. POINTER dan SINGLE LINK LIST TUJUAN PRAKTIKUM 1. Praktikan mengetahui tipe struktur data baru yaitu tipe data Pointer. 2. Praktikan menggunakan pointer didalam pembuatan program dan dapat menerapkannya

Lebih terperinci

SEARCHING & SORTING. Pendahuluan

SEARCHING & SORTING. Pendahuluan SEARCHING & SORTING Pendahuluan Sorting dan searching merupakan salah satu operasi dasar dalam ilmu komputer. Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang diberikan

Lebih terperinci

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs. Algoritma dan Struktur Data Ramos Somya, S.Kom., M.Cs. Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat

Lebih terperinci

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD Pertemuan 4 : Definisi & Operasi Disusun oleh : PH. Prima Rosa, S.Si., M.Sc. Sri Hartati Wijono, S.Si. 2003/2004 Pert. 4b Struktur Data - FMIPA USD - 2003 Hal. 1 Struktur Data PROBLEM ALGORITHM DATA IMPLEMENTATION

Lebih terperinci

MODUL 6 SINGLE & DOUBLE LINKED LIST

MODUL 6 SINGLE & DOUBLE LINKED LIST MODUL 6 SINGLE & DOUBLE LINKED LIST 1. Tujuan Instruksional Umum a. Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur Linked List (Senarai Berkait) b. Mahasiswa mampu melakukan analisis

Lebih terperinci

QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN)

QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN) QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN) Setelah pada Bab 3 yang lalu kita bahas tentang salah satu jenis daftar (list) linear, yakni stack, kali ini kita bahas jenis lain dari daftar linear,

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA Modul ke: 03 Fitrianingsih, Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA OLEH : Skom., MMSI Program Studi Sistem Informasi Bagian Isi POINTER POINTER DAN ADDRESS POINTER DAN FUNCTION LINKED LIST ALGORITMA

Lebih terperinci

Gambar 3.1. Circular Single Linked List. Deklarasi bisa dilihat kembali di Single Linked List atau Double Linked List.

Gambar 3.1. Circular Single Linked List. Deklarasi bisa dilihat kembali di Single Linked List atau Double Linked List. III. Circular Linked List Circular Linked List adalah suatu linked list yang tidak memiliki nilai nil/null untuk medan sambungannya. Perhatikan Gambar 3.1 dan Gambar 3.2. Gambar 3.1. Circular Single Linked

Lebih terperinci

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN SEKOLAH TINGGI MANAJEMEN INFORMAA KOMPUTER JAKARTA STIK SATUAN ACARA PERKULIAHAN Mata : STRUKTUR DATA Kode Mata : TK - 25322 Jurusan / Jenjang : D3 TEKNIK KOMPUTER Tujuan Instruksional Umum : Memberikan

Lebih terperinci

PENCARIAN KITAB BESERTA PASAL PADA ALKITAB BERDASARKAN KATA DENGAN MENGGUNAKAN STRUKTUR DATA TRIE

PENCARIAN KITAB BESERTA PASAL PADA ALKITAB BERDASARKAN KATA DENGAN MENGGUNAKAN STRUKTUR DATA TRIE PENCARIAN KITAB BESERTA PASAL PADA ALKITAB BERDASARKAN KATA DENGAN MENGGUNAKAN STRUKTUR DATA TRIE Ir. Suhatati Tjandra Abstrak Proses pengambilan informasi (information retrieval) merupakan hal yang sangat

Lebih terperinci

STRUKTUR DATA TIPE DATA DNA-STRUKTURDATA 1

STRUKTUR DATA TIPE DATA DNA-STRUKTURDATA 1 STRUKTUR DATA TIPE DATA DNA-STRUKTURDATA 1 APA ITU STRUKTUR DATA Program algoritma dan struktur data Algoritma, langkah-langkah penyelesaian masalah yang tersusun secara logis. Contoh : mengurutkan data;

Lebih terperinci

ALGORITMA PEMROGRAMAN 1A** (PP :S1-KA) Pertemuan 7. Ahmad Hidayat

ALGORITMA PEMROGRAMAN 1A** (PP :S1-KA) Pertemuan 7. Ahmad Hidayat ALGORITMA PEMROGRAMAN 1A** (PP-011302:S1-KA) Pertemuan 7 Ahmad Hidayat PENERAPAN KONSEP TABEL Argumen dan Fungsi Penggunaan Storage untuk Penyimpanan Tabel Proses Pencarian (Searching) Pengurutan dengan

Lebih terperinci

BAB II STACK Atau TUMPUKAN

BAB II STACK Atau TUMPUKAN BAB II STACK Atau TUMPUKAN List Linear (Daftar Linear). List linier adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya disebut simpul (node). Simpul terdiri

Lebih terperinci

Linked List. Bandung 2013

Linked List. Bandung 2013 Linked List Bandung 2013 PENGERTIAN LINKED LIST Salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung, dinamis dan tidak terbatas. Linked

Lebih terperinci

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1 3. DOUBLE LINK LIST TUJUAN PRAKTIKUM Setelah mengenal tipe data single link list maka : 1. Praktikan diharapkan dapat menggunakan double link list. 2. Praktikan diharapkan mengerti perbedaan antara single

Lebih terperinci

Heap Tree dan Kegunaannya dalam Heap Sort

Heap Tree dan Kegunaannya dalam Heap Sort Heap Tree dan Kegunaannya dalam Heap Sort Efendy Chalikdjen 1, Hermanto Ong 2, Satria Putra Sajuthi 3 Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Institut Teknologi Bandung

Lebih terperinci

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut

Lebih terperinci

SINGLE LINKED LIST (NON CIRCULAR)

SINGLE LINKED LIST (NON CIRCULAR) SINGLE LINKED LIST (NON CIRCULAR) KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu

Lebih terperinci

A. TUJUAN PEMBELAJARAN

A. TUJUAN PEMBELAJARAN Praktikum 3 Queue (Antrian) A. TUJUAN PEMBELAJARAN Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami stuktur data yang digunakan pada antrian baik yang berupa array maupun

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Modul Praktikum Algoritma dan Struktur Data Double Linked List Tenia Wahyuningrum, S.Kom., MT Sisilia Thya Safitri, ST., MT ST3 Telkom Purwokerto Jl. DI Panjaitan 128 Purwokerto * Untuk kalangan sendiri

Lebih terperinci

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR) SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR) Dilustrasikan sebagai kereta yang mempunyai gerbong-gerbong. Pertama tama kita membuat tipe data baru dari gerbong kereta tersebut.

Lebih terperinci

POINTER PADA PASCAL. <nama_var> : ^<tipe_data>; <nama_var> : pointer;

POINTER PADA PASCAL. <nama_var> : ^<tipe_data>; <nama_var> : pointer; POINTER PADA PASCAL PEMBAHASAN : 1. Mengenal tipe data Pointer. 2. Manipulasi memori lewat Pointer bertipe dan tak bertipe. 3. Linked List; meliputi operasi inisialisasi, menambah node baru, menyisipkan

Lebih terperinci

Algoritma dan Struktur Data. Ramos Somya

Algoritma dan Struktur Data. Ramos Somya Algoritma dan Struktur Data Ramos Somya Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat banyak record,

Lebih terperinci

Modul Praktikum Algoritma dan Struktur Data

Modul Praktikum Algoritma dan Struktur Data Tujuan : BAB 1 Struct, Array, dan Pointer 1. Mahasiswa memahami apakah yang dimaksud dengan struktur data. 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma. 3. Mengingat kembali array, struktur,

Lebih terperinci

LAPORAN PRAKTIKUM IX. Oleh:

LAPORAN PRAKTIKUM IX. Oleh: LAPORAN PRAKTIKUM IX LINKED LIST Disusun untuk Memenuhi Matakuliah Praktikum Algoritma Struktur Data Dibimbing oleh Ibu Annisa Puspa Kirana, S. Kom, M. Kom Oleh: Dwitha Fajri Ramadhani 160533611410 Ika

Lebih terperinci

Struktur Data. Queue (Antrian)

Struktur Data. Queue (Antrian) Struktur Data Queue (Antrian) Definisi Queue (Antrian) adalah list linier yang : 1. Dikenali elemen pertama (Head) dan elemen terakhirnya (Tail) 2. Aturan penyisipan dan penghapusan elemennya didefinisikan

Lebih terperinci

ARRAY DINAMIS. Type. Pengenal = Simpul Simpul = Type. (Nama var) : ( Type data)

ARRAY DINAMIS. Type. Pengenal = Simpul Simpul = Type. (Nama var) : ( Type data) ARRAY DINAMIS Sebelumnya telah dijelaskan mengenai variable bertipe array (array statis), suatu tipe data yang bersifat statis (urutan dan ukuran sudah pasti). Kelemahan dari array statis adalah penggunaan

Lebih terperinci

STRUKTUR DATA (2) Single Linked List

STRUKTUR DATA (2) Single Linked List STRUKTUR DATA (2) Single Linked List Linked List Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung, dinamis dan

Lebih terperinci

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list Universitas Muhammadiyah Sukabumi Artikel Struktur Data Oleh : fahmi fauzi Masukan Judul... 1. STACK DAN QUEUE DENGAN LINKED LIST Pengertian Linked list : sekumpulan elemen bertipe sama, yang mempunyai

Lebih terperinci

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP pendahuluan Dikembangkan tahun 1955-1956 oleh Allen Newell, Cliff Shaw dan Herbert Simon di RAND Corporation sebagai struktur data utama untuk bahasa Information Processing Language (IPL). IPL dibuat untuk

Lebih terperinci

Review : Sifat Implementasi Linear List dengan Array

Review : Sifat Implementasi Linear List dengan Array Pertemuan 10 Linked List Disusun oleh : PH. Prima Rosa, S.Si., M.Sc. Sri Hartati Wijono, S.Si. 2003/2004 Pert. 10 Struktur Data - FMIPA USD - 2003 Hal. 1 Review : Sifat Implementasi Linear List dengan

Lebih terperinci

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul RESUME Linked list yang kita pelajari sebelumnya hanya mempunyai sebuah pointer pada setiap simpulnya. Hal ini merupakan kelemahan bahwa linked list tersebut hanya bisa dibaca dalam satu arah saja, yaitu

Lebih terperinci

PERTEMUAN KE-6. Pertemuan 6

PERTEMUAN KE-6. Pertemuan 6 PERTEMUAN KE-6 Pertemuan 6 QUEUE (Antrian) Definisi: Queue (Antrian) adalah suatu bentuk khusus dari List Linier dengan operasi penyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut

Lebih terperinci

Algoritma Pemrograman & Struktur Data

Algoritma Pemrograman & Struktur Data MODUL PERKULIAHAN Algoritma Pemrograman & Struktur Data Array Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fakultas Ilmu Informatika Komputer 02 87042 Abstract Penjelasan mengenai array dan penggunaannya

Lebih terperinci

LIST LINIER & STACK. Pertemuan 6 Yani sugiyani, M.Kom

LIST LINIER & STACK. Pertemuan 6 Yani sugiyani, M.Kom LIST LINIER & STACK Pertemuan 6 Yani sugiyani, M.Kom 1 LIST LINIER Yani Sugiyani, M.Kom 2 LIST LINIER List linier atau daftar linier adalah suatu struktur data umum yang terbentuk dari barisan hingga (yang

Lebih terperinci

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

1. Traversing Untuk algoritma traversing sama seperti pada single Link List SENARAI BERANTAI DUA ARAH (DOUBLE LINKED LIST) Senarai Berantai Dua Arah (Double Linked List) merupakan bentuk pengembangan Senarai Berantai (Link List) yang tidak hanya memiliki pointer yang menunjuk

Lebih terperinci

Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM TEORI PENUNJANG

Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM TEORI PENUNJANG Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM 1. Mengerti dalam penggunaan pointer. 2. Dapat membuat larik dinamik dan daftar berkait TEORI PENUNJANG

Lebih terperinci

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari ALGORITMA DAN PEMROGRAMAN 2 3 SKS By : Sri Rezeki Candra Nursari MATERI Teks/string Pointer Struktur Kelas Konstruktor dan Destruktor Kelas dan Obyek Overloading Operator Inheritance (Pewarisan) Polimorfisme

Lebih terperinci

DIG1G3 Implementasi Struktur Data

DIG1G3 Implementasi Struktur Data DIG1G3 Implementasi Struktur Data Program Studi Diploma III Teknik Informatika Fakultas Ilmu Terapan Telkom University Dosen: Cahyana, S.T., M.Kom. Indra Azimi, S.T., M.T. Tujuan Pertemuan 4 Mahasiswa

Lebih terperinci

BAB VI SORTIR ATAU PENGURUTAN

BAB VI SORTIR ATAU PENGURUTAN BAB VI SORTIR ATAU PENGURUTAN SORTIR TERHADAP RECORD File adalah Himpunan record, misalkan suatu perusahaan mempunyai file yang berisi seluruh data yang diperlukan oleh perusahaan itu tentang para pegawainya.

Lebih terperinci

Silabus Struktur Data. Bandung 2013

Silabus Struktur Data. Bandung 2013 Silabus Struktur Data Bandung 2013 Silabus u Menjelaskan Varian dan Invarian u Membuat Alur Logika pemrograman u Menerapkan Pengelolaan Array u Memelihara Pekerjaan secara prakds u Menerapkan konsep data

Lebih terperinci

Pengenalan Struktur Data dan Algoritma

Pengenalan Struktur Data dan Algoritma BAB I Pengenalan Struktur Data dan Algoritma Tujuan : 1. Mahasiswa memahami apakah yang dimaksud dengan struktur data 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma 3. Mengingat kembali array,

Lebih terperinci

Penerapan BFS dan DFS dalam Garbage Collection

Penerapan BFS dan DFS dalam Garbage Collection Penerapan BFS dan DFS dalam Garbage Collection Nugroho Satriyanto 13514038 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Bandung, Indonesia 13514038@std.stei.itb.ac.id

Lebih terperinci

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB Pertemuan Ke 5 : List Linier (Linked List) Referensi: 1. Inggriani Liem. 2003. Catatan Kuliah & Pemrograman, Jurusan Teknik Informatika ITB 2. Rinaldi Munir. 2003. dan Pemrograman II. Bandung : Penerbit

Lebih terperinci

FILE SEKUEN. Karakteristik file sekuen

FILE SEKUEN. Karakteristik file sekuen Karakteristik file sekuen FILE SEKUEN Atribut-atribut data dikategorikan. Rekord berisi semua nilai data atribut dengan urutan dan posisi yang sama. Rekord-rekord data terurut dalam satu sekuen/aturan

Lebih terperinci

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006 Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006 Bagian A (total 75 point) Petunjuk: Jawablah ke 25 pertanyaan berikut ini dan isikan jawaban

Lebih terperinci

Penerapan Pohon Dalam Heap Sort

Penerapan Pohon Dalam Heap Sort enerapan ohon Dalam Sort Firdi Mulia Jurusan Teknik Informatika ITB, Bandung, email: if17045@students.if.itb.ac.id Abstract Makalah ini membahas tentang penerapan pohon heap dalam metode pengurutan data

Lebih terperinci

BAB VII SENARAI BERANTAI (List)

BAB VII SENARAI BERANTAI (List) BAB VII SENARAI BERANTAI (List) Dalam kehidupan sehari-hari, senarai (List ) adalah kumpulan linear sejumlah data. Gambar dibawah ini menunjukkan senarai yang berisi daftar belanjaan, yang berupa barang

Lebih terperinci

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-11 Pointer 2

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-11 Pointer 2 Algoritma dan Pemrograman Lanjut Pertemuan Ke-11 Pointer 2 Disusun Oleh : Wilis Kaswidjanti, S.Si.,M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional Veteran

Lebih terperinci

KERUGIAN DAN KEUNTUNGAN LINKED LIST

KERUGIAN DAN KEUNTUNGAN LINKED LIST KERUGIAN AN KEUNTUNGAN LINKE LIST KERUGIANNYA AALAH : 1. iperlukan ruang tambahan untuk menyatakan/tempat field pointer. 2. iperlukan waktu yang lebih banyak untuk mencari suatu node dalam linked list.

Lebih terperinci

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2017

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2017 MODUL 7 STRUCT DAN POINTER 1) Tujuan : a) Mahasiswa memahami yang dimaksud dengan struct dan pointer b) Mahasiswa mampu mengimplementasikan struct dan pointer dalam struktur data 2) Pointer Misalnya kita

Lebih terperinci

Implementasi Struktur Data Rope menggunakan Binary Tree dan Aplikasinya dalam Pengolahan Teks Sangat Panjang

Implementasi Struktur Data Rope menggunakan Binary Tree dan Aplikasinya dalam Pengolahan Teks Sangat Panjang Implementasi Struktur Data Rope menggunakan Binary Tree dan Aplikasinya dalam Pengolahan Teks Sangat Panjang Edwin Rachman (NIM 0) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika

Lebih terperinci

BAB II Senarai Berantai (Linked List)

BAB II Senarai Berantai (Linked List) BAB II Senarai Berantai (Linked List) Tujuan 1. Memahami pengertian linked list, gunanya dan dapat mengimplementasikan dalam pemrograman 2. Dapat mengidentifikasi permasalahan-permasalahan pemrograman

Lebih terperinci

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan STACK (TUMPUKAN) adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Contoh dalam kehidupan sehari-hari adalah tumpukan piring di sebuah restoran yang

Lebih terperinci

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut

Lebih terperinci

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Tree (Struktur Data) Nisa ul Hafidhoh, MT Tree (Struktur Data) Nisa ul Hafidhoh, MT Struktur Data Linier 1 5 8 9 2 ARRAY 0 1 2 3 n Head Tail QUEUE O U T 1 2 3 4 STACK 4 3 2 1 I N 10 8 14 LINKED LIST Struktur Tree Struktur Tree adalah struktur

Lebih terperinci

Organisasi File Multi Key y( (Index)

Organisasi File Multi Key y( (Index) Organisasi File Multi Key y( (Index) Pengertian Organisasi berkas yang memperbolehkan record diakses oleh lebih dari satu key field disebut organisasi berkas dengan banyak key. Ada banyak teknik yang dipakai

Lebih terperinci

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi. Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut

Lebih terperinci

Algoritma Pemrograman & Struktur Data

Algoritma Pemrograman & Struktur Data MODUL PERKULIAHAN Algoritma Pemrograman & Struktur Data Stack Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fakultas Ilmu Informatika Komputer 04 87042 Abstract Penjelasan mengenai stack dan penggunaannya

Lebih terperinci

Database System 8 Hash-Based Indexing

Database System 8 Hash-Based Indexing Database System 8 Hash-Based Indexing Dahlia Widhyaestoeti, S.Kom Powered by www.redoffice.com Pustaka Sistem Manajemen Database Edisi ketiga, Raghu Ramakrishnan & Johannes Gehrke, McGrawHill 3 Hash-Based

Lebih terperinci

BAB VII PENCARIAN DATA (SEARCHING)

BAB VII PENCARIAN DATA (SEARCHING) 1 BAB VII PENCARIAN DATA (SEARCHING) Seperti halnya dengan pengurutan data, pencarian data (searching) merupakan operasi yang penting dalam pengolahan data. Bahkan, tidak jarang keduanya digunakan secara

Lebih terperinci

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen Pokok Bahasan Pengantar Struktur Data Pengertian Struktur Data Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien Sedangkan data adalah representasi

Lebih terperinci

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

Topic Complexity of Hashing Search & Binary Search Tree Algorithm Topic Complexity of Hashing Search & Binary Search Tree Algorithm Febriansyah Kurniawan M. Nasir Suyanto Searching a list of values is a common task. An application program might retrieve a student record,

Lebih terperinci