Dokumen

(1)

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);