• Tidak ada hasil yang ditemukan

Staffsite STMIK PPKIA Pradnya Paramita e620e one way list

N/A
N/A
Protected

Academic year: 2017

Membagikan "Staffsite STMIK PPKIA Pradnya Paramita e620e one way list"

Copied!
6
0
0

Teks penuh

(1)

SENARAI BERANTAI (LINK LIST)

Salah satu solusi untuk mengatasi kekurangan array adalah dengan Linked List. Linked List (senarai berantai satu arah atau one way list) merupakan struktur data dinamis yang paling sederhana. Link list merupakan kumpulan komponen yang disusun secara berurutan dengan bantuan pointer.

Masing-masing komponen atau disebut juga dengan istilah simpul (node), terdiri atas 2 bagian yaitu medan informasi, yang berisi informasi yang akan disimpan/diolah, dan medan penyambung, yang berisi alamat simpul berikutnya. Sebuah simpul dapat digambarkan sebagai berikut :

MODEL LOGIKA

Medan Penyambung Medan Informasi

Head

Ira Ida Indah Ika

Irna

MODEL FISIK

Alamat Info Next

1 Ira 5

2 Ika 1

3 Indah 0

4 Irna 2

5 Ida 3

Head 4

Jika P adalah variabel pointer, maka :

P = Variabel yang berisi alamat

P-> = Data yang ditunjuk oleh P

P->Next = Variabel yang berisi alamat data setelah data alamat P P->Next-> = Data yang ditunjuk oleh P->Next

Head

Irna Ika Ira Ida Indah

Head->Info

Head->Next

Head->Next->

(2)

PENDEKLARASIAN SIMPUL (NODES)

typedef struct nodestr *node;

struct nodestr {

char info[10]; node next; };

node head, temp;

PENGALOKASIAN MEMORI UNTUK TIPE DATA POINTER

temp = (node)malloc(sizeof(node));

MENDEALOKASI MEMORI YANG SUDAH TIDAK DIGUNAKAN

free(temp);

OPERASI DASAR PADA LINKED LIST

A. Operasi Traversing

Algoritma untuk melakukan operasi travesing adalah sebagai berikut: Traversing(head)

temp = Head;

While (temp != Null) Write(temp->Info); temp = temp->next; EndOfWile

Return

Jika kita buat prosedurnya dalam bahasa c sebagai berikut:

void Traversing() {

temp = head;

while (temp != NULL)

{

cout << "\n" << temp->info; temp = temp->next;

(3)

B. Operasi Searching

Algoritma Mencari Alamat Elemen Ke-K Pada Link List

FindK(Head, K, P) I = 1;

P = Head;

While (P != NULL) And (I < K) Inc(I);

P = P->Next; EndOfWhile;

/*

Hasil dari pencarian tersebut adalah

If (P = NULL)

Write(‘Elemen ke K tidak ada’) Else

Alamat elemen ke-k adalah P */

Return

Algoritma Mencari Alamat Data (Q) Pada Link List

FindQ(Head, Q, P) Found = False; P = Head;

While (P != NULL) && (!Found) If P->Info = Q Found = True Else P = P->Next

EndOfWhile /*

If (P == NULL) Then

Write(‘Data ’, Q, ‘ tidak ada !’) Else

Write(‘Alamat Data ’, Q, ‘ adalah : ’, P); */

Return

Algoritma Mencari Alamat Elemen Terakhir Pada Link List

Head

Ira Ida Indah Ika

Irna

P P->Info R

FindLast(Head, P) P = Head;

R = Head;

While (R != NULL) P = R;

R = R->Next; End;

(4)

Contoh penggunaan list berkait dalam program

#include <stdlib.h>

#include <conio.h>

#include <iostream.h>

typedef struct nodestr *node;

struct nodestr

{

int info;

node next;

};

node head, search, last, temp;

void ninsert(int i);

void listview();

void ndelete();

void main()

void ninsert(int i)

{

temp = (node)malloc(sizeof(node));

temp->info = i;

search = search->next;

}

void listview()

{

void ndelete()

(5)

C. Operasi Inserting

Operasi inserting dibedakan dalam tiga posisi penyisipan yaitu: sebagai elemen pertama (di awal list), sebagai elemen terakhir, dan di tengah list (sebagai elemen ke N yang baru dimana 1 < N < = jumlah elemen) .

C.1 Sebagai Elemen Pertama / Di Awal List

Algoritma Menyisipkan Elemen Pada Awal Link List InsertFirst(Head, X)

Malloc(Temp); Temp->Info = X; Temp->Next = Head; Head = Temp;

Return

C.2 Sebagai Elemen Terakhir

Algoritma Menyisipkan Elemen Pada Akhir Link List InsertLast(Head, X)

Malloc(Temp); Temp->Info = X; Temp->Next = NULL;

FindLast(Head,P); //Cari Alamat Elemen terakhir (P) P->Next = Temp;

Return

C.3 Sebagai Elemen Ke-N yang baru (1 < N <= Jumlah Elemen) Algoritma Menyisipkan di tengah Link List

InsertN(Head, X, N) Malloc(Temp);

Temp->Info = X;

FindK(Head, N-1, P); //Cari alamat elemen ke N-1 If P <> NULL

Temp->Next = P->Next; P->Next = Temp;

Else

Write(‘Elemen ke : ‘,N-1,’tidak ada’); Free(Temp);

(6)

D. Operasi Deleting

Sama seperti halnya operasi inserting, operasi deleting juga dibedakan dalam tiga posisi penghapusan yaitu: hapus elemen pertama (di awal list), hapus elemen terakhir, dan hapus elemen di tengah list (elemen ke N, dimana 1 < N < jumlah elemen) .

D.1 Menghapus Elemen Pertama / Di Awal List Algoritma menghapus elemen pertama pada Link List DeleteFirst(Head)

If Head != NULL

Temp=Head;

Head=Head->Next; Free(Temp);

Else

Write(‘List kosong’); EndIf

Return

D.2 Menghapus Elemen Terakhir Algoritma menghapus elemen terakhir

DeleteLast(Head)

//Mencari alamat elemen terakhir dan sebelum terakhir P = Head;

R = Head;

While (R->Next != NULL) P = R;

R = R->Next; End;

//Elemen terakhir = R, Elelem sebelum terakhir = P

P->Next = NULL; Free(R);

Return

D.3 Menghapus Elemen Ke-N, (1 < N < Jumlah Elemen) Algoritma Menyisipkan di tengah Link List

DeleteN(Head, N)

FindK(Head, N-1, P); {Cari alamat elemen ke N-1} R = P->Next;

If R->Next != NULL Then P->Next = R->Next; Free(R);

Else

Write(‘Tidak memenuhi syarat penghapusan’); Endif

Referensi

Dokumen terkait

Untuk meningkatkan efisiensi penggunaan lahan dan menekan laju erosi, dapat menerapkan pola usaha tani konservasi melalui sistem penanaman ganda (Multiple cropping) , dan

I then provide empirical evidence that these reforms suc- ceeded in substantially increasing the labor market attachment of the target population and that local welfare

SEHUBUNGAN DENGAN PENGUMUMA PEMENANG, MAKA BERSAMA INI DISAMPA KAN

Pada Bab II Point 2 tertulis masa berlaku penawaran 150 (seratus lima puluh) hari kalender,sedangkan pada Bab IV huruf F masa berlaku penawaran 60 (enam puluh) hari kalender

Pernyaaan ini saya buat dengan sesungguhnya dan apabila dikernudian hari terdapat penyrmpangan dan ketidak benaran Calam pernyataan ini maka saya bersedia menerima

Dengan ini kami beritahukan bahwa penawaran Saudara Nomor : ll ,1KP/SPHIIIII2AI2 tanggal 07 Maret 2A72 perlhal Penawaran Pekerjaan Pengadaan Sarana

Pendekatan sistem yang lebih menekankan pada prosedur didefinisikan bahwa sistem yaitu suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul

[r]