FUNGSI & PROSEDUR Pertemuan ke-12 dan 13 Deskripsi Tujuan Instruksional Referensi Review Lingkup Definisi Fungsi & Prosedur Deklarasi Fungsi & Prosedur Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++ Yang Harus diperhatikan dalam penulisan Fungsi & Prosedur Jenis Parameter Passing Parameter Studi Kasus Perbandingan Fungsi & Prosedur Pedoman Penulisan Fungsi & Prosedur Kelebihan Fungsi & Prosedur Tugas Rumah Overview Jurusan Teknik Informatika III - 2 Universitas Widyatama 1
Materi ini mempelajari Fungsi dalam Bahasa C/C++ Prosedur dalam Bahasa C/C++ Deskripsi Jurusan Teknik Informatika III - 3 Universitas Widyatama Mahasiswa diharapkan dapat Menjelaskan pengertian dan manfaat fungsi dan prosedur, serta cara penulisannya dalam program Menjelaskan lingkup variabel serta passing parameter Menjelaskan penggunaan fungsi dan prosedur dalam Bahasa C/C++ Menggunakan fungsi dan prosedur dalam Bahasa C/C++ Menjelaskan perbandingan fungsi dan prosedur Menjelaskan perbandingan aplikasi yang menggunakan fungsi/ prosedur dan tidak menggunakan fungsi/ prosedur Tujuan Instruksional Jurusan Teknik Informatika III - 4 Universitas Widyatama 2
1. Hartono, Jogiyanto, Konsep Dasar Pemorgraman Bahasa C. Andi, Yogyakarta, 2000 2. Hartanto, Budi, Memahami Logika Pembuatan Program C Secara Mudah, Andi, Yogyakarta, 2004 3. Yatini B., Indra; Nasution, Erliansyah, Algoritma & Struktur Data dengan C++, Graha Ilmu,Yogyakarta, 200 4. Deitel, C How To Program 4 th Edition,Pearson-Prentice Hill, 2004. Solichin, Achmad, Pemrograman Bahasa C dengan Turbo C, IlmuKomputer.com,2003 Referensi Jurusan Teknik Informatika III - Universitas Widyatama Lokal/Otomatis Dikenali/ hanya dapat digunakan di satu blok fungsi tempat variabel dideklarasikan Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap ketika proses eksekusi terhadap fungsi berakhir. Tidak ada inisialisasi secara otomatis (saat variabel diciptakan nilainya random). Dideklarasikan dengan menambahkan kata auto (opsional). Global/Eksternal Dikenali/dapat digunakan di seluruh blok program sehingga dapat diakses oleh semua fungsi. Jika tidak diberi nilai awal secara otomatis berisi nilai nol. Dideklarasikan dengan menambahkan kata extern (opsional). Review Lingkup Jurusan Teknik Informatika III - 6 Universitas Widyatama 3
Statis yang menempati ruang memori komputer secara permanen, sehingga Nilai variabel statis tidak akan hilang walau eksekusi terhadap fungsi telah berakhir. Jika bersifat internal (lokal), maka variabel hanya dikenal oleh fungsi tempat variabel dideklarasikan. Jika bersifat eksternal (global), maka variabel dapat dipergunakan oleh semua fungsi yang terletak pada program yang sama. Inisialisasi hanya perlu dilakukan sekali saja, yaitu pada saat fungsi dipanggil pertama kali. Jika tidak diberi nilai awal secara otomatis berisi nilai nol. Dideklarasikan dengan menambahkan kata static. Cara pendeklarasian static tipe_data nama_variabel; Register biasa yang berada di memori komputer dan disimpan di register CPU Hanya dapat diterapkan pada variabel lokal yang bertipe int dan char. Digunakan untuk mengendalikan proses perulangan (looping). Proses perulangan akan lebih cepat karena variabel register memiliki kecepatan yang lebih tinggi dibandingkan variabel biasa. Dideklarasikan dengan menambahkan kata register. Cara pendeklarasian register tipe_data nama_variabel Review Lingkup Jurusan Teknik Informatika III - 7 Universitas Widyatama int A,B; register double Memory; () float Y,X; static long int F = 1; int D; Lokal Global Lokal Register Statis Review Lingkup Jurusan Teknik Informatika III - 8 Universitas Widyatama 4
Sub program yang dapat dipanggil dari fungsi lain dan dapat mengembalikan suatu nilai ke fungsi yang memanggilnya 3 Bagian dari program yang digunakan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya 1 Sebuah Prgogram yang bertujuan untuk mengerjakan tugas tertentu 2 Definisi Fungsi & Prosedur Jurusan Teknik Informatika III - 9 Universitas Widyatama Deklarasi Fungsi Tipe Output Fungsi Fungsi (Parameter Input) Deklarasi Prosedur void Prosedur Jurusan Teknik Informatika III - 10 Universitas Widyatama (Parameter Input, Parameter Output) Catatan Terdapat dua nilai yang berhubungan dengan fungsi & prosedur Argumen merupakan nilai/informasi yang akan dikirimkan ke fungsi/prosedur untuk diproses Parameter merupakan nilai/informasi yang diterima oleh fungsi tersebut (parameter input) atau merupakan nilai yang dikirimkan oleh fungsi/prosedur ke program yang memanggilnya Fungsi maksimum hanya bisa menghasilkan /mengembalikan satu nilai ke program yang memanggilnya Prosedur bisa menghasilkan/ mengembalikan lebih dari satu nilai ke program yang memanggilnya Deklarasi Fungsi & Prosedur
Penulisan fungsi/prosedur sebelum fungsi tipe_fungsi nama_fungsi(parameter input) Badan Fungsi void nama_prosedur(parameter input,parameter output) Badan Prosedur () Badan fungsi Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++ Jurusan Teknik Informatika III - 11 Universitas Widyatama Penulisan fungsi/prosedur setelah fungsi tipe_fungsi nama_fungsi(parameter input); void nama_prosedur(parameter input,parameter output); () Badan fungsi tipe_fungsi nama_fungsi(parameter input) Badan Fungsi void nama_prosedur(parameter input,parameter output) Badan Prosedur Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++ Jurusan Teknik Informatika III - 12 Universitas Widyatama 6
Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi dengan nilai keluaran bertipe integer. Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka diperlukan pendefinisian penentu tipe fungsi. Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return. Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya. Yang harus diperhatikan dalam penggunaan Fungsi & Prosedur Jurusan Teknik Informatika III - 13 Universitas Widyatama Parameter Formal float Tambah (float X, float Y) return (X+Y); Parameter Aktual () C = Tambah (A,B); Jurusan Teknik Informatika III - 14 Universitas Widyatama /Parameter yang akan dikirim ke suatu fungsi Parameter Aktual Jenis-Jenis Parameter Parameter Formal /Parameter yang ada pada suatu fungsi 7
Nilai dari parameter aktual akan disalin ke parameter formal. Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya. Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi. Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya. Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil. Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah variabel, elemen array atau konstanta saja. Passing Parameter (Passing Parameter by Value) Jurusan Teknik Informatika III - 1 Universitas Widyatama Ex Cara Penulisan di parameter formal Double Fak(int X); Cara Penulisan di parameter aktual A = ; Hasil = Fak(A); X memori sebelum fungsi dijalankan A Hasil 00 Fak X memori sebelum fungsi dijalankan A Hasil 00 Fak Passing Parameter (Passing Parameter by Value) 2 Jurusan Teknik Informatika III - 16 Universitas Widyatama 8
Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi. Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai datanya. Fungsi yang menerima kiriman alamat ini akan menggunakan alamat yang sama untuk mendapatkan nilai datanya. Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi. Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya. Pengiriman secara acuan tidak dapat dilakukan untuk suatu ungkapan. Passing Parameter (Passing Parameter by Reference) Jurusan Teknik Informatika III - 17 Universitas Widyatama Yang dikirimkan ke fungsi adalah nama dari suatu variabel Ex Cara Penulisan di parameter formal void Tukar (int &Bil1, int &Bil2); Cara Penulisan di parameter aktual A = ; B = 1; Tukar (A,B); memori sebelum fungsi dijalankan A B bantu 1 00 Tukar memori setelah fungsi dipanggil A/Bil1 B/Bil2 bantu 1 00 Tukar Passing Parameter (Passing Parameter by Reference) 2 Jurusan Teknik Informatika III - 18 Universitas Widyatama 9
Yang dikirimkan ke fungsi adalah alamat dari suatu variabel Ex Cara Penulisan di parameter formal void Tukar (int *Bil1, int *Bil2); Cara Penulisan di parameter aktual A = ; B = 1; Tukar (&A,&B); memori sebelum fungsi dijalankan A B Bil1 Bil2 bantu 1 00 01 02 Tukar Bil1 Bil2 Passing Parameter (Passing Parameter by Pointer) 2 Jurusan Teknik Informatika III - 19 Universitas Widyatama memori setelah fungsi dipanggil A B bantu 1 00 01 02 Tukar Perbandingan Parameter Tipe Data Output/nilai balik Input Hanya 1 Fungsi Tergantung output yang dihasilkan oleh fungsi Input & Output void (Tidak memiliki tipe data khusus) >= 1 Prosedur Perbandingan Fungsi & Prosedur Jurusan Teknik Informatika III - 20 Universitas Widyatama 10
Fungsi harus independen Satu fungsi hanya mengerjakan satu tugas saja Gunakan semaksimal mungkin fasilitas input dan output yang disediakan oleh fungsi Pedoman Pembuatan Fungsi & Prosedur 2 Jurusan Teknik Informatika III - 21 Universitas Widyatama 1. Menjadikan program memiliki struktur yang jelas 1 sehingga program lebih konsisten dan lebih mudah dimengerti 2 2. Menghindari penulisan baris program secara berulang-ulang 1 sehingga program menjadi lebih efisien dan Ukuran Program menjadi lebih kecil 2 3. Perintah dalam blok program cenderung lebih independen 2 4. Reusable 2 Kelebihan Fungsi & Prosedur Jurusan Teknik Informatika III - 22 Universitas Widyatama 11