• Tidak ada hasil yang ditemukan

fungsi dan limit fungsi struktur (1)

N/A
N/A
Protected

Academic year: 2018

Membagikan "fungsi dan limit fungsi struktur (1)"

Copied!
17
0
0

Teks penuh

(1)

I. Tujuan

Setelah Menyelesaikan praktek ini mahasiswa dapat :

1. Menjelaskan tentang langkah-langkah pembuatan fungsi.

2. Menjelaskan tentang bentuk umum dan khusus tentang fungsi tersebut.

3. Membuat algoritma dari struktur fungsi yang melibatkan permasalahan-permasalahan yang ada.

II. Alat dan Bahan

 PC minimal P-233 MMX

 Disket DOS/Start Up Win98 , Program Bahasa Pascal, Disket Data dan Word

Processing.

III. Dasar Teori

Fungsi (function) adalah modul program yang memberikan/mengembalikan (return) sebuah nilai dan tipe data tertentu (tipe dasar atau tipe bentukan). Definisi fungsi dalam program bersesuaian dengan definisi fungsi di dalam matematika. Ada beberapa hal yang harus diketahui untuk pembuatan fungsi, antara lain :

1. Definisi Fungsi 2. Pemanggilan Fungsi

1. Definisi Fungsi

Struktur fungsi pada prinsipnya sama dengan struktur algoritma, dimana ada bagian JUDUL (header) yang terdiri atas nama fungsi dan komentar yang menjelaskan spesifikasi fungsi tersebut, bagian DEKLARASI dan BADAN Fungsi.

Notasi Algoritma pendefinisian struktur fungsi

Function NamaFungsi (input daftar_parameter_formal) tipe hasil

{spesifikasi fungsiberisi penjelasan tentang yang dilakukan fungsi ini }

DEKLARASI

{semua nama yang dipakai dalam fungsi dan hanya berlaku lokal di dalam fungsi}

DESKRIPSI

(2)

Return hasil {pengembalian nilai yang dihasilkan fungsi}

Contoh fungsi untuk menghasilkan nilai f(x)=2x2 + 5x – 8; xR

Function F (input x : real ) real

{mengembalikan nilai f(x)=2x2 + 5x – 8; xR

DEKLARASI

{tidak ada}

DESKRIPSI f2*x*x+

Return f

2. Pemanggilan Fungsi

Fungsi bukanlah program yang berdiri sendiri, jadi tidak dapat dieksekusi secara langsung.

Intruksi yang ada di dalam fungsi dapat dilaksanakan hanya bila fungsi tersebut diakses. Fungsi diakses dengan cara memanggil namanya dari program pemanggil{program utama atau modul program lain}

Contoh pemanggilan Fungsi F(x)

Algoritma fungsi_f {contoh pemanggilan fungsi}

{algoritma utama tentang cara memanggil fungsi f(x)}

DEKLARASI

function F(input x:real)real

{ mengembalikan nilai f(x)=2x2 + 5x – 8; xR } ………

X:real

DESKRIPSI

{buat header tabel}

Write (‘_ _ _ _ _ _ _ _ _ _’) Write (‘ x f(x) ’)

Write (‘_ _ _ _ _ _ _ _ _ _’)

(3)

While x 15.0 do

Write (x,’ ‘,f(x)

Xx+0.2 Endwhile

Write (‘_ _ _ _ _ _ _ _ _ _’)

Contoh implementasi :

IV. Langkah Kerja

1. Hidupkan komputer anda !

2. Jalankan Microsoft Word, dengan cara menekan tombol StartProgramMS Office 2000Microsoft Word. Selanjutnya tuliskan algoritma dari permasalahan berikut ini dan simpan dalam satu nama file : Lat07.doc.

3. Kasus 1 :

Buatlah algoritma dengan model fungsi dan tuliskan langsung dalam satu algoritma utama untuk mengetahui suatu bilangan bulat yang dimasukkan dari keyboard itu bilangan ganjil atau genap. Dimana fungsi yang dibangun menghasilkan data hasil bertipe boolean.

Program ganjil_genap

(4)

DEKLARASI a:integer b:boolean

Function ganjilgenap(input x:int) → boolean

{ mengembalikan nilai ganjil genap dengan tipe Boolean } DEKLARASI

If ganjilgenap(a) = true Then output(‘genap’) Else

output(‘ganjil’) End If

4. Kasus 2 :

Buatlah algoritma berupa fungsi dan algoritma utama untuk mencari nilai maksimum dari tiga nilai yaitu x , y dan z

Algoritma Nilai_Maks

{Mencari nilai maksimum dari tiga nilai menggunakan fungsi} Deklarasi

x,y,z:integer

(5)

Deskripsi input(x) input(y) input(z)

output(cari_maks(x,y,z))

5. Kasus 3 :

Rubahlah prosedur hitung luas persegi panjang berikut ini menjadi suatu fungsi:

Algoritma L_persegipanjang

{program utama hitung Luas Persegi Panjang}

DEKLARASI A,B,C : Integer

Procedure HitungLuasPersegipanjang (Input Panjang, Lebar : integer, ouput luas :integer)

{menghitung luas persegi panjang dengan rumus Luas=panjang x lebar}

{K.Awal : sembarang}

{K.Akhir : Luas berisi luas persegi panjang. Nilai Luas dikirim ke titik pemanggilnya}

DEKLARASI

{tidak ada}

DESKRIPSI

Read (panjang,lebar) {parameter input data} Luas panjang*lebar

DESKRIPSI { Algoritma utama }

A 10 B 5

Write(‘Menghitung Luas Persegi Panjang’) HitungLuasPersegipanjang(A,B,C) HitungLuasPersegipanjang(2,15,C) Write(‘Selesai’)

Fungsi :

Algoritma Luas_persegipanjang

{program utama menghitung Luas Persegi Panjang}

Deklarasi

A,B,C : Integer

Function HitungLuasPersegipanjang (Input Panjang, Lebar : integer) → Integer

(6)

{K.Awal : terserah}

Luas ← panjang * lebar return Luas

Deksripsi

A ← 10 B ← 5

output(‘Menghitung Luas PersegiPanjang’)

output(HitungLuasPersegipanjang(A,B))

output(HitungLuasPersegipanjang(10,5))

output(‘Selesai’)

6. Kasus 4 :

Buatlah algoritma dengan model fungsi dan tuliskan langsung dalam satu algoritma utama untuk menentukan nama-nama bulan berdasarkan kode angka bulan dalam satu tahun. Dimana fungsi yang dibangun menghasilkan data hasil bertipe string.

Algoritma namabulan

{menampilkan nama bulan berdasarkan kode bulan yang diinputkan} Deklarasi

kode : integer

function namaBulan (input no : integer) → string

{fungsi untuk menampilkan nama bulan dari kode bulan yang di inputkan} Deklarasi

{ tidak ada} Deskripsi Case no of

(7)

9: output (‘Nama bulan yang pertama: September’) 10: output (‘Nama bulan yang pertama: Oktober’) 11: output (‘Nama bulan yang pertama: November’) 12: output (‘Nama bulan yang pertama: Desember’) otherwise

output (‘hanya terdapat 12 bulan dalam satu tahun’) endcase

Deskripsi

Output (‘Mengetahui nama bulan secara urut dalam satu tahun’) output (‘Masukan kode bulan (1..12) : ’)

input(kodeBln)

output(bulan(kodeBln))

7. Cobalah anda implementasikan permasalahan nomor 3, 4, 5, dan 6 ke dalam bentuk program dengan menggunakan bahasa pemrograman C.

Implementasi kasus 1

Fungsi bilangan genap dan ganjil #include <stdio.h>

#include <boolean.h> boolean jenisbil (int x) {

printf("Masukan suatu bilangan : "); scanf("i",&a);

if (jenisbi(a))

{printf("Angka Genap");} else

{printf("Angka Ganjil");} }

Implementasi kasus 2

(8)

if(a > b && a > c) {

printf("Nilai Maks dari %i %i %i adalah %i",a,b,c,a); }

else if(b > a && b > c) {

printf("Nilai Maks dari %i %i %i adalah %i",a,b,c,b); }

else {

printf("Nilai Maks dari %i %i %i adalah %i",a,b,c,c); }

printf("Masukkan bilangan pertama= ");scanf("%i",&x); printf("Masukkan bilangan kedua = ");scanf("%i",&y); printf("Masukkan bilangan ketiga = ");scanf("%i",&z); maks(x,y,z);

}

Implementasi kasus 3

#include <stdio.h>

int HitungLuasPersegipanjang(int panjang, int lebar) {

int Luas;

Luas = panjang * lebar; return Luas;

printf("Menghitung Luas Persegi Panjang\n");

printf("Luas = %i\n",HitungLuasPersegipanjang(A,B)); printf("Luas = %i\n",HitungLuasPersegipanjang(2,15)); printf("Selesai");

(9)

Implementasi kasus 4 #include <stdio.h>

int namaBln(int no) {

switch(no) {

case 1 :

printf("Nama bulan yang pertama : Januari\\n"); break;

case 2 :

printf("Nama bulan yang kedua : Februari\n"); break;

case 3 :

printf("Nama bulan yang ketiga : Maret\n"); break;

case 4 :

printf("Nama bulan yang ke empat : April\n"); break;

case 5 :

printf("Nama bulan yang kelima : Mei\n"); break;

case 6 :

printf("Nama bulan yang ke enam : Juni\n"); break;

case 7 :

printf("Nama bulan yang ke tujuh : Juli\n"); break;

case 8 :

printf("Nama bulan yang ke delapan : Agustus\n"); break;

case 9 :

printf("Nama bulan yang ke sembilan : September\n"); break;

case 10 :

printf("Nama bulan yang ke sepuluh : Oktober\n"); break;

case 11 :

printf("Nama bulan yang ke sebelas : November\n"); break;

case 12 :

printf("Nama bulan yang ke duabelas : Desember"); break;

default :

printf("Hanya terdapat 12 bulan dalam atu tahun"); }

printf("Mengetahui nama bulan secara urut dalam satu tahun"); printf("Masukan kode bulan : ");scanf("%i",&kodeBln); namaBln(kodeBln);

(10)
(11)

V. Soal dan Pertanyaan

1. Menurut anda kapankah suatu modul program itu dideklarasikan sebagai suatu fungsi ? sertai jawaban anda dengan contoh permasalahan dan penyelesaiannya dalam program.

2. Menurut anda kapankah suatu modul program itu dideklarasikan sebagai suatu prosedur ? sertai jawaban anda dengan contoh permasalahan dan penyelesaiannya dalam program.

3. Dapatkah suatu prosedur diubah ke dalam bentuk fungsi ? berilah alasannya dan sertai pula dengan contoh permasalahan.

4. Apa yang anda ketahui tentang rekursi ? Berilah contoh permasalahan dan penyelesaiannya dalam program.

(12)

VI. Penutup

(13)

VII. Daftar Pustaka

Jobsheet Algo 07.pdf

(14)

VIII. Lampiran

Jawaban :

1. Modul di deklarasikan ssebagai fungsi ketika :

program yang dibuat terdapat perhitungan aritmatik, dan perhitungan tersebut digunakan berulang kali.

Contoh :

Algoritma L_PersegiPanjang

{Menghitung luas persegi panjang menggunakan function}

Kamus

panjang, lebar : integer

function L (input panjang : int, lebar : int) →int

L panjang *lebar

Algoritma

input(panjang) input(lebar) L(panjang , lebar) Output(L)

2. Suatu modul di deklarasikan sebagai prosedure ketika :

Suatu program yang besar dan rumit, akan dibuat menjadi bagian-bagian program kecil, sehingga mudah dalam mendeteksi error dan tidak semrawur dalam satu fungsi.

Contoh :

Algoritma Liburan

{Program yang digunakan menampilkan kata selamat sebanyak 20 kali}

DEKLARASI

I = integer

Procedur Liburan

{Prosedur untuk menampilkan kalimat “Selamat libur akhir semester satu! \m/”}

(K. Awal = sembarang}

{K. Akhir = ucapan tercetak sebanyak 20 kali}

DEKLARASI

3. Dalam suatu fungsi dapat diubah menjadi prosedur yaitu ketika :

program tersebut terdapat proses perhitungan, tetapi bila tidak terdapat proses perhitungan (terdapat operasilogika ataupun aritmatika)

(15)

Dalam bentuk prosedur : Algoritma L_persegipanjang

{program utama untuk menghitung Luas Persegi Panjang}

DEKLARASI

A,B,C : Integer

Procedure HitungLuasPersegipanjang (Input Panjang, Lebar : integer, ouput luas :integer)

{menghitung luas persegi panjang dengan rumus Luas=panjang x lebar} {K.Awal : sembarang}

{K.Akhir : Luas berisi luas persegi panjang. Nilai Luas dikirim ke titik pemanggilnya}

DEKLARASI

{tidak ada}

DESKRIPSI

Read(panjang,lebar) {parameter input data} Luas ← panjang*lebar

DESKRIPSI { Algoritma utama } A ← 6

B ← 8

Write (‘Menghitung Luas PersegiPanjang’) HitungLuasPersegipanjang(A,B,C)

HitungLuasPersegipanjang(2,15,C) Write(‘Selesai’)

Dalam bentuk fungsi

Algoritma Luas_persegipanjang

{program utama untuk menghitung Luas Persegi Panjang}

DEKLARASI

A,B,C : Integer

Function HitungLuasPersegipanjang (Input Panjang, Lebar : integer, ) → integer {menghitung luas persegi panjang dengan rumus Luas=panjang x lebar}

{K.Awal : sembarang}

(16)

DEKLARASI

{tidak ada}

DESKRIPSI

Read(panjang,lebar) {parameter input data} Luas ← panjang*lebar

Return Luas

DESKRIPSI { Algoritma utama } A ← 6

B ← 8

Write(‘Menghitung Luas PersegiPanjang’) HitungLuasPersegipanjang(A,B)

HitungLuasPersegipanjang(9,10)

Print (“Luas persegi panjang adalah ”, Luas) Write(‘Selesai’)

4. Rekursi adalah

Perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana dalam sebuah fungsi terdapat intruksi yang memanggil fungsi itu sendri, atau lebih sering disebut memanggil dirinya sendiri.

using System;

namespace Rekursi {

class Aritmatika {

public static void Main(string[] args) {

Console.Clear();

Console.WriteLine("Menghitung faktorial n \n"); Console.Write("n = ");

int n = Int32.Parse(Console.ReadLine());

Aritmatika hitung = new Aritmatika();

(17)

else

return (n * faktorial(n-1)); }

catch (Exception e) {

Console.WriteLine(e.ToString()); return 1;

} } } }

Referensi

Dokumen terkait

1) Buatlah algoritma yang membaca sebuah bilangan bulat positif lalu menentukan apakah bilangan tersebut merupakan kelipatan 4. Kemudian, translasikan algoritma tersebut

Contoh 6.4.12.Misalkan S himpunan bilangan-bilangan bulat non-negatif, sedangkan T adalah himpunan bilangan-bilangan bulat, maka fungsi f:s f(s)=s+1 adalah fungsi yang injektif tetapi

Buatlah algoritma / fowchart untuk menginputkan 3 buah bilangan bulat dan tampilkan bilangan TERBESAR diantara ketiganya (dianggap ketiga bilangan nilainya berbeda)..

Buatlah algoritma / fowchart untuk menginputkan 10 buah bilangan bulat dan tampilkan bilangan TERBESAR diantara ketiganya (dianggap ketiga bilangan nilainya berbeda)..

Operasi yang Merupakan Fungsi...

Konstanta adalah bilangan atau angka yang (kadang) turut membentuk sebuah fungsitetapi berdiri sendiri sebagai bilangan dan tidak terkait paa suatu variabel

Sebuah fungsi dikatakan not invertible (tidak dapat dibalikkan) jika ia bukan fungsi yang berkoresponden satu-ke-satu, karena fungsi balikannya tidak ada... 64 Komposisi

1) Buatlah algoritma yang membaca sebuah bilangan bulat positif lalu menentukan apakah bilangan tersebut merupakan kelipatan 4. Kemudian, translasikan algoritma