Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

9 ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA (LAB) OLEH :

Presentasi serupa


Presentasi berjudul: "9 ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA (LAB) OLEH :"— Transcript presentasi:

1 9 ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA (LAB) OLEH :
FASILKOM UMNIY SALAMAH ST., MMSI Teknik Informatika

2 Bagian Isi DEFINISI REKURSIF DEFINISI DOUBLE LINKED LIST
FUNGSI SETHEAD_D() FUNGSI SETAIL_D() FUNGSI INSERT_D() DELETE (HEADER, TAIL, INLIST) LATIHAN

3 REKURSIF DAN LINKED LIST 2
ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA (LAB) PERTEMUAN 7

4 PENDAHULUAN Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri. Fungsi yang seperti ini disebut fungsi rekursif (recursive function). Double linked list mempunyai dua pointer yang menunjuk ke node berikutnya dan sebelumnya.

5 DEFINISI REKURSIF Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri. Fungsi yang seperti ini disebut fungsi rekursif (recursive function). Dalam sebuah fungsi rekursif pemanggilan dapat terjadi berulang kali. Karena ada proses yang berulang-ulang maka harus ada suatu kondisi yang mengakhiri prosesnya. Jika tidak, maka proses tidak akan pernah berhenti sampai memori yang digunakan tidak dapat menampung lagi.

6 DEFINISI DOUBLE LINKED LIST
Double linked list mempunyai dua pointer yang menunjuk ke node berikutnya dan sebelumnya, disebut juga dengan istilah : next pointer dan previous poniter satu node untuk double linked list dapat digambarkan seperti :

7 DOUBLE LINKED LIST terdapat tiga urutan node di atas, yaitu node(i-1), node(i), dan node (i+1), node tersebut kita umpamakan sebagai posisi dari suatu urutan list yang panjang dari 1 s/d n. Jadi i adalah posisi tertentu yang kita pilih secara acak. Node (i) sebagai patokan. Pointer next menunjuk ke node berikutnya, yaitu node(i+1) dan pointer previous menunjuk kesebelumnya, yaitu node (i-1).

8 DOUBLE LINKED LIST Tidak ada lagi node yang ditunjuk pointer previous di head atau node pertama dari double linked list ini. Akan tetapi pointer harus mendapatkan address (alamat) agar definisi kita untuk node tersebut dapat dipenuhi. Kita dapat memberi nilai dengan konstanta NIL di C karena pointer prevoius menunjuk ke node yang tidak ada. Begitu pula dengan tail atau node yang terakhir, pointer next di node yang terakhir harus diberi nilai NIL.

9 FUNGSI SETHEAD_D() Fungsi sethead_d() adalah membuat double linked list baru jika belum ada linked list sama sekali dengan menggunakan data yang baru atau menyisipkan data yang baru ke awal list yang telah ada. Kasus 1: Buat double linked list yang baru seperti skesta di bawah ini : Node sebelum mempunyai nilai pointer

10 FUNGSI SETHEAD_D( ) Sebuah double linked list, minimal harus mempunyai dua node pembantu, yaitu head dan tail sebagai identifikasi bahwa list itu ada awal dan akhirnya. Double linked list yang baru mempunyai satu node, artinya data head dan data tail adalah sama. Periksa head dari list untuk mengetahui bahwa pada double linked list belum ada node. Nilai head = NIL, artinya list masih kosong. NIL adalah konstanta yang dipakai pada C untuk menyatakan bahwa recordnya maih kosong.

11 ALGORITMA SETHEAD_D( )
Mendeklarasi struktur record list Deklarasi variable namenode Deklarasi variable untuk node dengan actualnode. Mengalokasi memori untuk record list Cek apakah sudah ada list ? Jika belum ada, maka initialisasi head dengan ; Namehead = namenode. Pointer next head = NIL Pointer prev head = NIL Tail = head Jika sudah ada, maka Pointer next node actual = head Pointer prev node actual = NIL Pointer prev = node actual Namaactualnode = node actual Head = actualnode

12 FUNGSI SETAIL_D( ) Fungsi settail_d adalah menyisipkan data yang baru ke akhir list yang telah ada, seperti dibawah ini :

13 ARRAY MULTIDIMENSI (2 DIMENSI)
Node setelah pointer dimanipulasi dan tail = act Tail = act Langkah awal yang dilakukan adalah pointer tail “tail->next” yang sebelumnya mempunyai nilai NIL. mendapatkan nilai adrress dari record yang baru yaitu node dengan nama act. Karena kita akan menjadikan node act menjadi tail, maka pointernya act -> next harus diberi nilai NIL dan menunjuk ke node kosong, sedangkan pointer act->prev menunjuk ke tail

14 ARRAY MULTIDIMENSI (2 DIMENSI)
Untuk mempermudah memahaminya, kita tuliskan dalam bentuk tabel berikut :

15 FUNGSI INSERT_D( ) Fungsi insert_d adalah menyisipkan node yang baru di antara 2 node yang telah ada di suatu double linked list. Mirip dengan tehnik yang pakai di single linked list. Hal yang perlu diperhatikan adalah sekarang kita harus memperhatikan 2 pointer . prinsip kerjanya dapat digambarkan seperti di bawah ini :

16 FUNGSI INSERT_D( )

17 DELETE DOUBLE LINKED LIST
Delete double linked list maksudnya menghapus suatu node dengan dua pointer, yaitu next dan prev yang terdapat di dalam double linked list . kita harus menentukan posisi node yang akan dihapus sebelum melakukan aksi ini. Tehnik delete dengan double linked list lebih mudah dibandingkan dengan single linked list. Kita dapat menelusuri list dengan arah ke depan dan ke belakang menggunakan next dan prev, sedangkan pada single linked list hanya dapat ke depan saja. Kemungkinan posisi node yang akan kita temukan pada suatu list adalah : - Delete header - Delete tail - Delete inlist

18 LATIHAN Tuliskan bentuk umum untuk double linked list input belakang dan delete belakang? Jelaskan 2 contoh program yang ada di modul.

19 DAFTAR PUSTAKA Hartono Jogiayanto, Konsep Dasar Pemrograman Bahasa C Yogyakarta Bambang, Wirawan (2004), Struktur Data dengan C, Pernerbit Andi Jogyakarta. Kristanto, Andri (2003), Struktur Data dengan C++, Penerbit Graha Ilmu

20 UMNIY SALAMAH ST., MMSI


Download ppt "9 ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA (LAB) OLEH :"

Presentasi serupa


Iklan oleh Google