PENGANTAR ALGORITMA DAN PEMROGRAMAN
Asal kata Algoritma
Al Khuwarizmi (780-850 M)
Algorism atau Algorithm berarti proses menghitung. Al-Khuwarizmi dalam buku berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction).
ALGORITMA
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis . Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Algoritma adalah jantung ilmu komputer atau informatika. Algoritma tersebut ditulis dalam notasi bahasa pemrograman sehingga dinamakan program.
PROGRAM KOMPUTER
Program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer. Komputer hanyalah salah suatu pemroses. Pemroses artinya melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut. Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses.
Penulisan algoritma
Ditulis dalam bahasa natural, misalnya Algoritma untuk menghitung luas lingkaran:
Step Step Step Step
1: 2: 3: 4:
memberi nilai π=3,14 memasukkan nilai diameter D menghitung luas A= π * (D/2)2 menampilkan hasil
Penulisan algoritma
Ditulis dalam bentuk flowchart. : untuk awal/akhir program : untuk memberikan inialisasi : untuk input/output : untuk proses : untuk percabangan
Flowchart: Luas lingkaran
BELAJAR PEMROGRAMAN
Memprogram: belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Bahasa pemrograman: belajar memakai suatu bahasa, tata bahasanya, instruksiinstruksinya, tata cara pengoperasian compiler-nya, dan memanfaatkan instruksiinstruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja.
Bahasa pemrograman
High level
Midle level
Pascal dan Visual Pascal (Delphi) Basic dan Visual Basic Fortran Bahasa C
Low level
Bahasa Assembly
Unsur-unsur dasar PASCAL
Komentar
Blaise Pascal
dengan tanda (* komentar *) untuk satu baris atau (1623-1662) lebih dengan tanda { komentar } untuk satu baris atau lebih
Variable dan Konstanta
Var nama_identifier : tipe_variable; Const nama_identifier = nilai_konstanta; Contoh
Var a: integer {a adalah variable untuk data dengan tipe bilangan bulat} Const b=10; {b adalah suatu konstanta yang bernilai 10}
Tipe data dalam Pascal
Integer
Real
digunakan untuk bilangan dengan angka desimal
String
digunakan untuk bilangan bulat
digunakan untuk sederetan karakter
Array
digunakan untuk larik data yang sejenis
operator aritmatik Operator + – * / div mod + (unary) – (unary)
Operasi penambahan pengurangan perkalian pembagian Pembagian bulat sisa sign identity sign negation
Tipe Data integer, real integer, real integer, real integer, real integer integer integer, real integer, real
Tipe hasil integer, real integer, real integer, real real integer integer integer, real integer, real
Contoh X+Y Result - 1 P * InterestRate X/2 Total div UnitSize Y mod 6 +7 -X
operator relasi Operator =
Operasi Sama dengan
<>
Tidak sama dengan
<
Lebih kecil dari
>
Lebih besar dari
<=
Kurang dari sama dengan
>=
Lebih dari sama dengan
Tipe Data simple, class, class reference, interface, string, packed string simple, class, class reference, interface, string, packed string simple, string, packed string, PChar simple, string, packed string, PChar simple, string, packed string, PChar simple, string, packed string, PChar
Tipe hasil Boolean
Contoh I = Max
Boolean
X <> Y
Boolean
X
Boolean
Len > 0
Boolean
Cnt <= I
Boolean
I >= 1
operator logika Operator not and or xor shl shr
Operasi tidak dan atau Exlusive OR Geser kiri Geser kanan
Tipe Data integer integer integer integer integer integer
Tipe hasil integer integer integer integer integer integer
Contoh not X X and Y X or Y X xor Y X shl 2 Y shl I
Operator Boolean Operator not and or xor
Operasi Tidak Dan atau exclusive OR
Tipe Data Boolean Boolean Boolean Boolean
operator assigment (:= ) nama_variable:=ekspresi; contoh
a:= 25; s:= v * t;
Tipe hasil Boolean Boolean Boolean Boolean
Contoh not (C in MySet) Done and (Total > 0) A or B A xor B
Latihan Turbo Pascal program Luas_Lingkaran; uses
crt; var luas, diameter, radius : real; begin diameter := 5; radius := diameter/2; luas := pi * sqr(radius); writeln('Luas lingkaran: ', luas); readln; end.
Delphi program Luas_Lingkaran; uses
Forms; var luas, diameter, radius : real; begin diameter := 5; radius := diameter/2; luas := pi * sqr(radius); writeln('Luas lingkaran: ', luas); readln; end.
program latihan1; uses Forms; var msk : integer; begin write('Berapakah umur Anda? '); readln(msk); writeln('Baru ',msk,' tahun, hebat sekali!'); readln; end.
KONTROL PROGRAM
Struktur IF… THEN IF
THEN Begin {stetemen yang dijalankan}; end;
KONTROL PROGRAM
Struktur IF… THEN .. ELSE IF THEN begin {stetemen yang dijalankan}; end // tanpa titik koma (;) ELSE IF THEN begin {statemen 2 yang dijalankan}; end // tanpa titik koma (;) ELSE begin {statemen 3 yang dijalankan}; end ; // dengan titik koma
program latihan2; uses Forms; var msk : integer; begin write('Berapakah umur Anda? '); readln(msk); if (msk<1) or (msk>130) then writeln('Anda salah memasukkan!') else writeln('Baru ',msk,' tahun, hebat sekali!'); readln; end.
KONTROL PROGRAM
Struktur CASE …OF
Variable_pilih; CASE OF nilai_variable: begin end; nilai_variable: begin else
end;
{statemen 1 yang dijalankan} {statemen 2 yang dijalankan}
end; // tanpa titik dua (:) begin {statemen 3 yang dijalankan} end;
program latihan3; uses Forms; var msk : char; begin readln(msk); case msk of 'a' : writeln('Itu adalah huruf a kecil'); 'z','Z' : writeln('Itu adalah huruf z kecil atau Z besar') else writeln('Itu huruf selain a, z atau Z'); end; readln; end.
PERULANGAN
Struktur REPEAT … UNTIL Variable_ulang:=nilai_awal; Repeat {bagian yang diulang} variable_ulang:=variable_ulang + suatu_nilai; until ;
program latihan4; uses Forms; var I : char; begin repeat write('Ketik suatu nilai: '); readln(I); until (I = 'q') or (I = 'Q'); readln; end.
PERULANGAN
Struktur WHILE … DO Variable_ulang:=nilai_awal; While DO Begin {statemen yang diulang} variable_ukang:=variable_ulang + suatu_nilai End;
program latihan5; uses Forms; var I : char; begin I := ‘ '; while (I <> 'q') do begin write('Ketik suatu nilai: '); readln(I); end; readln end.
PERULANGAN
Struktur FOR …. TO … DO For To Do Begin {statemen yang diulang} End;
program latihan6; uses Forms;
program latihan6a; uses Forms;
var count : integer;
var count : integer;
begin for count := 1 to 10 do writeln('Hello '); readln end.
begin for count := 10 downto 1 do writeln('Hello '); readln end.
Break program latihan7; uses Forms; var I : char; begin I := ' '; while TRUE do begin write('Ketik suatu nilai: '); readln(I); if (I = 'q') or (I = 'Q') then break; end; readln end.
continue program latihan8; uses Forms; var I : char; count : integer; begin I := ' '; for count := 1 to 100 do begin write('Ketik suatu nilai: '); readln(I); if (I = 'q') or (I = 'Q') then continue; writeln('Ini hanya dieksekusi jika anda tidak mengetik q atau Q') end; readln; end.
Exit program latihan9; uses Forms; var I : char; begin repeat write('Ketik suatu nilai: '); readln(I); if (I = 'q') then Exit; until FALSE; readln; end.
PROCEDURE program latihan12; uses Forms; begin writeln(' | | '); writeln('----------'); writeln(' | | '); writeln('----------'); writeln(' | | '); readln; end.
program latihan13; uses Forms; procedure CetakVertikal; begin writeln(' | | '); end; procedure CetakHorizontal; begin writeln('----------'); end; begin CetakVertikal; CetakHorizontal; CetakVertikal; CetakHorizontal; CetakVertikal; readln; end.
PROCEDURE – varibel pass program latihan14; uses Forms; var number : integer; procedure CetakVertikal (BrpKali : integer); var I : integer; begin for I := 1 to BrpKali do writeln(' | | '); end; begin writeln('Berapa kali garis vertikal ingin dicetak? '); readln(number); CetakVertikal(number); readln; end.
PROCEDURE - FUNCTION program latihan15; uses Forms; procedure kwadrat(bilangan : real; var hasil : real); begin hasil := bilangan * bilangan; end; var msk, jwb : real; begin writeln('Ketik bilangan yang akan dikwadratkan : '); readln(msk); kwadrat(msk, jwb); writeln(msk,' dikwadratkan menjadi ', jwb); readln; end.
FUNCTION program latihan16; uses Forms; function kwadrat(bilangan : real) : real; begin kwadrat := bilangan * bilangan; end; var msk : real; begin writeln('Ketik bilangan yang akan dikwadratkan : '); readln(msk); writeln(msk,' dikwadratkan menjadi ', kwadrat(msk)); readln; end.