Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehherry sofyan masdi Telah diubah "8 tahun yang lalu
1
Struktur Data Materi II LINKED LIST / SENARAI BERKAIT List: Koleksi dari obyek-obyek homogen dengan sifat setiap elemen, kecuali yang terakhir pasti memiliki penerus dan setiap elemen, kecuali yang pertama pasti memiliki pendahulu. Setiap elemen list (node) terdiri dari dua komponen yaitu Info dan Next. Elemen list (Node) NEXT INFO INFO : Berfungsi untuk menyimpan data yang harus disimpan. NEXT : Berfungsi untuk menyimpan alamat elemen berikutnya. Suatu list linier dikenali : Alamat elemen pertama (First / Awal) Alamat elemen berikut (Next / Berikut) Setiap elemen list memiliki alamat, jika tidak ada disebut NULL.
2
Struktur Data Materi II Elemen pertama tidak memiliki pendahulu (predesor) oleh sebab itu alamat elemen pertama digambarkan dengan anak panah dari kotak yang namanya awal. Awal NextInfo Null Contoh List yang Terdiri dari 3 Elemen: Atau Contoh List Kosong Elemen terakhir tidak memiliki penerus (suksesor) oleh sebab itu field Next nya di-Null-kan. Setiap elemen menyimpan alamat elemen penerusnya sehingga elemen list saling berkait, maka list seperti ini disebut dengan Linked List.
3
Struktur Data Materi II OPERASI-OPERASI PADA LINKED LIST 1. Buat Linked List Mendefinisikan / mendeklarasikan linked list kosong 2. Cek Linked List Mengecek apakah List dalam kedaan kosong atau tidak ? 5. Telusuri Linked List / Cetak Elemen Linked List(List) Menelusuri / mencetak semua node pada linked list. 3. Sisip Node Pada Linked List Menambah / menyisipkan node baru berisi info baru pada linked list. 4. Hapus Node Pada Linked List Menghapus node pada linked list yang sesuai dengan info yang dihapus.
4
Struktur Data Materi II 1. MEMBUAT LINKED LIST INFO NEXT ALAMAT Pointer Node Integer Untuk membuat sebuah linked list pertama-tama adalah mendefinisikan elemen linked list biasa disebut node. Sebuah node memiliki tipe pointer dengan komponen Info dan Next. Tipe data Info dapat berupa apa saja bah- kan dapat berupa record, sedangkan Next harus memiliki tipe data pointer karena digunakan untuk merekam alamat elemen linked list berikutnya. Misalkan akan dibuat sebuah linked list standar, dimana infonya digunakan untuk merekam data bilangan bulat atau integer pada bahasa C, caranya: Typedef int tipeinfo; typedef struct node *tipeptr; typedef struct node{tipeinfo info; tipeptr next; };
5
Struktur Data Materi II Mendefinisikan kondisi awal linked list, masih dalam keadaan kosong. void buatlistbaru() { awal=NULL; akhir=NULL; } Awal Akhir
6
Struktur Data Materi II 2. MENYISIPKAN NODE PADA LINKED LIST Proses menyisipkan node pada linked terjadi pada tiga tempat masing- masing di depan, tengah dan belakang. a.Sisip Node di Depan 20 30 40 50 AwalAkhirNB 10 20 30 40 50 AwalAkhir 10 Hasil : Sisipnode(10)
7
Struktur Data Materi II 2. MENYISIPKAN NODE PADA LINKED LIST Fungsi Menyisipkan Node di Depan (bahasa C). void sisipdepan(tipeinfo IB) { tipeptr NB; NB=(node *)malloc(sizeof(node)); NB->info=IB; NB->next=awal; awal=NB; akhir=NB; }
8
Struktur Data Materi II b.Sisip Node di Tengah 20 30 40 50 AwalAkhir 10 NB 35 Bantu Hasil : 20 30 35 40 Awal 10 50 Akhir Sisipnode(35)
9
Struktur Data Materi II 2. MENYISIPKAN NODE PADA LINKED LIST Fungsi Menyisipkan Node di Tengah (bahasa C). void sisiptengah(tipeinfo IB) { tipeptr NB, bantu; NB=(node *) malloc(sizeof(node)); NB->info=IB; NB->next=NULL; bantu=awal; while(bantu->next->info<IB) bantu=bantu->next; NB->next=bantu->next; bantu->next=NB; }
10
Struktur Data Materi II c.Sisip Node di Akhir 20 30 40 50 AwalAkhir 10 20 30 40 60 AwalAkhir 10 Hasil : 50 Sisipnode(60) NB 60
11
Struktur Data Materi II 2. MENYISIPKAN NODE PADA LINKED LIST Fungsi Menyisipkan Node di Belakang (bahasa C). void sisipbelakang(tipeinfo IB) { tipeptr NB; NB=(node *) malloc(sizeof(node)); NB->info=IB; NB->next=NULL; akhir->next=NB; akhir=NB; }
12
Struktur Data Materi II 3. MENCETAK ISI LINKED LIST Proses mencetak isi linked list dengan cara menelusuri seluruh node pada linked list. Ada dua cara untuk mencetak yaitu mencetak dari depan ke belakang dan dari belakang ke depan. Bantu 20 3040 50 AwalAkhir 10 60 20 3040 50 1060 Hasil : 10 20 30 40 50 60 a. Cetak Dari Depan
13
Struktur Data Materi II Fungsi Mencetak dari Depan (bahasa C). void cetaklist() { tipeptr bantu; bantu=awal; while (bantu!=NULL) { printf("%d ",bantu->info); bantu=bantu->next; } 3. MENCETAK ISI LINKED LIST
14
Struktur Data Materi II 3. MENCETAK ISI LINKED LIST Proses mencetak isi linked list dari belakang ke depan dilakukan melalui dua tahap yaitu dengan membalik pointer kemudian mencetak normal. 20 3040 50 AwalAkhir 10 60 b. Cetak Dari Belakang Contoh: 1. Balikkan arah pointer, sehingga menjadi: 50 4030 20 AwalAkhir 60 10 2. Cetak secara normal, dari depan ke belakang.
15
Struktur Data Materi II 3. MENCETAK ISI LINKED LIST Ekor 20 3040 50 AwalAkhir 10 60 20 3040 50 1060 Bantu 50 4030 20 Awal Akhir 60 10 Proses Membalik Pointer Putar arah linked list Sederhanakan 50 4030 20 AwalAkhir 60 10
16
Struktur Data Materi II Fungsi Mencetak dari Belakang (bahasa C). void cetakterbalik() { tipeptr ekor,bantu; ekor=awal; awal=akhir; do { bantu=ekor; while(bantu->next!=akhir) bantu=bantu->next; akhir->next=bantu; akhir=bantu; } while(akhir!=ekor); akhir->next=NULL; bantu=awal; while(bantu!=NULL) { printf("%d ",bantu->info); bantu=bantu->next; } 3. MENCETAK ISI LINKED LIST
17
Struktur Data Materi II 4. MENGHAPUS NODE PADA LINKED LIST Proses menghapus node pada linked list terjadi pada tiga tempat, yaitu masing-masing di depan, tengah dan belakang. a.Hapus Node di Depan 20 30 40 50 Awal 10 Hapus 60 Akhir 30 40 50 60 AwalAkhir 20 Hasil : Hapusnode(10)
18
Struktur Data Materi II b. Hapus Node di Tengah Hapusnode(40) 20 30 40 50 AwalAkhir 10 Bantu 60 Hapus 20 30 50 60 AwalAkhir 10 Hasil :
19
Struktur Data Materi II c. Hapus Node di Akhir Hapusnode(60) 20 30 40 50 AwalAkhir 10 Bantu 60 Hapus Hasil : 20 30 50 AwalAkhir 10 40
20
Struktur Data Materi II Tugas Buat sebuah linked list dimana infonya berfungsi untuk menyimpan data nilai mahasiswa berupa nomor mahasiswa, nama, kelas dan nilai. Tipe data dan lebar field tentukan sendiri!.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.