Panduan Praktikum Algoritma dan Pemrograman Modul 6. Fungsi A

advertisement
Panduan Praktikum Algoritma dan Pemrograman
Modul 6.
Fungsi
A. Tujuan
Praktikan memahami penggunaan fungsi dalam pemecahan masalah dan
mampu mentranslasi fungsi dari notasi algoritma pseudocode ke dalam bahasa
C.
B. Peralatan


Perangkat keras: 1 set komputer dan 1 buah flashdisk.
Perangkat lunak: Windows Xp, kompilator djgpp dan Notepad.
C. Dasar Teori
1. Definisi Fungsi
Sebuah fungsi adalah modul program yang mengerjakan tugas atau aktivitas
yang spesifik dan mengembalikan sebuah nilai dari tipe tertentu, baik tipe dasar
atau tipe bentukan.
Baik fungsi maupun prosedur, keduanya merupakan pemrograman modular
yang ekivalen, namun pada beberapa masalah ada kalanya kita lebih tepat
menggunakan fungsi ketimbang prosedur, demikian juga sebaliknya.
Prosedur yang mempunyai satu buah parameter keluaran dapat ditulis
dengan cara menyatakan parameter keluaran sebagai nilai yang dikembalikan
oleh fungsi.
2. Notasi Algoritmik
function Nama_Fungsi (input parameter)
{ Berisi penjelasan apa yang dikembalikan fungsi }
DEKLARASI
{ Semua nama yang dipakai di dalam fungsi }
ALGORITMA:
{ Badan fungsi, berisi urutan instruksi }
return ekspresi { Pengembalian nilai yang dihasilkan fungsi}
Jurusan Teknik Elektro UIN Suska Riau
Halaman 31
Panduan Praktikum Algoritma dan Pemrograman
3. Pemanggilan Fungsi
Fungsi dipanggil dari program pemanggil dengan menuliskan nama_fungsi
diikuti dengan parameter aktual. Nilai yang dikembalikan fungsi dapat
diperlakukan dengan dua cara:
1. Nilai yang dikembalikan oleh fungsi dapat langsung dimanipulasi.
2. Nilai yang dikembalikan oleh fungsi ditampung dalam sebuah peubah
yang bertipe sama dengan tipe fungsi.
Contoh berikut adalah algoritma dimana nilai yang dikembalikan oleh fungsi
langsung dimanipulasi:
PROGRAM Genap_Ganjil
{ Menentukan apakah sebuah bilangan genap atau ganjil }
DEKLARASI
x : integer
function Genap(input n : integer)  int
ALGORITMA:
read (x)
if Genap(x)=0 then
write(‘genap’)
else
write(‘ganjil’)
endif
function Genap(input n : integer)  int
{Mengembalikan 0 jika n genap atau 1 jika ganjil }
DEKLARASI
{tidak ada}
ALGORITMA:
return (n mod 2)
Contoh berikut adalah algoritma dimana nilai yang dikembalikan oleh fungsi
ditampung dalam sebuah peubah yang bertipe sama dengan tipe fungsi:
PROGRAM Hitung_Titik_Tengah
{ Menghitung koordinat antara dua titik }
DEKLARASI
type Titik : record < x,y : real >
P1, P2,Pt : Titik {Pt titik tengah antara P1 dan P2}
function Titik_Tengah(input P1,P2 : Titik) Titik
Jurusan Teknik Elektro UIN Suska Riau
Halaman 32
Panduan Praktikum Algoritma dan Pemrograman
ALGORITMA:
read (P1.x, P1.y)
read (P2.x, P2.y)
Pt  Titik_Tengah(P1,P2)
write (Pt.x,Pt.y)
function Titik_Tengah(input P1,P2 : Titik) Titik
{ Mengembalikan titik tengah dari P1 dan P2 }
DEKLARASI
{tidak ada}
ALGORITMA:
Pt.x  (P1.x + P2.x)/2
Pt.y  (P1.y + P2.y)/2
return Pt
D. Langkah Kerja
1. Ketiklah program berikut, simpan dalam flashdisk, kemudian kompilasi dan
eksekusi menggunakan DOS prompt.
/* PROGRAM Genap_Ganjil */
/* Menentukan apakah sebuah bilangan genap atau ganjil */
#include <stdio.h>
int Genap(int n);
void main()
{
int x;
printf("Ketikkan sebuah bilangan:");scanf("%d",&x);
if (Genap(x)== 0)
printf("%d adalah bilangan genap \n", x);
else
printf("%d adalah bilangan ganjil \n", x);
}
int Genap(int n)
{
return (n % 2);
}
2. Ketiklah program berikut, simpan dalam flashdisk, kemudian kompilasi dan
eksekusi menggunakan DOS prompt.
/* PROGRAM Hitung_Titik_Tengah */
/* Menghitung koordinat antara dua titik */
Jurusan Teknik Elektro UIN Suska Riau
Halaman 33
Panduan Praktikum Algoritma dan Pemrograman
#include <stdio.h>
typedef struct (float x,y;) Titik;
Titik Titik_Tengah(Titik P1, Titik P2);
void main()
{
Titik P1,P2,Pt;
printf(“ Masukkan koordinat titik P1: \n”);
printf(“ x = ”);scanf(“%f”,&P1.x);
printf(“ y = ”);scanf(“%f”,&P1.y);
printf(“ Masukkan koordinat titik P2: \n”);
printf(“ x = ”);scanf(“%f”,&P2.x);
printf(“ y = ”);scanf(“%f”,&P2.y);
Pt = Titik_Tengah(P1,P2);
printf(“ Titik tengah : (%f,%f) \n”, Pt.x, Pt.y);
}
Titik Titik_Tengah(Titik P1, Titik P2)
/* Mengembalikan titik tengah dari P1 dan P2 */
{
Titik Pt;
Pt.x = (P1.x + P2.x)/2;
Pt.y = (P1.y + P2.y)/2;
return Pt;
}
3. Ketiklah program berikut, simpan dalam flashdisk, kemudian kompilasi dan
eksekusi menggunakan DOS prompt.
#include <stdio.h>
float HitungLuas(float alas, float tinggi);
void main()
{
int i, N;
float a, t;
printf("Masukkan banyaknya segitiga = "); scanf("%d",&N);
for (i=1; i<=N; i++)
{
printf("Masukkan alas segitiga = "); scanf("%f",&a);
printf("Masukkan tinggi segitiga = "); scanf("%f",&t);
printf("Luas segitiga = %.2f \n", HitungLuas(a,t));
}
}
float HitungLuas(float alas, float tinggi)
{
return (alas*tinggi)*0.5;
}
Jurusan Teknik Elektro UIN Suska Riau
Halaman 34
Panduan Praktikum Algoritma dan Pemrograman
E. Tugas
1. Buatlah program C berdasarkan algoritma berikut yang membaca nilai x dan
y kemudian memanggil fungsi pangkat yang menghitung perpangkatan xy dan
mengembalikan nilai xy. Program juga menampilkan nilai xy tersebut di layar
monitor
PROGRAM Hitung_Pangkat
{ Program yang menghitung nilai x pangkat y }
DEKLARASI
x : integer
function Pangkat (input x : integer) → integer
ALGORITMA:
read (x)
write (xy = Pangkat(x))
function Pangkat (input x : integer) → integer
{ Menghitung nilai x pangkat y }
DEKLARASI
i,y, pangkat: integer
ALGORITMA:
read (y)
pangkat ← 1
for (i←1 to y) do
pangkat ← pangkat * x
i←i+1
return pangkat
2. Buatlah program C berdasar algoritma berikut yang membaca nilai N
kemudian memanggil fungsi deret yang menghitung 1 + 2 + 3 + ... + N dan
mengembalikan nilai penjumlahan deret. Program juga menampilkan nilai
penjumlahan deret tersebut di layar monitor.
PROGRAM Hitung_Deret
{ Program yang menghitung nilai deret }
DEKLARASI
N : integer
function Deret (input N : integer) → integer
ALGORITMA:
read (N)
Jurusan Teknik Elektro UIN Suska Riau
Halaman 35
Panduan Praktikum Algoritma dan Pemrograman
write (Jumlah deret N = Deret(N))
function Deret (input N : integer) → integer
{ Menghitung nilai deret N }
DEKLARASI
i, deret : integer
ALGORITMA:
deret ← 0;
for (i←1 to N) do
deret ← deret + i
i←i+1
return deret;
3. Buatlah program C berdasar algoritma berikut yang
membaca nilai N,
kemudian memanggil fungsi Faktorial yang menghitung N! = 1 x 2 x 3 x ... x
N dan mengembalikan nilai N!. Program utama kemudian menampilkan nilai
N! tersebut di akhir program.
PROGRAM Hitung_Faktorial
{ Program yang menghitung nilai faktorial }
DEKLARASI
N : integer
function Faktorial (input N : integer) → integer
ALGORITMA:
read (N)
write (N! = Faktorial(N))
function Faktorial (input N : integer) → integer
{ Menghitung nilai N faktorial }
DEKLARASI
i, faktorial : integer
ALGORITMA:
faktorial ← 1;
for (i←1 to N) do
faktorial ← faktorial * i
i←i+1
return faktorial
Jurusan Teknik Elektro UIN Suska Riau
Halaman 36
Download