Sub-Capaian Pembelajaran MK
Mid Test
Agenda
• Pendahuluan
• Mendefinisikan Prosedur
• Pemanggilan Prosedur
• Deklarasi Nama Global, Nama Lokal, dan
Lingkupnya
• Parameter Formal dan Aktual
• Definisi Fungsi
• Pemanggilan Fungsi
• Prosedur atau Fungsi?
Pendahuluan
• Kata “Prosedur” sering kita dengar dalam kehidupan sehari-hari.
Seorang mahasiswa misalnya, setiap awal semester selalu melakukan
pendaftaran ulang (registrasi). Pihak kampus telah mengumumkan
langkah-langkah pendaftaran ulang yang dinyatakan sebagai prosedur
daftar ulang.
• Ketika sebuah prosedur dijalankan, maka instruksi-instruksi di
dalamnya dikerjakan satu per satu. Pada kasus registrasi mahasiswa,
mahasiswalah yang menjalankan prosedur daftar ulang.
• Prosedur digunakan untuk memudahkan programmer dalam
membuat program yang sistematis dan melakukan tracking bug.
Mendefinisikan Prosedur
• Pada dasarnya struktur prosedur sama dengan struktur program
biasa yaitu ada bagian judul (header) yang terdiri atas nama
prosedur, bagian deklarasi untuk mendefinisikan nama peubah, nama
tipe dan konstanta dan bagian algoritma yang merupakan badan
(body) prosedur.
• Setiap prosedur mempunyai nama yang unik. Nama prosedur
sebaiknya diawali dengan kata kerja aktif karena prosedur berisi
aktivitas melakukan sesuatu, misalkan HitungLuas, Tukar, CariMaks,
Inisialisasi, dll.
Mendefinisikan Prosedur
Masukan
Formal Keluaran
Parameter
Masukan/Keluaran
Aktual
Parameter Aktual & Formal
• Parameter aktual yaitu parameter yang disertakan pada waktu
pemanggilan.
• Parameter formal yaitu parameter yang dideklarasikan pada bagian
header prosedur.
• Tiap-tiap parameter aktual berpasangan dengan parameter formal
yang bersesuaian.
• Aturan yang harus diperhatikan dalam korespondensi satu-satu
antara parameter actual dan parameter formal adalah:
1. Jumlah parameter aktual pada pemanggilan prosedur harus
sama dengan jumlah parameter formal pada deklarasi
prosedurnya.
2. Tiap parameter aktual harus bertipe sama dengan tipe
parameter formal yang bersesuaian.
Parameter masukan & keluaran
Parameter masukan adalah parameter yang nilainya berlaku sebagai
masukan untuk prosedur. Pada bahasa pemrograman, istilah
parameter masukan ini sering dinamakan parameter nilai (value
parameter atau parameter by value).
Parameter keluaran adalah parameter yang menampung keluaran
yang dihasilkan oleh prosedur, Sedangkan parameter
masukan/keluaran adalah parameter yang berfungsi sebagai masukan
sekaligus keluaran bagi prosedur tersebut.
DEKLARASI
luas : integer
ALGORITMA
luas (alas * tinggi) /2
write(luas)
Contoh Pemanggilan (1)
PROGRAM Segitiga
{Menghitung luas N buah segitiga}
DEKLARASI
i, N: integer
a, t: real
procedure HitungLuasSegitiga(input alas, tinggi: real)
ALGORITMA
read(N)
for i 1 to N do
read(a,t)
HitungLuasSegitiga(a,t)
end for
Mekanisme korespondensi satu-satu
Misalkan nilai a yang dibaca adalah 10 dan nilai t yang dibaca adalah 5,
maka parameter alas akan menerima nilai 10 dari a dan parameter
tinggi akan menerima 5 dari t. Selanjutnya nilai alas dan tinggi
digunakan untuk menghitung luas segitiga di dalam prosedur
HitungLuasSegitiga.
Parameter Keluaran
procedure HitungLuasSegitiga (input alas, tinggi: real,
output luas: real)
{Menghitung luas segitiga dengan rumus Luas = (alas x
tinggi)/2}
DEKLARASI
{tidak ada}
ALGORITMA
luas (alas * tinggi) /2
Contoh Pemanggilan (2)
PROGRAM Segitiga
{Menghitung luas N buah segitiga}
DEKLARASI
I, N: integer
a,t,L: real
procedure HitungLuasSegitiga(input alas, tinggi: real,
output luas: real)
ALGORITMA
read(N)
for i 1 to N do
read(a,t)
HitungLuasSegitiga(a,t,L)
write(L)
end for
Parameter Masukan/Luaran
• Parameter masukan/keluaran dideklarasikan di dalam header
prosedur dengan kata kunci input/output. Parameter masukan/luaran
harus berupa peubah, tidak boleh berupa konstanta/ekspresi.
DEKLARASI
C: integer
ALGORITMA
C A
A B
B C
Contoh Pemanggilan (3)
PROGRAM PertukaranNilai
{Menghitung luas N buah segitiga}
DEKLARASI
m,n: integer
procedure Tukar(input/output A,B: integer)
ALGORITMA
m 8
n 5
write(m,n) {cetak nilai m dan n sebelum pertukaran}
Tukar(m,n)
write(m,n)
FUNGSI
Definisi Fungsi
• Fungsi adalah bagian program yang menerima data masukan dan
memberikan/mengembalikan (return) sebuah nilai dari tipe tertentu.
Didalam matematika kita mengenal cara penulisan fungsi seperti
pada contoh berikut ini:
DEKLARASI
{tidak ada}
ALGORITMA
return 2*x*x+5*x+8
Di dalam algoritma tersebut, F adalah nama fungsi dengan tipe Real sedangkan x
adalah parameter (by value) formal.
Contoh Persoalan
• Buatlah fungsi untuk menentukan apakah sebuah bilangan bulat
merupakan bilangan ganjil. Bilangan bulat disebut ganjil jika ia tidak
habis dibagi dengan dua!
DEKLARASI
{tidak ada}
ALGORITMA
return (n mod 2 ≠ 0)
Contoh Persoalan
function Ganjil(input n: integer) boolean
{true jika n adalah bilangan ganjil}
DEKLARASI
{tidak ada}
ALGORITMA
return (n mod 2 ≠ 0)
Didalam fungsi ganjil di atas ekspresi n mod 2 ≠0 adalah ekspresi Boolean (nilai
ekspresi mungkin true atau false). Pernyataan tersebut ekivalen dengan:
Contoh Persoalan
• Buatlah fungsi untuk menentukan nama-nama bulan berdasarkan
nomor bulannya (1 sampai 12)!
Pemanggilan Fungsi
• Fungsi diakses dengan cara memanggil namanya dari program
pemanggil, diikuti dengan daftar parameter actual (bila ada). Karena
fungsi menghasilkan nilai, maka nilai tersebut dapat diperlakukan
dengan dua cara.
• Pertama, nilai yang dikembalikan oleh fungsi ditampung di dalam
sebuah peubah yang bertipe sama dengan tipe fungsi.
Contoh pemanggilan:
Y F(5)
B Ganjil(m)
Pemanggilan Fungsi
• Kedua, nilai yang dikembalikan oleh fungsi dapat langsung
dimanipulasi seperti pada contoh berikut:
write(F(5))
if Ganjil(m) then …
Contoh Persoalan:
Buatlah program menggunakan fungsi yang menentukan sebuah tahun itu adalah
tahun kabisat. Tahun kabisat yaitu tahun yang habis dibagi 4 atau habis dibagi 400
jika tahun tersbut kelipatan 100!
function Kabisat(input th: integer) boolean
{true jika th adalah tahun kabisat}
DEKLARASI
{tidak ada}
ALGORITMA
if (th mod 4 = 0 and th mod 100 ≠ 0) or (th mod 400 = 0 and th mod 100 = 0) then
return true
else
return false
end if
Contoh Penyelesaian
PROGRAM TahunKabisat
{Program utama menentukan apakah suatu tahun merupakan
tahun kabisat}
DEKLARASI
tahun: integer
function Kabisat(input th: integer) boolean
ALGORITMA
read(tahun)
if Kabisat(tahun) then
write(‘tahun kabisat’)
else
write(‘bukan tahun kabisat’)
end if
Prosedur atau Fungsi?
• Fungsi digunakan apabila modul program mengembalikan sebuah
nilai, sementara prosedur digunakan apabila modul menghasilkan
efek netto dari (satu atau) sekumpulan aksi. Namun dalam praktik,
sering perbedaan antara keduanya samar-samar karena sebuah
prosedur dapat juga ditulis sebagai fungsi demikian pula sebaliknya.
Pada akhirnya pemilihan apakah sebuah modul direalisasikan
sebagai fungsi atau prosedur bergantung pada kebutuhan dan seni
memprogram.
Mengubah fungsi menjadi prosedur
function Maks(input a,b: integer) integer
DEKLARASI
{tidak ada}
ALGORITMA
if a ≥ b then
return a
else
return b
end if
Mengubah fungsi menjadi prosedur
procedure TentukanMaks(input a,b: integer,
output maks: integer)
DEKLARASI
{tidak ada}
ALGORITMA
if a ≥ b then
maks a
else
maks b
end if
Tugas 3_ALPRO
Petunjuk pengerjaan:
• Tentukan kelompok kalian sendiri dan kerjakan beberapa latihan soal di
bawah ini, diketik dalam format PDF dan dikumpulkan via email ke
yudha@ittelkom-pwt.ac.id paling lambat hari Minggu, tanggal 9
Desember 2018 pukul 23:59 WIB. Format file dan subjek email: [ALPRO]
KELAS_Tugas3_NIM1_Nama1_NIM2_Nama2_NIM3_Nama3
7. [poin 10] Buatlah fungsi lower yang mengubah huruf kecil menjadi
huruf besar!
8. [poin 20] Buatlah fungsi phytagoras yang menerima tiga buah
bilangan bulat a,b,c dan menentukan apakah ketiga bilangan
tersebut merupakan tripel phytagoras!
--------------------------------Selamat Mengerjakan---------------------------------