Linkedlist vs array

9:18 PM

Penjelasan linkedlist

Setiap node terdiri dari elemen dan penghubung ke elemen selanjutnya. Alokasi di memori tidak statis namun dinamis. Kapanpun dibutuhkan pertama kali kita perlu mengalokasikan memori untuk node (dalam java seperti pembuatan objek baru) dan kemudian menggunakannya untuk menyimpan elemen baru dan link yang bernilai null (jika dalam posisi elemen akhir) atau link yang menyimpan alamat elemen yang akan ditambahkan berikutnya. Karena memori yang dialokasikan dinamis maka akan terus ada (tidak terbatas) kecuali kita memerlukan untuk menghentikannya secara eksplisit dalam bahasa pemrograman yang tidak mempunyai manajemen memori otomatis (menggunakan free() di C/C++)

Secara umum linked list tersusun atas sejumlah bagian-bagian data yang lebih kecil yang terhubung (biasanya melalui pointer). Linked list dapat divisualisasikan seperti kereta, bagian kepala linked list adalah mesin kereta, data yang disimpan adalah gerbong, dan pengait antar gerbong adalah pointer

Penjelasan array

Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen - komponenya mempunyai nilai dengan tipe data tersebut

Array adalah struktur data yang paling umum untuk digunakan menyimpan data. Satu blok memori dialokasikan untuk seluruh array yang menampung elemen (yang sudah diinisialisasi maupun yang belum diinisialisasi). Indexnya berbasis 0 dan elemen – elemen dapat diakses dalam waktu konstan dengan menggunakan index dari elemen tertentu.

Kenapa waktunya konstan dalam mengakses elemen array? – alamat elemen array di hitung sebagai pengurang dari alamat dasar array dan satu perkalian diperlukan untuk menghitung apa yang seharusnya ditambahkan ke alamat dasar untuk mendapatkan alamat memori elemen. Karena kebutuhan memori tiap tipe data berbeda maka pertama ukuran elemen dari tipe data dihitung dan kemudian dikalikan dengan index dari elemen untuk mendapatkan nilai yang akan ditambahkan pada alamat dasar. Jadi prosesnya memerlukan hanya satu kali perkalian dan satu penambahan dan ini diperlukan untuk setiap elemen di dalam array. Oleh karena itu aksesnya cepat dan waktu yang diperlukan konstan.

Kelebihan linkedlist

  • fleksibilitas – memasukkan (atau menghapus) dari posisi mana saja dalam waktu yang konstan.
  • Alokasi memori dinamis – tidak perlu mengalokasikan memori.

Kekurangan linkedlist

  • Penggunaan dan pengaksesan yang kompleks – secara relatif linked list lebih kompleks jika dibandingkan dengan array
  • Waktu yang dibutuhkan untuk mengakses elemen tidak konstan – hal ini karena tidak memasukkan rumus penghitungan yang diterapkan oleh array untuk menghitung alamat memori, jadi linked list relatif tidak efisien dibandingkan dengan array

Kelebihan array

  • Mudah untuk digunakan dan diakses
  • Lebih cepat dalam pengaksesan elemen

Kekurangan array

  • Ukuran yang sudah fix (tidak bisa berubah)
  • Semua tipenya harus sama
  • indeks array yang kosong tetap memiliki porsi memori yang sama sehingga tidak efesien

Kesimpulan

Fakta yang menarik tentang linked list adalah secara normal linked list digunakan sebagai solusi pelengkap untuk menangani kekurangan arrays. Array mempunyai keuntungan tersendiri dan masih digunakan tapi linked list telah menyediakan alternatif yang efisien dan efektif ketika kita mengalami permasalahan dalam terbatasnya kemampuan array. Jadi kita perlu melihat array dan linked list sebagai suatu hal yang saling melengkapi dan bukan sebagai rival atau pesaing. Pilihan didasarkan pada konteks kita memilih kedua struktur data tersebut.

You Might Also Like

1 comments

Popular Posts

Like us on Facebook

Flickr Images