Jadikan Masa Remaja Lebih Indah Dengan Pengalaman yang Berkarakter

Rabu, 28 Agustus 2024

APA ITU STRUKTUR DATA

Struktur data adalah sebuah cara untuk menyimpan, mengatur, dan mengakses data dalam komputer sehingga data tersebut dapat digunakan secara efisien.

Struktur data juga akan menentukan bagaimana data akan disimpan di memori komputer dan bagaimana data tersebut saling berhubungan satu sama lain. Data pada struktur ini dapat berupa huruf, angka, simbol, yang diletakkan pada kolom-kolom yang disebut node atau indeks.

Node merupakan titik-titik yang terhubung ke bagian lainnya yang menuju node berikutnya. Sedangkan indeks merupakan objek dalam sistem database yang membantu mempercepat pencarian data.

Dalam sebuah pengelolaan data, struktur data digunakan dalam beberapa situasi seperti berikut.

·    Saat hendak mengelola data yang banyak dan kompleks – ketika mengelola data misalnya seperti data nama pelanggan, data penjualan, dan sejenisnya. Sehingga membantu pengorganisasian data lebih terstruktur.

·    Saat hendak meningkatkan performa program – Dalam hal ini gunakan struktur data yang memungkinkan akses data yang cepat.

·       Saat ingin menghemat memori – Struktur data membantu penggunanya menggunakan memori komputer secara optimal sehingga program tidak memakan banyak memori.

·     Saat mengembangkan program – Struktur data menyediakan kerangka kerja yang terstruktur untuk membangun program sehingga proses pengembangannya menjadi lebih mudah.

Dengan memahami struktur data, programmer dapat membuat program yang efisien, sehingga mempercepat dalam mengakses serta mengelola data.


Manfaat Struktur Data

Menurut Tech Skill Guru, ada beberapa alasan mengapa kamu harus mempelajari struktur data, di antaranya seperti membantu pemecahan masalah, mendesain algoritma pemrograman, dan berbagai manfaat lain struktur data lainnya yang akan dibahas di bawah ini.

·     Problem solving: Struktur data menjadi alat untuk menangani pemecahan masalah. Memahami struktur data dapat membantumu membangun program yang mampu menangani masalah secara efisien.

· Desain algoritma: Untuk menyimpan dan memodifikasi data, banyak algoritma yang mengandalkan struktur data. Pemahaman yang mendalam tentang struktur data diperlukan untuk mengembangkan algoritma yang efektif.

·  Persyaratan pekerjaan: Pengetahuan struktur data seringkali dibutuhkan untuk pekerjaan sebagai pengembang atau programmer. Maka dari itu bagi kamu yang tertarik berkarir di sini, penting untuk mendalami tentang struktur data dan algoritma.

·    Pemahaman Ilmu Komputer yang lebih baik: Struktur data merupakan konsep fundamental dalam ilmu komputer. Memahaminya akan membantumu memperdalam pemahaman di bidang komputer secara keseluruhan


Menurut Geeks for Geeks, jenis struktur data terbagi menjadi dua, yakni struktur data linear dan non linear.

1. Struktur data linear

Data struktur linear berarti struktur data yang elemen-elemen datanya disusun secara berurutan (linier), yang mana setiap elemen tertaut pada elemen-elemen sebelum dan selanjutnya yang berdekatan. Data struktur linear dibagi lagi menjadi dua, yakni statis dan dinamis.

    Struktur data statis: Struktur data statis memiliki ukuran memori yang tetap. Contoh struktur data statis yakni Array

    Struktur data dinamis: Dalam struktur data dinamis, ukurannya tidak tetap dan dapat diperbarui secara acak selama runtime. Hal ini dianggap efisien sehubungan dengan kompleksitas memori kode. Contoh struktur data dinamis yakni Queue, Stack, dan Linked List.


2. Struktur data non-linear

Struktur data ini berarti elemen datanya tidak ditempatkan secara berurutan. Dalam struktur data non-linear, pengguna tidak dapat melintasi semua elemen dalam satu proses saja. Beberapa contoh struktur data non-linear yakni Tree dan Graph.


Berikut ini beberapa contoh struktur data serta pembahasannya mulai dari Array, Linked List, Stack, hingga Graph.


1. Array











Array adalah kumpulan data yang disimpan pada lokasi memori yang berdekatan. Tujuannya adalah agar data-data sejenis bisa disimpan di satu tempat sehingga lebih mudah diakses dan diproses. 


Contohnya, jika kamu punya data nilai mahasiswa, kamu bisa simpan di dalam array nilai. Setiap data nilai menempati satu slot di array dan setiap slot di cek berdasarkan indeksnya. Dengan array, kamu bisa dengan mudah mengakses, mengurutkan, mencari, atau menghapus data nilai mahasiswa.

    

Penerapan Array di kehidupan sehari-hari:

·         Digunakan untuk menampung data untuk perhitungan matematika.

·         Digunakan dalam pemrosesan gambar.

·         Digunakan dalam manajemen catatan.

·         Diterapkan pada halaman buku.


2. Linked List



    







Linked list adalah struktur data linier di mana elemennya tidak disimpan pada lokasi memori yang berurutan, melainkan dihubungkan menggunakan pointer. Linked List terbagi menjadi beberapa jenis seperti berikut



Singly-linked list: setiap node hanya menunjuk ke node berikutnya


·         Doubly linked list: setiap node menunjuk ke node sebelum dan sesudahnya

·         Circular linked list: node terakhir menunjuk ke node pertama membentuk lingkaran

·         Doubly circular linked list: gabungan circular dan doubly linked list

Penerapan Linked List di kehidupan sehari-hari:

  • Dalam Round-Robin scheduling, menggunakan linked list untuk mengatur giliran.
  • Pada aplikasi penampil gambar, gambar sebelumnya dan berikutnya dihubungkan melalui linked list, sehingga dapat diakses dengan tombol sebelumnya dan berikutnya.
  • Pada daftar putar musik, lagu-lagu terhubung dengan lagu sebelumnya dan berikutnya untuk pemutaran yang lancar.

3. Stack


Stack adalah struktur data linier yang menggunakan aturan LIFO (Last in First out), yang berarti data yang masuk paling akhir akan keluar paling awal. Penambahan data disebut push, sedangkan pengambilan data disebut pop. Beberapa operasi yang bisa dilakukan menggunakan stack antara lain recurtion, sorting, menghapus elemen tengah stack, dan lainnya

    

    Penerapan Stack di kehidupan sehari-hari:

·     Tumpukan piring makanan yang disusun satu di atas yang lain. Ketika mengambil satu piring dari tumpukan, kamu dapat menempatkan piring tersebut di bagian atas tumpukan. Namun, piring ini adalah piring yang baru ditambahkan. Jika kamu menginginkan piring di bagian bawah tumpukan, kamu harus memindahkan semua piring di atasnya.

·   Browser menggunakan struktur data stack untuk melacak situs-situs yang telah dikunjungi sebelumnya.

·         Log panggilan di ponsel.


4. Queue

Queue (antri) adalah struktur data linier yang mengikuti aturan FIFO (First in First out), artinya data yang masuk paling awal akan keluar paling awal. Penambahan data pada queue disebut enqueue, sedangkan pengambilan data disebut dequeue.

Berbeda dengan stack, penambahan dan pengambilan data pada queue bisa dilakukan dari dua ujung, yaitu depan dan belakang. Beberapa operasi yang bisa dilakukan pada queue antara lain reversing queue (menggunakan rekursi atau tidak).

Penerapan Queue di kehidupan sehari-hari:

·    Antrian seperti jalan satu arah di mana kendaraan yang pertama masuk akan keluar terlebih dahulu.

·    Antrian pada loket tiket, di mana orang-orang yang mengantri lebih dulu akan dilayani lebih dulu.

·  Antrian kasir pada toko, di mana pelanggan yang mengantre lebih dulu akan melakukan pembayaran terlebih dahulu sebelum yang lainnya.

·     Orang-orang yang mengantri di eskalator, orang yang sudah berada di depan akan keluar terlebih dahulu sebelum yang berada di belakangnya.


5. Tree












Tree adalah struktur data non-linear dan berhierarki di mana elemennya diatur dalam struktur seperti pohon. Pada Tree, node paling atas disebut node akar (root). Setiap node berisi beberapa data dan bisa berupa tipe data apa saja.

Tree terdiri dari node pusat, node struktural, dan sub-node yang dihubungkan dengan edge (garis penghubung). Struktur data tree memudahkan akses ke data karena sifatnya non-linear. Tree memiliki berbagai istilah seperti noderoot, edge, tinggi tree, derajat tree, dan lainnya.

Ada beberapa istilah yang terdapat pada tipe Tree, di antaranya:

·         Root: node yang terletak di paling atas.

·         Child node: turunan dari setiap node.

·         Parent node: node yang berisi sub-node.

·         Siblings: node yang asalnya dari parent node yang sama.

·         Leaf node: node yang tidak memiliki turunan lagi.

Adapun struktur data Tree dibagi menjadi beberapa jenis:

·         Binary tree

·         Binary search tree

·         AVL tree

·         B-tree

Penerapan Tree di kehidupan sehari-hari:

·         Membantu dalam proses pengindeksan di database.

·         Sebagai alat pembelajaran mesin yang efisien, terutama dalam analisis keputusan, karena strukturnya yang menyerupai diagram alur yang mempermudah pemahaman data.

·         Domain Name Server juga mengandalkan struktur data Tree dalam operasinya.

·         Situs jejaring sosial

 

6. Graph


Graph adalah struktur data non-linier yang terdiri dari vertex (node) dan edge (sisi). 
Graph terbentuk dari himpunan vertex dan himpunan edge yang menghubungkan sepasang node.

Struktur data ini digunakan untuk memecahkan masalah pemrograman yang paling kompleks. Beberapa istilah yang ada pada Graph seperti path, derajat, vertex bersebelahan, komponen terhubung, dan lainnya.

Penerapan Graph di kehidupan sehari-hari:

·   Digunakan pada Google Maps, di mana kota-kota diwakili sebagai simpul dan jalur yang menghubungkan mereka sebagai tepi grafik.

·   Jejaring sosial juga merupakan contoh grafik dunia nyata, di mana setiap anggota jaringan merupakan simpul, dan hubungan pertemanan mereka menjadi tepi grafik.

·    Digunakan dalam studi molekul dalam bidang fisika dan kimia sebagai cara untuk memahami hubungan antar atom dan ikatan kimia.


Kelebihan dan Kekurangan Struktur Data

Setelah mengetahui mulai dari pengertian, jenis, hingga contoh, kamu juga perlu tahu apa kelebihan dan kekurangan dari mempelajari struktur data.


Kelebihan 

·         Penyimpanan data yang lebih baik dan efisien.

·         Pemulihan dan manipulasi data yang lebih cepat.

·         Mempermudah dalam merancang algoritma untuk masalah yang kompleks.

·         Mempermudah tugas pembaruan dan pemeliharaan data.

·         Memberikan pemahaman yang lebih jelas tentang hubungan antar data.

·         Meningkatkan kemampuan penggunaan ulang kode.

·         Meningkatkan kemampuan dalam memecahkan masalah.

·         Mengurangi penggunaan memori.

·         Meningkatkan keamanan data.

Kekurangan

·         Peningkatan beban komputasi dan penggunaan memori

·         Kesulitan dalam merancang dan mengimplementasikan struktur data kompleks

·         Skalabilitas dan fleksibilitas yang terbatas

·         Kesulitan dalam debugging dan pengujian

·         Sulit memodifikasi struktur data yang sudah ada

·         Dibutuhkan tenaga ahli untuk membuat dan memelihara aplikasi dengan banyak struktur data, sehingga meningkatkan biaya

·         Semakin banyak struktur data yang digunakan, semakin sulit dipahami dan dikelola

·         Beberapa struktur data memberikan performa akses data yang lebih lambat

·         Perlu perencanaan dan pengujian yang matang agar struktur data bekerja dengan baik

Kesalahan perancangan struktur data dapat menyebabkan performa yang buruk

Rabu, 07 Agustus 2024

Pseudocode

 Pseudocode adalah istilah yang berasal dari gabungan dua kata, yaitu kata pseudo yang punya arti semu dan kata code yang berarti kode. Dengan begitu, pseudocode adalah kode semu yang dapat diartikan sebagai deskripsi dari algoritma pemrograman yang dituliskan secara
sederhana, bila dibandingkan dengan sintaksis bahasa pemrograman. 

Pseudocode yang digunakan pada penulisan algoritma dapat berupa sembarangan bahasa, namun tetap terstruktur. Tujuannya adalah agar lebih mudah dibaca dan dipahami pembaca awam. Dengan pseudocode kamu bisa menuliskan algoritma dalam bahasa manusia. 

Walau begitu, ia bukanlah bahasa pemrograman, karena sebuah bahasa pemrograman harus memiliki aturan dalam penulisannya. Karena ini pseudocode tidak dikategorikan sebagai bahasa pemrograman.

Fungsinya hanya membantu proses penulisan algoritma saja. Ia bisa membantu kamu mendapatkan gambaran bagaimana alur dari program yang akan dibuat.

 

Ciri-ciri Pseudocode

Untuk membuat kamu lebih memahami pseudocode, kamu juga harus mengenali ciri-ciri pseudocode, antara lain:

  • Ü  Menggunakan pola bahasa Inggris yang sederhana.
  • Ü  Tidak memiliki standar aturan tertentu dalam penulisannya.
  • Ü  Menggunakan simbol atau sintaksis dari suatu program, seperti ←, <, >, <=, >=, dan sebagainya.
  • Ü  Tidak menggunakan diagram melainkan ditulis dalam urutan suatu kejadian atau permasalahan.
  • Ü  Berisi langkah-langkah untuk menyelesaikan sebuah masalah, akan tetapi bentuk. masalahnya sedikit berbeda dari algoritma.

 

Notasi Pseudocode

Walau tidak punya aturan tertulis, kode ini punya notasi. Notasi-notasi pseudocode yang paling sering digunakan antara lain:

  • Ü  INPUT, untuk memasukkan sesuatu, misalnya klik tombol.
  • Ü  OUTPUT, menampilkan sesuatu, misalnya pesan yang tampil di layar.
  • Ü  WHILE, proses yang terjadi di balik layar.
  • Ü  REPEAT x UNTIL y, proses pengulangan x hingga y terjadi.
  • Ü  IF a THEN b ELSE c, logika layaknya jika A, maka B, jika tidak maka C.

Notasi-notasi ini tidak bersifat kaku, kamu masih bisa memodifikasinya sesuai kebutuhan.

 

Fungsi Pseudocode

Tidak hanya membuat manusia lebih paham, pseudocode adalah kode semu juga memiliki fungsi lainnya, antara lain:

  • Ü  Menjadi alat dokumentasi.
  • Ü  Mempermudah proses penerjemahan menjadi suatu bahasa pemrograman.
  • Ü  Dapat digunakan untuk proses menemukan ide tanpa harus memikirkan implementasi.
  • Ü  Lebih mudah mengembangkan aplikasi yang sedang dibuat.

 

 Contoh Pseudocode:

Algoritma HitungFaktorial(n)

    Jika n = 0 atau n = 1

        Kembalikan 1

    Lainnya

        faktorial <- 1

        Untuk i dari 2 sampai n

            faktorial <- faktorial * i

        Kembalikan faktorial

Pseudocode di atas menggambarkan algoritma untuk menghitung faktorial dari sebuah bilangan

 

Menghitung faktorial suatu bilangan secara rekursif.

Algoritma Faktorial(n)

    Jika n = 0 atau n = 1 maka

        Kembalikan 1

    Lainnya

        Kembalikan n * Faktorial(n - 1)

Penjelasan:

  • Jika n adalah 0 atau 1, faktorialnya adalah 1.
  • Jika n lebih besar dari 1, faktorialnya adalah n dikalikan dengan faktorial dari n-1.

 

Contoh-contoh Algoritma Pseudocode dalam Kehidupan Sehari-hari

Baik secara sadar maupun tidak, ternyata ada banyak contoh-contoh algoritma pseudocode dalam kehidupan sehari-hari loh!

Berikut adalah beberapa contoh-contoh algoritma pseudocode dalam kehidupan sehari-hari sederhana yang mungkin pernah kamu temukan.

Kalau kamu masih kesulitan untuk memahami konsep algoritma pseudocode ini, cobalah perhatikan contoh representasinya berikut ini:

  • Ü  Buka kemasan mi instan
  • Ü  Rebus air di panci
  • Ü  Masukkan mi instan
  • Ü  Aduk hingga mengembang dan matang
  • Ü  Masukkan ke dalam piring atau mangkuk
  • Ü  Tuangkan bumbu
  • Ü  Aduk hingga rata
  • Ü  Selesai

Sumber : https://www.kitalulus.com/blog/gaya-hidup/pseudocode-adalah/