PROSES, INSTRUKSI & AKSI
Algoritma disusun oleh sedereten langkah instruksi yg logis. Tiap langkah instruksi mengerjakan suatu tindakan (aksi). Bila suatu aksi dilaksanakan, maka sejumlah operasi yg bersesuaian dengan aksi itu dikerjakan oleh pemroses. Efek dari pengerjaan suatu aksi dapat diamati dengan membandingkan keadaan pada saat aksi belum dimulai, t0, dan keadaan pada saat aksi selesai dikerjakan, t1,
to : Keadaan sebelum aksi dikerjakan.
Aksi
t1 : Keadaan setelah aksi dikerjakan.
Tahap-tahap penyusunan algoritma dimulai dari langkah yg global lebih dahulu. Langkah global ini diperhalus sampai ke langkah yg lebih rinci. Pendekatan desain algoritma seperti ini dinamakan penghalusan langkah atau perancangan puncak-turun (top-down design).
Contoh :
Diberikan N buah data bilangan bulat yg tersusun secara acak. Susunlah sebuah algoritma utk mengurutkan sekumpulan data tersebut sehingga tersusun terurut dari nilai yg kecil ke nilai yg besar. Misal N = 5 dengan data bilangan bulat yg belum terurut:
1 102 15
3 5
4 17
5 2
Algoritma pengurutan yg cukup sederhana adalah dengan mencari elemen yg terkecil di dalam kumpulan mulai dari data ke-1 sampai data ke-N, lalu menempatkannya pada posisi data pertama (dengan cara mempertukarkannya dengan data pertama). Ulangi hal tersebut s/d data yg terakhir.
Setiap pengulangan langkah disebut dengan pass atau lelaran (iteration)
T0 : kumpulan data ke-1 sampai data ke-N belum terurut membesar
Algoritma PENGURUTAN_DATA
T1 : kumpulan data ke-1 sampai data ke-N sudah terurut membesar
Perancangan algoritma dengan pendekatan Top-Down dari algoritma global terlebih dahulu.
Algoritma PENGURUTAN_DATA
Diberikan N buah data yang tersusun acak. Urutkan kumpulan data tersebut sedemikian sehingga
Data ke-1 ≤ data ke-2 ≤ . . . ≤ data ke-N
DESKRIPSI :
Untuk pass k = 1, 2, ..., N-1, lakukan :
1. Cari data terkecil (min) mulai dari data ke-k sampai data ke-N;
III. ATURAN PENULISAN TEKS ALGORITMA
Teks Algoritma
Teks Algoritma tersusun atas 3 bagian(blok) : bagian kepala(header), algoritma, bagian deklarasi, dan bagian deskripsi algoritma.
Komentar adalah kalimat yg diapit oleh pasangan tanda kurung kurawal { dan }. Setiap bagian disertai komentar untuk memperjelas maksud teks yg dituliskan.
Algoritma NAMA_ALGORITMA
{ Penjelasan tentang algoritma yg berisi uraian singkat mengenai apa yg dilakukan oleh algoritma }
DEKLARASI
{ semua nama yg dipakai, meliputi nama tipe, nama tetapan, nama peubah, nama prosedur dan nama fungsi didefinisikan di sini }
DESKRIPSI
{ semua langkah/aksi algoritma dituliskan di sini}
1. Kepala Algoritma
Kepala Algoritma adalah bagian yg terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut.
Penjelasan dibawah judul algoritma sering dinamakan juga spesifikasi algoritma .
Algoritma LUAS_LINGKARAN
{ Menghitung luas lingkaran untuk jari-jari tertentu. Algoritma menerima masukan jari-jari lingkaran, menghitung luasnya, lalu mencerak luas lingkaran ke piranti keluaran }
2. Deklarasi
Deklarasi nama adalah bagian untuk mendefinisikan semua nama yg dipakai di dalam algoritma. Nama tersebut dapat berupa nama tetapan, nama peubah, nama tipe, nama prosedur dan nama fungsi.
3. Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah. Misalnya notasi write untuk mencetak data/informasi, notasi read untuk membaca data, dsb. Setiap langkah algoritma dibaca dari atas ke bawah. Urutan penulisan menentukan urutan pelaksanaan perintah.
Contoh :
DESKRIPSI :
read (c,d)
If c < d
e←a+b
else
e←a-b
endif
write (e)
4. Translasi teks algoritma ke dalam teks program PASCAL
Teks algoritma adalah hasil pemikiran konseptual. Supaya bisa dikerjakan oleh komputer, algoritma harus ditranslasi ke dalam notasi bahasa pemrograman.
Contoh 4.1:
ALGORITMA
Algoritma MENGHITUNG_NILAI_RATA_RATA
{ menghitung nilai rata-rata sekumpulan bilangan bulat yg 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 }
DESKRIPSI :
read (N) { baca banyaknya data }
k←1
jumlah←0
while k ≤ N do
read (x)
jumlah←jumlah + x
k←k+1 { cacah pengulangan selanjutnya }
endwhile
{ k > N }
rata←jumlah/N { rata-rata data bilangan bulat }
write (rata)
PASCAL
Program MENGHITUNG_NILAI_RATA_RATA;
{ menghitung nilai rata-rata sekumpulan bilangan bulat yg dibaca dari piranti masukan }
{* DEKLARASI *}
var
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 }
{* DESKRIPSI *}
begin
write(‘Masukkan jumlah data : ‘ ); readln (N); { baca banyaknya data }
k := 1; { mulai dari data pertama }
jumlah := 0;
while k <= N do
begin
write (‘x = ? ‘); readln (x);
jumlah:= jumlah + x;
k := k+1; { cacah pengulangan selanjutnya }
end; while
{ k > N }
rata:=jumlah/N; { rata-rata data bilangan bulat }
writeln (‘Rata-rata seluruh data = ‘, rata);
end.
Tabel Translasi Notasi Algoritmik ke Notasi Bahasa PASCAL
Kelompok | Algoritmik | Pascal | Ket |
1. Tipe Dasar | boolean | Boolean | |
integer | Byte Shortint Word Integer Longint | 1 byte 1 byte 2 byte 2 byte 4 byte | |
real | Real double extended | | |
char | Char | | |
string | String[n] | | |
record < style=""> field2 : type, … fieldN : type > | Record field1 : type; field2 : type; … fieldN : type; end; | | |
2. Operator | | | |
a. aritmatik | + | + | |
- | - | | |
* | * | | |
/ | / | | |
div | div | | |
mod | mod | | |
| | | |
b. perban- dingan | < | < | |
≤ | <= | | |
> | > | | |
≥ | >= | | |
= | = | | |
≠ | < > | | |
c. logika | not | not | |
and | and | | |
Or | or | | |
xor | xor | | |
3. Komentar | { komentar } | { komentar } {* komentar *} | |
4. Lain-lain | const | const | |
type | type | | |
true | true | | |
false | false | |
Tabel Translasi Notasi Algoritmik Pengisian Nilai, Pembacaan dan Penulisan
ke dalam Notasi Bahasa Pascal
Kelompok | Algoritmik | Pascal | Ket |
1. Assignment | ß | := | |
2. Pembacaan | read | Read Readln | |
3. Penulisan | write | Write writeln | |
Contoh 4.2:
Translasikan algoritma mencetak string ’Selamat Datang di Pascal’ ke dalam notasi bahasa Pascal.
ALGORITMA
Algoritma Cetak_Selamat1
{ Mencetak string ’Selamat Datang di Pascal’ ke piranti keluaran }
DEKLARASI
{ tidak ada }
DESKRIPSI
Next ..RUNTUNAN(SEQUENCE)
Tidak ada komentar:
Posting Komentar