FUNGSI & PROSEDUR Pertemuan ke-12 dan 13
• • • • • • • •
Deskripsi Tujuan Instruksional Referensi Review Lingkup Variabel 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, 2005 4. Deitel, “C How To Program th 4 Edition”,Pearson-Prentice Hill, 2004 5. Solichin, Achmad, “Pemrograman Bahasa C dengan Turbo C”, IlmuKomputer.com,2003
Referensi Jurusan Teknik Informatika
III - 5
Universitas Widyatama
• Variabel 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).
• Variabel 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 Variabel 5 Jurusan Teknik Informatika
III - 6
Universitas Widyatama
3
•
•
Variabel Statis – Variabel 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; Variabel Register – Variabel 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 Variabel 5 Jurusan Teknik Informatika
III - 7
Universitas Widyatama
int A,B; register double Memory; main() { float Y,X; static long int F = 1; { int D; Variabel Lokal } }
Variabel Global
Variabel Lokal
Variabel Register
Variabel Statis
Review Lingkup Variabel 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 Nama Fungsi (Parameter Input)
• Deklarasi Prosedur void
Nama Prosedur
(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 Jurusan Teknik Informatika
III - 10
Universitas Widyatama
5
• Penulisan fungsi/prosedur sebelum fungsi main tipe_fungsi nama_fungsi(parameter input) { Badan Fungsi } void nama_prosedur(parameter input,parameter output) { Badan Prosedur } main() { Badan fungsi main }
Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++ Jurusan Teknik Informatika
III - 11
Universitas Widyatama
• Penulisan fungsi/prosedur setelah fungsi main tipe_fungsi nama_fungsi(parameter input); void nama_prosedur(parameter input,parameter output); main() { Badan fungsi main } …………… 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 5 Jurusan Teknik Informatika
III - 13
Universitas Widyatama
• Parameter Formal float Tambah (float X, float Y) { return (X+Y); }
• Parameter Aktual main() { ……………… ……………… C = Tambah (A,B); ……………… }
Parameter Formal Variabel /Parameter yang ada pada suatu fungsi
Variabel /Parameter yang akan dikirim ke suatu fungsi Parameter Aktual
Jenis-Jenis Parameter Jurusan Teknik Informatika
III - 14
Universitas Widyatama
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) 5 Jurusan Teknik Informatika
III - 15
Universitas Widyatama
• Ex : – Cara Penulisan di parameter formal Double Fak(int X); – Cara Penulisan di parameter aktual A = 5; Hasil = Fak(A); Isi memori sebelum fungsi dijalankan Nama Variabel
Isi
Alamat
A
5
100
Hasil
?
102
Keterangan Lokasi memori untuk fungsi main
Isi memori sebelum fungsi dijalankan Nama Variabel
Isi
Alamat
A
5
100
Hasil
?
102
?
500 :
Lokasi memori untuk fungsi main
:
: X
Keterangan
Lokasi memori untuk fungsi Fak
X
5
500 :
Lokasi memori untuk fungsi 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) 5 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 = 5; B = 1; Tukar (A,B); Isi memori sebelum fungsi dijalankan Nama Variabel
Isi
Alamat
A
5
100
B
1
102
Keterangan Lokasi memori untuk fungsi main
Isi memori setelah fungsi dipanggil Nama Variabel
Isi
Alamat
A/Bil1
5
100
B/Bil2
1
102
: bantu
Lokasi memori untuk fungsi main
:
500 :
Keterangan
Lokasi memori untuk fungsi Tukar
bantu
500 :
Lokasi memori untuk fungsi 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 = 5; B = 1; Tukar (&A,&B); Isi memori sebelum fungsi dijalankan Nama Variabel
Isi
Alamat
A
5
100
B
1
102
Bil1
?
500
Bil2
?
501
bantu
?
502
:
Keterangan
Isi memori setelah fungsi dipanggil Nama Variabel
Isi
Alamat
Lokasi memori untuk fungsi main
A
5
100
B
1
102
Lokasi memori untuk fungsi Tukar
Bil1
100
500
Bil2
102
501
?
502
Lokasi memori untuk fungsi main
:
bantu
Keterangan
Lokasi memori untuk fungsi Tukar
:
Passing Parameter (Passing Parameter by Pointer) 2 Jurusan Teknik Informatika
III - 19
Perbandingan Parameter Tipe Data
Output/nilai
Universitas Widyatama
Fungsi
Prosedur
Input
Input & Output
Tergantung output yang dihasilkan oleh fungsi Hanya 1
void (Tidak memiliki tipe data khusus) >= 1
balik …
…
…
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 jelas1 sehingga program lebih konsisten dan lebih mudah dimengerti2 2. Menghindari penulisan baris program secara berulang-ulang1 sehingga program menjadi lebih efisien dan Ukuran Program menjadi lebih kecil2 3. Perintah dalam blok program cenderung lebih independen2
4. Reusable2
Kelebihan Fungsi & Prosedur Jurusan Teknik Informatika
III - 22
Universitas Widyatama
11