Bab 10 Fungsi.

Slides:



Advertisements
Presentasi serupa
Fungsi Konsep Pemrograman.
Advertisements

Pemrogramman Terstruktur
STRUKTUR DATA (5) Pointer dan Function
Fungsi, Parameter, Rekursi Daniel Riano Kaparang Book reference: Jogiyanto. Konsep Dasar Pemrograman Bahasa C. Andi Star. Yogyakarta Kristanto Andri.
Fungsi (lanjutan) Pertemuan ke-9 Bahasa C.
Subprogram Minggu V – VI
BAB IV SUB PROGRAM DAN FUNGSI
STRUKTUR DATA recursive function.
Review-Dasar Pemrograman Komputer
FUNGSI.
STRUKTUR DATA (5) Pointer dan Function
FUNGSI Teknik Informatika Universitas Muhammadiyah Malang 2011 Pemrogramman Terstruktur.
STRUKTUR DATA Pointer dan Function
Fungsi Fungsi.
Fungsi Pertemuan 8 Bahasa C.
Function User Function.
1 Pertemuan Fungsi Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
1. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Mendemonstrasikan penggunaan fungsi serta pengiriman parameter 2.
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
FUNGSI.
1 Pertemuan Fungsi Matakuliah: T0616 / Algoritma dan Pemrograman Tahun: 2007 Versi: 1/0.
PENGATURCARAAN C++ Penyelesaian Masalah
FUNGSI.
Prosedur dan fungsi By Serdiwansyah N. A..
Pemrograman Visual I Outline: Method Method Void & fungsi
Prosedur dalam C++.
Struktur Program TEE 2103 Algoritma dan Pemrograman
SUBALGORITMA.
Algoritme dan Pemrograman
FUNGSI.
Fungsi.
TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular
Apa itu Fungsi? Sebuah fungsi adalah modul program yang mengerjakan tugas atau aktivitas yang spesifik dan mengembalikan sebuah nilai dari tipe tertentu,
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Contoh-contoh Pemecahan Masalah TEE 2103 Algoritma & Pemograman
Algoritme dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Fungsi
Fungsi TEE 2103 Algoritma & Pemrograman Dosen: Abdillah, MIT
Fungsi Rekursif Algoritma dan Pemrograman II Teknik Informatika
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Remainder Senin depan mulai UTS Praktikum
Latihan #0 Dengan menggunakan pernyataan looping WHILE dan jumlah instruksi sesedikit mungkin, tuliskan cuplikan program (bukan program lengkap, hanya.
Castaka agus sugiato, M.Kom., M.CS
Struktur Data Khoiriya Latifa, M.Kom.
TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular
Algoritme dan Pemrograman
Fungsi, Parameter & Rekursi
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
FUNGSI.
Algoritma dan Pemrograman
Input Dan Output.
Algoritma dan Struktur Data
IT234 ALGORITMA DAN STRUKTUR DATA
TEL 2112 Dasar Komputer & Pemograman Prosedur
TEL 2112 Dasar Komputer & Pemograman Fungsi
TEL 2112 Dasar Komputer & Pemograman Prosedur
Algoritma dan Pemrograman I
TEL 2112 Dasar Komputer & Pemograman Fungsi
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Input dan Output Pertemuan ke-3 Bahasa C.
Variabel dan Tipe Data TEE 2103 Algoritma & Pemrograman
Algoritma Rekursif Alpro-2.
FUNGSI.
Bab 2 Alkhwarizmi.
Pengoperasi dan Ungkapan
ALGORITHM & DATA STRUCTURE BY : SUZILA YUSOF
Pengenalan kepada Bahasa C
Bab 5 Input dan Output.
PERTEMUAN V F U N G S I Tujuan membuat suatu fungsi
Bab 11 Tatasusunan.
Transcript presentasi:

Bab 10 Fungsi

Rekabentuk Atas Bawah Aturcara C untuk menyelesaikan masalah yang kecil biasanya ditulis dalam satu fungsi sahaja  fungsi utama yang dipanggil main Masalah yang besar dan kompleks perlu dipecahkan kepada submasalah-submasalah (pemecahan berstruktur)  boleh digambarkan dengan carta berstruktur Dalam carta berstruktur, masalah yang paling besar berada paling atas, manakala submasalah yang paling kecil berada paling bawah  rekabentuk atas bawah

Contoh Carta Berstruktur Cari & cetak huruf terawal di antara 3 huruf yang diberi Baca 3 huruf Cari huruf terawal Cetak keputusan huruf_3 huruf_2 huruf_1 huruf_Terawal Banding huruf_1 Dengan huruf_2, Simpan yg terawal Dlm huruf_Terawal Banding huruf_3 Dengan huruf_Terawal, Simpan yang terawal 3.2 3.1

Rekabentuk Atas Bawah Setiap masalah dan submasalah dalam carta berstruktur dirujuk sebagai modul yang akan dikodkan sebagai fungsi Fungsi yang paling atas merupakan fungsi utama (main) Fungsi main akan memanggil setiap fungsi yang berada di bawahnya, dan setiap fungsi akan memanggil fungsi yang berada di bawahnya dan seterusnya

Fungsi Takrifan Pengguna Fungsi yang direka, ditulis atau ditakrifkan oleh pengaturcara Setiap fungsi takrifan pengguna perlu mempunyai takrifan dan prototaip Setiap fungsi ini juga perlu dipanggil untuk melaksanakan kod-kod yang telah ditakrifkan dalam fungsi tersebut Dalam aturcara C, prototaip fungsi ditulis sebelum fungsi main, manakala takrifan fungsi ditulis selepas fungsi main

Takrifan Fungsi jenis_data nama_fungsi( senarai_takrifan_parameter ) { Bentuk takrifan fungsi adalah seperti berikut: jenis_data nama_fungsi( senarai_takrifan_parameter ) { pengisytiharan_pembolehubah_setempat; pernyataan; } Kepala fungsi – pernyataan sebelum tanda ‘{‘ Badan fungsi – semua penyataan yang berada di antara tanda ‘{‘ dan ‘}’ Jenis_data – jenis bagi suatu nilai yang dikembalikan oleh fungsi, contohnya int, float, char, dan void digunakan jika fungsi tidak mengembalikan sebarang nilai

Takrifan Fungsi Nama_fungsi – nama yang diberikan oleh pengaturcara mengikut petua pencam: Bermula dengan abjad Tidak melebihi 31 aksara Hanya terdiri daripada abjad, digit dan tanda ‘_’ sahaja Senarai_takrifan_parameter – pengisytiharan parameter yang diterima oleh fungsi Pengistiharan lebih dari satu parameter dipisahkan oleh tanda ‘,’ ‘Void’ digunakan jika tiada parameter yang terlibat

Takrifan Fungsi Suatu fungsi boleh mempunyai pembolehubahnya sendiri – pembolehubah setempat yang hanya digunakan dalam fungsi tersebut Pembolehubah setempat ini ditakrifkan dalam badan fungsi Contoh takrifan fungsi: void lukis_garissilang(void) { printf(“ /\ \n”); printf(“ / \ \n”); printf(“ / \ \n”); } Fungsi ini tidak menerima sebarang parameter dan tidak memulangkan sebarang nilai

Contoh Takrifan Fungsi void lukis_garisdasar( int n ) { int i; for ( i = 1; i<=n; i++) printf(“-”); } Contoh 3: float kira_luas( int jejari ) { float luas; luas = (22.0/7.0) * jejari * jejari; return luas;

Prototaip Fungsi Prototaip fungsi memberitahu pengkompil C maklumat awal tentang parameter yang akan dihantar kepada dan nilai yang akan dikembalikan oleh fungsi tersebut Sintaks prototaip fungsi: jenis_data nama_fungsi( senarai_takrifan_parameter); Bentuk ini menyerupai kepala takrifan fungsi Contoh: int lukisSegiEmpat( int lebar, int tinggi ); Prototaip di atas boleh juga ditulis seperti berikut: int lukisSegiEmpat( int, int );

Panggilan Fungsi nama_fungsi( senarai_parameter_sebenar ); Sintaks untuk panggilan fungsi: nama_fungsi( senarai_parameter_sebenar ); Nama_fungsi – nama fungsi yang ingin dipanggil Senarai_parameter_sebenar – senarai parameter yang ingin dihantar kepada fungsi yang dipanggil Bilangan parameter sebenar mestilah sama dengan bilangan parameter yang ditakrifkan dalam fungsi Contoh: lukis_garisdasar(5); Jika tiada parameter yang terlibat, ruang dibiarkan kosong, contohnya; lukis_garissilang();

Contoh Penggunaan Fungsi (1) Masalah : Melukis bangunan Analisis : Bangunan boleh dilukis mengikut langkah-lengkah berikut: Lukis bumbung Lukis tingkat ( 3 kali ) Lukis dasar

Contoh Penggunaan Fungsi (1) Carta berstruktur: Lukis bangunan Lukis bumbung Lukis tingkat Lukis dasar

Contoh Penggunaan Fungsi (1) /* Melukis bangunan */ #include <stdio.h> void lukis_bumbung(void); void lukis_tingkat(void); void lukis_dasar(void); void main (void) { lukis_bumbung(); lukis_tingkat(); lukis_dasar(); } int i; lukis_bumbung(); for (i=0; i<3; i++) lukis_tingkat(); lukis_dasar();

Contoh Penggunaan Fungsi (1) void lukis_bumbung(void) { printf(“ /\ \n”); printf(“ / \ \n”); } void lukis_tingkat(void) { printf(“------\n”); printf(“| | \n”); void lukis_dasar(void) {

Fungsi dengan parameter Terdapat dua istilah yang biasa digunakan untuk merujuk parameter : Parameter sebenar Parameter formal Parameter sebenar merujuk kepada parameter yang disenaraikan dalam pernyataan panggilan fungsi Parameter formal merujuk kepada parameter yang disenaraikan dalam kepala takrifan fungsi Bilangan dan jenis parameter sebenar dan parameter formal mesti sepadan Apabila suatu fuungsi dipanggil, nilai parameter sebenar akan disalin kepada parameter formal Sebarang perubahan yang berlaku kepada parameter formal tidak akan memberi kesan kepada parameter sebenar

Fungsi yang Mengembalikan Nilai Fungsi yang mengembalikan nilai mesti mempunyai pernyataan return Sintaks: return; return <ungkapan>; Pernyataan return biasanya ditulis sebelum berakhirnya badan fungsi  ketika kawalan aturcara dikembalikan kepada fungsi yang memanggil atau aturcara utama Contoh: return 0; return luas; return (a + b + c);

Fungsi yang Mengembalikan Nilai Cara panggilan fungsi yang mengembalikan nilai berbeza dengan panggilan fungsi yang lain Penggilan fungsi adalah dalam bentuk penyataan umpukan Sintaks panggilan fungsi : pembolehubah = nama_fungsi(senarai_parameter_sebenar); Jenis pembolehubah haruslah sama dengan jenis nilai yang dikembalikan oleh fungsi tersebut

Contoh Penggunaan Fungsi (2) #include <stdio.h> float kira_luas(int); int main() { int j; float luas_bulatan1; float luas_bulatan2; luas_bulatan1 = kira_luas(5); printf(“Luas bulatan 1 %f”, luas_bulatan1); printf(“Masukkan nilai jejari: “); scanf(“%d”, &j); luas_bulatan2 = kira_luas(j); printf(“Luas bulatan 2 %f”, luas_bulatan2); return 0; }

Contoh Penggunaan Fungsi (2) float kira_luas(int jejari) { float luas; luas = (22.0/7.0) * jejari * jejari; return luas; }

Fungsi Pustaka Dalam C Bahasa C menyediakan koleksi fungsi pustaka yang boleh digunakan dalam aturcara Untuk menggunakan fungsi-fungsi ini, pengisytiharan prototaip fungsi yang diisytiharkan secara berkumpulan dalam fail header ( fail .h ) tertentu perlu dipanggil Contoh fungsi pustaka yang biasa digunakan ialah printf( ) scanf( ) Prototaip printf( ) dan scanf( ) diisytiharkan dalam fail stdio.h

Fungsi Pustaka Dalam C Antara koleksi fungsi pustaka yang disediakan adalah fungsi untuk manipulasi aritmetik Prototaip fungsi-fungsi ini kebanyakannya diisytiharkan dalam fail math.h Fungsi-fungsi ini adalah fungsi yang mengembalikan nilai, contoh menggunakan fungsi sqrt: y = sqrt(x) (pernyataan panggilan fungsi) y – p/ubah yang akan menyimpan nilai yang dikembalikan oleh fungsi x – argumen Jika nilai argumen x yang dihantar ialah 100, nilai y selepas pernyataan ini dilaksanakan ialah 10 I ini

Fungsi Pustaka Dalam C Fungsi ceil(x) Memulangkan nombor bulat terkecil yang tidak kurang kurang daripada argumen Contoh: y = ceil(x); jika x = 45.23, y = 46.0 juga boleh ditulis sebagai : y = ceil(45.23); Jenis argumen x  float/double Jenis p/ubah y  float/doule Sila rujuk Buku Pengaturcaraan C, jadual 10.1

Skop Pembolehubah Terdapat dua jenis skop pembolehubah: setempat (local) dan sejagat (global) Pembolehubah setempat: Hanya boleh dikenali dan dimanipulasi dalam blok di mana ia diisytiharkan Blok ditandakan dengan ‘{‘ dan ‘}’ Pembolehubah sejagat Dikenali dan boleh dimanipulasi oleh keseluruhan aturcara, termasuk fungsi takrifan pengguna Pembolehubah ini tidak perlu dihantar sebagai argumen kepada fungsi yang akan menggunakannya Diisytiharkan sebelum fungsi main( )

Skop Pembolehubah (Contoh) #include <stdio.h> void kuasadua(float, float); int x; int main(void) { float a, b; a = 3; b = 20; x = 2; kuasadua(a, b); printf(“%1.1f kuasadua ialah %2.1%f\n”, a, b ); return 0; } void kuasadua( float i, float j) { j = i *i; x = 4; x 4 main a 3 b 20 kuasadua i 3 j 9

Fungsi Rekursi Fungsi yang memanggil dirinya sendiri Fungsi rekursi digunakan untuk menyelesaikan masalah yang boleh dipecahkan kepada submasalah yang menyerupai masalah asal, secara berulang-ulang sehingga dapat diselesaikan Contohnya, mendapatkan nilai faktorial Rumus faktorial boleh ditulis sebagai: 1, apabila n = 0 n! = n * (n-1) * … * 2 * 1, apabila n >= 1 Fungsi faktorial boleh ditulis sebagai: faktorial(n) = n!

Contoh Fungsi Rekursi (Faktorial) Faktorial(n) = n! = n * (n-1) * (n-2) * … * 2 * 1 = n * (n-1)! = n * faktorial(n-1) Faktorial(0) = 0! = 1 Faktorial(1) = 1! = 1 * 1= 1 * 0! Faktorial(2) = 2! = 2 * 1= 2 * 1! Faktorial(3) = 3! = 3 * 2 * 1 = 3 * 2! Faktorial(4) = 4! = 4 * 3 * 2 * 1 = 4 * 3! Faktorial(5) = 5! = 5 * 4 * 3 * 2 * 1 = 5 * 4!

Contoh Fungsi Rekursi (Faktorial) y = 5 * faktorial(5-1); 4 * 3 * 2 * 1 faktorial(4) y = 4 * faktorial(4-1); 3 * 2 * 1 faktorial(3) y = 3 * faktorial(3-1); 2 * 1 faktorial(2) y = 2 * faktorial(2-1); 1 faktorial(1) y = 1 * faktorial(1-1);

Implementasi Fungsi Faktorial #include <stdio.h> int main(void) { int n; int faktorial(int); printf(“Masukkan nilai n “); scanf(“%d”, &n); if (n < 0) printf(“n tidak boleh negatif\n”); else printf(“%d! = %d\n”, faktorial(n)); } int faktorial( int n ) { if (n == 0) return 1; return (n * faktorial(n-1));