Jika seseorangingin mengirimkan surat kepada kenalannya di tempat lain,langkah yang harus dilakukan adalah :
- Menulis surat.
- Surat dimasukkan ke amplop tertutup.
- Amplop diberi alamat penerima dan pengirim.
- Amplop di tempeli perangko.
- Pergi ke kantor pos terdekat untuk mengirimkannya.
Definisi Algoritma adalah Urutan langkah-langkah untuk memecahkan masalah yang disusun secara sistematis dan logis.Menurut kamus besar bahasa indonesia Algoritma adalah urutan logis pengambilan putusan untuk memecahkan suatu masalah.
Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah.
Program/Pemrograman adalah Kumpulan instruksi-instruksi tersendiri yang biasanya disebut
Source code yang dibuat oleh programer ( Pembuat Program ).
Program adalah realisasi dari Algoritma dan Bahasa pemrograman.
Pembuatan dan penulisan algoritma tidak tergantung pada bahasa pemrograman manapun.Notasi algoritma dapat diterjemahkan dalam berbagai bahasa pemrograman tergantung programer.Apapun bahasa pemrogramannya,output yang akan dikeluarkan sama karena secara algoritmanya sama.
PROGRAM KOMPUTER
Program komputer adalah rangkaian kata perintah yang telah dimengerti
oleh komputer untuk dikerjakannya. Kata-kata perintah tersebut membentuk
suatu bahasa yang disebut dengan bahasa pemrograman. Sebagaimana
bahasa pada manusia, bahasa pemrograman juga terdiri atas banyak macam
bahasa, dan memiliki aturannya masing-masing.
Sulitnya, komputer saat ini belum diberi hak inisiatif, sehingga jika ada sedikit
saja kesalahan penulisan perintah oleh pemrogram, ia tidak mau memakluminya
atau berusaha memperbaiki sendiri kesalahan tersebut. Serta merta ia
“ngambek” dan tidak mau mengerjakan perintah-perintah lainnya. Komputer
diciptakan melalui logika manusia, karenanya, ia bekerja secara logis, tanpa
campur-tangan “perasaan.”
ALGORITMA PEMROGRAMAN
Orang yang telah terbiasa “bergaul” dengan komputer menggunakan satu
bahasa pemrograman tertentu (tingkat mahir), biasanya tidak lagi memerlukan
kertas coret-coretan untuk membuat suatu program komputer. Namun bagi
pemula, pembelajar, atau yang belum mahir, diperlukan kertas coret-coretan
tersebut.
Kertas coret-coretan itu akan digunakan untuk menyusun algoritma
(langkah-langkah penyelesaian masalah), flowcharting (alur logika perintah,
yang merupakan aplikasi dari algoritma), maupun menuliskan perintah sesuai
dengan kaidah dari bahasa pemrograman yang akan digunakannya.
Sewaktu menyusun algoritma, kita tidak perlu tahu (atau tidak perlu
menyesuaikan dengan) bahasa pemrograman yang nanti akan kita gunakan.
Hal utama yang kita pikirkan adalah kaidah (hirarki) dari komputer itu sendiri,
yaitu input-proses-output.
Input adalah data yang harus ada (sudah ada/ sudah tersedia), yang dapat
diproses dengan aturan-aturan tertentu untuk menghasilkan output seperti yang
dikehendaki. Data yang ada harus logis (masuk akal) bahwa “ia” dapat
diproses untuk menghasilkan output.
PERLUNYA PERINTAH BAHASA PEMROGRAMAN DI DALAM ALGORITMA
Meskipun sudah dikatakan, bahwa sewaktu kita menyusun algoritma kita
tidak perlu tahu bahasa pemrograman apa yang akan digunakan kelak,
namun, untuk penulisan algoritma yang lebih efisien dan efektif, maka
penggunaan sebagian perintah yang ada di dalam bahasa pemrograman
perlu dilakukan juga.
Adapun perintah bahasa pemrograman yang paling sering digunakan untuk
menyusun algoritma adalah bahasa pemrogrman yang terstrukutur, seperti
Pascal, C, SNOBOL, PL/1, dan sebagainya.
Misalkan saja, untuk contoh berikut ini :
Langkah 1 : Beri nilai 10 ke variabel S
Maka, akan lebih mudah jika ditulis sebagai :
Langkah 1 : S := 10;
Belum lagi jika algoritma yang ditulis harus melakukan perulangan langkah
ke langkah-langkah sebelumnya (looping).
10 Mulai I:= 1;
11 Lakukan perbandingan data ke I dengan data ke I+1
12 Jika data ke I+1 lebih kecil, maka tukar tempat keduanya
13 Tambahkan I dengan 1
14 Lakukan langkah 11 hingga langkah 13 selama nilai I < 10
15 selesai
Tentu akan lebih ringkas jika kita tulis (perintah BASIC) :
10 For I= 1 to 10
20 If A(i) > A(I+1) then SWAP A(i), A(j)
30 next
40 end
Jadi terlihat, jika algoritma tersebut sederhana, maka penyusunan algoritma
akan sama dengan penyusunan sebuah program (karena semua perintahnya
sudah sesuai dengan kaidah penulisan di bahasa pemrogramannya).
Apakah semuanya akan demikian ?. Tentu saja tidak, misalkan, kita diminta
untuk menentukan bilangan terkecil dari seratus buah bilangan yang akan
dimasukkan ke komputer, ini masih dapat langsung dibuatkan programnya.
Algoritma (program)nya bisa kita susun sebagai berikut :
1 DIM A(100)
2 FOR M = 1 TO 100
3 INPUT A(M) : NEXT : KECIL = A(1)
4 FOR M = 2 TO 100
5 IF KECIL > A(M) THEN X = KECIL: KECIL = A(M) : A(M) = X
6 NEXT : PRINT KECIL : END
Tetapi, misalkan jika kita diminta untuk mengalihkan notasi infix menjadi
postfix melalui stack, hal itu sulit untuk dilakukan.
Algoritmanya bisa menggunakan gabungan kalimat dengan bahasa
pemrograman, berikut contoh penggalannya.
Contoh :
1. Asumsi : deretan notasi infix dimasukkan ke dalam sebuah variabel array
bernilai string, nama variabelnya D
2. S adalah variabel string untuk menyimpan susunan data di dalam stack
3. H adalah variabel string untuk menyimpan hasil
4. P = banyaknya elemen array
5. For I = 1 to p
If top(s) = empty then {top(s) adalah posisi atas stack)
if D(i) = operand then
H = D(i)
Else
S = S + D(i)
Top(s) = D(i)
Endif
Else
If D(i) = operator then
If derajat D(i) > derajat Top(s) then
. . .
. . .
. . .
. . .
Jadi, terdapat beberapa kata yang tidak dapat dijabarkan langsung ke
dalam bahasa pemrograman. Misalkan, kata Top(s), empty, operand, operator,
dan derajat.
PERLUNYA PROSEDUR
Toh akhirnya, kita tidak akan mungkin hanya membuat algoritmanya saja
melainkan dilanjutkan ke pembuatan programnya. Karenanya, algoritma
sebaiknya dibuat sedemikian rupa agar setiap perintah yang ada di dalamnya
dapat diaplikasikan langsung ke dalam bahasa pemrograman.
Itulah perlunya prosedur. Misalkan kata “operand” di algoritma di atas yang
tidak dapat langsung diaplikasikan di dalam bahasa pemrogramannya, kita
buat saja prosedur dari algoritma tersebut yang mendefinisikan apa itu
“operand.”
Misalkan :
1 Procedure OPERAND
2 IF ASC(D(I)) > 64 AND ASC(D(I)) < 91 THEN OP = .T. ELSE OP = .F.
3 RETURN
Sehingga, di algoritma utamanya bisa diubah dari :
If top(s) = empty then {top(s) adalah posisi atas stack)
if D(i) = operand then
H = D(i)
menjadi :
If top(s) = empty then {top(s) adalah posisi atas stack)
Do Procedure OPERAND
IF op = .t.
H = D(i)
PERLUNYA STANDAR PENGGUNAAN PERINTAH BAHASA PEMROGRAMAN
Sulit memang membuat standardisasi penggunaan perintah bahasa
pemrograman di sebuah algoritma. Sulit karena ada yang hanya memahami
satu bahasa pemrogrman saja sehingga ia tak mau menggunakan perintah di
bahasa pemrograman lain.
Namun, itu sebatas cara penulisan saja, misalkan di BASIC A = 10, di Pascal
berlaku A := 10, namun untuk perintah looping, umumnya memiliki alur logika
yang sama, yaitu dalam penggunaan FOR-NEXT, REPEAT-UNTIL, DO WHILEENDDO,
WHILE-WEND, dan sebagainya.
Jadi, meskipun tidak ada standar yang pasti, paling-paling hanya berbeda
cara penulisannya saja, namun sama dalam alur logikanya. Jadi, ternyata,
standardisasi semacam ini tidak diperlukan.
Syarat Algoritma secara teori adalah :
- Tingkat kepercayaannya tinggi (realibility).Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
- Pemrosesan yang efisien (cost rendah).Proses harus dapat diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
- Sifatnya General.Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja,tapi juga untuk kasus lain yang lebih general.
- Bisa dikembangkan (Expandable).Haruslah sesuatu yang bisa kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
- Mudah dimengerti.Siapapun yang melihat,dia akan bisa memahami algoritma anda.Susah dimengertinya suatu program akan membuat susah di maintenance (pengelolaanya).
- Portabilitas yang tinggi (portability).Bisa dengan mudah diimplementasikan di berbagai platform komputer.
- Precise (Tepat,Betul,Teliti).
- Efektif.Tidak boleh ada instruksi yang tidak ungkin dikerjakan oleh pemroses yang akan menjalankannya.
- Harus Terminate.Jalannya algoritma harus ada kriteria berhenti.
- Output yang dihasilkan tepat.
Langkah-langkah pembuatan program :
Mendefinisikan Masalah
- Kondisi awal input yang tersedia.
- kondisi akhir output yang diinginkan.
- Data lain yang tersedia.
- Operator yang tersedia.
- Syarat atau kendala yang harus dipenuhi.
Buat Algoritma dan struktur cara penyelesaiannya
- Jika masalahnya kompleks,maka dibagi ke modul-modul.
Menulis Program
- Pilihlah bahasa yang mudah digunakan,mudah dipelajari,mudah digunakan dan lebih baik lagi bila sudah dikuasai,memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya.
Mencari Kesalahan
- Kesalahan Sintaks (penulisan program).
- Kesalahan pelaksanaan : Semantik,logika dan Ketelitian.
Uji dan verifikasi program.
Dokumentasi Program.
Pemeliharaan Program.
Struktur penulisan Algoritma.
Setiap algoritma akan selalu terdiri dari tiga bagian yaitu :
- Judul ( Header ).Judul adalah bagian teks algoritma yang digunakan sebagai tempat mendefinisikan nama dengan menentukan apakah teks tersebut adalah program,prosedur,fungsi.
- Kamus.Kamus adalah bsgian teks algoritma sebagai tempat untuk mendefinisikan nama type,nama konstanta,nama variable,nama fungsi,nama prosedur.
- Algoritma.Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi atau pemanggilan aksi yang telah didefinisikan.