BLOGGER TEMPLATES AND TWITTER BACKGROUNDS

Kamis, 17 Juni 2010

single linked list non circular

Linked List

Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung, dinamis dan terbatas.

Linked List sering disebut juga Senarai Berantai

Linked List saling terhubung dengan bantuan variabel pointer

Masing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari beberapa field.

Bentuk Node Single Linked List non Circular

Pengertian:

Single : artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node, pointernya menunjuk NULL

Linked List : artinya node-node tersebut saling terhubung satu sama lain.

Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data.

Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada saat pembacaan isi linked list.

Deklarasi Node

typedef struct TNode{

int data;

TNode *next;

};

Penjelasan:

Pembuatan struct bernama TNode yang berisi 2 field, yaitu field data bertipe integer dan field next yang bertipe pointer dari TNode

Setelah pembuatan struct, buat variabel head yang bertipe pointer dari TNode yang berguna sebagai kepala linked list.

Pembuatan Single Linked List non Circular (2)

Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta alokasi memorinya, kemudian node tersebut diisi data dan pointer nextnya ditunjuk ke NULL.

TNode *baru;

baru = new TNode;

baru->data = databaru;

baru->next = NULL;

Read More..

Linked List

- Linked List
Merupakan suatu struktur data pengembangan dari konsep ADT (Abstrak Data Type) yang bersifat dinamis. Linked List dapat dimanfaatkan secara effektif sesuai dengan keperluan. Linked List juga dapat benar – benar dihapus / dibersihkan dari memory.Linked List sebenarnya merupakan suatu typedata tersendiri. Di bahasa Java, Linked List bisa berupa suatu Class ataupun Record. Ciri – ciri utama dari Linked List adalah, dia mempunyai minimal dua elemen utama. Elemen – elemen itu adalah data dan pointer untuk menunjukkan ke list berikutnya.- ArrayArray berbeda dengan Linked List. Array merupakan suatu struktur data yang bersifat statis. Array harus dialokasikan terlebih dahulu di dalam memory sebelum kita memakainya.

Perbedaan mendetail antara Array dan Linked List adalah sebagai berikut :

Linked List Array
- Pengaksesan Dinamis- Pengalokasian random pada alamat memory- Dapat dibebaskan dari memory- Tidak menggunakan konsep indexing

- Pengaksesan untuk searching /sorting lambat

- Pengaksesan Statis- Pengalokasian berurut pada alamat memory- Tidak dapat dibebaskan dari memory- Menggunakan konsep indexing

- Pengaksesan untuk searching atau sorting cepat

5.

- Linked List

linkedlist1

Kita akan lebih efektif jika kita menggunakan konsep Linked List jika kita memerlukan suatu pengaksesan pada struktur data yang lebih dinamis. Konsep yang lebih cocok menggunakan linked list adalah : Stack, Queue, Tree, dan Graph.

Hal ini dikarenakan oleh sifat dinamis dari Linked List. Kita tidak perlu untuk mengetahui berapa block memory yang akan kita akses. Jadi, jika kita butuh block baru pada memory, tinggal menyisipkan pada kanan atau kiri list yang telah ada.

- Array

array

Kita dapat memanfaatkan secara efektif konsep array dengan mengenal metode indexing pada array. Array merupakan struktur data statis yang mempunyai index penomoran alamat variable array yang dimaksud. Jadi, secara umum, kita dapat mengaksesnya dengan lebih cepat.

Konsep – konsep yang dapat memanfaatkan konsep indexing untuk mempercepat pengaksesannya adalah Sorting dan Searching.

Hal ini dikarenakan oleh penomoran alamat variable pada memory yang telah diketahui terlebih dahulu. Jadi, semisal kita menginginkan mencari variable dengan indeks tengah, kita bisa langsung menujuk ke indeksnya.

- Singly Linked List :

single ll

Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya dan juga memiliki field yang berisi data.

Akhir linked list ditandai dengan node terakhir akan menunjuk ke null yang akan digunakan sebagai kondisi berhenti saat pembacaan linked list.

- Double Linked List :

doouble ll

Linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu: 1 field pointer yang menunjuk ke pointer berikutnya, 1 field pointer yang menunjuk ke pointer sebelumnya dan field yang berisi data dari node tersebut. Pointer next dan prev-nya menunjuk ke null.

- Single Circular Linked List :

single cir ll

Single Linked List yang pointer next-nya menunjuk ke dirinya sendiri, jika terdiri dari beberapa node maka pointer terakhirnya akan menunjuk ke pointer terdepannya.

- Double Circular Linked List :

double cir ll

Double Linked List yang pointer next dan prev-nya menunjuk ke dirinya sendiri secara circular.

6. a. Node find(int key)

Suatu method java untuk mencari sebuah nilai pada linkedlist. Algoritma dari Operasi dasar adalah sebagai berikut :

Node find(int key){ if(now.data==key)return now;else

{ now=now.next;

return (find(key));

}

}

b. Void addFirst(int data)

Method untuk membuat Node untuk pertama kali. Algoritma dari Operasi dasar adalah sebagai berikut :

void addFirst(Node input){ if (isEmpty()){head = input;

tail = input;

}

else

{

input.next = head;

head = input;

}

}

c. Void addFirst(int data)

Method untuk menambahkan list pada awal linked list. Algoritma dari Operasi dasar adalah sebagai berikut :

void addLast(Node input){ if (isEmpty()){head = input;

tail = input;

}

else

{

tail.next = input;

tail = input;

}

}

d. Void romoveFirst()

Method untuk menghapus list pertama. Algoritma dari Operasi dasar adalah sebagai berikut :

void removeFirst(){ Node temp = head;if (!isEmpty()){ if (head == tail)

head = tail = null;

else

{

temp = temp.next;

head = temp;

temp = null;

}

}

else

System.out.println(“Data is empty!”);

}

e. Void romoveLast()

Method untuk menghapus list terakhir. Algoritma dari Operasi dasar adalah sebagai berikut :

void removeLast(){Node temp = head;if (!isEmpty()){if (tail == head){

head = tail = null;

}

else {

while (temp.next != tail){

temp = temp.next;

}

temp.next = null;

tail = temp;

temp = null;

}

}

else System.out.println(“Data is empty!”);

}

e. Void romove(int key)

Method untuk menghapus list yang bersesuaian dengan kata kunci. Algoritma dari Operasi dasar adalah sebagai berikut :

void remove(int key){ Node temp = head;if (!isEmpty()){

while (temp != null){

if (temp.next.data == key){

temp.next = temp.next.next;

break;}

else if ((temp.data == key)&&(temp == head)){

this.removeFirst();

break;}

temp = temp.next;}

}

else

System.out.println(“Data is empty!”);

}

f. void insertAfter(int key,int data)

Method untuk menyisipkan list yang serada setelah list yang dimaksud oleh parameter kata kunci. Algoritma dari Operasi dasar adalah sebagai berikut :

void insertAfter(int key,Node input){ Node temp = head;do{if (temp.data == key){

input.next = temp.next;

temp.next = input;

System.out.println(“Insert data is succeed.”);

break;

}

temp = temp.next;

}while (temp!=null);

}

g. void insertBefore(int key,int data)

Method untuk menyisipkan list yang serada setelah list yang dimaksud oleh parameter kata kunci. Algoritma dari Operasi dasar adalah sebagai berikut :

void insertBefore(int key,Node input){ Node temp = head;while (temp != null){ if ((temp.data == key)&&(temp == head))

{ this.addFirst(input);

System.out.println(“Insert data is succeed.”);

break;

}

else if (temp.next.data == key)

{ input.next = temp.next;

temp.next = input;

System.out.println(“Insert data is succeed.”);

break;

}

temp = temp.next;

}

}

Read More..

Minggu, 13 Juni 2010

Tipe Data

a. Integer ( Bilangan Bulat )
Integer merupakan nilai bilangan bulat baik dalam bentuk desimal maupun hexadecimal. Tipe data numerik yang termasuk integer adalah sebagai berikut :
- Byte : Memiliki nilai integer dari -128 sampai +127 dan menempati 1 byte ( 8 bits ) di memori
- Short : Memiliki nilai integer dari -32768 sampai 32767 dan menempati 2 bytes ( 16 bits ) di memori
- Int : Memiliki nilai integer dari -2147483648 sampai 2147483647 dan menempati 4 bytes ( 32 bits ) di memori
-Long : Memiliki nilai dari -9223372036854775808 sampai 9223372036854775807 dan menempati 8 bytes ( 64 bits ) di memori.

b. Char
Char adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda ‘ ( petik tunggal ).

c. String
Merupakan urutan-urutan dari karakter yang terletak di antara tanda petik tunggal. Nilai data string akan menempati memori sebesar banyaknya karakter string ditambah dengan 1 byte. Bila panjang dari suatu string di dalam deklarasi variabel tidak disebutkan, maka dianggap panjangnya adalah 255 karakter.

d. Real
Nilai konstanta numeric real berkisar dari 1E-38 sampai 1E+38. E menunjukkan nilai 10 pangkat, dan tipe data ini menempati memori sebesar6 byte.

e. Boolean
Tipe data boolean terdiri dari dua nilai saja, yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program.

Read More..

Pengertian Struktur data

Struktur Data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis.

Read More..

Graph pada struktur data



Struktur Data Graph
Struktur data yang berbentuk network/jaringan, hubungan antar elemen adalah many-to-many Keterhubungan dan jarak tidak langsung antara dua kota = data keterhubungan langsung dari kota-kota lainnya yang memperantarainya. Penerapan struktur data linear atau hirarkis pada masalah graph dapat dilakukan tetapi kurang efisien. Struktur data graph secara eksplisit menyatakan keterhubungan ini sehingga pencariannya langsung (straight forward) dilakukan pada strukturnya sendiri. 1.

Struktur Data Linear = keterhubungan sekuensial antara entitas data 2.

Struktur Data Tree = keterhubungan hirarkis 3.

Struktur Data Graph = keterhubungan tak terbatas antara entitas data. Contoh graph :
Informasi topologi jaringan dan keterhubungan antar
Graph terdiri dari himpunan verteks (node) dan himpunan sisi (edge, arc). Verteks menyatakan entitas-entitas data dan sisi menyatakan keterhubungan antara verteks. Notasi matematis graph G adalah :
G = (V, E)
Sebuah sisi antara verteks x dan y ditulis {x, y}. Subgraph : graph yang merupakan suatu subset (bagian) graph yang connected Graph H = (V1, E1) disebut subgraph dari graph G jika V1 adalah himpunan bagian dari V dan E1 himpunan bagian dari E.
Jenis Graph
a. Directed Graph (Digraph)
Jika sisi-sisi graph hanya berlaku satu arah. Misalnya : {x,y} yaitu arah x ke y, bukan dari y ke x; x disebut origin dan y disebut terminus. Secara notasi sisi digraph ditulis sebagai vektor (x, y).
Contoh Digraph G = {V, E} :
V = {A, B, C, D, E, F, G, H, I,J, K, L, M} E = {(A,B),(A,C), (A,D), (A,F), (B,C), (B,H), (C,E), (C,G), (C,H), (C,I), (D,E), (D,F), (D,G), (D,K), (D,L), (E,F), (G,I), (G,K), (H,I), (I,J), (I,M), (J,K), (J,M), (L,K), (L,M)}.
b. Graph Tak Berarah (Undirected Graph atau Undigraph)
Setiap sisi {x, y} berlaku pada kedua arah: baik x ke y maupun y ke x. Secara grafis sisi pada undigraph tidak memiliki mata panah dan secara notasional menggunakan kurung kurawal.
Contoh Undigraph G = {V, E}
V = {A, B, C, D, E, F, G, H, I,J, K, L, M} E = { {A,B},{A,C}, {A,D}, {A,F}, {B,C}, {B,H}, {C,E}, {C,G}, {C,H}, {C,I}, {D,E}, {D,F}, {D,G}, {D,K}, {D,L}, {E,F}, {G,I}, {G,K}, {H,I}, {I,J}, {I,M}, {J,K}, {J,M}, {L,K}, {L,M}}. Khusus graph, undigraph bisa sebagai digraph (panah di kedua ujung edge berlawanan) Struktur data linear maupun hirarkis adalah juga graph. Node-node pada struktur linear ataupun hirarkis adalah verteks-verteks dalam
ngertian graph dengan sisi-sisinya menyusun node-node tersebut secara linear atau hirarkis. Struktur data linear adalah juga tree dengan pencabangan pada setiap node hanya satu atau tidak ada. Linear 1-way linked list (digraph), linear 2-way linked list (undigraph)

Read More..