Dasar Pemrograman: Algoritma
Dasar Pemrograman: Algoritma
Algoritma
urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Contoh :
Algoritma mencari akar persamaan kuadrat dari persamaan kuadrat ax2 + bx + c = 0 cari nilai akar-akarnya yaitu x1 dan x2 DESKRIPSI :
1. 2.
3.
Masukkan nilai koefisien a, b, dan c Hitung x1 dan x2 dengan menggunkan rumus ABC Tampilkan nilai x1 dan x2
(* DESKRIPSI *)
1. Masukan nilai koefisien a,b, dan c 2. Hitung D
b
jika D=0 maka x = 2a
x2 =
( b + D ) 2a
x riil =
b 2a
ximajiner =
D 2a
3. Jika D = 0 maka
tampilkan x
Prosesor (pemroses) akan mengerjakan proses sesuai algoritma yang diberikan kepadanya. Misal : komputer Agar dapat dilaksanakan oleh komputer algoritma harus ditulis dalam notasi bahasa pemograman disebut program Jadi, program adalah implementasi algoritma
Contoh Program
belajar memprogram : metodologi pemecahan kemudian menuangkannya dalam notasi yang mudah dipahami. belajar bahasa pemrograman : memakai suatu bahasa, tata bahasa / syntax, instruksi-instruksi, cara pengoperasian compiler, memenfaatkannya untuk membuat program yang ditulis dalam bahasa tersebut.
Tipe Algoritma
tiap instruksi dikerjakan satu persatu tiap isntruksi dilaksanakan tepat satu kali, tidak ada instruksi yang diulang urutan instruksi yang dilaksanakan prosesor sama dengan urutan aksi yang tertulis dalam teks algoritma akhir dari instruksi terakhir merupakan akhir algoritma.
Algoritma RUNTUNAN_2 {contoh algoritma yang menghasilkan keluaran berbeda jika urutan instruksi diubah} DEKLARASI A, B : integer DESKRIPSI A 10 BA A2*A Write (B) {nilai B yang dicetak ke piranti keluaran =
Analisis kasus dari suatu masalah : tentukan kondisi boolean (true atau false) tentukan aksi jika kondisi memenuhi. Kondisi boolean = ekspresi relasional
Contoh kondisi: x > 100 a+ b>1 str = uad aksi dapat berupa : pengisian nilai (assignment) kalkulasi baca tulis dan sebagainya.
Contoh :
if
Contoh :
if a > 0 then write (bilangan positif) else write (bilangan bukan positif) endif
Notasi Pascal : if a > 0 then writeln (bilangan positif) else writeln (bilangan bukan positif); end ;
Contoh :
if gol = A then upah 4000.0 else if gol = B then upah 5000.0 else if gol =C then upah 6000.0 endif endif endif
10
STRUKTUR CASE
Struktur ini untuk permasalahan dua kasus atau lebih. Struktur : case (nama) of <kondisi 1> : aksi 1 <kondisi 2> : aksi 2 <kondisi 3> : aksi 3 ........... ........... ........... <kondisi N> : aksi N [ otherwhise aksi X ] endcase
Contoh :
case (NoHari) of NoHari = 1 : write (Ahad) NoHari = 2 : write (Senin) NoHari = 3 : write (Selasa) NoHari = 4 : write (Rabu) NoHari = 5 : write (Kamis) NoHari = 6 : write (Jumat) NoHari = 7 : write (Sabtu) otherwise write (bukan nama hari yang benar) endcase
11
PASCAL
Program NAMA_ NAMA_ HARI ; {mencetak nama hari bila diberikan nomornya} ( * DEKLARASI * ) var NoHari : integer ; ( * DESKRIPSI : * ) begin write (masukkan nomor hari (1-7) :) ; readln (NoHari) ; case NoHari of 1 : writeln (Ahad) ; 2 : writeln (Senin) ; 3 : writeln (Selasa) ; 4 : writeln (Rabu) ; 5 : writeln (Kamis) ; 6 : writeln (Jumat) ; 7 : writeln (Sabtu) ; else writeln (bukan nomor hari yang benar) ; end ; d
Stuktur FOR
12
Struktur WHILE DO
while <kondisi> do aksi endwhile Contoh : Algoritma CETAK_BANYAK_HALO {mencetak HALO sebanyak 10 kali } DEKLARASI k : integer {pencacah pengulangan } DESKRIPSI k1 {inisialisasi} while k 10do write (HALO) kk+1 endwhile {terminasi : k > 10}
PROGRAM PASCAL
Program CETAK_BANYAK_HALO ; {mencetak HALO sebanyak 10 kali} ( *DEKLARASI* ) var k : integer ; ( *DESKRIPSI* ) begin k:=1; while k 10 do begin writeln (HALO) ; k:=k+1; end ; end.
13
Struktur FOR
Struktur FOR ada dua macam : menaik (ascending) menurun (descending)
1. 2.
for peubah nilai_awal to nilai_akhir do aksi endfor for peubah nilai_awal downto nilai_awal do aksi endfor
14
Contoh :
Algoritma PELUNCURAN_ROKET {hitung mundur peluncuran roket} DEKLARASI k : integer DESKRIPSI : for k 100 downto 0 do write (k) endfor write (Go!)
{roket meluncur}
PASCAL
Program PELUNCURAN_ROKET ; {hitung mundur peluncuran roket} ( *DEKLARASI* ) var k : integer ; ( *DESKRIPSI* ) begin for k : = 100 downto 0 do writeln (k) ; writeln (Go!) ; {roket meluncur} end.
15