Notasi Algoritmik
Pendahuluan Teks algoritma berisi deskripsi atau langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dibaca dan dimengerti. Tidak ada notasi yang baku dalam penulisan teks algoritma sebagaimana pada notasi bahasa pemrograman. Tiap orang dapat membuat aturan penulisan dan membuat algoritma sendiri. Hal ini dapat dimenegerti karena teks algoritma tidak sama dengan teks program.
Program adalah implementasi algoritma dalam notasi bahasa pemrograman tertentu. Namun, agar notasi algoritma dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritma tersebut berkoresponden dengan notasi atau bahasa pemrograman secara umum. Contoh perintah tulis nilai X dan Y dalam notasi algoritma menjadi write(X,Y) Notasi write ini berarti nilai X dicetak ke piranti keluaran. Tidak penting apakah X dan Y ditulis ke layar atau ke printer atau ke piranti keluaran yang lain.
Selain itu, di dalam algoritma kita tidak memepersoalkan format tampilan keluaran misalnya apakah hasil penulisan antara X dan Y dipisah dengan spasi atau dengan koma juga apakah X dan Y dicetak di dalam baris yang sama atau tidak, dll. Hal-hal ini teknis semacam ini baru dipikirkan pada saat translasi algoritma menjadi program. Dengan demikian notasi algoritma benar-benar abstraksi dari notasi bahasa pemrograman. Notasi “write” di dalam algoritma berkorespondensi dengan write atau writeln.
Dalam bahasa C setiap instruksi dipisahkan dengan ; (semicolon) Dalam bahasa C setiap instruksi dipisahkan dengan ; (semicolon). Jadi translasi write(X) ke dalam masing-masing bahasa tersebut adalah dengan anggapan piranti keluarannya adalah layar. writeln(X, Y); dalam bahasa pascal printf(“%d, X, Y); dalam bahasa C Dari contoh diatas dapat dilihat bahwa setiap bahasa mempunyai aturan sendiri dalam menggunakan perintah penulisan. Bahasa C misalnya mengharuskn penulisan penentu format (“%d”, ini berarti X dan Y yang akan dicetak bertipe bilangan bulat). Selain itu, setiap instruksi ditutup dengan ; (titik koma)
Contoh lain misalnya perintah untuk : isikan nilai X ke dalam min ditulis dalam notasi algoritma menjadi min x Notasi berarti mengisi (assign) peubah (variabel) min dengan nilai peubah X. Translasi notasi “” ke dalam bahasa Pascal “:=“, dalam bahasa C adalah “=“. Jadi translasi min x ke dalam masing-masing bahasa tersebut adalah min := X; dalam bahasa pascal min=X; dalam Bahasa C
Struktur Teks Algoritma 1. JUDUL ALGORITMA Judul algoritma adalah bagian yang terdiri atasa nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama algoritma sebaiknya singkat, namun cukup menggambarkan apa yang dilakukan algoritma tersebut. Di bawah algoritma disertai dengan penjelasan singkat atau intisari tentang apa yang dilakukan oleh algoritma. Penjelasan di bawah nama algoritma sering dinamakan juga spesifikasi program
Struktur Teks Algoritma (2) Contoh penulisan judul algoritma adalah Algoritma Luas_Lingkaran judul algoritma {menghitung luas lingkaran untuk jari-jari tertentu. Algoritma menerima masukan jari-jari lingkaran, menghitung luasnya, lalu mencetak luas lingkaran ke piranti keluaran spesifikasi algoritma}
Struktur Teks Algoritma (3) 2. Deklarasi Deklarasi nama adalah bagian untuk mendefinisikan semua nama yang dipakai di dalam algoritma. Nama tersebut dapat berupa nama tetapan, nama peubah, nama tipe, nama prosedur dan nama fungsi. Contoh pendefinisian nama di dalam deklarasi adalah
DEKLARASI {nama konstanta} const NPeg = 100 {jumlah pegawai} const phi = 3.14 {nilai PHI} {nama tipe} Type Titik : record {koordinat titik di bidang kartesian} < x:integer, Y;integer > {nama peubah (variable) } c : char {karakter yang dibaca} Q: titik {titik dalam koordinat kartesian} ketemu : Boolean {keadaan hasil pencarian} function Apakah_A (input c:char) boolean { Mengembalikan nilai true bila c adlah karakter A atau flase bila sebaliknya} procedure Tukar (input/output A:integer, input/output B:integer) {Mempertukarkan nilai A dan B} {Parameter A dan B sudah terdefinisi nilainya} {Setelah pertukaran, A berisi nilai B semula, B berisi nilai A semula}
Struktur Teks Algoritma (4) 3. Deskripsi Deskripsi merupakan bagian inti dari suatu program. Bagian ini berisi langkah-langkah penyelesaian masalah. Misalnya notasi write digunakan untuk mencetak data atau informasi, notasi read untuk membaca data, dsb Setiap langkah algoritma, dibaca dari atas ke bawah. Urutan penulisan menentukan urutan perintah. Deskripsi pada algoritma, mempunyai kemiripan fungsi pada bagian “cara membuat” dalam sebuah resep masakan.
Struktur Teks Algoritma (5) Contoh deskripsi algoritma : DESKRIPSI : read (c,d) if c < d then ea+b else ea-b endif write(e)
Translasi Teks ke dalam Bahasa Pemrograman Teks algoritma adalah hasil pemikiran konseptual. Agar dapat dilaksanakan oleh kompuyer, algoritma harus ditranslasi ke dalam notasi bahas apemrograman. Biasanya bahasa pemrograman untuk mentraslasi ini digunakan bahas Pascal atau bahasa C. hal ini karena bahasa Pascal merupakan bahasa pendidikan, sedangkan Bahas C karena memiliki lingkungan penggunaan yang luas di dalam industri perangkat lunak.
Translasi Teks ke dalam Bahasa Pemrograman (2) ALGORITMA Algoritma NAMA_ALGORITMA {penjelasan tentang algoritma yang berisi uraian singkat mengenai apa yang dilakukan oleh algoritma} DEKLARASI {semua nama yang dipakai, meliputi nam atipe, nama tetapan, nama peubah, nama prosedur dan nama fungsi didefinisikan disini} DESKRIPSI: {semua langkah/ aksi algoritma dituliskan disini}
Translasi Teks ke dalam Bahasa Pemrograman (3) Beberapa hal penting yang harus diketahu dari Bahasa C : Bahasa C bersifat case sensitif. Artinya bahasa C membedakan huruf besar dan huruf kecil Dalam bahasa C , deklarasi yang didefinisikan sebelum kata main() adalah deklarasi global, artinya semua nama yang didefinisikan di dalam deklarasi global dikenal diseluruh bagian program, termasuk di dalam funngsi atau prosedur ayang ada di dalam program itu.
Apabila deklarasi didefinisikan di dalam main(), maka nama di dalam bagian deklarasi (disebut deklarasai lokal) hanya dikenal oleh program utama saja, tetapi tidak dikenal oleh fungsi atau prosedur. Dalam Bahasa C, komentar ditulis diantara “/*” dan “*/”.
DESKRIPSI read(N) {baca banyak data} K1 {mulai dari data pertaa} jumlah 0 while k<N do read{x} jumlahjumlah +x kk+1 {cacah pengulangan selanjutnya} endwhile {k>N{ ratajumlah/N {rata-rata dari bilangan bulat{ write{rata} Algoritma MENGHITUNG_NILAI_RATA_RATA {menghitung nilai rata-rata sekumpulan bilangan bulat yang dibaca dari piranti masukan{ DEKLARASI X : integer {peubah data bilangan bulat} N : integer {banyaknya data bilangan bulat, N>0} k : integer {pencacah jumlah pengulangan} jumlah : integer {jumlah seluruh data bilangan bulat} rata: real {rata-rata data bilangan bulat}
Algoritma dalam Bahasa C /* Program menghitung nilai rata-rata */ #include <iostream.h> #include <conio.h> Main() { /* DEKLARASI */ int X; /* peubah data bilangan bulat */ int N; /* banyaknya data bilangan bulat, N > 0*/ int k; /* pencacah jumlah pengulangan */ int jumlah; /* jumlah seluruh data bilangan bulat */ float rata; }
/. DESKRIPSI. / cout << “Masukkan jumlah data: “ ; / /*DESKRIPSI */ cout << “Masukkan jumlah data: “ ; /*baca banyaknya data*/ cin>>x; /* isi data*/ k=1; jumlah=0; while ( k <= N) { cout<<”x=?”; cin>>x; jumlah=jumlah + x; k++; /*cacah pengulangan selanjutnya*/ } /* k > N */ rata=(float)jumlah/N; /*rata-rata data bilangan bulat */ cout<<”Rata-rata seluruh data “<<rata; getch();