Deklarasi Fungsi & Prosedur. • Cara Penulisan Fungsi & Prosedur dalam Bahasa
C/C++. • Yang Harus diperhatikan dalam penulisan Fungsi &. Prosedur.
FUNGSI & PROSEDUR Pertemuan ke-12 -13 Dosen Pembina: Danang Junaedi
• • • • • • • •
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 - 1
Universitas Widyatama
Materi ini mempelajari : • Fungsi dalam Algoritma dan Bahasa C/C++ • Prosedur dalam Algoritma dan Bahasa C/C++
Deskripsi Jurusan Teknik Informatika
III - 2
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 algoritma dan Bahasa C/C++ • Menggunakan fungsi dan prosedur dalam Bahasa algoritma dan C/C++ • Menjelaskan perbandingan fungsi dan prosedur • Menjelaskan perbandingan aplikasi yang menggunakan fungsi/ prosedur dan tidak menggunakan fungsi/ prosedur
Tujuan Instruksional III - 3
Universitas Widyatama
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 4thEdition”,PearsonPrentice Hill, 2004 5. Solichin, Achmad, “Pemrograman Bahasa C dengan Turbo C”, IlmuKomputer.com,2003 6. Rilgivia, Hevi, “Algoritma I – Fungsi”, Teknik Informatika – Universitas Widytama, 2009
Jurusan Teknik Informatika
III - 4
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
Referensi Jurusan Teknik Informatika
Jurusan Teknik Informatika
III - 5
Universitas Widyatama
Jurusan Teknik Informatika
III - 6
Universitas Widyatama
•
•
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
int A,B; register double Memory; main() { float Y,X; static long int F = 1; { int D; Variabel Lokal } }
III - 7
Universitas Widyatama
• Dalam menyelesaikan suatu masalah, sering kita melakukan penyelesaian dengan cara : a. Membagi masalah tersebut terlebih dahulu menjadi sub - sub masalah. b. Menyelesaian sub - sub masalah tersebut (modul - modul) c. Menggabungkan penyelesaian sub - sub masalah tersebut
Jurusan Teknik Informatika
III - 9
Universitas Widyatama
1. Fungsi dalam Algoritma – Deklarasi Fungsi : Function nama_fungsi (parameter masukan) : tipe hasil – Pemanggilan Fungsi : disertakan pada statement, contoh : • OUTPUT(nama_fungsi(parameter masukan)) • hasil hasil + nama_fungsi(parameter masukan) 2. Prosedur dalam Algoritma – Deklarasi Prosedur: • Procedure nama_prosedur (parameter masukan, parameter hasil) – Pemanggilan Prosedur, contoh : – nama_prosedur(parameter masukan,parameter hasil) – OUTPUT (parameter_hasil) • Parameter masukan : berupa parameter formal (boleh kosong) apabila tidak ada data yang diterima oleh fungsi atau prosedur.
Penggunaan Fungsi dan Prosedur Jurusan Teknik Informatika
III - 11
Universitas Widyatama
Variabel Statis
III - 8
Universitas Widyatama
• Fungsi adalah modul program yang mengembalikan/mengirimkan sebuah nilai, sedangkan Prosedur adalah modul program yang berisi rangkaian aksi dan menghasilkan efek netto yang terdefinisi • 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
Konsep Fungsi dan Prosedur Jurusan Teknik Informatika
Variabel Lokal
Variabel Register
Review Lingkup Variabel
Review Lingkup Variabel 5 Jurusan Teknik Informatika
Variabel Global
Definisi Fungsi & Prosedur Jurusan Teknik Informatika
III - 10
Universitas Widyatama
• Deklarasi Fungsi dalam Bahasa C/C++ Tipe Output Fungsi Nama Fungsi
(Parameter Input)
• Deklarasi Prosedur dalam Bahasa C/C++ 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 - 12
Universitas Widyatama
• Penulisan fungsi/prosedur setelah fungsi main
• Penulisan fungsi/prosedur sebelum fungsi main
tipe_fungsi nama_fungsi(parameter input);//prototype fungsi void nama_prosedur(parameter input,parameter output); int main() { Badan fungsi main } …………… tipe_fungsi nama_fungsi(parameter input) { Badan Fungsi } void nama_prosedur(parameter input,parameter output) { Badan Prosedur }
tipe_fungsi nama_fungsi(parameter input) { Badan Fungsi } void nama_prosedur(parameter input,parameter output) { Badan Prosedur } int main() { Badan fungsi main }
Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++ Jurusan Teknik Informatika
III - 13
Universitas Widyatama
Cara Penulisan Fungsi & Prosedur dalam Bahasa C/C++ Jurusan Teknik Informatika
• 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 Procedure • Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return. • Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya.
III - 15
Universitas Widyatama
• 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 - 17
Universitas Widyatama
Universitas Widyatama
• Parameter Formal float Tambah (float X, float Y) { return (X+Y); }
• Parameter Aktual main() { ……………… ……………… C = Tambah (A,B); ……………… }
Yang harus diperhatikan dalam penggunaan Fungsi & Prosedur 5 Jurusan Teknik Informatika
III - 14
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 - 16
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
X
?
500
Keterangan
Isi memori sebelum fungsi dijalankan Nama Variabel
Isi
Alamat
Lokasi memori untuk fungsi main
A
5
100
Hasil
?
102
Lokasi memori untuk fungsi Fak
X
5
500
Lokasi memori untuk fungsi main
:
: :
Keterangan
:
Lokasi memori untuk fungsi Fak
Passing Parameter (Passing Parameter by Value) 2 Jurusan Teknik Informatika
III - 18
Universitas Widyatama
• 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.
• 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
Jurusan Teknik Informatika
III - 19
500
• 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); 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
:
bantu
Keterangan Lokasi memori untuk fungsi main Lokasi memori untuk fungsi Tukar
:
Passing Parameter (Passing Parameter by Pointer) 2 Jurusan Teknik Informatika
III - 21
Isi
Alamat
Lokasi memori untuk fungsi main
A/Bil1
5
100
B/Bil2
1
102
Lokasi memori untuk fungsi Tukar
bantu
Keterangan Lokasi memori untuk fungsi main
: 500 :
Lokasi memori untuk fungsi Tukar
Passing Parameter (Passing Parameter by Reference) 2
Universitas Widyatama
Isi memori sebelum fungsi dijalankan
Isi memori setelah fungsi dipanggil Nama Variabel
: bantu
:
Passing Parameter (Passing Parameter by Reference) 5
Keterangan
Universitas Widyatama
• Fungsi harus independen • Satu fungsi hanya mengerjakan satu tugas saja • Gunakan semaksimal mungkin fasilitas input dan output yang disediakan oleh fungsi
Jurusan Teknik Informatika
III - 20
Universitas Widyatama
a. Fungsi hanya memberikan satu hasil, sedangkan sebuah prosedur dapat memberikan lebih dari satu hasil b. Nama fungsi sekaligus digunakan untuk sebagai pemanggil dan mengubah pada suatu ungkapan, sedangkan prosedur hanya digunakan sebagai pemanggil saja c. Dalam fungsi tidak mengenal parameter pengubah, hanya parameter nilai. Sedangkan pada prosedur dapat mengenal keduanya. d. Semua parameter diperlakukan sebagai masukan pada fungsi dan keluaran terdapat pada nama fungsi e. Fungsi memiliki tipe data (tergantung output yang akan dihaslkan oleh fungsi tersebut), sedangkan prosedur tidak memiliki tipe data f. Fungsi hanya memiliki 1 nilai balik (output fungsi), sedangkan prosedur bisa memiliki lebih dari 1 nilai balik
Perbedaan Fungsi dan Prosedur Jurusan Teknik Informatika
III - 22
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 Pedoman Pembuatan Fungsi & Prosedur 2 Jurusan Teknik Informatika
III - 23
Universitas Widyatama
Kelebihan Fungsi & Prosedur Jurusan Teknik Informatika
III - 24
Universitas Widyatama