• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
[ Linked List Step by Step(1) ]
Pada saat kita menggunakan array maka akan kita dapatkan bahwa data yang akankita masukkan terbatas. Dalam artian begini, kita ingin membuat program inputdata mahasiswa, misalkan. Maka kita harus menentukan dulu berapa jumlah datamaksimum yang akan dimasukkan. Ini sangat kurang efektif dan tidak dinamis.Selain itu, penggunaan aray sebenarnya akan menghabiskan resource memori.Kenapa? Karena pada saat array tercipta ruang memori yang tercipta tidak akandapat dihapus pada saat program dijalankan. Lalu bagaimana jika kita inginmembuat program mahasiswa tersebutlebih dinamis? Jawabannya adalah denganmenggunakan tipe data pointer. Dengan menggunakan pointer maka data yanagsudah tidak terpakai bisa direlokasi kembali. Linked list merupakan salah satuteknik dalam pemanfaatan tipe data pointer ini. Dinamakan Linked list atau Senaraiberantai karena satu elemen dengan elemen lainnya saling berkaitan satu samalain dengan memanfaatkan pointer.setiap simpul dalam suatu senerai berantai terbagi menjadi dua bagian.
Bagian pertama
, disebut medan informasi, berisi informasi yang akan disimpan dandiolah.
Bagian kedua
, disebut medan penyambung (link field), berisi alamat simpulberikutnya.
mendeklarasikan linked list
typedef struct nm_linked_list {medan_informasi-1;medan_informasi-1;link_field;};
keterangan:medan informasi diisi dengan tipe data tertentulink_field adalah pointer dari nm_linked_listcontoh:
 
typdef struct myLinkedList {int data;myLinkedList *next;};
Membentuk node baru
Untuk membentuk node baru gunakan keyword new. Ini artinya kitamempersiapkan node baru beserta alokasi memori tertentu. Kemudianmedan_informasi diisi dengan suatudata tertentu dan linked field dari node baru tersebut kita NULL-kan. Berikut iniadalah contohnya:
myLinkedList *baru;baru = new myLinkedList;baru->data = 7;baru->next = NULL;
Penggunaan Head dalam linked list
Head dalam linked list untuk menandakan posisi depan suatu node. Ini nanti akanberkaitan dengan penambahan suatu data, apakah dari depan atau dari belakangnode. untuk head ini kita jadikan variabel global sehingga nanti bisa diaksesdimanapun.
myLinkedList *head;
sebaiknya kita membuat inisialisasi untuk head sebagai berikut:
void init() {head = NULL;}
ini menandakan bahwa head tidak menunjukan tidak ada nilai dan tidak menunjukke alamat memori manapun.
 
Sebelum pada pembahasan bagaimana membuat node baru untuk senarai, terlebihdahulu kita buat fungsi untuk mengecek apkah linked list dalam keadaan kosongatau tidak. Padaprogram dibawah ini nilai 1 akan dikembalikan jika linked list dalam keadaankosong dan nilai 0 jika linked list dalam keadaan berisi.
int paKosong() {if (head == NULL) return 1;else return 0;}
Penambahan Node ada dua, depan dan belakang. Penambahan Depan artinya databaru yang akan dimasukkan akan dikaitkan di depan head. Sedangkan penambahandi belakang artinyanode akan ditambahkan di belakang head.
Penambahan Node di depan
void tambahDepan() {myLinkedList *baru = new MyLinkedList;cout << “Masukkan Data baru : “; cin >> baru->data;baru->next = NULL;if(paKosong() == 1) {head = baru;head->next = NULL;} else {baru->next}}
Potongan program di bawah ini adalah untuk menampilkan isi dari linked list.
void tampilData() {MyLinkedList *bantu;bantu = head;
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...