Media Pengembangan Web & App | by APPKEY

Pembuatan WebsiteWeb ProgrammingStruktur Data Adalah? 8 Struktur Data Umum yang Wajib...

Struktur Data Adalah? 8 Struktur Data Umum yang Wajib Diketahui Programmer

-

Last Updated on October 23, 2020 by

Struktur Data adalah cara khusus mengatur dan menyimpan data di komputer sedemikian rupa sehingga kita dapat melakukan operasi pada data yang disimpan dengan lebih efisien. Struktur data memiliki cakupan penggunaan yang luas dan beragam di seluruh bidang Ilmu Komputer dan Rekayasa Perangkat Lunak.

Struktur data kini digunakan di hampir setiap program atau sistem perangkat lunak yang telah dikembangkan. Selain itu, struktur data datang di bawah dasar-dasar Ilmu Komputer dan Rekayasa Perangkat Lunak. Ini adalah topik utama dalam pertanyaan wawancara Rekayasa Perangkat Lunak. Karenanya sebagai pengembang, kita harus memiliki pengetahuan yang baik tentang struktur data.

Jenis Struktur Data

 

pengertian-struktur-data 

Struktur data adalah hal yang wajib diketahui oleh programmer. Pada artikel ini, saya akan menjelaskan secara singkat 8 struktur data yang biasa digunakan setiap programmer harus tahu.

1. Arrays

 
Array adalah struktur ukuran tetap, yang dapat menampung item dengan tipe data yang sama. Ini bisa berupa array bilangan bulat, array angka floating-point, array string atau bahkan array array (seperti array 2 dimensi). Array diindeks, artinya akses acak dimungkinkan.

Operasi Array

 

  • Traverse: Telusuri elemen-elemen dan cetaklah.
  • Cari: Mencari elemen dalam array. Anda dapat mencari elemen berdasarkan nilainya atau indeksnya
  • Pembaruan: Perbarui nilai elemen yang ada pada indeks yang diberikan

 
Memasukkan elemen ke array dan menghapus elemen dari array tidak dapat langsung dilakukan karena array memiliki ukuran yang tetap. Jika Anda ingin menyisipkan elemen ke array, pertama-tama Anda harus membuat array baru dengan peningkatan ukuran (ukuran saat ini + 1), salin elemen yang ada dan tambahkan elemen baru. Hal yang sama berlaku untuk penghapusan dengan array baru ukuran yang diperkecil.

Penerapan Array

 

  • Digunakan sebagai blok penyusun untuk membangun struktur data lain seperti daftar susunan, tumpukan, tabel hash, vektor dan matriks.
  • Digunakan untuk berbagai algoritma penyortiran seperti penyisipan, penyortiran cepat, penyortiran gelembung dan penggabungan.

 

2. Linked Lists

 

linked-list 

Daftar tertaut adalah struktur berurutan yang terdiri dari urutan item dalam urutan linier yang dihubungkan satu sama lain. Karenanya, Anda harus mengakses data secara berurutan dan akses acak tidak dimungkinkan. Linked Linked menyediakan representasi sederhana dan fleksibel dari set dinamis.

Mari kita pertimbangkan persyaratan berikut tentang daftar tertaut. Anda bisa mendapatkan ide yang jelas dengan merujuk pada Gambar 2.

  • Elemen dalam daftar tertaut dikenal sebagai node.
  • Setiap node berisi kunci dan pointer ke node penggantinya, yang dikenal sebagai next.
  • Atribut yang bernama head points ke elemen pertama dari daftar tertaut.
  • Elemen terakhir dari daftar tertaut dikenal sebagai ekor.
Artikel Terkait  Rekomendasi Aplikasi Pembuat Website Terbaik dan Gratis

 
Berikut ini adalah berbagai jenis daftar tertaut yang tersedia.

  • Singly linked list —Traversal item hanya dapat dilakukan ke arah depan.
  • Doubly linked list — Traversal of items can be done in both forward and backward directions. Nodes consist of an additional pointer known as prev, pointing to the previous node.
  • Circular linked lists — Linked lists where the prev pointer of the head points to the tail and the next pointer of the tail points to the head.

 

Pengoperasian Linked list

 

  • Cari: Temukan elemen pertama dengan kunci k dalam daftar tertaut yang diberikan oleh pencarian linear sederhana dan mengembalikan pointer ke elemen ini
  • Sisipkan: Sisipkan kunci ke daftar tertaut. Penyisipan dapat dilakukan dengan 3 cara berbeda; masukkan di awal daftar, masukkan di akhir daftar dan masukkan di tengah daftar.
  • Hapus: Menghapus elemen x dari daftar tertaut yang diberikan. Anda tidak dapat menghapus simpul dengan satu langkah. Penghapusan dapat dilakukan dengan 3 cara berbeda; hapus dari awal daftar, hapus dari akhir daftar dan hapus dari tengah daftar.

 

Applications of linked lists

 

  • Digunakan untuk manajemen tabel simbol dalam desain kompiler.
  • Digunakan untuk beralih antar program menggunakan Alt + Tab (diimplementasikan menggunakan Circular Linked List).

 

3. Stacks

 
Stacks adalah struktur LIFO (Last In First Out – elemen yang ditempatkan pada akhirnya dapat diakses pada awalnya) yang biasanya ditemukan dalam banyak bahasa pemrograman. Struktur ini dinamai “tumpukan” karena menyerupai tumpukan dunia nyata – tumpukan piring.

Pengoperasian Stack

 
Diberikan di bawah ini adalah 2 operasi dasar yang dapat dilakukan pada tumpukan. Silakan lihat Gambar 3 untuk mendapatkan pemahaman yang lebih baik tentang operasi stack.

  • Push: Masukkan elemen ke atas stack.
  • Pop: Hapus elemen paling atas dan kembalikan.

 
Selanjutnya, fungsi tambahan berikut disediakan untuk stack untuk memeriksa statusnya.

  • Peek: Kembalikan elemen atas tumpukan tanpa menghapusnya.
  • isEmpty: Check jika stack nya kosong.
  • isFull: Mengecek jika stack penuh

 

Pengaplikasian Stack struktur data adalah sebagai berikut:

 

  • Digunakan untuk evaluasi ekspresi (mis .: algoritma shunting-yard untuk mem-parsing dan mengevaluasi ekspresi matematika).
  • Digunakan untuk mengimplementasikan panggilan fungsi dalam pemrograman rekursi.

 

4. Queues

 

queue 

Antrian adalah struktur FIFO (First In First Out – elemen yang ditempatkan pada awalnya dapat diakses pada awalnya) yang dapat ditemukan dalam banyak bahasa pemrograman. Struktur ini dinamai “antrian” karena menyerupai antrian dunia nyata – orang yang menunggu dalam antrian.

Queue operations

 
Diberikan di bawah ini adalah 2 operasi dasar yang dapat dilakukan pada antrian. Silakan lihat Gambar 4 untuk mendapatkan pemahaman yang lebih baik tentang operasi antrian.

  • Enqueue: Masukkan elemen ke ujung antrian.
  • Dequeue: Hapus elemen dari awal antrian.

 

Applications of queues

 

  • Digunakan untuk mengelola utas dalam multithreading.
  • Digunakan untuk menerapkan sistem antrian (mis .: antrian prioritas).

 

5. Hash Tables

 
Tabel Hash adalah struktur data yang menyimpan nilai yang memiliki kunci yang terkait dengan masing-masingnya. Selain itu, ini mendukung pencarian secara efisien jika kita tahu kunci yang terkait dengan nilai. Oleh karena itu sangat efisien dalam memasukkan dan mencari, terlepas dari ukuran data.

Artikel Terkait  DNS adalah : Hati-Hati Serangan Hack Terbaru SAD DNS!

Pengalamatan Langsung menggunakan pemetaan satu-ke-satu antara nilai dan kunci saat menyimpan dalam sebuah tabel. Namun, ada masalah dengan pendekatan ini ketika ada sejumlah besar pasangan nilai kunci. Tabel akan sangat besar dengan begitu banyak catatan dan mungkin tidak praktis atau bahkan tidak mungkin untuk disimpan, mengingat memori yang tersedia pada komputer biasa. Untuk menghindari masalah ini, kami menggunakan tabel hash.

Fungsi Hash

 
Fungsi khusus bernama fungsi hash (h) digunakan untuk mengatasi masalah yang disebutkan di atas dalam pengalamatan langsung.

Dalam mengakses langsung, nilai dengan kunci k disimpan dalam slot k. Menggunakan fungsi hash, kami menghitung indeks tabel (slot) yang digunakan untuk setiap nilai. Nilai yang dihitung menggunakan fungsi hash untuk kunci yang diberikan disebut nilai hash yang menunjukkan indeks tabel yang nilainya dipetakan.

h(k) = k % m

  • h: Fungsi hash
  • k: Kunci yang nilai hashnya harus ditentukan
  • m: Ukuran tabel hash (jumlah slot tersedia). Nilai prima yang tidak mendekati kekuatan tepat 2 adalah pilihan yang baik untuk m.

Pertimbangkan fungsi hash h (k) = k% 20, di mana ukuran tabel hash adalah 20. Diberikan seperangkat kunci, kami ingin menghitung nilai hash masing-masing untuk menentukan indeks di mana ia harus pergi dalam tabel hash . Anggap kita memiliki kunci berikut, indeks hash dan tabel hash.

  • 1 → 1%20 → 1
  • 5 → 5%20 → 5
  • 23 → 23%20 → 3
  • 63 → 63%20 → 3

Dari dua contoh terakhir yang diberikan di atas, kita dapat melihat bahwa tabrakan dapat muncul ketika fungsi hash menghasilkan indeks yang sama untuk lebih dari satu kunci. Kita dapat menyelesaikan tabrakan dengan memilih fungsi hash yang sesuai dan menggunakan teknik seperti chaining dan open addressing.

Applications of hash tables

 

  • Digunakan untuk mengimplementasikan indeks basis data.
  • Digunakan untuk mengimplementasikan array asosiatif.
  • Digunakan untuk mengimplementasikan struktur data “set”.

 

6. Trees

 
Pohon adalah struktur hierarkis di mana data disusun secara hierarkis dan dihubungkan bersama. Struktur ini berbeda dari daftar yang ditautkan sedangkan, dalam daftar yang ditautkan, barang ditautkan dalam urutan linier.

Berbagai jenis pohon telah dikembangkan selama beberapa dekade terakhir, agar sesuai dengan aplikasi tertentu dan memenuhi kendala tertentu. Beberapa contoh adalah pohon pencarian biner, pohon B, pohon treap, pohon merah-hitam, pohon splay, pohon AVL dan pohon n-ary.

Binary Search Trees

 
Pohon pencarian biner (BST), seperti namanya, adalah pohon biner di mana data disusun dalam struktur hierarkis. Struktur data ini menyimpan nilai dalam urutan diurutkan.

Setiap node dalam pohon pencarian biner terdiri dari atribut berikut.

  1. key: Nilai yang disimpan dalam node.
  2. Left: Penunjuk ke anak kiri.
  3. Right: Penunjuk ke anak yang tepat.
  4. p: Penunjuk ke simpul induk.

 
Tree Search binary memperlihatkan properti unik yang membedakannya dari pohon lain. Properti ini dikenal sebagai properti pohon pencarian biner.

Biarkan x menjadi simpul pada trees search biner.

  • Jika y adalah simpul di subtree kiri x, maka y.key ≤ x.key
  • Jika y adalah simpul di subtree kanan x, maka y.key ≥ x.key
Artikel Terkait  Inilah 8 Angular IDE dan Editor Terbaik di Tahun Ini!

 

Pengaplikasian trees

 

  • Binary Trees: Digunakan untuk mengimplementasikan parser ekspresi dan pemecah ekspresi.
  • Binary Search Tree: digunakan dalam banyak aplikasi pencarian di mana data secara konstan masuk dan keluar.
  • Heaps: digunakan oleh JVM (Java Virtual Machine) untuk menyimpan objek Java.
  • Treaps: digunakan dalam jaringan nirkabel.

 

7. Heaps

 

heaps 

Struktur data Heap adalah kasus khusus dari pohon biner di mana node induk dibandingkan dengan anak-anak mereka dengan nilai-nilai mereka dan diatur sesuai.

Mari kita lihat bagaimana kita bisa mewakili banyak. Tumpukan dapat direpresentasikan menggunakan pohon dan juga array. Gambar 7 dan 8 menunjukkan bagaimana kita bisa mewakili tumpukan biner menggunakan pohon biner dan array.

Heaps bisa terdiri dari 2 jenis.

  1. Min Heap Struktur data adalah  yang mana kunci dari orang tua kurang dari atau sama dengan anak-anaknya. Ini disebut properti min-heap. Root akan berisi nilai minimum heap.
  2. Max Heap  struktur data adalah di mana kunci parents lebih besar atau sama dengan anak-anaknya. Ini disebut properti max-heap. Root akan berisi nilai maksimum heap.

 

Pengaplikasian heaps

 

  • Digunakan dalam algoritma heapsort.
  • Digunakan untuk mengimplementasikan antrian prioritas karena nilai prioritas dapat dipesan sesuai dengan properti heap di mana heap dapat diimplementasikan menggunakan array.
  • Fungsi antrian dapat diimplementasikan menggunakan tumpukan dalam waktu O (log n).
  • Digunakan untuk menemukan nilai kᵗʰ terkecil (atau terbesar) dalam array yang diberikan.

 

8. Graphs

 
Grafik terdiri dari sekumpulan simpul atau node hingga dan satu set tepi yang menghubungkan simpul-simpul ini. Urutan grafik adalah jumlah simpul dalam grafik. Ukuran grafik adalah jumlah sisi dalam grafik. Dua node dikatakan berdekatan jika mereka terhubung satu sama lain dengan tepi yang sama.

Directed Graphs

 
Grafik G dikatakan sebagai grafik berarah jika semua tepinya memiliki arah yang menunjukkan apa itu start vertex dan apa itu end vertex.

Kami mengatakan bahwa (u, v) adalah insiden dari atau meninggalkan simpul u dan merupakan kejadian atau memasuki simpul v.

Self-loop: Tepi dari puncak ke dirinya sendiri.

Undirected Graphs

 
Grafik G dikatakan sebagai grafik tidak terarah jika semua tepinya tidak memiliki arah. Ini bisa terjadi dengan dua cara antara dua simpul.

Jika sebuah titik tidak terhubung ke simpul lain dalam grafik, dikatakan titik itu terisolasi.

Pengaplikasian graphs

 

  • Digunakan untuk mewakili jaringan media sosial. Setiap pengguna adalah simpul, dan ketika pengguna terhubung mereka menciptakan keunggulan.
  • Digunakan untuk mewakili halaman web dan tautan oleh mesin pencari. Halaman web di internet dihubungkan satu sama lain oleh hyperlink. Setiap halaman adalah simpul dan hyperlink antara dua halaman adalah keunggulan. Digunakan untuk Peringkat Halaman di Google.
  • Digunakan untuk mewakili lokasi dan rute di GPS. Lokasi adalah simpul dan rute yang menghubungkan lokasi adalah pinggiran. Digunakan untuk menghitung rute terpendek antara dua lokasi.

 

Kesimpulan

 
Sebagai seorang programmer atau Anda ingin menjadi seorang programmer, struktur data adalah komponen pemrograman yang wajib dikuasai. 8 Jenis struktu data di atas adalah yang umum digunakan. Namun penggunaannya sendiri adalah sesuai dengan jenis project yang dikembangkan. Demikian ulasan kami tentang struktur data. Semoga bermanfaat.


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Mau posting artikel iklan?

Yuk klik dan ikuti ketentuan layanan dari kami, dapatkan penawaran paket dengan harga terbaik!

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang Website, Aplikasi, Desain, Video dan API langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Kategori

Blog Post Ranking 10

Contoh PHP Curl : 10 Hal Luar Biasa yang dapat Anda Kembangkan dengan Curl

Meningkatnya jumlah aplikasi yang pindah ke web telah membuat "HTTP Scripting" lebih sering diminta dan diinginkan. Untuk dapat secara...

Encoding Adalah : Proses Komunikasi Encoding dan Decoding

Jika kita dapat melihat percakapan antar komputer, mungkin akan terlihat seperti ini: "010110111011101011010010110". Bahasa ini disebut dengan biner, encoding...

Looping Adalah Algoritma Perulangan: Berikut Contohnya

Jika anda sudah mendalami atau sedang mendalami dunia pemrograman terdapat sebuah konsep yang dapat memudahkan anda dalam menyusun struktur...

Rekomendasi 7 Aplikasi Pembuat Animasi 3D Terbaik. Ayo Cek!

Apakah Anda bercita-cita untuk menjadi seorang animator profesional? Belajar membuat animasi kini sudah menjadi hal mudah yang bisa dilakukan...

Metadata Adalah? Fungsi dan Jenis-Jenis Metadata

Pernah mendengar istilah metadata? Mungkin, kita sering mendengar istilah metadata. Tetapi, banyak dari kita yang belum tahu arti dari metadata...

Cara Membuat Aplikasi di Playstore dengan Mudah

Membuat aplikasi di Playstore bisa Anda lakukan dengan mudah. Terdapat beberapa situs yang bisa membantu Anda untuk membuat aplikasi...

4 Cara Mengatasi Autentikasi Google Play Store dengan Cepat dan Mudah

Apakah Anda sedang mengalami masalah autentikasi Google Play Store? Permasalahan autentikasi Google Play Store adalah permasalahan umum sering dialami...

Cara Mudah Menambahkan Lokasi Alamat Bisnis Anda di Google Maps

Saat ingin hunting tempat makan atau tempat nongkrong terbaru, tak jarang beberapa dari Anda biasanya mendapatkan informasi terkini melalui...

Rekomendasi 10 Aplikasi Coding Android Terbaik

Ketersediaan aplikasi coding Android memang banyak dicari oleh orang-orang yang sedang atau akan memulai untuk membuat aplikasi android. Jika...

7 Aplikasi Membuat Aplikasi Android Secara Offline

Aplikasi membuat aplikasi android saat ini banyak dicari penekun IT untuk membuat aplikasi Android secara offline tanpa harus menggunakan...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya