Hubungan Algoritma dan Struktur Data

Program adalah kumpulan instruksi komputer, sedangkan metode dan tahapan sistematis
dalam program adalah algoritma. Program ini ditulis dengan menggunakan bahasa
pemrograman. Jadi bisa kita sebut bahwa program adalah suatu implementasi bahasa
pemrograman. Beberapa pakar memberi formula bahwa:
program = struktur data + algoritma..Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah
program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat
program menjadi kurang baik, semikian juga sebaliknya.
Menilai Sebuah Algoritma
Ketika manusia berusaha memecahkan masalah, metode atau teknik yang
digunakan untuk memecahkan masalah kemungkinan bisa lebih dari satu. Dan kita
memilih mana yang terbaik diantara teknik-teknik itu. Hal ini sama juga dengan
algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan
logika yang berlainan. Lalu bagaimana mengukur mana algoritma yang terbaik ?
Beberapa persyaratan untuk menjadi algoritma yang baik adalah:
• Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses
harus berakurasi tinggi dan benar.
• Pemrosesan yang efisien (low cost). Proses harus diselesaikan secepat
mungkin dan jumlah kalkulasi yang sependek mungkin.
• Bersifat general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus
saja, tapi juga untuk kasus lain yang lebih general.
• Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita
kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
• Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma
anda. Sulit dimengertinya suatu program akan membuat sulit pengelolaan.
• Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan
di berbagai platform komputer.
Contoh Algoritma dan Implementasinya
Sebagai contoh sederhana, mari kita berlatih melihat permasalahan, mencoba menyusun
algoritma, dan menerapkan dalam bahasa C.
Permasalahan
Ada seorang guru SD yang ingin membuat rangking nilai ujian 9 orang murid. Nilai ujian
murid adalah sebagai berikut:
56 78 43 96 67 83 51 74 32
Bagaimana algoritma dalam pembuatan rangking nilai tersebut?
Untuk memecahkan masalah di atas, kita bisa menyusun algoritma sebagai berikut:
1. Buat satu variable (misalnya rangking)
2. Set variable rangking = 1
3. Ambil satu nilai sebagai data yang ke a, misalnya 56.4. Cek nilai dari paling depan (56) sampai paling belakang (32) (b=0-8). Apabila
nilai tersebut lebih tinggi daripada nilai ke a (56), maka set variable rangking =
ranking + 1.
5. Ulangi proses nomor 2 dengan mengambil data ke (a) berikutnya. Kemudian
mari kita implementasikan algoritma di atas dalam program bahasa C.
Program: Rangking Nilai Ujian
#include
#define banyaknya_nilai 9
main(){
static int nilai[]={56, 78, 43, 96, 67, 83, 51, 74, 32};
int rangking[banyaknya_nilai];
int a,b;
for (a=0;a<banyaknya_nilai;a++){
rangking[a]=1;
for (b=0;bnilai[b])
rangking[a]++;
}
}
printf(“Nilai Ujian \t Rangking\n”);
for (a=0;a<banyaknya_nilai;a++){
printf("%d \t\t %d\n",nilai[a], rangking[a]);
}
}
Hasil
Nilai Ujian Rangking
56 4
78 7
43 2
96 9
67 5
83 8
51 3
74 6
32 1

One Response to “Hubungan Algoritma dan Struktur Data”

  1. aji Says:

    seep

Leave a comment