SEJARAH
ALGORITMA
Algoritma
Kata
‘algoritma’ di turunkan dari nama belakang seorang tokoh matematikawan Persia bernama
Muhammad ibn Musa al-Khuwarizmi (lahirtahun 730an, meninggal antara tahun 835 dan
850). Al-Khuwarizmi berasal dari propinsi Khorasan
di negara yang saat ini bernama Uzbekistan.Uni Soviet menghormati jasa-jasa
Al-Khuwarizmi dengan membuat gambar dirinya sebagai perangko.
Algoritma merupakan metode umum
yang di gunakan untuk menyelesaikan kasus-kasus tertentu [1]. Dalam menuliskan algoritma, dapat di gunakan bahasa natural
atau menggunakan notasi matematika, sehingga masih belum dapat di jalankan pada komputer.
Algoritma Merupakan Jantung Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu
computer yang di acu dalam terminologi algoritma. Dalam kehidupan sehari-hari pun banyak terdapat
proses yang di gambarkan dalam suatu algoritma. Cara-cara membuat kue atau masakan,
misalnya di nyatakan dalam suatu resep. Resep masakan adalah suatu algoritma, misalnya resep membuat Otak-otak Ikan Bandeng (dikutipdari
Tabloid Nova 25 Agustus 1996)
Dalam kehidupan sehari-hari,
kita sudah melakukan penyusunan algoritma untuk menyelesaikan permasalahan atau tantangan
yang dihadapi. Sebagai contoh,
pada saat diminta untuk membuat telur dadar. Sebelum membuat algoritmanya,
kita perlu mendefinisikan masukan (input) dan luaran (output) terlebih dahulu, dimana
input berupa telur mentah, dan output berupa telur dadar yang sudah matang.
Susunan algoritmanya sebagai berikut:
1.
Nyalakan api kompor
2.
Tuangkan minyak ke dalam wajan
3.
Pecahkan telur ayam ke dalam mangkok
4.
Tambahkan garam secukupnya
5.
Aduk campuran telur dan garam
6.
Tuang adonan telur ke dalam wajan
7.
Masak telur hingga matang
Algoritma akan lebih baik jika di tulis secara sistematis menggunakan beberapa skema, dalam buku ini akan di bahas mengenai eskema Flowchart.
-Klasifikasi Menurut Generasi :
1. Generasi Pertama
Bahasa pemrograman ini berupa kode-kode mesin
yang hanya bisa di pahami oleh mikro prosesor.
2. Generasi Kedua
Bahasa pada generasi ini adalah
assembly language, di mana bahasa ini masih menggunakan kode-kode yang
di sebut dengan nemonic. Bahasa assembly di sebut sebagai generasi kedua karena bahasa ini bukan bahasa asli mikro prosesor,
meskipun begitu programer tetap harus mengetahui keunikan dari masing-masin mikro prosesor
(register dan jenis instruksi).
3. Generasi ketiga
Bahasa pemrograman generasi ketiga sengaja di desain supaya mudah di pahami oleh manusia. Pada generasi ini mulai di kenalkan istilah variabel,
tipe data, ekspresi aljabar dan sudah mendukung pemrograman terstruktur.
Contohbahasa:
FORTRAN, COBOL, ALGOL, BASIC, C, C++,Pascal, Java.
4. Generasi keempat
Pada generasi ini,
bahasa pemrograman di desain untuk mengurangi effort dan mempercepat proses pembuatan
program. Pada generasi ke-3, pembuatan program membutuhkan waktu yang lama dan mudah sekali di dapati
error. Pada generasi ke-4,
telah menggunakan metodologi dimana sebuah perintah dapat menghasilkan beberapa instruksi generasi
ke-3 yang kompleks dengan sedikit error[4]. Contoh bahasa:
a.
Pemrograman umum : Data Flex, Win Dev, Power Builder
b.
Basis data : SQL, Progress 4GL
c.
Manipulasi data, analisis dan pelaporan : ABAP, Matlab,PL/SQL.
5. Generasi kelima
Bahasa pemrograman generasi kelima di sebut sebagai
constraint-programming atau declarative-programming. Program
tidak dituliskan dalam bentuk algoritma melainkan di tuliskan batasan atau fakta dari sebuah lingkup masalah,
sehingga program
akan menghasilkan luaran dalam bentuk solusi[5]. Bahasa pemrograman ini di gunakan untuk membangun system
kecerdasan buatan dan belum di gunakan secara meluas di dunia industri. Contohbahasa:
Prolog, LISP, Mercury.
Paradigma Pemrograman
Paradigma pemrograman merupakan sebuah cara pandang seorang programmer
dalam menyelesaikan sebuah masalah dan memformulasikannya ke dalam sebuah bahasa pemrograman.
Terdapat beberapa paradigma pemrograman, antara lain: Paradigma Imperatif Inti dari paradigma ini adalah menjalankan sebuah urutan perintah, jalankan satu perintah kemudian jalankan perintah
yang selanjutnya.
Sebuah
program imperatif tersusun dari sekumpulan urutan perintah yang
akan di jalankan oleh komputer. Pemrograman procedural merupakan salah satu contoh dari paradigma ini,
dan seringkali di anggap sebagai sebuah paradigma yang sama.
·
Ide dasarnya adalah dari model komputer
Von Neumann.
·
Eksekusi langkah-langkah komputasi di atur oleh sebuah struktur kontrol.
·
Berdasarkan urutan-urutan atau sekuensial.
·
Program
adalah suatu rangkaian prosedur untuk memanipulasi
data. Prosedur merupakan kumpulan instruksi yang di kerjakan secara berurutan.
·
Contoh bahasa pemrograman: Fortran, Algol,
Pascal, Basic, C++
Terdapat beberapa karakteristik utama,
yaitu: Abstraksi, Enkapsulasi, Pewarisan dan Polimorfisme sebagai berikut:
Flowchart
Dalam membuat algoritma, di perlukan suatu mekanisme atau alat bantu untuk menuangkan hasil pemikiran mengenai langkah-langkah penyelesaian masalah
yang sistematis dan terurut. Pada dasarnya untuk bisa menyusun solusi di perlukan kemampuan problem-solving yang
baik. Oleh karena itu, sebagai sarana untuk melatih kemampuan tersebut terdapat sebuah
tool (alat) yang dapat digunakan, yakni flowchart.
Secara
formal, flowchart
di definisikan sebagai eskema penggambaran dari algoritma atau proses[8]. Tabel berikut menampilkan simbol-simbol yang di gunakan dalam menyusun flowchart
Berikut ini adalah
flowchart untuk menggambarkan kegiatan membuat telur dadar:
Jika kita gambarkan persoalan
di atas menggunakan flowchart maka, akan menjadi seperti berikut :
Contoh sebuahs program computer dengan kode turbo pascal :
program PENGURUTAN :
{ Programu ntuk mengurutkan nilai ujian sejumlah mahasiswa}
const
Nmaks = 1000; { jumlah maksimum
data }
var
Nilai :array[1..Nmaks] of
integer; { tempat menyimpan data }
j,k,temp, N, Imaks : integer;
begin
{baca data nilai ujian N orang
mahasiswa}
read(N);
forj:=1 to N
do
readln(Nilai[j]);
{end for}
{urutkan data
dengan langkah-langkah berikut:}
forj:=1 to N-1
do { ulangisebanyak N – 1 kali }
begin
{cari nilai terbesar}
Imaks:=j;
fork:=j+1 to N
do
ifNilai[k]
>Nilai[j] then
Imaks:=k;
{endif}
{endfor}
{tempatkan nilai terbesar pada posisi
yang tepat}
temp:=Nilai[j];
Nilai[j]:=Nilai[Imaks];
Nilai[Imaks]:=temp;
end; {for}
{ tuliskan nilai yang
sudah terurut!}
forj:=1 to N
do
writeln(Nilai[j]);
{endfor}
end.
Input
dan Output
Dalam mengawali suatu
proses tertentu, minimal membutuhkan suatu masukan berupa
data (input), karena data inilah yang nantinya akan diproses dan akan menjadi keluaran
(output).
Contoh
:
Menerimamasukan data
dari user (pengguna) :
AlgoritmaMasukkan_data
Kamus
data
BEGIN
input(x)
/*x adalahvariabelpenampungnilai*/
END.
Memasukkannilaitertentupadavariable
:
AlgoritmaMasukkan_nilai
Kamus
data
BEGIN
x
5 /*panahkekiriarahmasuknyanilai*/
END.
Menampilkanisivariabelkelayarmonitor
:
AlgoritmaTampilan
Kamus
data
BEGIN
output(x)
/*x adalah variabel yang berisi nilai*/
END.
0 Comments:
Posting Komentar