• Tidak ada hasil yang ditemukan

ALGORTIMA DAN PEMROGRAMAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "ALGORTIMA DAN PEMROGRAMAN"

Copied!
12
0
0

Teks penuh

(1)

ALGORTIMA DAN

ALGORTIMA DAN

PEMROGRAMAN

PEMROGRAMAN

PROSEDUR

PROSEDUR

Pendahuluan

Pendahuluan

Dalam memprogram yang besar perlu

Dalam memprogram yang besar perlu

memecah program menjadi pbeberapa

memecah program menjadi pbeberapa

subprogram yang lebih kecil. Tiap subprogram

subprogram yang lebih kecil. Tiap subprogram

kadangkala cukup independen dari program

kadangkala cukup independen dari program

utama sehingga programnya dapat dirancang

utama sehingga programnya dapat dirancang

tanpa memepertimbangkan konteks tempat ia

tanpa memepertimbangkan konteks tempat ia

digunakan. Tiap subprogram disebut modul.

digunakan. Tiap subprogram disebut modul.

Dalam bahasa pemrograman modul disebut

Dalam bahasa pemrograman modul disebut

rutin, prosedur atau fungsi.

(2)

Pendefinisian

Pendefinisian

Prosedur

Prosedur

ƒ

ƒ

Prosedur adalah modul program yang

Prosedur adalah modul program yang

mengerjakan tugas/aktifitas yang spesifik dan

mengerjakan tugas/aktifitas yang spesifik dan

menghasilkan suatu efek netto. Suatu efek

menghasilkan suatu efek netto. Suatu efek

netto diketahui dengan membandingkan

netto diketahui dengan membandingkan

keadaan awal dengan keadaan akhir pada

keadaan awal dengan keadaan akhir pada

pelaksanaaan sebuah prosedur.

pelaksanaaan sebuah prosedur.

ƒ

ƒ

Struktur prosedur sama dengan struktur

Struktur prosedur sama dengan struktur

algoritma yang sudah kita kenal, yaitu ada

algoritma yang sudah kita kenal, yaitu ada

bagian judul (header) yang terdiri dari nama

bagian judul (header) yang terdiri dari nama

prosedur, deklarasi dan badan prosedur.

prosedur, deklarasi dan badan prosedur.

Notasi

Notasi

Algoritma

Algoritma

ƒ

ƒ ProcedureProcedureNamaprosedurNamaprosedur

{spesifikasi prosedur berisi penjelasan tentang apa

{spesifikasi prosedur berisi penjelasan tentang apa

yang dilakukan oleh prosedur ini}

yang dilakukan oleh prosedur ini}

{IS : keadaan awal sebelum prosedur dilaksanakan }

{IS : keadaan awal sebelum prosedur dilaksanakan }

{FS : keadaan akhir sesudah prosedur dilaksanakan}

{FS : keadaan akhir sesudah prosedur dilaksanakan}

ƒ

ƒ Deklarasi :Deklarasi :

{semua nama yang dipakai dalam prosedur dan hanya

{semua nama yang dipakai dalam prosedur dan hanya

berlaku lokal di dalam prosedur}

berlaku lokal di dalam prosedur}

ƒ

ƒ Deskripsi :Deskripsi :

{badan prosedur, berisi kumpulan instruksi}

(3)

Contoh

Contoh

:

:

ƒ

ƒ procedureprocedureHitung_rataHitung_rata

{mengitung rata

{mengitung rata--rata N buah bilangan bulat yang dibaca dari rata N buah bilangan bulat yang dibaca dari piranti masukan}

piranti masukan}

{IS: sembarang}

{IS: sembarang}

{FS: nilai rata

{FS: nilai rata--rata seluruh bilangan bulat dicetak di piranti rata seluruh bilangan bulat dicetak di piranti keluaran}

keluaran}

ƒ

ƒ Deklarasi : Deklarasi : N:

N: integerinteger {jumlah data, > 0} {jumlah data, > 0} x:

x: integerinteger {bilangan bulat yg dibaca dari papan kunci} {bilangan bulat yg dibaca dari papan kunci} k:

k: integerinteger {pencacah banyaknya pengulangan} {pencacah banyaknya pengulangan} jumlah :

jumlah : integerinteger {pencaca{pencacahhjumlah nilai} jumlah nilai} rerata :

rerata : integerinteger {rata-{rata-rata nilai}rata nilai}

Lanjutan

Lanjutan

ƒ

ƒ

Deskripsi :

Deskripsi :

read

read

(N)

(N)

Jumlah

Jumlah

Å

Å

0

0

for

for

k

k

Å

Å

1

1

to

to

N

N

do

do

read

read

(x)

(x)

jumlah

jumlah

Å

Å

jumlah + x

jumlah + x

endfor

endfor

rerata

rerata

Å

Å

jumlah/N

jumlah/N

write

(4)

Pemanggilan Prosedur

Pemanggilan Prosedur

ƒ

ƒ

Prosedur bukan program yang berdiri

Prosedur bukan program yang berdiri

sendiri, jadi tidak dapat dieksekusi

sendiri, jadi tidak dapat dieksekusi

secara langsung. Ini berarti instruksi

secara langsung. Ini berarti instruksi

-

-instruksi di dalam prosedur baru dapat

instruksi di dalam prosedur baru dapat

dilaksanakan bila prosedur tersebut

dilaksanakan bila prosedur tersebut

diakses dengan cara memanggil

diakses dengan cara memanggil

namanya dari program pemanggil

namanya dari program pemanggil

(program utama atau modul lain).

(program utama atau modul lain).

Contoh

Contoh

:

:

ƒ

ƒ Algoritma Rata_RataAlgoritma Rata_Rata

{program utama untuk menghitung

{program utama untuk menghitung ratarata--rata N buah rata N buah

bilangan bulat}

bilangan bulat}

ƒ

ƒ Deklarasi : Deklarasi : Procedure

ProcedureHitung_RataHitung_Rata

{mengitung rata

{mengitung rata--rata N buah bilangan bulat yang rata N buah bilangan bulat yang dibaca dari piranti masukan}

dibaca dari piranti masukan}

ƒ

ƒ Deskripsi :Deskripsi : write

write(‘(‘menghitung ratamenghitung rata--rata N buah bilangan bulatrata N buah bilangan bulat’’) ) Hitung_Rata

Hitung_Rata write

(5)

Nama Global atau Lokal

Nama Global atau Lokal

ƒ

ƒ NamaNama--nama yang dideklarasikan di dalam prosedur nama yang dideklarasikan di dalam prosedur hanya dikenal di dalam badan prosedur ang

hanya dikenal di dalam badan prosedur ang

bersangkutan dan ini dikatakan bersifat

bersangkutan dan ini dikatakan bersifat ‘‘lokallokal’’. .

ƒ

ƒ NamaNama--nama yang dideklarasikan di dalam program nama yang dideklarasikan di dalam program utama dikatakan bersifat

utama dikatakan bersifat ‘‘globalglobal’’, yang dapat , yang dapat

digunakan dibagian manapun di dalam program baik di

digunakan dibagian manapun di dalam program baik di

program utama maupun di dalam prosedur.

program utama maupun di dalam prosedur.

ƒ

ƒ Pengunaan nama akan dideklarasikan global atau Pengunaan nama akan dideklarasikan global atau lokal bergantung kepada penggunaan nama tersebut.

lokal bergantung kepada penggunaan nama tersebut.

Bila suatu nama digunakan diseluruh bagian program,

Bila suatu nama digunakan diseluruh bagian program,

maka nama tersebut harus dideklarasikan global.

maka nama tersebut harus dideklarasikan global.

Lanjutan

Lanjutan

..

..

ƒ

ƒ

Bila nama tersebut hanya digunakan di dalam

Bila nama tersebut hanya digunakan di dalam

prosedur saja maka sebaiknya di deklarasikan

prosedur saja maka sebaiknya di deklarasikan

sebagai peubah lokal (walaupun global masih

sebagai peubah lokal (walaupun global masih

tetap benar).

tetap benar).

ƒ

ƒ

Usahakan menggunakan nama

Usahakan menggunakan nama

-

-

nama global

nama global

sesedikit mungkin.

sesedikit mungkin.

ƒ

ƒ

Penggunaan nama lokal akan memberikan

Penggunaan nama lokal akan memberikan

keuntungan sebab nama lokal membuat

keuntungan sebab nama lokal membuat

program lebih elegan, dan dapat

program lebih elegan, dan dapat

meminimumkan usaha pencarian kesalahan

meminimumkan usaha pencarian kesalahan

yang disebabkan oleh nama tersebut.

(6)

Parameter

Parameter

ƒ

ƒ

Penggunaan parameter merupakan

Penggunaan parameter merupakan

mekanisme pertukaran informasi antara

mekanisme pertukaran informasi antara

prosedur (atau fungsi) dan titik di mana ia

prosedur (atau fungsi) dan titik di mana ia

dipanggil.

dipanggil.

ƒ

ƒ

Tiap item data ditransfer antara parameter

Tiap item data ditransfer antara parameter

aktual dan parameter formal yang bersesuaian.

aktual dan parameter formal yang bersesuaian.

ƒ

ƒ

Parameter aktual adalah parameter yang

Parameter aktual adalah parameter yang

disertakan pada waktu pemanggilan.

disertakan pada waktu pemanggilan.

ƒ

ƒ

Parameter formal adalah parameter yang

Parameter formal adalah parameter yang

dideklarasikan di dalam header prosedur itu

dideklarasikan di dalam header prosedur itu

sendiri.

sendiri.

Jenis

Jenis

Parameter

Parameter

Tiga jenis parameter formal yang

Tiga jenis parameter formal yang

disertakan di dalam prosedur :

disertakan di dalam prosedur :

1.

1.

Parameter Input

Parameter Input

2.

2.

Parameter Output

Parameter Output

3.

(7)

Parameter masukan (input

Parameter masukan (input

parameter)

parameter)

ƒ

ƒ Parameter yang nilainya berlaku sebagai masukan Parameter yang nilainya berlaku sebagai masukan untuk prosedur yang disebut parameter

untuk prosedur yang disebut parameter nilainilai(value (value parameter/parameter by value).

parameter/parameter by value).

ƒ

ƒ Nilai parameter aktual diisikan (assign) ke dalam Nilai parameter aktual diisikan (assign) ke dalam parameter formal yang bersesuaian.

parameter formal yang bersesuaian.

ƒ

ƒ Nilai yang dinyatakan oleh parameter masukan tidak Nilai yang dinyatakan oleh parameter masukan tidak dapat dikirim dalam arah sebaliknya.

dapat dikirim dalam arah sebaliknya.

ƒ

ƒ Perubahan nilai parameter di dalam badan prosedur Perubahan nilai parameter di dalam badan prosedur tidak mengubah nilai parameter aktual.

tidak mengubah nilai parameter aktual.

ƒ

ƒ Nama parameter aktual boleh berbeda dengan nama Nama parameter aktual boleh berbeda dengan nama parameter formal yang bersesuaian.

parameter formal yang bersesuaian.

Contoh

Contoh

:

:

ƒ

ƒ ProcedureProcedureSatu (inputSatu (inputx,y : integerx,y : integer))

{contoh prosedur dengan parameter formal berjenis

{contoh prosedur dengan parameter formal berjenis

parameter masukan}

parameter masukan}

{IS : nilai x dan y sudah terdefinisi}

{IS : nilai x dan y sudah terdefinisi}

{FS : nilai x dan y masing

{FS : nilai x dan y masing--masing dinaikan satu lalu masing dinaikan satu lalu dicetak}

dicetak}

Deklarasi :

Deklarasi : { tidak ada }{ tidak ada }

Deskripsi : Deskripsi : x x ÅÅx + 1 x + 1 y y ÅÅy + 1 y + 1 write write(x,y)(x,y)

(8)

Program Utama

Deskripsi :

Satu (4, 10) {pemanggilan Satu yang pertama kali} read (a,b)

Satu (a,b) {pemanggilan Satu yang kedua kali} Satu (a+5,17) {pemanggilan Satu yang ketiga kali} Deklarasi :

a,b : integer

Procedure Satu (input x,y : integer)

{contoh prosedur dengan parameter formal berjenis parameter masukan}

Algoritma PQR

{program utama untuk memanggil prosedur satu}

Hasil

Hasil

ƒ

ƒ

Pada pemanggilan pertama,

Pada pemanggilan pertama,

menghasilkan x = 4 dan y = 11

menghasilkan x = 4 dan y = 11

ƒ

ƒ

Pada pemanggilan kedua, nilai x dan y

Pada pemanggilan kedua, nilai x dan y

tergantung pada pemasukan data nilai a

tergantung pada pemasukan data nilai a

dan b, misalkan a =10 dan b =21, maka x

dan b, misalkan a =10 dan b =21, maka x

=11 dan y=22. dst

(9)

Parameter keluaran

Parameter keluaran

(output parameter)

(output parameter)

ƒ

ƒ Parameter yang menampung keluaran yang dihasilkan Parameter yang menampung keluaran yang dihasilkan oleh prosedur, yang disebut dengan parameter

oleh prosedur, yang disebut dengan parameter acuan acuan

(reference parameter/parameter by reference).

(reference parameter/parameter by reference).

ƒ

ƒ Bila prosedur yang mengandung parameter keluaran Bila prosedur yang mengandung parameter keluaran dipanggil, nama parameter aktual di dalam program

dipanggil, nama parameter aktual di dalam program

pemanggil menggantikan nama parameter formal yang

pemanggil menggantikan nama parameter formal yang

bersesuaidi dalam prosedur.

bersesuaidi dalam prosedur.

ƒ

ƒ Bila di dalam prosedur parameter aktual diisi suatu Bila di dalam prosedur parameter aktual diisi suatu nilai, nilai ini akan tetap berada di dalam parameter

nilai, nilai ini akan tetap berada di dalam parameter

aktual meskipun prosedur selesai dilaksanakan.

aktual meskipun prosedur selesai dilaksanakan.

Contoh : Contoh :

Prosedure dua dengan parameter keluaran : Prosedure dua dengan parameter keluaran :

Procedure

ProcedureDua (inputDua (inputx : integerx : integer, , outputoutputy : y : realreal))

{contoh prosedur dengan parameter formal berjenis

{contoh prosedur dengan parameter formal berjenis

parameter keluaran}

parameter keluaran}

{IS : nilai x sudah terdefinisi}

{IS : nilai x sudah terdefinisi}

{FS : y berisi nilai x ditambah satu dan dikalikan tiga}

{FS : y berisi nilai x ditambah satu dan dikalikan tiga}

Deklarasi : Deklarasi : { tidak ada } { tidak ada } Deskripsi : Deskripsi : x x ÅÅx + 1 x + 1 y y ÅÅx + 1 x + 1

(10)

Program Utama

Program Utama

Algoritma XYZ{program utama untuk memanggil prosedur dua}

Algoritma XYZ{program utama untuk memanggil prosedur dua}

Deklarasi :

Deklarasi :

a

a,b : ,b : integerinteger

Procedure

ProcedureDua (Dua (inputinputx : x : integerinteger, , outputoutputy : y : realreal) )

{contoh prosedur dengan parameter formal berjenis parameter

{contoh prosedur dengan parameter formal berjenis parameter

keluaran}

keluaran}

Deskripsi :

Deskripsi :

dua

dua(4, b) (4, b) {pemanggilan dua yang pertama kali} {pemanggilan dua yang pertama kali}

write

write(b) (b)

read

read(a) (a) dua

dua(a, b) (a, b) {pemanggilan dua yang pertama kali} {pemanggilan dua yang pertama kali}

write

write(b) (b)

dua

dua(a+5,b) (a+5,b) {pemanggilan dua yang ketiga kali}{pemanggilan dua yang ketiga kali}

write write(b)(b)

Parameter masukan/keluaran

Parameter masukan/keluaran

(input/output parameter)

(input/output parameter)

ƒ

ƒ

Parameter yang berfungsi sebagai masukan

Parameter yang berfungsi sebagai masukan

sekaligus keluaran bagi prosedur tersebut,

sekaligus keluaran bagi prosedur tersebut,

yang disebut dengan parameter

yang disebut dengan parameter

acuan

acuan

(reference parameter/parameter by reference).

(reference parameter/parameter by reference).

ƒ

ƒ

Digunakan pada aplikasi yang informasinya

Digunakan pada aplikasi yang informasinya

dikirim dalam kedua arah.

dikirim dalam kedua arah.

ƒ

ƒ

Bila parameter aktual diubah nilainya di dalam

Bila parameter aktual diubah nilainya di dalam

badan prosedur, makasesudah pemanggilan

badan prosedur, makasesudah pemanggilan

prosedur nilai parameter dititik pemanggilan

prosedur nilai parameter dititik pemanggilan

juga berubah.

(11)

Contoh :

Contoh :

Prosedure tiga dengan parameter

Prosedure tiga dengan parameter

masukan/keluaran

masukan/keluaran

Procedure

Proceduretiga (tiga (input/outputinput/outputx,y : integerx,y : integer))

{contoh prosedur dengan parameter formal berjenis parameter

{contoh prosedur dengan parameter formal berjenis parameter

masukan/keluaran}

masukan/keluaran}

{IS : nilai x dan y sudah terdefinisi}

{IS : nilai x dan y sudah terdefinisi}

{FS : nilai x dan y bertambah masing

{FS : nilai x dan y bertambah masing--masing empat dan dicetak}masing empat dan dicetak} Deklarasi : Deklarasi : { tidak ada } { tidak ada } Deskripsi : Deskripsi : x x ÅÅx + 4 x + 4 y y ÅÅy + 4 y + 4 write

write((‘‘nilai x dan y diakhir prosedur adalah nilai x dan y diakhir prosedur adalah ‘‘) ) write

write((‘‘x = x = ‘‘,x) ,x)

write

write((‘‘y = y = ‘‘,y) ,y)

Program Utama

Program Utama

Algoritma ABC

Algoritma ABC{program utama untuk memanggil prosedur tiga}{program utama untuk memanggil prosedur tiga} Deklarasi :

Deklarasi : a,b : a,b : integerinteger Procedure

Proceduretiga (input/outputtiga (input/outputx,y : integerx,y : integer))

{contoh prosedur dengan parameter formal berjenis parameter

{contoh prosedur dengan parameter formal berjenis parameter

masukan/keluaran} masukan/keluaran} Deskripsi : Deskripsi : A A ÅÅ1515 B B ÅÅ10 10 write

write((‘‘nilai a dan b sebelum pemanggilan prosedur nilai a dan b sebelum pemanggilan prosedur ‘‘) ) write

write((‘‘a = a = ‘‘,a) ,a)

write

write((‘‘b = b = ‘‘,b) ,b) tiga (a, b) tiga (a, b)

(12)

{pemanggilan tiga pertama kali }

{pemanggilan tiga pertama kali }

write

write((‘‘nilai a dan b sesudah pemanggilan prosedur nilai a dan b sesudah pemanggilan prosedur ‘‘) ) write

write((‘‘a = a = ‘‘,a) ,a)

write

write((‘‘b = b = ‘‘,b) ,b)

Jika program di atas dieksekusi maka menghasilkan :

Jika program di atas dieksekusi maka menghasilkan :

nilai a dan b sebelum pemanggilan prosedur

nilai a dan b sebelum pemanggilan prosedur

a = 15

a = 15

B = 10

B = 10

nilai x dan y di akhir prosedur adalah

nilai x dan y di akhir prosedur adalah

x = 19

x = 19

y = 14

y = 14

nilai a dan b sesudah pemanggilan prosedur

nilai a dan b sesudah pemanggilan prosedur

a = 19

a = 19

B = 14

Referensi

Dokumen terkait

Pembahasan penelitian pengembangan ini dilakukan berdasarkan tahapan-tahapan pada penelitian pengembangan yang dimulai dengan membuat desain/draf produk pengembangan

Segala puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah mencurahkan rahmat dan hidayahNya, shalawat serta salam semoga tercurah kepada Nabi Muhammad SAW

Dalam penelitian ini regresi berganda digunakan untuk menguji variabel Kepribadian Proaktif (X1) dan Persepsi Dukungan Organisasi (X2) sebagai variabel independen

Gempa tersebut tidak berpotensi Tsunami, gempa dirasakan II MMI di Bengkulu dan II-III MMI di Kepahiang namun tidak menimbulkan korban jiwa maupun kerusakan akibat gempa

Faktanya dari nasabah yang di wawancarai ini tidak tahu jika dalam 1 tahun pertama jumlah dananya harus sudah mencukupi untuk naik haji dan setahunya jika berangkat tahun 2015

Berbeda dari perlakuan variasi suhu, hasil dea- setilasi dengan variasi waktu (Gambar 5) menunjukkan bahwa deasetilasi dengan waktu 10 jam menghasilkan bobot kitosan yang

Pada perlakuan C, dimana media tanam jamur tiram putih menggunakan kulit kacang dengan penambahan kapur dolomit 5gr/baglog didapatkan rata-rata penyebaran miselium