Dokumen
PENGANTAR ALGORITMA
DAN PEMROGRAMAN
(2)
Asal kata Algoritma
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
).
Al Khuwarizmi (780-850 M)
(3)
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
(4)
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
(5)
Penulisan algoritma
Ditulis dalam bahasa natural,
misalnya Algoritma untuk
menghitung luas lingkaran:
Step 1: memberi nilai
π
=3,14
Step 2: memasukkan nilai diameter D
Step 3: menghitung luas A=
π
* (D/2)2
(6)
Penulisan algoritma
Ditulis dalam bentuk
flowchart
.
: untuk awal/akhir program
: untuk memberikan inialisasi
: untuk input/output
: untuk proses
(7)
(8)
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,
instruksi-instruksinya, tata cara pengoperasian
compiler-
nya, dan memanfaatkan
instruksi-instruksi tersebut untuk membuat program
yang ditulis hanya dalam bahasa itu saja.
(9)
Bahasa pemrograman
High level
Pascal dan Visual Pascal (Delphi)
Basic dan Visual Basic
Fortran
Midle level
Bahasa C
Low level
(10)
Unsur-unsur dasar PASCAL
Komentar
dengan tanda (* komentar *) untuk satu baris atau
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}
Blaise Pascal (1623-1662)
(11)
Tipe data dalam Pascal
Integer
digunakan untuk bilangan bulat
Real
digunakan untuk bilangan dengan angka desimal
String
digunakan untuk sederetan karakter
Array
(12)
operator aritmatik
Operator
Operasi
Tipe Data
Tipe hasil
Contoh
+
penambahan
integer, real
integer, real X + Y
–
pengurangan
integer, real
integer, real Result - 1
*
perkalian
integer, real
integer, real P * InterestRate
/
pembagian
integer, real
real
X / 2
div
Pembagian bulat integer
integer
Total div UnitSize
mod
sisa
integer
integer
Y mod 6
+ (unary)
sign identity
integer, real
integer, real +7
(13)
operator relasi
Operator Operasi Tipe Data Tipe hasil Contoh = Sama dengan simple, class, class reference,
interface, string, packed string
Boolean I = Max
<> Tidak sama dengan simple, class, class reference, interface, string, packed string
Boolean X <> Y
< Lebih kecil dari simple, string, packed string, PChar
Boolean X < Y
> Lebih besar dari simple, string, packed string, PChar
Boolean Len > 0
<= Kurang dari sama dengan simple, string, packed string, PChar
Boolean Cnt <= I
>= Lebih dari sama dengan simple, string, packed string, PChar
(14)
operator logika
Operator
Operasi
Tipe Data
Tipe hasil
Contoh
not
tidak
integer
integer
not X
and
dan
integer
integer
X and Y
or
atau
integer
integer
X or Y
xor
Exlusive OR
integer
integer
X xor Y
shl
Geser kiri
integer
integer
X shl 2
shr
Geser kanan
integer
integer
Y shl I
(15)
Operator Boolean
Operator Operasi Tipe Data Tipe hasil Contoh not Tidak Boolean Boolean not (C in MySet)
and Dan Boolean Boolean Done and (Total > 0)
or atau Boolean Boolean A or B
xor exclusive OR Boolean Boolean A xor B
operator assigment (:= )
nama_variable:=ekspresi; contoh
a:= 25; s:= v * t;
(16)
Latihan
Turbo Pascal
Delphi
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. 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;
(17)
program latihan1;
uses
Forms;
var
msk : integer;
begin
write('Berapakah umur Anda? ');
readln(msk);
writeln('Baru ',msk,' tahun, hebat sekali!');
readln;
(18)
KONTROL PROGRAM
Struktur IF… THEN
IF <kondisi> THEN
Begin
{stetemen yang dijalankan};
end;
(19)
KONTROL PROGRAM
Struktur IF… THEN .. ELSE
IF <kondisi> THEN begin
{stetemen yang dijalankan}; end // tanpa titik koma (;)
ELSE IF <kondisi> THEN begin
{statemen 2 yang dijalankan}; end // tanpa titik koma (;)
ELSE begin
{statemen 3 yang dijalankan}; end ; // dengan titik koma
(20)
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;
(21)
KONTROL PROGRAM
Struktur CASE …OF
Variable_pilih;
CASE <variable_pilih> OF nilai_variable: begin
{statemen 1 yang dijalankan} end;
nilai_variable: begin
{statemen 2 yang dijalankan} end;
else // tanpa titik dua (:)
begin
{statemen 3 yang dijalankan} end;
(22)
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.
(23)
PERULANGAN
Struktur REPEAT … UNTIL
Variable_ulang:=nilai_awal;
Repeat
{bagian yang diulang}
variable_ulang:=variable_ulang + suatu_nilai;
until <kondisi>;
(24)
program latihan4; uses
Forms; var
I : char; begin repeat
write('Ketik suatu nilai: '); readln(I);
until (I = 'q') or (I = 'Q'); readln;
(25)
PERULANGAN
Struktur WHILE … DO
Variable_ulang:=nilai_awal;
While <kondisi> DO
Begin
{statemen yang diulang}
variable_ukang:=variable_ulang + suatu_nilai
End;
(26)
program latihan5; uses
Forms; var
I : char; begin I := ‘ ';
while (I <> 'q') do begin
write('Ketik suatu nilai: '); readln(I);
end; readln end.
(27)
PERULANGAN
Struktur FOR …. TO … DO
For <variable_ulang:=nilai_awal> To <nilai akhir>
Do
Begin
{statemen yang diulang}
End;
(28)
program latihan6; uses
Forms; var
count : integer; begin
for count := 1 to 10 do writeln('Hello '); readln end. program latihan6a; uses Forms; var
count : integer; begin
for count := 10 downto 1 do writeln('Hello ');
readln end.
(29)
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.
(30)
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.
(31)
Exit
program latihan9; uses
Forms; var
I : char; begin repeat
write('Ketik suatu nilai: '); readln(I);
if (I = 'q') then Exit;
until FALSE; readln;
(32)
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.
(33)
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;
(34)
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;
(35)
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;
(1)
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;
(2)
Exit
program latihan9; uses
Forms; var
I : char; begin repeat
write('Ketik suatu nilai: '); readln(I);
if (I = 'q') then Exit;
until FALSE; readln;
(3)
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;
(4)
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);
(5)
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;
(6)
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);