Mengulas Tentang Struktur Data Dan Algoritma

A. Pengertian Struktur Data dan Algoritma

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 berhubung satu sama lain. Data pada struktur ini dapat berupa huruf, angka, simbol, yang diletakkan pada kolom-kolom yang disebut node atau indeks.

Algoritma

Algoritma adalah langkah atau instruksi sistematis dalam perhitungan atau pemecahan masalah. Dalam aktivitas pemrograman, algoritma digunakan untuk membuat dan mengembangkan program menggunakan alur logika tertentu.

B. Jenis-Jenis Struktur Data dan Algoritma

Jenis Struktur Data

Jenis struktur data terbagi menjadi dua, yaitu struktur data linear dan non-linear.

1. Struktur Data Linear

Data struktur linear berarti struktur data yang elemen-elemen datanya disusun secara berurutan, yang mana setiap elemen terhubung pada elemen-elemen sebelum dan selanjutnya yang berdekatan. Struktur data linear dibagi menjadi dua, yaitu statis dan dinamis.

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 suatu proses saja. Beberapa contoh struktur data non-linear, yaitu Tree dan Graph. 

sumber gambar : Apa Itu Struktur Data? Manfaat, Jenis, dan Contohnya (dewaweb.com)

Jenis Algoritma

Jenis algoritma yang saya ketahui itu ada enam jenis, di antaranya:

1. Algoritma Recursive 

Algoritma recursive adalah jenis algoritma yang memecahkan suatu permasalahan sedikit demi sedikit. Proses penyelesaian algoritma jenis ini dilakukan dengan cara membagi masalah menjadi beberapa kondisi yang serupa. Selain itu, algoritma recursive terbagi menjadi empat tipe yaitu algoritma dinamis, backtracking, greedy, dan divide and conquer.

2. Algoritma Sorting

Algoritma sorting adalah jenis logika perrograman yang digunakan untuk menyusun data berdasarkan urutan tertentu, Misalnya, mengurutkan data dari angka kecil ke besar atau berdasarkan abjad dari A sampai Z. Contoh algoritma jenis ini yaitu selection sort, insertion sort, merge sort, dan bubble sort. 

3. Algoritma Hashing

Algoritma hashing adalah jenis algoritma yang berfungsi untuk mencari data berdasarkan query pencarian sekaligus mencocokkannya dengan ID key yang sudah ditentukan. Contohnya penerapan algoritma hashing yaitu penggunaan verifikasi kata sandi ketika login ke akun tertentu.

4. Algoritma Brute Force

Algoritma brute force adalah jenis algoritma yang memecahkan masalah dengan cara mencoba semua kemungkinan yang ada. Logika pemrograman ini akan menguji solusi satu persatu untuk menemukan penyelesaian masalah.

5. Algoritma Searching 

Algoritma searching adalah jenis logika yang berfungsi untuk mencari data tertentu berdasarkan query yang spesifik. Dalam hal ini, proses pencarian mencakup keseluruhan data termasuk yang sudah disortir ataupun belum. Contoh algoritma searching yaitu pencarian angka linier atau biner.

6. Algoritma Randomized 

Algoritma randomized adalah logika pemrograman yang memanfaatkan nomor random guna menentukan langkah yang akan diambil selanjutnya. Metode pemecahan seperti ini bertujuan untuk meminimalisir kerumitan pemrograman. Contohnya, pemanfaatan nomor random yang muncul untuk menentukan pivot.

C. Contoh Struktur Data dan Algoritma

Contoh Struktur Data

1. Array: Kumpulan elemen dengan tipe data yang sama, diakses melalui indeks.

Contohnya seperti ini

Terdapat sebuah array A sebagai berikut:

A = [1, 2, 3, 4, 5]

Maka array A dapat dimodelkan

Array diatas menunjukkan array dengan nama A. Jumlah elemen array A adalah 5 setiap elemennya bertipe data integer.

2. Linked List: Kumpulan simpul yang terhubung satu sama lain, memungkinkan penambahan atau penghapusan elemen secara fleksibel.

Contohnya seperti gambar di bawah ini

3. Stack dan Queue: Struktur data linear dengan operasi khusus (push dan pop untuk stack, enqueue dan dequeue untuk queue).

Contohnya seperti gambar di bawah ini

4. Tree dan Graph: Struktur data hierarkis yang berguna untuk merepresentasikan hubungan antara elemen.

Contoh gambar pada Tree seperti ini

Contoh gambar pada Graph


Contoh untuk gambar di atas adalah informasi topologi dan jarak antar kota-kota di pulau Jawa. Dalam masalah ini kota x bisa berhubungan langsung dengan hanya satu atau lima kota lainnya. Untuk memeriksa keterhubungan dan jarak tidak langsung antara dua kota dapat diperoleh berdasarkan data keterhubungan-keterhubungan langsung dari kota-kota lainnya yang memperantarainya.
Struktur data graph secara eksplisit menyatakan keterhubungan ini sehingga pencariannya langsung (straightforward) dilakukan pada strukturnya sendiri.

Contoh Algoritma

1. Pencarian dan Pengurutan: Algoritma untuk mencari atau mengurutkan data, seperti algoritma pencarian biner dan algoritma pengurutan cepat.

2. Divide and Conquer: Pendekatan memecah masalah menjadi submasalah yang lebih kecil untuk mempermudah penyelesaian.

3. Greedy Algorithms: Strategi pengambilan keputusan berdasarkan pilihan lokal yang diharapkan mengarah ke solusi global terbaik.

4. Dynamic Programming: Pendekatan memecah masalah besar menjadi submasalah yang lebih kecil dan menyimpan hasilnya untuk menghindari pengulangan.

D. Kesimpulan

Struktur data dan algoritma saling melengkapi untuk menciptakan perangkat lunak yang efisien. Pemahaman yang kuat tentang kedua konsep ini sangat penting bagi pengembang perangkat lunak untuk mengoptimalkan kinerja program dan menyusun solusi yang efisien terhadap berbagai masalah komputasi. Dengan memilih struktur data yang tepat dan menerapkan algoritma yang sesuai, kita dapat mencapai solusi yang cepat, efisien, dan dapat diandalkan.

Untuk sumber materi Struktur Data dan Algoritma ada di bawah ini :

Apa Itu Struktur Data? Manfaat, Jenis, dan Contohnya (dewaweb.com)

Pengertian Algoritma Pemrograman, Fungsi, dan Jenis-Jenisnya (dewaweb.com)

Komentar