List Berkait(Linked List)
Pertemuan : 13 Oleh : Danang Junaedi
Jurusan Teknik Informatika – Universitas Widyatama
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Overview Tujuan Instruksional Pendahuluan Pembentukan List Berkait Menampilkan Data pada List Berkait Studi Kasus Tugas Individu
Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-2 XIII-2
Universitas Universitas Widyatama Widyatama
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Tujuan Instruksional Mahasiswa akan dapat
Menjelaskan pengertian dan manfaat list berkait Menjelaskan pengelolaan list berkait (Membentuk dan Menampilkan data)
Mengimplementasikan pengelolaan (Membentuk dan Menampilkan data)
Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-3 XIII-3
list
berkait
Universitas Universitas Widyatama Widyatama
1
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Pendahuluan (1) List atau disebut juga Pointer variabel yang berisi alamat memori sebagai nilainya. berisi alamat dari variabel yang mempunyai nilai tertentu. tidak secara langsung berisi suatu nilai tetapi berisi alamat memori dari nilai tersebut Cara pendeklarasian :
* Jenis List/Pointer : List Tunggal (Single List) terdiri dari maksimum 1 komponen yaitu komponen yang mencatat alamat dari suatu nilai
Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-4 XIII-4
Universitas Universitas Widyatama Widyatama
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Pendahuluan (2) Contoh List Tunggal (Single List) I int I = 5;
I
5
0012FED4
IPointer
0012FED6
5 IPointer
int *IPointer;
IPointer 0012FED6 0012FED4
IPointer = &I;
I
IPointer
I
5
0012FED4
5
Alamat di memori
Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-5 XIII-5
Universitas Universitas Widyatama Widyatama
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Pendahuluan (3) Jenis List/Pointer (Lanjutan):
List Berkait (Linked List) terdiri dari 2 komponen utama yaitu komponen nilai/info dari list itu sendiri dan komponen yang mencatat alamat dari suatu nilai/list berikutnya. Jenis ini terdiri dari : Single Linked List Contoh Info
Next_List
Double Linked List Multiple Linked List Circular Linked List
NULL (kosong/List terakhir)
di bahas pada mata kuliah Struktur Data & Algoritma Lanjut
NULL berarti komponen yang mencatat alamat list berikutnya bernilai kosong
Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-6 XIII-6
Universitas Universitas Widyatama Widyatama
2
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Pembentukan List Berkait (1) Pendeklarasian List struct { ; Nama Info Nama Pointer Berisi alamat dari *; list berikutnya Berisi Nilai dari List }; Contoh : a. Struct List{ int Info; Berisi alamat dari list berikutnya Info Next List Next; }; Berisi Nilai dari List Atau b. Struct Simpul{ int No_Urut; No_Urut Nama IPK Berikutnya char Nama[25]; float IPK; Simpul *Berikutnya; };
Berisi alamat dari list berikutnya
Berisi Nilai dari List
Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-7 XIII-7
Universitas Universitas Widyatama Widyatama
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Pembentukan List Berkait (2) Pembentukan List Baru = new Contoh berdasarkan pendeklarasian di atas a. Baru = new List //perintah untuk membuat list baru Baru -> Info =25 atau cin>>Baru -> info //Masukan data ke Info 25 / Nilai yang di-input-kan b. Simpul Anyar = new Simpul //perintah untuk membuat Simpul baru Simpul Anyar -> No_Urut = 001 atau cin>> Simpul Anyar -> No_Urut Simpul Anyar -> Nama = “Saya” atau cin>> Simpul Anyar -> Nama Simpul Anyar -> IPK = 3.56 atau cin>> Simpul Anyar -> IPK 001
Saya
3.56
Operator -> digunakan untuk menunjukan posisi komponen yang sedang aktif/digunakan Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-8 XIII-8
Universitas Universitas Widyatama Widyatama
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Pembentukan List Berkait (3) Penambahan List Baru ke dalam Elemen List List Kosong (Awal/Head = NULL) Awal/Akhir
Awal Akhir 2 1. Awal = Baru
Baru 25
25
1
2. Akhir = Baru 3
List Isi Tambah di Awal
3. Baru -> Next = NULL
Awal/Head
Awal
Akhir
Akhir
25
25 Baru
2
Baru 35
1. Baru -> Next = Awal 2. Awal = Baru
1
35 Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-9 XIII-9
Universitas Universitas Widyatama Widyatama
3
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Pembentukan List Berkait (4)
List Isi (lanjutan) Tambah di Akhir
Awal
Awal
35
25
35
1
Akhir
Akhir
Baru
25
45
Baru
3
2
45 1. Akhir -> Next = Baru 2. Akhir = Baru 3. Baru -> Next = NULL
Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-10 XIII-10
Universitas Universitas Widyatama Widyatama
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Pembentukan List Berkait (5)
List Isi (lanjutan) Tambah di Tengah Awal
Akhir 25
35
1
Awal PSbl 35
45
Baru
2
Pnow
Akhir
25
45
3
Baru 15 15 1. Telusuri dari posisi awal sampai ditemukan posisi yang sesuai atau posisi paling akhir (NULL) & gunakan Psbl (Pointer sebelum) dan Pnow (Pointer saat ini) sebagai pointer bantu penelusuran Psbl = NULL ; Pnow = Awal while (Pnow != NULL && ) {Psbl = Pnow ;Pnow = Pnow -> Next} 2. Psbl = Baru 3. Baru -> Next = Pnow Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-11 XIII-11
Universitas Universitas Widyatama Widyatama
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Menampilkan Data pada List Berkait Awal/Head Pnow
Arah Penelusuran/Pergeseran
35
15
25
45
Telusuri dari posisi awal sampai ditemukan posisi paling akhir (NULL), Tampilkan & gunakan Pnow (Pointer saat ini) sebagai pointer bantu penelusuran Pnow = Awal while (Pnow != NULL) { cout << Pnow -> Info Pnow = Pnow -> Next } Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-12 XIII-12
Universitas Universitas Widyatama Widyatama
4
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Studi Kasus Buat Program (gunakan list berkait) untuk kasus di bawah ini (pilih salah satu) Data Nilai Mahasiswa Data Barang Data Penjualan Dimana data harus terurut secara Ascending berdasarkan aturan tertentu, kemudian tampilkan datanya
Tugas Kelompok Buat Resume mengenai Strategi Algoritma yang terdiri dari :
Definisi Jenis Strategi Algoritma + Penjelasan + Contoh Kasus + Penjelasan Kasus + Penyelesaian (Program)
Tulis tangan pada kertas ukuran A-4, kumpulkan pada saat UAS Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-13 XIII-13
Universitas Universitas Widyatama Widyatama
Pemrograman Pemrograman IIII (Terstruktur (Terstruktur II) II)
Untuk bahan renungan bersama Siapakah orang yang rugi? Orang yang rugi adalah orang yang sudah sampai usia pertengahan namun masih berat untuk melakukan ibadat dan amal-amal kebaikan. Maka hargailah waktumu dan bersegeralah Siapakah orang yang paling cantik/Tampan? Orang yang paling cantik/Tampan adalah orang yang mempunyai akhlak yang baik. Maka peliharalah akhlakmu dari dosa dan noda Siapakah orang yang mempunyai rumah yang paling luas? Orang yang mempunyai rumah yang paling luas adalah orang yang mati membawa amalamal kebaikan dimana kuburnya akan di perluaskan sejauh mata memandang. Maka beramal shalehlah selagi sempat dan mampu Siapakah orang yang mempunyai rumah yang sempit lagi dihimpit ? Orang yang mempunyai rumah yang sempit adalah orang yang mati tidak membawa amalamal kebaikkan lalu kuburnya menghimpitnya. Maka ingatlah akan kematian dan kehidupan setelah dunia Siapakah orang yang mempunyai akal ? Orang yang mempunyai akal adalah orang-orang yang menghuni syurga kelak, karena telah menggunakan akal sewaktu di dunia untuk menghindari siksa neraka. Maka peliharalah akal sehatmu dan pergunakan semaksimal mungkin untuk mengharap ridhoNya Jurusan Jurusan Teknik Teknik Informatika Informatika
XIII-14 XIII-14
Universitas Universitas Widyatama Widyatama
5