Pengantar Algoritma

  1. 1. Pendahuluan

Komputer dubuat sebagai alat bantu untuk menyelesaikan masalah permasalahan apapun dapat diselesaikan oleh komputer asalkan langkah-langkah penyelesainnya disediakan oleh manusia, dengan kata lain, manusia menulis program yang berisi urutan langkah-langkah penyelesaian masalah, lalu program tersebut dimasukkan kedalam komputer. Dalam hal ini, komputer hanya bertindak menjalankan perintah yang tertulis didalam program tersebut, tetapi komputer mempunyai kelebihan dibandingkan manusia. Komputer adalah benda mati , jadi ia tidak mengenal lelah dan bosan, komputer mampu mengerjakan printah yang banyak sekalipun, selain itu ia juga mampu mengerjakan suatu perintah yang banyak sekalipun, selain itu ia juga dapat mengerjakan perintah yang berulang-ulang, sedangkan manusia memiliki memori yang besar sehingga ia mampu menyimpan data dan informasi dalam volume besar

  1. 2. Program komputer dan algoritma

Anda sudah melihat contoh sebuah program komputer untuk menyelesaikan masalah pengurutan, program komputer berisi urutan langkah-langkah penyelesaian masalah secara sistematis, urutan langkah-langkah penyelesaian masalah inilah yang dinamakan algoritma, ada banyak definisi yang dijumpai diberbagai literatur, namun definisi yang umum adalah sebagai berikut:

Definisi: Algoritma adalah urutan logis langkah-langkah penyelesaian masalah

Jadi, program komputer pada hakikatnya adalah realisasi teknis dari sebuah algoritma disebut realisasi teknis karena algoritma dikodekan kedalam bahasa pemrograman tertentu, kita dapat menuliskan kembali algoritma dari program pengurutan diatas sebagai berikut ini:

Program pengurutan

Program untuk mengurutkan nilai ujian sejumlah mahasiswa

Algoritma:

  1. Cari nilai terbesar diantara N buah data
  2. Tempatkan nilai terbesar tersebut pada posisi yang tepat
  3. Ulangi dari langkah—langkah 1 untuk N -1 buah data yang lain
  1. 3. Sejarah kata “Algoritma”

Ditinjau dari asal usul kata algoritma sendiri mempunyai sejarah yang aneh, kata itu tidak muncul didalam kamus webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses perhitungan dengan angka arab (KNU73), anda dikatakan algorist jika anda menggunakan angka arab, para ahli bahasa berusaha menemukan asal kata algorism ini namun hasilnya kurang memuaskan, akhirnya para ahli sejarah matematika menemukan asal mula kata tersebut, kata algorism berasal dari nama penulis arab yang terkenal yaitu Abu ja’far Muhammad ibnu Musa al-khuwarism (al-khuwarism dibaca oleh orang barata menjadi algorism), beliau menulis buku yang berjudul kitab al-jabar wal-muqobala, yang artinya “”Buku pemugaran dan pengurangan (The book of restoration and reduction), dari judul buku itu kita juga memperoleh akar kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm beribah –thm, karena perhitungan dengan angka arab sudah menjadi hal yang sudah biasa maka lambat laun kata algoritm berangsur-angsur dipakai sebagai metode perhitungan secara umum, sehingga kehilangan makna aslinya(PAR95). Dalam bahasa indonesia, kata algoritm diserap menjadi algoritma

Pada tahun 1950, kata algortima sering dihubungkan dengan “algoritma euclidean” yaitu proses untuk menemukan pembagi bersama terbesar dari sebuah dua bilangan bulat, m dan n (KNU73), pembagi bersama terbesar dari sebuah bilangan bulat tak-negatif adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut, misalnya m=80 dan n=12. Faktor pembagi 80 adalah 1,2,4,5,8,10,16,20,40,80 dan faktor pembagi 12 adalah 1,2,3,4,6,12, maka gcd(80,12)=4, langkah-langkah mencari gcd(80,12) dengan algoritma euclidean adalah sebagai berikut:

80/12 = 6 sisa 8

12/8=1 sisa 4

8/4=2 sisa 0

  1. 4. Belajar memprogram dan belajar bahasa pemrograman

Belajar memprogram tidak sama dengan belajar bahasa pemrograman, belajar memprogram adalah belajar tentang metedologi pemecahan masalah, kemudian menuangkan algoritma pemecahan masalah dalam sebuah notasi tertentu, sedangkan belajar bahasa pemrogrman berarti belajar memakai suatu bahasa, aturan tata bahasa dan intruksi-intruksi, tata cara pengoperasian compilernya dan memanfaatkan intruksi –intruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja

Dalam pelajaran pemrograman, kita lebih memikirkan pada cara penyelesaian masalah yang akan diprogram dengan menekankan pada desain atau rancangan yang mewakili pemecahan masalah tersebut, desain itu dibuat sedemikian sehingga independen dan bahsa pemrograman yang kelak digunakan dan komputer yang akan menjalankan program tersebut, desain berisi urutan langkah-langkah pencapaian solusi yang ditulis dalam notasi-notasi deskriptif (notasi ini kelak kita sebut notasi algoritmik), setiap orang yang berbeda mungkin menghasilkan rancangan program yang berbeda pula, karena belajar memprograman bukan belajar membuat program yang asal jadi, perlu dipikirkan membuat program dengan menggunakan skema yang benar

Bila desain program sudah dibuat dengan skema yang benar, maka desain tersebut siap dekodekan dengan notasi bahsa pemrograman agar program bisa dieksekusi oleh komputer, disinilah perlunya kita belajar bahasa pemrograman, ada banyak bahasa pemrograman yang tersedia, namun desain program program dapat diterjemahkan ke bhasa apapun sampai saat ini terdapat puluhan bahasa pemrograman, diantaranya yaitu:bahasa rakitan(assembly), fortran, cobol,PL/I, Algol, Pascal,C,C++,basic,Prolog, LISP,PRG,bahasa –bahasa simulasi seperti CSMP,Simscript,GPRS,Dinamo dan banyak lagi, belakangan juga muncul bahasa pemrograman dapat digolongkan menjadi dua kelompok:

  1. Bahasa pemrograman bertujuan khusus (specific purpose programming lnguage) yang termasuk kelompok ini adalah cobol (untuk terapkan bisnis di administrator), fortran (aplikasi komputasi ilmiah), bahasa assembly (pemrograman mesin), prolog (aplikasi kecerdasan buatan), bahasa-bahasa simulasi dll
  2. Bahasa pemrograman bertujuan umum (general purpose programming language) yang dapat digunakan untuk berbagai aplikasi, yang termasuk kelompok ini adalah bahasa pascal, basic dan C, C++

Tentu saja pembagian ini tidak kaku, bahasa-bahasa bertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain, cobol misalnya dapat juga digunakan untuk terapkan ilmiah, hanya saja kemampuannya tentu saja terbatas, yang jelas, bahasa-bahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam kegunaan yang berbeda pula

Berdasarkan “kedekatan” bahasa pemrograman apakah lebih condong kebahasa mesin atau bahasa manusia, maka bahasa pemrograman juga dapat dikelompokkan atas dua macam, yaitu:

  1. Bahasa tingkat rendah

Bahasa jenis ini dirancang agar setiap intruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah, contohnya adalah bahasa mesin, bahsa mesin adalah sekumpulan kode biner 0 dan 1, setiap perintah dalam bahasa mesin langsung dimengerti oleh mesin dan langsung dikerjakan, bahasa tingkat rendah bersifat primitif, sangat sederhana dan relatif sulti dipahami manusia,bahasa assembly dimasukkan kedalam kelompok ini karena notasi yang dipakai dalam bahsa ini merupakan bentuk manusiawi dari bahasa mesin dan untuk melaksanakan intruksinya masih diperlukan penerjemahan kedalam bahasa mesin, bahasa tingkat rendah merupakan bahsa pemrograman generasi pertama yang pernah ditulis

  1. Bahasa tingkat tingii

Bahasa jenis ini membuat program menjadi lebih mudah dipahami, lebih “manusiawi” dan lebih dekat ke bahasa manusia (bahasa inggris), kelemahannya, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer, ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa kedalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU, tahapan pemrograman dan pelaksanaan program oleh computer digambarkan pada gambar 1.1 contoh bahasa tingkat tinggi adalah pascal,PL/I,Ada,Cobol,Basic,Fortran,C,C++ dll

  1. Daftar padan kata inggris – Indoensia

No

Bahasa inggris

Bahasa Indonesia

1

Ambiguous

Berarti-dua

2

Application

Terapan

3

Array

Larik

4

Assembly

Rakitan

5

Assumption

Andaian

6

Consistent

Taat – asas

7

Constant

Konstanta

8

Detail

Rinci

9

Effective

Sangkil

10

Efficient

Mangkus

11

Execute

Melaksanakan

12

File

Arsip, berkas

13

Input

Masukan

14

List

Daftar

15

Mouse

Tetikus

16

Negation

Ingkaran

17

Output

Keluaran

18

Peripheral

Piranti

19

Plotter

Perajah

20

Printer

Pencetak

21

Prorotype

Purwarupa

22

Record

Rekaman

23

Scanner

Pemindai

24

Sequence

Runtutan

25

Sequential

Beruntun

26

Sub

Upa

27

Variable

peubah

SUMBER:

Munir,rinaldi, ALGORITMA DAN PEMROGRAMAN DALAM BAHASA PASCAL DAN C EDISI KETIGA, informatika bandung, 2004

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: