Linked List 6.3 & 7.3 NESTED LOOP.

Slides:



Advertisements
Presentasi serupa
ARRAY 1 DIMENSI Array 1 dimensi
Advertisements

Menempatkan Pointer Q 6.3 & 7.3 NESTED LOOP.
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
MODUL KULIAH STRUKTUR DATA TANGGAL REVISI TANGGAL BERLAKU KODE DOKUMEN :::::: September Session 8 Edited By Al-Bahra. L.B, S. Kom, M.
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
Pertemuan 2 STRUKTUR DATA LINKED LIST
LINKED LIST.
Linked List Pembuatan Simpul Awal.
LINK LIST Latifah Rifani.
Algoritma dan Struktur Data Daniel Riano Kaparang.
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
Algoritma & Struktur Data Pointer Evangs Mailoa.
Soal-Soal Latihan Mandiri
STRUKTUR DATA (6) single linked list non circular
Operasi pada pohon biner
Single Linked List Yuliana Setiowati, S.Kom.
BY YOHANA N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked- lis... 1 LINKED LIST.
Penelusuran Bab 7 Pohon Biner 219.
Algoritma & Struktur Data Linked List Evangs Mailoa.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
LINKED LIST by Yohana N.
Algorithm and Data Structures.
Pertemuan ketujuh Struktur data st3telkom.ac.id
Struktur Data List Linear : Linked List (Single Linkedlist)
POINTER.
LINKED LIST.
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Pertemuan Linked list jual [Valdo] Lunatik Chubby Stylus.
Bocoran Soal 6.3 & 7.3 NESTED LOOP UTS.
Universitas Budi Luhur
STRUKTUR DATA Linked List
BAB3 QUEUE 6.3 & 7.3 NESTED LOOP.
LINKED LIST by Yohana N.
PERTEMUAN 3 KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
STRUKTUR DATA QUIZ.
Bab & 7.3 NESTED LOOP Array 1 Dimensi 273.
#include<stdio.h>
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Algoritma dan Struktur Data
BAB 5 TREE (Pohon) 179.
STACK 6.3 & 7.3 NESTED LOOP.
1 PENDAHULUAN BAB PENGANTAR STRUKTUR DATA
Defri Kurniawan DOUBLE LINKED LIST Defri Kurniawan
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
MATAKULIAH : STRUKTUR DATA
Linked List INSERT KIRI 6.3 & 7.3 NESTED LOOP.
02.1 Hari-2.
Algoritma dan Struktur Data
Algoritme dan Stuktur Data
Algoritma dan Struktur Data
09.3 Hari-9.
Pertemuan Hari ke - 1 Sesi-1.
Algoritma dan Struktur Data
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
KONSEP DASAR STRUKTUR DATA
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
LINKED LIST GANDA Linked list ganda (doubly linked list) adalah linked list yang setiap simpul-nya (node) memiliki dua buah pointer, masing-masing berada.
STACK (TUMPUKAN) Stack atau tumpukan didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan dan pengambilan elemen melalui.
LINKED LIST by Yohana N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked-lis...
Linked List INSERT KANAN 6.3 & 7.3 NESTED LOOP.
Defri Kurniawan VARIASI LIST Defri Kurniawan
Linear Doubly INSERT KIRI
Linear Doubly INSERT TENGAH
Linear Doubly Linked List
Variable Static & Linked List
Linked List DELETE TENGAH 6.3 & 7.3 NESTED LOOP.
SINGLE LINKED LIST (SLL)
Transcript presentasi:

Linked List 6.3 & 7.3 NESTED LOOP

Linked List ( Obyek yang di-Link satu dengan lainnya )

apa itu List ?

Kadang-kadang disebut juga : List Contoh sebuah LIST 0 1 2 3 4 int A[5]; Array satu dimensi Disebut juga : Vector Kadang-kadang disebut juga : List

biasa diilustrasikan sebagai berikut : int A[5]; biasa diilustrasikan sebagai berikut : 0 1 2 3 4 Kadang-kadang diilustrasikan sebagai berikut : Untuk Stack 4 1 3 2 2 3 1 4

int A[5]; List dengan 5 elemen A[1] A[4] A[0] secara umum : A[ I ] 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 H21DA H21DE 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 Algo-1, jilid 2 hal. 10.03

Apa itu alamat ?

Alamat atau Address adalah nomor Byte 1 2 3 4 RAM 64 MB 64*1024*1024-1

MSB = Most Significant Byte 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

bukan List yang di-link satu dengan yang lainnya 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).

Obyek yang di-link satu dengan lainnya sehingga Linked List Obyek yang 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

Linked List Contoh sebuah Simpul yang dinyatakan dengan: typedef struct Node { int INFO; struct Node *LINK; }; typedef struct Node Simpul; INFO LINK Simpul dengan 2 elemen, INFO dan LINK tipe : pointer, pointer untuk menunjuk node atau Simpul Tipe : integer untuk menyimpan data

typedef struct Node Simpul; int INFO; struct Node *LINK; }; typedef struct Node Simpul; Tulisan dengan warna biru atau merah, adalah nama yang kita karang sendiri. Sedangkan tulisan dengan warna hitam adalah ketentauan 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)

Simpul pertama (1) sudah dibuat misal alamatnya = H1000 INFO LINK (1) H1000 Bagaimana membuatnya akan diterangkan kemudian

Kemudian INFO akan diisi dengan nilai 25 LINK (1) H1000

25 INFO simpul pertama (1) sudah diisi dengan nilai 25 (1) LINK 25 (1) H1000 Bagaimana cara mengisinya akan diterangkan kemudian

sebuah simpul baru (simpul kedua) Misal akan dibuat sebuah simpul baru (simpul kedua) INFO LINK 25 (1) H1000

25 Sudah dibuat simpul kedua (2) Misal alamatnya = H0800 (2) (1) INFO LINK (2) H0800 INFO LINK 25 (1) H1000 Alamat simpul baru, tidak mesti lebih besar dari alamat simpul pertama

25 INFO simpul kedua (2) akan diisi dengan 12 (2) (1) H0800 H1000 INFO LINK (2) H0800 INFO LINK 25 (1) H1000

12 25 INFO simpul kedua (2) sudah diisi dengan nilai 12 (2) (1) H0800 LINK 12 (2) H0800 INFO LINK 25 (1) H1000

Akan di-link simpul pertama (1) dengan simpul kedua (2) INFO LINK 12 (2) H0800 INFO LINK 25 (1) H1000

12 25 Simpul pertama (1) sudah di-link dengan simpul kedua (2) LINK simpul pertama (1) diisi dengan alamat simpul kedua (2) Simpul pertama (1) sudah di-link dengan simpul kedua (2) INFO LINK 12 (2) H0800 INFO LINK 25 0800 (1) H1000 Bagaimana mengisi LINK simpul pertama dengan alamat simpul kedua akan diterangkan kemudian

INFO LINK 12 (2) H0800 INFO LINK 25 0800 Instruksi untuk meng-link yaitu mengisi alamat simpul (2) kedalam LINK simpul (1) termasuk intruksi atau tugas yang sulit (1) H1000 !

12 25 Kemudian : Akan dibuat simpul (3), dan INFO simpul (3) diisi dengan 17 INFO LINK 12 (2) H0800 INFO LINK 25 0800 (1) H1000

12 25 17 Sudah dibuat simpul ketiga (3) Misal alamatnya = H1400 (2) INFO LINK 12 (2) H0800 INFO LINK 25 0800 INFO LINK (1) 17 H1000 (3) H1400

12 25 17 Akan di-link simpul kedua (2) Kemudian : dengan simpul ketiga (3) INFO LINK 12 (2) H0800 INFO LINK 25 0800 INFO LINK (1) 17 H1000 (3) H1400

12 25 17 Simpul kedua (2) sudah di-link dengan simpul ketiga (3) (2) INFO LINK 12 1400 (2) H0800 INFO LINK 25 0800 INFO LINK (1) 17 H1000 (3) H1400

12 10 25 17 Dan seterusnya dibuat simpul (4), INFO simpul (4) diisi 10 dan simpul (3) di-link dengan simpul (4) INFO LINK 12 1400 (2) H0800 INFO LINK 10 INFO LINK 25 0800 (4) INFO LINK (1) H1100 17 1100 H1000 (3) H1400

12 10 25 17 Sekarang sudah tercipta 4 buah simpul, dan sudah ter-link satu dengan lainnya, sehingga membentuk sebuah Linked List INFO LINK 12 1400 (2) H0800 INFO LINK 10 INFO LINK 25 0800 (4) INFO LINK (1) H1100 17 1100 H1000 (3) H1400

Untuk memudahkan melihat hubungan (link) antara satu simpul dengan simpul lainnya, maka semua isi LINK (yang berbentuk angka ) diganti atau direpresentasikan dengan tanda panah sehingga ilustrasinya menjadi sebagai berikut :

Semua alamat dalam LINK dinyatakan dengan tanda panah. INFO LINK 12 1400 (2) H0800 INFO LINK 10 INFO LINK 25 0800 (4) INFO LINK (1) H1100 17 1100 H1000 (3) H1400

12 10 25 17 Sehingga: Link dalam bentuk angka alamat tidak diperlukan lagi INFO LINK 12 (2) H0800 INFO LINK 10 INFO LINK 25 (4) INFO LINK (1) H1100 17 H1000 (3) H1400

Alamat tiap-tiap simpul juga tidak perlu diketahui,> Yang perlu diketahui adalah link antar simpul sehingga membentuk sebuah Linked List. INFO LINK 12 H0800 INFO LINK 10 INFO LINK 25 INFO LINK H1100 17 H1000 H1400

12 10 25 17 Linked List empat buah simpul dapat dinyatakan demikian ini, tanpa memperlihatkan alamat simpul secara fisik INFO LINK 12 INFO LINK 10 INFO LINK 25 INFO LINK 17

25 12 10 17 Linked List empat buah simpul ini dapat disederhanakan gambarnya menjadi : INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4)

Dalam buku ini akan dibicarakan 4 macam linked list sebagai berikut : 3. 01 BAB 3 LINKED LIST Linked List adalah obyek yang di link satu dengan yang lainnya sehingga menjadi suatu list. Sedangkan obyek itu sendiri adalah merupakan kumpulan elemen-elemen yang digabung menjadi satu structure atau record yang dibentuk dengan perintah struct Dalam buku ini akan dibicarakan 4 macam linked list sebagai berikut :

LINEAR SINGLY LINKED LIST 3. 01 LINEAR SINGLY LINKED LIST I. II. LINEAR DOUBLY LINKED LIST III. CIRCULAR SINGLY LINKED LIST IV. CIRCULAR DOUBLY LINKED LIST

LINEAR SINGLY LINKED LIST 3. 01 I. LINEAR SINGLY LINKED LIST FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 II. LINEAR DOUBLY LINKED LIST FIRST LAST INFO RIGHT RIGHT LEFT LEFT INFO RIGHT RIGHT LEFT INFO LEFT INFO 25 12 17 10

CIRCULAR SINGLY LINKED LIST 3. 01 III. CIRCULAR SINGLY LINKED LIST FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 IV. CIRCULAR DOUBLY LINKED LIST FIRST LAST INFO RIGHT RIGHT LEFT LEFT INFO RIGHT RIGHT LEFT INFO LEFT INFO 25 12 17 10

1. LINEAR SINGLY LINKED LIST DENGAN POINTER TUNGGAL 3. 02 1. LINEAR SINGLY LINKED LIST LINKED LIST LURUS DENGAN POINTER TUNGGAL

LINEAR SINGLY LINKED LIST 3. 02 1.1. ILUSTRASI FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) atau LAST FIRST INFO LINK INFO LINK INFO LINK INFO LINK 10 17 12 25 (4) (3) (2) (1)

Urutan insert Urutan delete atau Urutan insert Urutan delete 3. 02 (1) FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 Urutan insert (1) (2) (3) (4) Urutan delete (1) (2) (3) (4) atau LAST FIRST INFO LINK INFO LINK INFO LINK INFO LINK 10 17 12 25 Urutan insert (4) (3) (2) (1) Urutan delete (1) (2) (3) (4)

Keluar, Ambil, Baca atau Hapus 3. 02 INSERT : Masuk, Simpan, Tulis DELETE : Keluar, Ambil, Baca atau Hapus

Mana yang mengikuti prinsip STACK, dan FIRST LAST Ilustrasi-1 INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 Urutan insert (1) (2) (3) (4) Urutan delete (1) (2) (3) (4) LAST FIRST INFO LINK INFO LINK INFO LINK INFO LINK Ilustrasi-2 10 17 12 25 Urutan insert (4) (3) (2) (1) Urutan delete (1) (2) (3) (4) Pertanyaan : Mana yang mengikuti prinsip STACK, dan mana yang mengikuti prinsip QUEUE, Linked List ilustrasi-1 atau Linked List ilustrasi-2

3. 02 Untuk selanjutnya Linked List yang akan diterangkan adalah Linked List yang diilustrasikan sebagai berikut : FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (4) (3)

Keterangan : Dari ilustrasi diatas, dapat diterangkan sebagai berikut: 3. 02 FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (4) (3) Keterangan : Dari ilustrasi diatas, dapat diterangkan sebagai berikut: Ada 4 simpul, simpul no (1) sampai dengan no (4) Setiap simpul (record) terdiri dari dua elemen (field) yaitu : Field INFO misal bertipe integer. Field LINK bertipe pointer Yang diilustrasikan dengan panah Untuk simpul no (1), Field INFO berisi nilai 25 Field LINK berisi alamat simpul no (2)

Untuk Linked List yang akan dipelajari : 3. 02 FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (4) (1) (2) (3) Untuk Linked List yang akan dipelajari : Simpul pertama no (1) berada diujung paling kiri, dan ditunjuk oleh pointer FIRST. Simpul terakhir no (4) berada diujung paling kanan,dan ditunjuk oleh pointer LAST. LINK dari simpul terakhir diisi dengan NULL.

Pembuatan Record Awal (inisialisasi) Insert Kanan (Insert Akhir) 1.2 PROSES 2a. 2b. 2c. 2d. 2e. 2f. 2g. Pembuatan Record Awal (inisialisasi) Insert Kanan (Insert Akhir) Insert Kiri (Insert Awal) Insert Tengah Delete Kanan Delete Kiri Delete Tengah

Ilustrasi sebuah Simpul (Vertex, atau Node, atau Record) 3.03 Ilustrasi sebuah Simpul (Vertex, atau Node, atau Record) INFO LINK Simpul dengan 2 elemen atau field Nama field Tipe Isi : LINK : pointer : akan diisi dengan alamat record berikutnya Nama field Tipe Isi : INFO : integer : akan diisi data Tipe data tentunya disesuaikan dengan keperluan. Disini diambil saja contoh yang sederhana dimana data yang akan disimpan adalah bernilai integer.

typedef struct Node Simpul; Simpul *P, *FIRST, *LAST; 3.03 Struktur sebuah Simpul INFO LINK Untuk ‘memberitahukan komputer ‘ bahwa kita memerlukan suatu Simpul atau record dengan tipe strukur demikian ini, perlu ditulis intruksi-instruksi sebagai berikut : typedef struct Node { int INFO; struct Node *LINK; }; typedef struct Node Simpul; Simpul *P, *FIRST, *LAST;

typedef struct Node Simpul; Simpul *P, *FIRST, *LAST; 3.03 typedef struct Node { int INFO; struct Node *LINK; }; typedef struct Node Simpul; Simpul *P, *FIRST, *LAST; Masih banyak cara penulisan lain untuk maksud yang sama. Disini diambil suatu cara yang dianggap paling sederhana. Disiapkan 3 buah variabel pointer, yaitu : P, FIRST dan LAST yang kesemuanya berkaitan dengan simpul atau record atau node yang bertipe Simpul

Simpul typedef struct Node { int INFO; struct Node *LINK; }; 3.03 typedef struct Node { int INFO; struct Node *LINK; }; typedef struct Node Simpul; Simpul *P, *FIRST, *LAST; Disini : Simpul Adalah nama tipe sebagaimana nama tipe yang telah disediakan oleh Bahasa C seperti : int, long int, float, dan sebagainya. Bila int adalah nama tipe suatu variable, maka Simpul disini adalah nama tipe dari suatu structure atau record, dimana structure tersebut terdiri dari dua field, yaitu : INFO yang bertipe integer (int), dan LINK yang bertipe pointer (pakai *) untuk structure tersebut.

1.2.1. Pembuatan Sebuah Simpul ( Baru ) 3. 04 1.2.1. Pembuatan Sebuah Simpul ( Baru ) Perhatikan kembali instruksi untuk menyiapkan tipe (struktur) sebuah simpul sebagai berikut : typedef struct Node { int INFO; struct Node *LINK; }; typedef struct Node Simpul; Simpul *P, *FIRST, *LAST;

P 1.2.1. Pembuatan Simpul ( Baru ) Instruksi untuk membuat 3. 04 Instruksi untuk membuat sebuah record baru : P = (Simpul *) malloc(sizeof(Simpul)); Terbentuk sebuah simpul yang alamatnya disimpan dalam pointer P atau disebut : “simpul yang ditunjuk oleh pointer P” yang dapat diilustrasikan sebagai berikut : P INFO LINK

P = (Simpul *) malloc(sizeof(Simpul)); 3. 04 P = (Simpul *) malloc(sizeof(Simpul)); malloc : Maksudnya : memory allocation yaitu mengalokasikan memory sebesar atau seukuran (sizeof) yang diperlukan untuk Simpul

P = (Simpul *) malloc(sizeof(Simpul)); 3. 04 P = (Simpul *) malloc(sizeof(Simpul)); INFO LINK H21C8 21C8 P Alamat simpul dicatat dalam variabel P (P bertipe Pointer untuk menunjuk Simpul)

P H21C8 21C8 P Ilustrasi fisik dalam memory diatas, 3. 04 INFO LINK H21C8 21C8 P Ilustrasi fisik dalam memory diatas, dapat digambarkan dengan ilustrasi diagram sebagai berikut : P INFO LINK

#include <stdio.h> #include <stdlib.h> Contoh (sederhana) program selengkapnya untuk membuat sebuah record atau simpul yang alamat simpul tersebut dicatat dalam pointer P. 3. 04 #include <stdio.h> #include <stdlib.h> #include <ctype.h> typedef struct Node { int INFO; struct Node *LINK; }; typedef struct Node Simpul; Simpul *P, *FIRST, *LAST; main() { int X; scanf(“%i”, &X); p = (Simpul *)alloc(sizeof(Simpul)); P->INFO = X; P->LINK = NULL; }

P 25 void main() { int X; scanf(“%i”, &X); p = (Simpul *)alloc(sizeof(Simpul)); P->INFO = X; P->LINK = NULL; } 3. 04 Nilai X (misal 25 hasil input sebelumnya) disimpan dalam elemen INFO Field LINK berisi NULL artinya pointer LINK tidak menunjuk kesuatu alamat tertentu Terbentuk sebuah simpul yang alamatnya disimpan dalam pointer P atau disebut simpul yang ditunjuk oleh pointer P P INFO LINK 25

P P->INFO = X; P->INFO 25 maksudnya : Field INFO suatu simpul, p = (Simpul *)alloc(sizeof(Simpul)); P->INFO = X; P->LINK = NULL; 3. 04 P->INFO = X; P->INFO maksudnya : Field INFO suatu simpul, yang simpulnya sedang ditunjuk oleh pointer P dalam bahasa C, ditulis dengan dua karakter yaitu tanda - (minus) dan tanda > (tanda lebih besar) P INFO LINK 25

P P->LINK 25 P->LINK = NULL; p = (Simpul *)alloc(sizeof(Simpul)); P->INFO = X; P->LINK = NULL; 3. 04 P->LINK = NULL; P->LINK field LINK suatu simpul, yang simpulnya sedang ditunjuk oleh pointer P P INFO LINK 25 \0 0 0 0 0 0 0 0 0 karakter NULL nilai ASCIInya = 0 (nol)

P P 25 25 \0 Nilai pointer yang berisi NULL 3. 04 P INFO LINK 25 \0 Nilai pointer yang berisi NULL sering diilustrasikan sebagai panah ‘ground’ sebagai berikut : P INFO LINK 25

Perhatikan kembali LINEAR SINGLY LINKED LIST 3.05 Perhatikan kembali LINEAR SINGLY LINKED LIST yang akan dibuat sebagai yang diilustrasikan berikut ini : FIRST LAST LINK LINK LINK LINK INFO INFO INFO INFO 25 12 17 10 (1) (2) (3) (4)

3.05 1.2.2. Pembuatan Simpul Awal. Simpul awal, maksudnya adalah simpul yang pertama kali dibuat. Setelah itu simpul baru dapat ditambahkan baik disebelah kanan, maupun disebelah kiri simpul simpul yang sudah ada. FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (4) (3) Misal, (untuk mudahnya) : Simpul ini yang kita ambil sebagai contoh untuk simpul awal yang ditunjuk oleh pointer FIRST

typedef struct Node Simpul; Simpul *P, *FIRST, *LAST; int X; Perhatikan kembali struktur sebuah simpul, dan variabel-variabel yang diperlukan 3.05 typedef struct Node { int INFO; struct Node *LINK; }; typedef struct Node Simpul; Simpul *P, *FIRST, *LAST; int X; Menyatakan struktur Simpul dan menyiapkan variabel Dalam memory Perhatikan : Ada 3 buah pointer : P , FIRST, dan LAST P FIRST LAST X

Pembuatan Simpul Awal. Fungsi untuk membuat simpul awal 3.05 Fungsi untuk membuat simpul awal void Awal (void) { int X; scanf(“%i”, &X); P=(Simpul*)malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LINK = NULL; } 1) 2) 3) 4) 5) Ada 5 intruksi pokok

P 1) P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LINK = NULL; 1) 2) 3) 4) 5) 3.05 Ada 5 instruksi pokok yang perlu kita perhatikan : 1) P = (Simpul *) malloc(sizeof(Simpul)); Terbentuk sebuah simpul yang ditunjuk oleh pointer P yang dapat diilustrasikan dengan gambar sebagai berikut : P INFO LINK

3.05 INFO LINK 1000 P FIRST LAST X 1000 P INFO LINK

P Sebuah simpul yang ditunjuk oleh pointer P ( alamatnya dicatat dalam pointer P ) 3.05 P P INFO INFO LINK LINK P INFO LINK P INFO LINK INFO LINK P P Banyak cara menggambarkan ilustrasi pointer P menunjuk sebuah simpul INFO LINK INFO LINK P

P Sebuah simpul yang ditunjuk oleh pointer P ( alamatnya dicatat dalam pointer P ) 3.05 P INFO LINK Field ini namanya : P->LINK Field ini namanya : P->INFO

P 2) P->INFO = X; 25 P=(Simpul*)malloc(sizeof(Simpul)); FIRST = P; LAST = P; P->LINK = NULL; 1) 2) 3) 4) 5) 3.05 2) P->INFO = X; P INFO LINK 25

3.05 INFO LINK 25 1000 P FIRST LAST X 1000 P INFO LINK 25

P 25 P->LINK P->INFO Field ini namanya : Field ini namanya : 3.05 INFO LINK 25 Field ini namanya : P->LINK Field ini namanya : P->INFO Dengan perintah : printf(“%i”, P->INFO); Akan tercetak : 25

Simpul pertama selalu ditunjuk Oleh pointer FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (4) (3) Simpul pertama selalu ditunjuk Oleh pointer FIRST

P P 3) FIRST = P; P 25 P=(Simpul*)malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LINK = NULL; 1) 2) 3) 4) 5) 3.05 FIRST P INFO LINK 25 3) FIRST = P; P FIRST INFO LINK P 25 INFO LINK 25 FIRST

3.05 INFO LINK 25 1000 P FIRST LAST X 1000 1000 FIRST P INFO LINK 25

25 P P->LINK FIRST->LINK P->INFO atau FIRST->INFO FIRST 3.05 P INFO LINK 25 Field ini namanya : P->LINK atau FIRST->LINK Field ini namanya : P->INFO atau FIRST->INFO

Simpul terakhir selalu ditunjuk Oleh pointer LAST FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (4) (3) Simpul terakhir selalu ditunjuk Oleh pointer LAST

P P 4) LAST = P; P 25 P=(Simpul*)malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LINK = NULL; 1) 2) 3) 4) 5) 3.05 FIRST LAST P INFO LINK 25 4) LAST = P; FIRST LAST FIRST P INFO P LINK 25 INFO LINK 25 LAST

25 25 P X 1000 FIRST LAST 1000 1000 1000 3.05 INFO LINK LAST FIRST

25 P P->LINK FIRST->LINK LAST->LINK P->INFO atau 3.05 FIRST P INFO LINK 25 Field ini namanya : P->LINK atau FIRST->LINK LAST->LINK Field ini namanya : P->INFO atau FIRST->INFO LAST->INFO

P 5) P->LINK = NULL; 25 P=(Simpul*)malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LINK = NULL; 1) 2) 3) 4) 5) 3.05 5) P->LINK = NULL; LAST FIRST P INFO LINK 25

25 25 \0 P X Sudah terbentuk sebuah Simpul awal 1000 FIRST LAST 1000 3.05 INFO LINK 25 \0 1000 P FIRST LAST X 1000 1000 1000 LAST FIRST Sudah terbentuk sebuah Simpul awal P INFO LINK 25

3.05 LATIHAN DI KELAS

P 25 Ada berapa buah simpul yang terlihat Pertanyaan : LAST FIRST INFO 3.05 FIRST P INFO LINK 25 Ada berapa buah simpul yang terlihat Pertanyaan :

LAST 3.05 FIRST P INFO LINK 25 Jawab : Ada 1 buah simpul

P 25 Ada berapa buah pointer yang terlihat Pertanyaan : LAST 3.05 FIRST P INFO LINK 25 Ada berapa buah pointer yang terlihat - Apa nama masing-masing pointer - Apa isi masing-masing pointer Pertanyaan :

P 25 Jawab : Ada 4 buah pointer LAST FIRST INFO LINK P &(1) FIRST &(1) 3.05 FIRST P INFO LINK 3 2 1 25 Jawab : Ada 4 buah pointer 4 No Nama Isi Pointer Pointer pointer 1 P &(1) FIRST &(1) 2 3 LAST &(1) 4 P->LINK atau FIRST->LINK atau LAST->LINK NULL

P 25 LAST FIRST INFO LINK TRUE atau FALSE Kondisi berikut ini 3.05 FIRST P INFO LINK TRUE atau FALSE Kondisi berikut ini 3 2 1 25 4 if( P == FIRST ) if( FIRST == LAST ) if( FIRST->LINK == LAST->LINK ) if( FIRST->INFO = 25 )