760 likes | 1.06k Views
Linked List. Bab 4. Buku :. halaman 88. Linked List. Linked List ( Obyek yang di-Link satu dengan lainnya ). apa itu List ?. Contoh sebuah LIST. 0 1 2 3 4. int A[5];. Array satu dimensi. Array satu dimensi Disebut juga : Vector
E N D
Linked List Bab 4 Buku : halaman 88
Linked List ( Obyek yang di-Link satu dengan lainnya )
Contoh sebuah LIST 0 1 2 3 4 int A[5]; Array satu dimensi Array satu dimensi Disebut juga : Vector Kadang-kadang disebut juga : List
int A[5]; biasa diilustrasikan sebagai berikut : 0 1 2 3 4 Kadang-kadang diilustrasikan sebagai berikut : Untuk daftar Untuk Stack 0 4 1 3 2 2 3 1 4 0
int A[5]; List dengan 5 elemen 0 1 2 3 4 A[1] A[4] A[0] secara umum : A[ I ]
int A[5]; List dengan 5 elemen, dengan alamat CONTIGUOUS 0 1 2 3 4 H21D8 H21DE H21DA H21E0 H21DC #include<stdio.h> void main() { int A[5]; int I; for (I=0; I<=4; I++ ) printf( “\n%X”, &A[I] ); } akan tercetak : 21D8 21DA 21DC 21DE 21E0 Tiap elemen 2 BYTE
Alamat atau Address adalah nomor Byte 0 1 2 3 4 RAM 64 MB 64*1024*1024-1
dengan: int A; terbentuk sebuah variabel (Elemen) sebesar 2 Byte 2 BYTE Nomor BYTE pertama (paling kiri) - sering disebut MSB - yang dipakai sebagai alamat MSB = Most Significant Byte
int A[5]; List dengan 5 elemen 0 1 2 3 4 ini bukan Linked List bukan List yang di-link satu dengan yang lainnya tapi List yang bersisian atau bergandengan atau berurutan (contiguous) satu dengan lainnya, sedemikian rupa sehingga alamat tiap elemen bersambung satu dengan yang lainnya (contiguous).
Linked List Obyekyang di-link satu dengan lainnya sehingga menjadi suatu List Yang dimaksud dengan Obyek disini adalah : sekumpulan elemen yang digabung menjadi satu kelompok yang disebut : setiap elemen mempunyai tipe data tersendiri structure, atau Vertex, atau Node, atau Titik, atau Record atau Simpul
INFO LINK Linked List Contoh pembuatan struktur sebuah Simpul yang dinyatakan dengan: typedef struct Node { int INFO; struct Node *LINK; }; typedef struct NodeSimpul; Simpul dengan 2 elemen, INFO dan LINK tipe : pointer,pointer untuk menunjuk node atau Simpul Tipe : integer untuk menyimpan data
Apa yang dimaksud dengan Pointer
Perhatikan instruksi berikut ini : int A; A = 25; printf(“%i”, A); Tercetak : 25
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; int Nama : A Tipe : integer Dibuat sebuah variabel dengan : Variabel adalah suatu area didalam memory yang isinya dapat diubah-ubah A
int A; A = 25; printf(“%i”, A); Tercetak : 25 Disiapkan sebuah variabel : int A; Nama : A Tipe : integer int Sebuah variabel dengan tipe integer, dalam memory menempati area sebanyak : A . . . . .Byte
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; int Sebuah variabel dengan tipe integer, dalam memory menempati area sebanyak : A 2 . . . . .Byte
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; int Dapat menampung nilai dalam batas ( kisaran / range) : A …………………………… Sampai dengan ……………………….
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; int Dapat menampung nilai dalam batas ( kisaran / range) : A 32767 -32768 …………………………… Sampai dengan ……………………….
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; int Pertanyaan : Apakah variabel ini ada isinya ? J a w a b : ………………………… A
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; int Pertanyaan : Apakah variabel ini ada isinya ? A D A J a w a b : ………………………… A
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; int Pertanyaan : Apa / berapa isinya ? J a w a b : ………………………... A
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; int Pertanyaan : Apa / berapa isinya ? J a w a b : TIDAK DIKETAHUI ………………………... A
int A; A = 25; printf(“%i”, A); Tercetak : 25
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; A = 25; int 25 Isinya jelas = 25 A
int A; A = 25; printf(“%i”, A); Tercetak : 25 int A; A = 25; printf(“%i”, A); Yang dicetak ISI variabel A int Dicetak dengan menggunakan format integer 25 A
perhatikan program berikut ini
int A; A = 25; printf(“%i”, A); int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak : 25 int Tercetak :25 25 A int *int 25 21C8 A P H21C8
int A; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak :25 int A
int A; int *P; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak :25 int *int A P
int A; int *P; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak :25 int *int P adalah variabel bertipe : Pointer Integer Hanya dapat diisi dengan alamat, Alamat variabel yang bertipeint(integer). Tidak dapat diisi dengan nilai seperti nilai ujian, jumlah barang, umur dan sebagainya A P
int A; int *P; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak :25 int *int A P
int A; int *P; A = 25; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak :25 int *int 25 A P
int A; int *P; A = 25; P = &A; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak :25 int *int 25 21C8 A P
int A; int *P; A = 25; P = &A; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Pointer P diisi dengan alamat variabel A Tercetak :25 int *int 25 21C8 A P Misal alamat variabel A berada pada Hexa 21C8 H21C8
int A; int *P; A = 25; P = &A; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Pointer P diisi dengan alamat variabel A Tercetak :25 Tanda & menyatakan alamat int *int 25 21C8 A P Misal alamat variabel A berada pada Hexa 21C8 H21C8
int A; int *P; A = 25; P = &A; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Pointer P diisi dengan alamat variabel A Tercetak :25 Tanda & menyatakan alamat int *int 25 21C8 Alamat variabel A misal : 21C8 , dalam notasi Hexa Decimal A P Misal alamat variabel A berada pada Hexa 21C8 H21C8
H21C8 = D ………………… (21C8)16 = ( …………… )10 Bilangan Hexa : x x x x . x x 4096 256 16 1 1/16 1/256 2 1 C 8 8 x 1 = 8 12 x 16 = 192 1 x 256 = 256 2 x 4096 = 8192 + 8648
H21C8 = D ………………… 1 / 2 1 / 4 1 / 8 1 / 16 1 / 32 1 / 64 1 / 128 1 / 256 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125 0.00390625 = = = = = = = = (21C8)16 = ( …………… )10 Bilangan Hexa : x x x x . x x 4096 256 16 1 1/16 1/256 2 1 C 8 8 x 1 = 8 12 x 16 = 192 1 x 256 = 256 2 x 4096 = 8192 + 8648
int A; int *P; A = 25; P = &A; int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak :25 int *int 25 21C8 A P H21C8
int A; int *P; A = 25; P = &A; printf(“%i”, *P); int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak :25 Tercetak : 25 Mencetak isi variabel yang alamatnya disimpan dalam Pointer P int *int 25 21C8 A P H21C8
int A; int *P; A = 25; P = &A; printf(“%i”, *P); Tercetak : 25 int *int 25 21C8 A P H21C8
typedef struct Node { int INFO; struct Node *LINK; }; typedef struct NodeSimpul; Tulisan dengan warna biruatau merah, adalah nama yang kita karang sendiri. Sedangkan tulisan dengan warna hitam adalah ketentuan dalam bahasa C INFO LINK
Contoh 4 buah simpul Linked List dalam memory tanda panah mengilustrasikan link 12 (2) 10 25 (4) (1) 17 (3)
Proses pembuatan Simpul dan pembuatan Link sampai terbentuk sebuah Linked-List
Perhatikan memory berikut ini : Belum ada Linked List
Akan dibuat sebuah Simpul Awal (simpul pertama)