Kajian Algoritma dalam Ilmu Komputer

Ilmu komputer adalah disiplin ilmu yang berupaya untuk membangun suatu landasan ilmiah bagi topik-topik seperti desain komputer, pemrograman komputer, pengolahan informasi, pemecahan masalah secara algoritmik, dan proses algoritmik itu sendiri. 

Algoritma adalah seperangkat langkah yang mendefinisikan bagaimana suatu pekerjaan dilaksanakan. 

Sebelum sebuah mesin dapat melakukan suatu pekerjaan, algoritma untuk melaksanakan pekerjaan tersebut harus disusun dan disajikan dalam bentuk yang kompatibel dengan mesin tersebut.

Program: Representasi yang kompatibel dengan mesin dari suatu algoritma

Software: Program dan algoritma yang direpresentasikan secara kolektif

Hardware: Mesin komputer

Setelah algoritma untuk melakukan suatu pekerjaan ditemukan, pelaksanaan pekerjaan tersebut tidak lagi membutuhkan pemahaman prinsip-prinsip yang mendasari algoritma.

Contoh 1.

Algoritma pembagian secara panjang (Long Division Algorithm) untuk menemukan sebuah hasil bagi dari dua bilangan berdigit banyak.

Contoh 2.

Algoritma Euclidean (Ahli Matematika Yunani, Euklides) untuk mencari faktor pembagian bersama terbesar (Common Divisor) terbesar dari dua bilangan bulat positif.

Kemampuan untuk memindahkan kecerdasan melalui algoritma semacam inilah yang memungkinkan kita membuat mesin-mesin yang bersifat cerdas. Dengan sendirinya, tingkat kecerdasan tersebut dibatasi oleh kecerdasan yang dapat dipindahkan melalui algoritma.

Setelah algoritma untuk menyelesaikan suatu masalah ditemukan, langkah berikutnya adalah menyajikan algoritma dalam bentuk yang dapat dikomunikasikan kepada mesin.

Algoritma Euclidean untuk mencari faktor pembagi terbesar (Greatest Common Divisor) dari dua buah bilangan bulat positif.

Uraian: Algoritma ini mengasumsikan bahwa masukan yang diberikan terdiri dari dua buah bilangan bulat positif, kemudian dilanjutkan dengan menghitung faktor pembagi bersama terbesar dari kedua bilangan tersebut.

Prosedur:

Langkah 1. Sebutlah dua variabel M dan N dan berikanlah pada masing-masing nilai terbesar dan terkecil secara berurutan

Langkah 2. Bagilah M dengan N, dan sebutkanlah sisa pembagiannya sebagai R

Langkah 3. Jika R bukan 0, berikan nilai N kepada M, berikan nilai R kepada N, dan kembali ke langkah 2, jika tidak, faktor pembagi bersama terbesar adalah nilai variabel N saat ini.

Program FPB dan KPK dalam bahasa C

FPB_KPK.c

#include <stdio.h>
#include <conio.h>
//Prototip fungsi bilangan terbesar dan terkecil
int maxInt (int angka1, int angka2);
int minInt (int angka1, int angka2);
//Program utama FPB dan KPK
int main ( ) {
//Masukkan angka pertama dan kedua
int bilangan1, bilangan2;
printf (“Masukkan angka pertama: “);
scanf (“%d\n”, &bilangan1);
printf (“Masukkan angka kedua: “);
scanf (“%d\n”, &bilangan2);
//Penentuan bilangan terbesar dan terkecil
int M, N. R;
M = maxInt (bilangan1, bilangan2);
N = minInt (bilangan1, bilangan2);
//Hitung sisa pembagian
R = M%N;
//Hitung FPB
while (R != 0) {
M = N;
N = R;
R = M%N;
}
//Tampilkan hasil FPB
int FPB = N;
printf (“FPB dari %d dan %d adalah %d\n”, bilangan1, bilangan2, FPB);
//Hitung KPK
int KPK = (bilangan1*bilangan2)/FPB;
//Tampilkan hasil KPK
printf (“KPK dari %d dan %d adalah %d\n”, bilangan1, bilangan2, KPK);
getch ( );
return 0;
}
//Fungsi bilangan terbesar
int maxInt (int angka1, int angka2) {
int max;
if (angka1 > angka2) {
max = angka1;
else max = angka2;
return max;
}
//Fungsi bilangan terkecil
int minInt (int angka1, int angka2) {
int min;
if (angka1 < angka2) {
min = angka1;
else min = angka2;
return min;
}