algoritma dan struktur data - jeryfarel · pdf file- tidak boleh ada symbol-simbol khusus...

37
Fakultas Ilmu Komputer Bahan Ajar Matakuliah : Algoritma dan Struktur Data I Kode Mata Kuliah : KKKI13102 Tangerang 2013/2014 Disusun Oleh Ahmad Jaeri

Upload: buikhuong

Post on 01-Feb-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Fakultas Ilmu Komputer

Bahan Ajar

Matakuliah : Algoritma dan Struktur Data I

Kode Mata Kuliah : KKKI13102

Tangerang

2013/2014

Disusun Oleh

Ahmad Jaeri

Page 2: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Materi Ajar

1. Pengantar Algoritma

- Pendahuluan

- Pengertian Algoritma

2. Dasar-Dasar Algoritma

- Struktur Dasar algoritma

- Runtunan (Struktur Urut)

- Pemilihan Kondisi (Struktur Seleksi)

- Perulangan

3. Simbol-Simbol Program Flowchart

4. Tipe Data, Nama (Variabel), dan Nilai

- Tipe Dasar

- Tipe Bentukan

- Rekaman

- Nama ( Variabel)

- Operator Pada Pemrograman

5. Runtunan

6. Struktur Percabangan(Kondisi)

- If........then

- If........then ........else.......

- If........then.........else if.......then......else............

- Struktur Case

7. Struktur Perulangan

- Struktur While........Do

- Struktur Repeat .......Until

- Struktur For......to..... Do

8. Procedure

- Defenisi Procedure

- Mendefenisikan Procedure

- Pemanggilan Procedure

- Nama Global dan Lokal

- Parameter Masukan dan Parameter Keluaran

9. Function

- Mendefenisikan Function

- Pemanggilan Function

10. Larik (Array)

- Defenisi Larik

- Mendefenisikan Larik

- Cara Mengacu Elemen Larik

- Pemrosesan Larik

Page 3: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Pertemuan 1

Pengantar Algoritma

Pengertian Algoritma : adalah urutan langkah-langkah logis dalam

penyelesaian masalah yang disusun secara sistematis.

Contoh :

Tentukan nilai A dengan rumus yang bisa digunakan adalah C=A+B

C? Untuk menentukan nilai C maka yang harus kita ketahui terlebih dahulu

adalah nilai A dan nilai B

Untuk nilai A dan B ini dapat berupa konstanta atau merupakan hasil proses

yang lainnya. Jadi Nilai C tidak akan bisa didapatkan sebelum kita mengetahui

nilai A dan nilai B.

Jadi langkah pertama kita adalah menentukan nilai A dan B, kemudian baru

menghitung penjumlahan kedua nilai tersebut. Urutan inilah yang disebut

sebagai urutan logis.

Contoh lain adalah : untuk menukar isi bejana A yang berisi air berwarna Biru

dengan bejana B yang berisi air berwarna Merah. Sehingga nantinya bejana A

berisi air berwarna merah sedangkan bejana B berisi air berwarna Biru.

Algoritma adalah :

- tuangkan isi bejana A ke bejana B, kemudian tuangkan isi bejana B ke

bejana A.

Cara yang ditempuh diatas adalah SALAH karena pada saat isi bejana A

dituangkan ke bejana B maka air yang ada pada bejana B akan tercampur

dengan air yang ada pada bejana B, sehingga pada saat isi bejana B dituangkan

ke dalam bejana A maka Warnanya sudah tercampur dengan isi bejana A.

Algoritma yang tepat adalah :

- Siapkan sebuah bejana dalam keadaan kosong diumpamakan dengan

bejana C

- Kemudian isi bejana A dituangkan kedalam bejana C sehingga bejana A

dalam keadaan kosong

- Langkah berikutnya isi bejana B dituangkan kedalam bejana A sehingga

bejana B sekarang dalam keadaan kosong.

- Baru kemudian isi bejana C dituangkan kedalam bejana B

- Perhatikan bahwa isi bejana sudah berpindah ke bejana B dan isi bejana B

sudah berpindah ke bejana A

Page 4: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Alat-alat Bantu dalam menggambarkan Algoritma

Untuk menggambarkan urutan suatu proses maka ada beberapa cara (alat

bantu) yang bisa digunakan. Cara yang digunakan harus sudah berlaku secara

umum dan mempunyai aturan-aturan tertentu.

Cara yang bisa digunakan antara lain :

- Algoritma

- IPO Chart

- Flow Chart Program

Contoh penggunaan alat bantu diatas: (kasus dari contoh pertama)

C=A+B

1. Algoritma

Urutan instruksi yang diberikan adalah :

- Tentukan nilai A dan B

- Proses nilai A ditambah nilai B

- Cetak hasil (nilai C)

2. IPO Chart

3. Program Flow Chart

Dipanggil Memanggil

Input A,B Output C

Proses C=A+B

start

A,B,C

Input

A,B

C=A+B

Cetak C

Stop

Page 5: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Mekanisme Pelaksanaan Algoritma oleh Pemroses.

Dalam pembuatan algoritma ini maka hasil akan didapatkan dengan adanya

prosesan. Pemroses dapat berupa alat-alat elektronik, manusia, robot dan alat-

alat elektronik lainnya.

Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusi

algoritma yang menjabarkan proses tersebut. Melaksanakan algoritma berarti

mengerjakan langkah-langkah di dalam algoritma tersebut.

Pada algoritma yang akan dipelajari alat peruses yang akan digunakan adalah

komputer.

Pada komputer dapat dibedakan atas 4 unit utama

- piranti masukan

- piranti keluaran

- piranti proses

- piranti memori

Data pada komputer akan diproses pada piranti proses yang sering dikenal

dengan CPU. Mekanisme dari ke empat piranti di atas dapat digambarkan

sebagai berikut :

Mekanisme dari keempat piranti diatas dapat dijelaskan sebagai berikut :

Mula-nula program dimasukkan ke dalam memori komputer. Ketika program

dilaksanakan, setiap instruksi yang telah disimpan didalam memori dikirim ke

CPU. CPU mengerjakan operasi-operasi yang bersesuaian dengan instruksi

tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan ,

disimpan dalam memori lalu dikirim ke CPU untuk operasi yang memerlikan

tadi.. Bila proses menghasilkan keluaran, keluaran disimpan ke dalam memori,

lalu dari memori keluaran dikirimkan ke piranti keluaran.

Sebuah algoritma akan dapat dikenal oleh komputer jika sudah dipindahkan

kedalam bentuk yang dapat dimengerti oleh komputer, dalam hal ini disebut

dengan program. Ada bermacam-macam bahasa pemrogram yang dikenal

seperti, Basic, Bahasa C, Pascal, Fortran, Visual Basic, Delphi ,dll.

Piranti Masukan Unit pemrosesan

Utama (CPU) Piranti Keluaran

Memori

Page 6: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Pertemuan 2

Simbol-Simbol Program Flow Chart

Awal dan akhir suatu program

Inisialisasi variable ( persiapan awal )

Input dan output ( masukan dan keluaran ) program

Proses program

Percabangan / perulangan

Perulangan

Connector (tanda sambung untuk halaman sama )

Connector ( tanda sambung untuk halaman berbeda )

Arah proses

Sub program / Procedure ( blok program )

Struktur Bahasa Pascal

Judul Program

Blok Program

Bagian Deklarasi

- variable

- label

- konstanta

- type

- procedure

- function

Bagian Pernyataan

Page 7: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Perintah Input Output

- Read dan readln (perintah input )

- Write dan writeln (perintah output)

contoh :

readln(a) input nilai A

write(A) cetak nilai A

write(‘A’) cetak ‘A’

Contoh Soal :

Buat flowchart program dan program Pascal untuk menampilkan hasil perkalian

sebagai berikut :

A=B x C Nilai B Dan C Diinputkan

P=Q(R+S) + R(Q+S) Nilai Q,R,dan S diinputkan

Deklarasi Variabel, Label, Konstanta

Deklarasi variable dinyatakan dengan statemen Var

Contoh

Var A:integer;

Deklarasi Label dinyatakan dengan statemen Label

Contoh

Label 100

Deklarasi konstanta dinyatakan dengan statemen Const

Contoh

Const a:=100;

Syarat-syarat pemberian nilai variable

- harus dimulai dengan huruf

- harus merupakan satu kesatuan

- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah)

- Huruf besar dan kecil dianggap sama

Page 8: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

- Panjang tidak terbatas

Deklarasi Fungsi dan prosedure

Fungsi dan prosedure merupakan blok program yang terpisah dari

program utama yang mempunyai struktur program hampir sama

dengan program utama. Prosedure dinyatakan dengan statemen

PROCEDURE sedangkan fungsi dinyatakan dengan statemen

FUNCTION

CONTOH PROSEDUR

PROCEDURE SATU;

VAR

BEGIN

END;

CONTOH FUNGSI

FUNCTION AKAR;

BEGIN

END;

Tipe Data Pada Program Pascal

Program komputer bekerja dengan memanipulasi data didalam

memori. Data yang dimanipulasi mempunyai beberapa tipe data

seperti :

- nilai numerik

- karakter

- string

- rekaman (record)

Tipe data dapat dikelompokkan dalam dua kelompok yaitu :

- Tipe Dasar (nilainya bias langsung dipakai)

- Tipe Bentukan (tipe data yang didefeisikan dari tipe dasar)

1. Tipe Dasar

Yang termasuk tipe dasar adalah :

Page 9: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

- karakter

- bilangan

- logika

- Tipe bilangan ada beberapa macam

a. Bilangan bulat

- Shortint -128 s/d +127

- Byte 0 s/d 255

- Integer -32768 s/d +32767

- Longint -2147483648 s/d +2147483648

- Word 0 s/d 65535

b. Bilangan pecahan

- Real 2.9 X 10 –39 s/d 1,7 X 10 38

- Single 1.5 X 10 –45 s/d 3,4 X 10 38

- Double 5.0 X 10 –324 s/d 1,7 X 10 308

- Extend 3.4 X 10 –4932 s/d 1,1 X 10 4932

- Tipe data Karakter

Yang termasuk kedalam tipe data karakter adalah : huruf-huruf

alfabet, tanda baca, angka ‘0’,’1’,….’9’ dan karakter khusus

‘&’,’^’,……..

- Logika

Tipe data ini mempunyai nilai Benar dan Salah

2. Tipe Bentukan

Tipe bentukan adalah tipe data yang didefenisikan sendiri oleh

pemrogram.

Ada 3 tipe data bentukan

1. String

2. Tipe data dasar yang diberi nama dengan nama tipe baru.

3. Rekaman (record)

1. String

Adalah deretan karakter dengan panjang tertentu

Contoh : a:string[15]

2. Tipe data dasar yang diberi nama baru

Contoh : Type BilBulat : Integer:

Page 10: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

3. Rekaman

Contoh : Type mahasiswa=record

Nbp :string[13];

Nm :string[25];

End; Pertemuan 3

Operator Pada Program

1. Operator Aritmatika

Yaitu symbol yang digunakan untuk proses perhitungan

+, - , * , / , div , mod

- operator ‘/’ digunakan untuk pembagian dengan hasil adalah

bilangan pecahan

- operator div digunakan untuk pembagian dengan hasil adalah

bilagan bulat

- mod adalah operator yang digunakan untuk mencari sisa hasil

bagi

Pada proses aritmatik adakalanya ada beberapa operator ditemui

pada satu ekspresi.

Contoh : Z=A+B*C

Pada contoh diatas ada 2 operator yang ditemui yaitu + dan *. Jika

hal ini terjadi maka yang akan diproses terlebih dahulu adalah

operator dengan prioritas tertinggi.

Berikut prioritas pengerjaan dari masing-masing operator.

1. * , /, mod , div

2. + dan –

2. Operator Relasional

Adalah < , > , >= , <= , not , and , or . Hasil dari operator ini

adalah benar atau salah.

Contoh-contoh soal:

Page 11: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Perrtemuan 4 (pratikum)

Runtunan

Merupakan urutan proses program yang terurut tanpa adanya proses

percabangan.

Contoh untuk proses runtunan ini juga bisa dilihat pada pertukaran

isi bejana pada pertemuan 1

Contoh : buat algoritma dan program untuk menghitung hasil

formula berikut

Nilai x bisa didapatkan dari hasil perkalian p dan q. dimana nilai p

didapatkan dari formula berikut :

P=3a+b *c

Sedangkan nilai q didapat kan dari formula q=4b*c+d

Tentukan terlebih dahulu data apa yang perlu diinputkan dan

urutkan proses yang harus dikerjakan.

Algoritma :……….

Program pascal ………

Page 12: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Pertemuan 5 dan 6

Struktur Percabangan

Yaitu pemilihan suatu instruksi yang akan dikerjakan sesuai dengan

kondisi / syarat tertentu

a. IF…………THEN

Digunakan jika pada pemilihan hanya ada satu aksi yang akan

dilakukan jika kondisi tertentu terpenuhi dan tidak ada aksi yang

lain yang akan dikerjakan jika kondisi tidak terpenuhi.

Contoh :jika nilai rata besar dari 3 maka ket ‘dapat bonus’ jika

tidak tidak dapat apa-apa.

Flow chart : Program :

Write(‘nilai rata-rata : ‘);

Readln(nil_rata);

If nil_rata > 3 then

Begin

Ket:=’Dapat Bonus’

End;

Input Nil_rata

Nil_rata >3

Ket=’Dapat Bonus’

Page 13: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

b. IF………THEN…….ELSE………

Digunakan jika pada pemilihan ada dua aksi yang akan dilakukan

Contoh : jika nilai besar dari 60 maka keterangan lulus jika tidak

keterangan gagal

Flowchart : Program :

Write(‘Inputkan nilai: ‘);Readln(nilai);

If nilai > 60 then

Begin

Ket:=’Lulus’

End

Else

Begin

Ket:=’Gagal’

End;

Input nilai

Nilai>60

Ket=’Lulus’

Ket=’Gagal’

Page 14: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

c. IF……THEN……ELSEIF…….THEN……ELSE

Digunakan jika pada pemilihan ada beberapa aksi yang akan

dilakukan berdasarkan beberapa syarat yang harus terpenuhi.

Contoh :

Tentukan apakah wujud air dalam keadaan cair, padat, atau

gas.

Flowchart :

Write(‘Inputkan Suhu: ‘);Readln(suhu);

If suhu <= 0 then

Begin

Ket:=’Padat’

End

Else if suhu >= 100 then

Begin

Ket:=’Gas’

End

Else

Begin

Ket:=’Cair’

End;

Input Suhu

Suhu <=0

Ket=’Padat’

Suhu >=100

Ket=’Gas

Ket=’Cair’

Page 15: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Tentukan apakah suatu bilangan negatif, positif, atau nol

Flowchart : program:

Write(‘Inputkan Bil: ‘);Readln(bil);

If bil < 0 then

Begin

Ket:=’Negatif’

End

Else if bil > 0 then

Begin

Ket:=’Positif’

End

Else

Begin

Ket:=’Bil. Nol’

End;

false

Input Bil

Bil<0

Ket=’Negatif’

Bil>0

Ket=’Positif’

Ket=’Nol’

false true

true

Page 16: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

d. Struktur Case

Struktur case adalah cara lain yang bisa digunakan untuk

memilih suatu kondisi tertentu.

Syntax:

Case (var)

Var = …..: hasil =…..

Var = …...: hasil =…..

….

….

Endcase

Page 17: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Pertemuan 7,8

PENGULANGAN

- While……..do

- Repeat…….until

- For …..to……do

1. While ..... Do

Perulangan dengan while ..do digunakan selama kondisi

(syarat) yang ada pada perulangan benar (terpenuhi)

Contoh :Mencetak ‘Halo’ sebanyak 10 kali

K:=1

While k< 10 do

begin

write (‘Halo’);

k:=k+1;

end;

Keterangan :

Perintah write ‘halo’ akan dilaksanakan selama nilai k<= 1, dimana di

dalam setiap perulangan nilai k akan bertambah nialainya 1 (satu)

sehingga perintah write akan dilakukan sebanyak 10 kali

2. Repeat ........ Until

Perulangan dengan repeat until digunakan selama kondisi belum

terpenuhi

K=1

While k<10

do

Write ‘Halo’

K=k+1

Page 18: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Contoh : mencetak ‘Halo’ sebanyak 10 kali

K:=1

Repeat

write (‘Halo’);

k:=k+1;

Until k>10;

Keterangan :

Write (‘halo’) akan dilakukan selama nilai K tidak besar dari 10.

Pada struktur repeat until instruksi yang ada anatara repeat dan until

minimal satu kali proses akan dilakukann karena nilai / syarat dari

perulangan terletak di akhir struktur.

3. For ....to... do

Perulangan dengan struktur for akan dilakukan sesuai dengan

jumlah perulangan yang ditetapkan pada struktur for.

Contoh : menampilkan ‘halo’ sebanyak 10 kali

K:=1

Repeat

write (‘Halo’);

k:=k+1;

Until k>10;

Keterangan :

Write(‘halo’) akan dilaksanakan sebanyak 10 kali sesuai dengan

jumlah perulangan yang udah ditetapkan pada struktur For yaitu 1

s/d 10. pada struktur perulangan ini nilai K akan bertambah 1

secara otomatis begitu perintah sampai pada khir perulangan.

K=1

Until k>10

do

Write ‘Halo’

K=k+1

Repeat

For k=1 to 10 do

Write(‘halo’)

Page 19: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Erulangan dengan struktur for dapat dibagi menjadi 2 bagian

1. For menaik

2. For menurun

1. For menaik

- peubah haruslah bertipe sederhana kecuali tipe real

- nilai awal harus lebih kecil atau sama dengan nilai akhir

- pada awalnya peubah diinisialisasi dengan nilai awal. Nilai

peubah otomatis bertambah satu setiap kali aksi pengulangan

dimasuki, sampai akhirnya nilai peubah sama dengan nilai akhir

- jumlah pengulangan yang terjadi adalah nilai akhir – nilai awal

+1

2. For menurun

- peubah haruslah bertipe sederhana kecuali tipe real

- nilai awal harus lebih besar atau sama dengan nilai akhir

- pada awalnya peubah diinisialisasi dengan nilai awal. Nilai

peubah otomatis berkurang satu setiap kali aksi pengulangan

dimasuki, sampai akhirnya nilai peubah sama dengan nilai akhir

- jumlah pengulangan yang terjadi adalah nilai awal – nilai akhir

+1

Contoh-contoh Kasus

Page 20: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Pertemuan 10

Loop Dalam Loop ( Nested Loop)

Pada proses perulangan sangat dimungkinkan adanya terjadi proses

perulangan didalam perulangan yang lain, proses ini dikenal

dengan istilah Nested Loop

1. Nested Loop pada For ....... to ........ Do

Syntax : For....to.....do

Instruksi

For....to....do

Instruksi...

end

end

Keterangan :

Pada perulangan seperti ini proses perulangan yang akan diselesaikan

terlebih dahulu adalah perulangan yang terletak pada bagian dalam.

Contoh : inputkan data buku maksimal 5 Judul buku dimana masing-

masing buku memiliki pengarang maksimal ada 4 pengarang. Berikut

data lengkap yang harus diinputkan :

Kode Buku :

Judul Buku :

Pengarang :

Tahun Terbit :

For i:=1 to 5 do

Begin

Write (‘Kode Buku :’);

readln(kdb);

Write (‘Judul Buku :’);

readln(jdl);

For k:=1 to 4 do

Begin

Write (‘Pengarang :’);

readln(pg);

Write (‘Tahun Terbit :’);

readln(th);

End;

End;

For i :=1 to 5

For k :=1 to 4

Input kdb,jdl

Input pg,th

Page 21: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Keterangan :

Pada program diatas proses perulangan pada i akan dilaksanakan

terlebih dahulu untuk i=1, berikut proses perulangan akan berada pada

k dimana perulangan akan dilaksanakan mulai dari k=1 sampai nilai

k=4. Begitu nilai k=5 proses akan keluar dari perulangan k dan akan

kembali ke perulangan i dengan nilai I akan langsung bertambah satu

sehingga menjadi 2.

Perulangan akan dilanjutkan kembali ke perulangan K mulai dari nilai

k=1 lagi sampai nilai sama dengan 4. Begitu seterusnya sampai nilai I

sama dengan 5. Begitu nilai I=6 maka proses akan keluar dari

perulangan secara keseluruhan

2. Nesterd Loop Pada While ......Do

Pada prinsip kerjanya nested loop while ...do sama dengan

for..to..do dimana proses perulangan yang akan diselesaikan

terlebih dahulu adalah perulangan yang terletak bagian dalam

Syntax :

While.........do

Instruksi

While .....do

Instruksi

End

End

Selesaikan contoh pada for ...to...do dengan menggunakan

while....do

Page 22: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

I:=1;

While I<=5 do

Begin

Write (‘Kode Buku :’);

readln(kdb);

Write (‘Judul Buku :’);

readln(jdl);

K:=1;

While k<=1 to 4 do

Begin

Write (‘Pengarang :’);

readln(pg);

Write (‘Tahun Terbit :’);

readln(th);

K:=K+1;

End;

I:+I+1;

End;

3. Nested Loop Pada Repeat ..........Until

Proses nested repeat until hampir sama dengan proses yang ada pada

nested for dan nested whie. Tetapi disini masing-masing perulangan

pada repeat ...until satu kali proses pasti akan dilakukan sesuai

dengan keterangan yang ada pada perulangan dengan repeat until.

Contoh :

Selesaikan kasus pada nested loop sebelumnya dengan menggunakan

Repeat until.

I=I+1

Input kdb,jdl

Input pg,th

While I<=5 do

While K<=4 do

K:=1

I:=1

K:=K+1

Page 23: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

I:=1;

Repeat

Write (‘Kode Buku :’);

readln(kdb);

Write (‘Judul Buku :’);

readln(jdl);

K:=1;

Repeat

Write (‘Pengarang :’);

readln(pg);

Write (‘Tahun Terbit :’);

readln(th);

K:=K+1;

Until K>4;

I:+I+1;

Until I>5;

While I<=5 do

Input kdb,jdl

Input pg,th

Until K>4 do

K:=1

I:=1

K:=K+1

Repeat

Repeat

I:=I+1

Page 24: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Pertemuan 11, 12

Procedure

Pengertian Procedure :

Adalah merupakan blok program yang terpisah dari program utama

dengan struktur program hampir sama dengan struktur program utama

Struktur Procedure

Judul Procedure

Bagian Deklarasi

Variabel

Label

Constanta

Type

Badan Procedure

Begin

instruksi

End;

Procedure sendiri harus dibuat sebelum program utama sesuai dengan

struktur program.

Setiap procedure dibatasi dengan end yang menggunakan tanda titik

koma. Procedure biasanya ditemukan pada program untuk skala yang

besar, sehingga dalam pembuatan program untuk lebih mudah dalam

mendisainnya dibentuk dalam modul-modul program yang dikenal

dengan Procedure. Namun demikian bukan berarti procedure tidak

bisa diterapkan untuk program dengan skala yang lebih kecil.

Prosedur dideklarasikan dengan menggunakan Statemen Procedure.

Setiap procedure selalu diakhiri dengan menggunakan tanad titik

koma pada end yang terakhir.

Contoh pendeklarasian prosedur :

Procedure Satu;

Begin

Write (‘ini adalah prosedur yang pertama’);

Repeat until keypressed;

End;

{Program Utama}

Begin

Satu;

Write (‘Prosedur pertama selesai’);

Repeat untuil keypressed;

End.

Page 25: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Pada contoh diatas pada saat program dijalankan maka program utama

akan dieksekusi terlebih dahulu. Pada saat proses eksekusi ditemukan

perintah satu yang dikenal sebagai nama sebuah prosedur. Nama ini

dikenal pada saat compiler mengkompilasi program maka satu dicatat

sebagai nama sebuah prosedur . Jadi begitu ditemukan satu maka

compiler akan mencari kelisting program prosedur dengan nama satu.

Setelah ditemukan maka akan diproses. Setelah proses pada prosedur

selesai maka proses program akan kembali pada program utama.

Contoh :kasus

Buat program dengan menggunakan prosedur untuk menampilkan

output berikut :

Algoritma adalah dasar untuk pembuatan program

Algoritma dapat digambarkan dengan Flow Chart Program

Pascal adalah salah satu bahasa untuk mengantarkan algoritma

Ketentuan proses :

Kalimat pertama dibuat pada prosedur dengan nama Algoritma

Kalimat kedua dibuat pada prosedur dengan nama Flow_Chart

Kalimat ketiga dibuat pada prosedur dengan nama Pascal

Pendeklarasian Parameter Pada Procedure

Variabel pada program Pascal lebih dikenal dengan nama parameter.

Parameter dapat berupa parameter lokal dan dapat berupa parameter

global.

Parameter lokal adalah parameter yang hanya bisa digunakan untuk

proses pada prosedur yang bersangkuta

Parameter global adalah parameter yang dapat digunakan untuk

semua blok program yang ada sesudahnya dan pada prosedur yang

bersangkutan.

Contoh pendeklarasian parameter pada prosedur.

Page 26: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Procedure Satu;

Var A : integer;

Begin

End;

Var X:longint;

Procedure Dua;

Var B:integer;

Begin

End;

Var P,Q : Longint;

Begin

.......

.......

End.

Keterangan :

Var A dan Var B adalah variabel lokal pada prosedur satu dan dua.

Var A hanya bisa digunakan untuk proses yang ada pada prosedur satu

sedangkan Var B hanya dapat digunakan untuk proses pada prosedur

dua.

Var X adalah variabel yang bersifat global untuk prosedur dua dan

program utama. Jadi var X dapat digunakan untuk proses baik pada

prosedur dua maupun pada program utama, tetapi tidak bisa

digunakan untuk proses pada prosedur satu.

Var P,Q adalah var yang hanya dapat digunakan pada program utama

saja.

Contoh kasus

Buat program untuk menghitung luas suatu bangun dengan output

sebagai berikut.

Program Menghitung Luas Bangun

Bujur Sangkar dan Segitiga Siku-Siku

1. Luas Bujur Sangkar

2. Luas Segitiga Siku-Siku

3. Selesai

Input Pilihan [1-2] :..

Page 27: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Mencari Luas Bujur Sangkar

Input Panjang Sisi :.....

Luas Bujur Sangkar Adalah :......

Tekan Enter Untuk Melanjutkan

Mencari Luas Segitiga Siku-Siku

Input Panjang Alas :.....

Input Tinggi Segitiga :.....

Luas Segitiga Adalah :......

Tekan Enter Untuk Melanjutkan

pil=2

Stop

Pil, Luas

Cetak Output

Program Utama

Input pil

pil=1

Bujur_sangkar

Siku-Siku

Start

Page 28: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Sisi

Cetak Output Prosedur

Bujur Sangkar

Input sisi

Bujur_Sangkar

Luas = sisi * sisi

Cetak Luas

Return

Alas,tinggi

Cetak Output Prosedur

Segitiga Siku-Siku

Input alas, tinggi

Siku_Siku

Luas = ½ * alas * tinggi

Cetak Luas

Return

Page 29: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

{Program Pascal}

Var Pil : integer ;

Luas : real;

Procedure bujur_sangkar;

Var sisi:integer;

Begin

Clrscr;

Gotoxy (...,...) ; write (‘Mencari Luas Bujur Sangkar’);

Gotoxy (...,..) ; write (‘Input Panjang Sisi : ‘);

Gotoxy (...,...) ; write (‘ Luas Bujur Sangkar Adalah :’);

Gotoxy (...,... ) ; readln (sisi);

Luas := sisi * sisi ;

Gotoxy (..,...) ; write (luas:6:1);

Repeat until keypressed;

End;

Procedure siku_siku;

Var alas,tinggi:integer;

Begin

Clrscr;

Gotoxy (...,...) ; write (‘Mencari Luas Segi Tiga Siku-Siku’);

Gotoxy (...,..) ; write (‘Input Panjang Alas : ‘);

Gotoxy (...,..) ; write (‘Input Tinggi Segi Tiga : ‘);

Gotoxy (...,...) ; write (‘ Luas Segi Tiga Adalah :’);

Gotoxy (...,... ) ; readln (alas);

Gotoxy (...,... ) ; readln (tinggi);

Luas := 0.5 * alas * tinggi ;

Gotoxy (..,...) ; write (luas:6:1);

Repeat until keypressed;

End;

Begin

Clrscr;

Gotoxy (...,...); write (‘Program Menghitung Luas Bangun’);

Gotoxy (...,...); write (‘Bujur Sangkar dan Segitiga Siku-Siku’);

Gotoxy (...,...); write (‘Luas Bujur Sangkar’);

Gotoxy (...,...); write (‘Luas Segitiga Siku-Siku’);

Gotoxy (...,...); write (‘Selesai’);

Gotoxy (...,...); write (‘Input Pilihan [1-2] :..’);

Gotoxy (...,...);readln(pil);

If pil=1 then

Bujur_sangkar

Else if pil=2 then

Page 30: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Siku_siku;

Repeat until keypressed;

End.

Keterangan program

Pada program di atas var pil dan luas adalah bersifat global untuk

semua blok program.

Var sisi bersifat lokal untuk prosedur bujur sangkar

Var alas,tinggi bersifat lokal untuk siku-siku.

Kasus :

Buatlah program untuk menghitung Nilai Faktorial dan Pangkat

dengan output sebagai berikut :

Program Menghitung Nilai

Faktorial dan Pangkat

1. Faktorial

2. Pangkat

3. Selesai

Input Pilihan [1-3] :..

Menghitung Faktorial

Input Bilangan Yang Dicari :...

Nilai Faktorialnya Adalah :.....

Tekan Untuk Melanjutkan

Menghitung Pangkat

Input Bilangan Yang Dicari :...

Input Jumlah angkat Yang Diinginkan :.....

..... Pangkat..... adalah ........

Tekan Enter Untuk Melanjutkan

Page 31: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Pertemuan 13,14

Pengiriman Nilai Parameter Pada Procedure

Pada sebuah program dimungkinkan adanya pengiriman nilai

parameter dari satu prosedur ke prosedur yang lain

Pengiriman nilai parameter ini dapat berupa pengiriman secara nilai

dan secara acuan.

Contoh :

Buat flow chart dan program berikut dengan ketentuan dan output

sebagai berikut :

Menghitung Luas permukaan sebuah balok dengan panjang sisi-sisi

balok adalah

- panjang 10 cm

- lebar 5 cm

- tinggi balok 100 cm

Buat program dengan menggunakan prosedur persegi panjang dengan

panjang sisi balok diinputkan melalui program.

Output

Menghitung Luas Permukaan Balok

Input Panjang Alas :….

Input Lebar Alas :….

Input Tinggi Balok :…

Luas Permukaan Balok Adalah :…

Sisi1

Sisi2

Sisi3

Page 32: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

start

pj,lb,tg,ls,sisi1,sis

i2,sisi3

Cetak Output

Input pj,lb,tg

Persegi_Panjang (pj,tg,ls)

Sisi1:=ls

Persegi_Panjang (lb,tg,ls)

Sisi2:=ls

Persegi_Panjang (lb,pj,ls)

Sisi3:=ls

Lper := 2*sisi1+2*sisi2+2*sisi3

Cetak LPer

Stop

Page 33: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Procedure persegi_panjang (panjang,lebar : integer ; var luas:integer );

Begin

Luas := panjang * lebar;

End;

{program utama}

var

pj,lb,tg,ls,sisi1,sisi2,sisi3 :integer;

Begin

Clrscr;

Gotoxy (…,…) ; write (‘Menghitung Luas Permukaan Balok’);

Gotoxy (…,… ) ; write (‘Input Panjang Alas :…’);

Gotoxy (…,… ) ; write (‘Input Lebar Alas :…’);

Gotoxy (…,… ) ; write (‘Input Tinggi Balok :…’);

Gotoxy (…,… ) ; write (‘Luas Permukaan Balok Adalah :…..’);

Gotoxy (…,… ) ; readln ( pj );

Gotoxy (…,… ) ; readln ( lb );

Gotoxy (…,… ) ; readln ( tg );

Persegipanjang(pj,tg,ls);

Sisi1:=ls;

Persegipanjang(lb,tg,ls);

Sisi2 :=ls;

Persegipanjang(pj,lb,ls);

Sisi3:=ls;

Lper := 2*sisi1+2*sisi2+2*sisi3

Gotoxy (…,…) ; write (lper);

Repeat until keypressed;

End.

Keterangan :

Pada program diatas luas permukaan balok merupakan luas semua sisi

balok. Dimana balok terdiri dari 6 sisi seperti terlihat pada gambar

diatas.

Semua permukaan balok merupakan persegipanjang, sehingga kita

dapat hanya menggunakan prosedur persegi panjang.

Pada prosedur persegi panjang ada 2 cara pengiriman data yaitu secara

nilai dan secara acuan. Pengiriman secara nilai ditandai dengan

penggunaa kata VAR

Pengiriman secara nilai adalah : bahwa hasil yang didapatkan pada prosedur tidak akan

mempengaruhi nilai yang ada pada modul yang mengirim (dalam hal ini adalah program

utama). Sehingga perubahan nilai variabel panjang pada prosedur tidak akan mempengaruhi

nilai var PJ pada program utama.

Pengiriman secara Acuan adalah : bahwa hasil yang didapatkan pada prosedur akan

mempengaruhi nilai yang ada pada modul yang mengirim. Sehingga perubahan niali var Luas

pada prosedur akan mempengaruhi nilai var LS pada program utama.

Page 34: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Pengiriman secara nilai begitu proses pada program yang dipanggil sudah selesai maka nilai

variabel yang dikirim akan dikembalikan ke modul yang memanggil.

Kasus

Buat flowchart dan program pascal untuk menghitung formula berikut

:

1. Z=2^5 + 5!

2. Z=X! + Y + X^Y

Gunakan prosedur pangkat dan faktorial untuk menyelesaikan kasus

diatas. Tampilan dari hasil program dirancang sendiri.

Page 35: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

FUNGSI

Fungsi hampir sama dengan prosedur yaitu merupakan bagian

program yang terpisah dari program utama.

Perbedaan fungsi dengan prosedur adalah bahwa nilai suatu fungsi

terletak pada nama fungsi itu sendiri sedangkan pada prosedur nilai

prosedur terletak pada variabel.

Sebuah prosedur dapat saja dijadikan fungsi. Kasus diatas dijadikan

sebuah fungsi dengan tipe integer.

Buat program dengan menggunakan fungsi persegi panjang dengan

panjang sisi balok diinputkan melalui program.

Output

Menghitung Luas Permukaan Balok

Input Panjang Alas :….

Input Lebar Alas :….

Input Tinggi Balok :…

Luas Permukaan Balok Adalah :…

Sisi1

Sisi2

Sisi3

Page 36: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

start

pj,lb,tg,ls,sisi1,sis

i2,sisi3

Cetak Output

Input pj,lb,tg

Sisi1= Persegi_Panjang (pj,tg)

Lper := 2*sisi1+2*sisi2+2*sisi3

Cetak LPer

Stop

Sisi2= Persegi_Panjang (lb,tg)

Sisi3= Persegi_Panjang (lb,pj)

Page 37: Algoritma Dan Struktur Data - jeryfarel · PDF file- Tidak boleh ada symbol-simbol khusus kecuali ‘_’ (garis bawah) - Huruf besar dan kecil dianggap sama . Algoritma dan Struktur

Algoritma dan Struktur Data I

Team Dosen Algoritma dan Struktur Data

Function persegi_panjang (panjang,lebar : integer):integer;

Var luas : integer;

Begin

Luas := panjang * lebar;

Persegi_panjang :=luas;

End;

{program utama}

var

pj,lb,tg,ls,sisi1,sisi2,sisi3 :integer;

Begin

Clrscr;

Gotoxy (…,…) ; write (‘Menghitung Luas Permukaan Balok’);

Gotoxy (…,… ) ; write (‘Input Panjang Alas :…’);

Gotoxy (…,… ) ; write (‘Input Lebar Alas :…’);

Gotoxy (…,… ) ; write (‘Input Tinggi Balok :…’);

Gotoxy (…,… ) ; write (‘Luas Permukaan Balok Adalah :…..’);

Gotoxy (…,… ) ; readln ( pj );

Gotoxy (…,… ) ; readln ( lb );

Gotoxy (…,… ) ; readln ( tg );

Sisi1:=Persegipanjang(pj,tg);

Sisi2:=Persegipanjang(lb,tg);

Sisi3:=Persegipanjang(pj,lb,;

Lper := 2*sisi1+2*sisi2+2*sisi3

Gotoxy (…,…) ; write (lper);

Repeat until keypressed;

End.