Dokumen tersebut membahas tentang konsep dasar fungsi dalam algoritma dan struktur data, termasuk cara mendefinisikan fungsi, mengubah fungsi menjadi prosedur, dan sebaliknya. Tujuannya adalah agar mahasiswa dapat membuat algoritma menggunakan fungsi.
Materi Pembahasan:
• Deklarasi Fungsi
• Prototipe Fungsi
• parameter fungsi
a. Parameter formal
b. Parameter actual
• Fungsi return
• Lingkup variable fungsi
a. Variable Otomatis
b. Variable Eksternal
c. Variable Static
• Fungsi Inline
• Fungsi Overloading
Materi Pembahasan:
• Deklarasi Fungsi
• Prototipe Fungsi
• parameter fungsi
a. Parameter formal
b. Parameter actual
• Fungsi return
• Lingkup variable fungsi
a. Variable Otomatis
b. Variable Eksternal
c. Variable Static
• Fungsi Inline
• Fungsi Overloading
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik DosenAdrianAgoes9
sosialisasi untuk dosen dalam mengisi dan memadankan sister akunnya, sehingga bisa memutakhirkan data di dalam sister tersebut. ini adalah untuk kepentingan jabatan akademik dan jabatan fungsional dosen. penting untuk karir dan jabatan dosen juga untuk kepentingan akademik perguruan tinggi terkait.
2. Sub Topik
1. Konsep Dasar Fungsi
2. Fungsi Menjadi Prosedur
3. Prosedur Menjadi Fungsi
3. Tujuan
Tujuan Instruksional Umum :
Mahasiswa diharapkan mampu membuat algoritma
dengan fungsi
Tujuan Instruksional Khusus :
Mahasiswa mampu memahami konsep fungsi
Mahasiswa mampu membuat algoritma dengan
fungsi
Mahasiswa mampu mengubah fungsi menjadi
prosedur
Mahasiswa mampu mengubah prosedur menjadi
fungsi
4. Konsep Fungsi
Fungsi adalah subprogram yang memberikan/mengembalikan
sebuah nilai dari tipe tertentu (tipe dasar atau tipe bentukan)
Struktur fungsi sama dengan struktur algoritma biasa
Notasi algoritmik fungsi :
FUNCTION NamaFungsi(input deklarasi parameter jika ada) tipe
{ Spesifikasi fungsi, menjelaskan apa yang dilakukan dan yang
dikembalikan oleh fungsi }
DEKLARASI
{ Semua nama yang dipakai didalam fungsi dan hanya berlaku lokal
didalam fungsi didefinisikan disini }
DESKRIPSI:
{ badan fungsi, berisi instruksi-instruksi untuk menghasilkan nilai yang
akan dikembalikan oleh fungsi }
return ekspresi { pengembalian nilai yang dihasilkan fungsi }
5. type menspesifikasikan tipe nilai yang diberikan oleh fungsi, dapat
berupa tipe dasar maupun tipe bentukan
Struktur fungsi sama dengan struktur algoritma biasa
return bertujuan untuk mengembalikan nilai yang dihasilkan oleh
fungsi
ekspresi dapat berupa konstanta, atau sebuah peubah atau sebuah
rumus
Fungsi diakses dengan cara memanggil namanya dari program
pemanggil, diikuti dengan daftar parameter aktual (jika ada)
Pengembalian nilai dapat dilakukan dengan dua cara, yaitu:
• Ditampung didalam sebuah peubah yang bertipe sama
dengan tipe fungsi
peubah NamaFungsi(parameter aktual, jika ada)
misalnya: y F(5){ y harus bertipe real }
• Langsung dimanipulasi
misalnya: write(F(5))
6. Contoh Soal
Kasus 1 :
Buatlah fungsi untuk menghitung luas segitiga dan program utama
untuk memanggil fungsi tersebut!
English Structure
Fungsi Luas Segitiga:
Input : alas, tinggi
Output : luas
Proses :
1. Menghitung luas = 0.5* (alas * tinggi)
Program Utama:
Input : alas, tinggi
Output : luas
Proses :
1. Membaca nilai alas yang dimasukkan oleh user
2. Membaca nilai tinggi yang dimasukkan oleh user
3. Memanggil fungsi untuk menghitung luas segitiga
4. Mencetak nilai luas
7. Pseudocode untuk Prosedur :
FUNCTION LuasSegitiga (input alas, tinggi : real) real
{ Menghitung luas segitiga, luas = (alas x tinggi) / 2
K. Awal : sembarang
K. Akhir : luas segitiga tercetak }
DEKLARASI
{tidak ada}
DESKRIPSI:
return 0.5 * (alas * tinggi)
8. Pseudocode untuk Program Utama :
ALGORITMA Segitiga
{ Menghitung luas segitiga dengan fungsi }
DEKLARASI
alas, tinggi, luas : real
FUNCTION LuasSegitiga(input alas, tinggi : real) real
{ Menghitung luas segitiga, luas = (alas x tinggi)/2 }
DESKRIPSI:
input(alas, tinggi)
luas LuasSegitiga(alas,tinggi)
output(luas)
9. Fungsi Menjadi Prosedur
Fungsi:
FUNCTION Maks(input a, b : integer) integer
{ Mengembalikan harga terbesar dari a dan b }
DEKLARASI
{ tidak ada }
DESKRIPSI:
if a >= b then
return a
else
return b
endif
10. Prosedur:
PROCEDURE TentukanMaks(input a, b : integer, output
maks : integer)
{ Menentukan nilai terbesar dari a dan b, dan menyimpannya
di maks
K. Awal : a dan b sudah terdefinisi nilainya
K. Akhir : maks berisi nilai terbesar dari a atau b }
DEKLARASI
{ tidak ada }
DESKRIPSI:
if a ≥ b then
maks a
else
maks b
endif
11. Prosedur Menjadi Fungsi
Prosedur:
PROCEDURE HitungRataRata(input Ndata : integer, output U : real)
{ Membaca data, menjumlahkannya dan menghitung rata-rata
K. Awal : Ndata sudah berisi banyaknya data : Ndata > 0
K. Akhir : U berisi rata-rata seluruh data }
DEKLARASI
x, i, jumlah : integer
DESKRIPSI:
jumlah 0
for i 1 to Ndata do
input(x)
jumlah jumlah + x
endfor
U jumlah / Ndata
12. Fungsi:
FUNCTION RataRata(input Ndata : integer) real
{ Membaca data, menjumlahkannya dan menghitung rata-rata
Ndata berisi banyaknya data : Ndata > 0 }
DEKLARASI
x, i, jumlah : integer
DESKRIPSI:
jumlah 0
for i 1 to Ndata do
input(x)
jumlah jumlah + x
endfor
return jumlah / Ndata
13. Rangkuman
Fungsi bersifat mengembalikan nilai ke program pemanggil
Fungsi yang mengembalikan sebuah nilai bertipe sederhana
dapat ditulis sebagai prosedur dengan parameter keluaran
Prosedur yang mempunyai sebuah parameter keluaran
dapat ditulis sebagai sebuah fungsi
Fungsi sangat tepat digunakan jika nilai fungsi digunakan
dalam suatu ekspresi aritmatika
14. Latihan Soal
Kasus 1:
Buatlah algoritma program utama dengan fungsi untuk
menghitung luas persegipanjang!
Kasus 2:
Buatlah algoritma program utama dengan fungsi untuk
menghitung ekspresi aritmatika berikut:
F(x) = 2x2 + 5x – 8, x R
15. REFERENSI
1. Budi Sutedjo, Michael A.N. 2000. “Algoritma dan Teknik
Pemrograman”. Yogyakarta: ANDI OFFSET.
2. Fathul Wahid. 2004. “Dasar-Dasar Algoritma dan
Pemrograman”. Yogyakarta: ANDI OFFSET.
3. Rinaldi Munir, Leoni Lidya. 2002. “Algoritma &
Pemrograman Dalam Bahasa Pascal dan C Buku 1”.
Bandung: Informatika.
4. Rinaldi Munir, Leoni Lidya. 2002. “Algoritma &
Pemrograman Dalam Bahasa Pascal dan C Buku 2”.
Bandung: Informatika.