Fungsi Void Pemanggilan Fungsi

256 Direktorat Pembinaan SMK | 2008 } int main { cout Hello dari program Utama.\n ; cout ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐\n ; TampilPesan; memanggil TampilPesan cout ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐\n ; cout kembli ke Fungsi Utama lagi.\n ; getch; return ; } Keluaran programnya adalah: Hello dari program Utama. ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Salam Hello dari fungsi TampilPesan. ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ kembli ke Fungsi Utama lagi. Fungsi TampilPesan disebut oleh baris utama adalah: TampilPesan; Baris ini digunakan untuk fungsi panggilan. Dimana hal ini merupakan nama fungsi yang diikuti oleh tanda kurung dan titik koma. Coba kita bandingkan dengan fungsi header seperti berikut: Function Header  void TampilPesan Function Call  TampilPesan; Fungsi header adalah bagian dari definisi fungsi. Ia menyatakan kembali sebuah fungsi dari jenis, nama, dan daftar parameter. Hal ini tidak diakhiri dengan titik koma karena definisi dari tubuh fungsi yang mengikutinya. Fungsi panggilan adalah pernyataan yang melaksanakan fungsi tersebut, sehingga diakhiri dengan titik koma seperti pernyataan C++ lainnya. Fungsi panggilan tidak ada dalam daftar, dan jika program ini tidak ke dalam fungsi, tanda kurung yang akan dikosongkan. Walaupun program mulai dijalankan pada program utama main, fungsi TampilPesan didefinisikan terlebih dahulu. Hal ini karena compiler harus mengetahui fungsi dari jenis return, jumlah parameter, dan setiap jenis parameter sebelumnya yang dipanggil. Salah satu cara agar compiler mengetahui informasi ini adalah dengan menempatkan fungsi 2008 | Direktorat Pembinaan SMK 257 definisi sebelum semua panggilan ke fungsi. Perhatikan bagaimana program diatas mengalir. Dalam memulai, tentu saja, didalam fungsi utama. Bila panggilan ke TampilPesan yang dihadapi, program untuk cabang yang berfungsi dan melakukan pernyataan-nya. Setelah selesai melaksanakan TampilPesan, program cabang kembali ke fungsi utama dan kembali dengan baris yang mengikuti fungsi panggilan. Hal ini diilustrasikan pada gambar dibawah ini. Gambar 7.2. Ilustrasi Fungsi Dalam menyatakan pemanggilan Fungsi dapat menggunakan struktur kendali seperti loop, pernyataan IF, dan pernyataan switch. Program dibawah merupakan program yang melakukan pemanggilan fungsi TampiPesan kedalam satu looping Program 7.2. include conio.h include iostream using namespace std; void TampilPesan { void TampilPesan { cout Salam Hello dari fungsi TampilPesan.\n ; } int main { cout Hello dari program Utama.\n ; TampilPesan; cout kembli ke Funsgi Utama lagi.\n ; getch; return ; } 258 Direktorat Pembinaan SMK | 2008 cout Salam Hello dari fungsi TampilPesan.\n ; } int main { cout Hello dari program Utama.\n ; cout ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐\n ; for int count = ; count 5 ; count++ TampilPesan; memanggil Fungsi TampilPesan cout ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐\n ; cout kembli ke Funsgi Utama lagi.\n ; getch; return ; } Keluaran Programnya adalah: Hello dari program Utama. ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Salam Hello dari fungsi TampilPesan. Salam Hello dari fungsi TampilPesan. Salam Hello dari fungsi TampilPesan. Salam Hello dari fungsi TampilPesan. Salam Hello dari fungsi TampilPesan. ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ kembli ke Funsgi Utama lagi. Setiap program dapat dimungkinkan untuk memiliki banyak fungsi atau sebuah fungsi dalam sebuah program. Program dibawah 7.3. dibawah ini memiliki tiga fungsi: yaitu utama, fungsi pertama dan fungsi kedua. Untuk lebih jelas perhatikan program dibawah ini: Program 7.3 include conio.h include iostream using namespace std; void pertama { cout Saya sekarang sedang di Fungsi Pertama.\n ; } void kedua 2008 | Direktorat Pembinaan SMK 259 { cout Saya sekarang sedang di Fungsi Kedua.\n ; } int main { cout Saya sedang di program Utama.\n ; pertama; pemanggilan fungsi pertama kedua; pemanggilan fungsi kedua cout Saya kembali ke Program Utama.\n ; getch; return ; } Keluaran programnya adalah sebagai berikut: Saya sedang di program Utama. Saya sekarang sedang di Fungsi Pertama. Saya sekarang sedang di Fungsi Kedua. Saya kembali ke Program Utama. Dalam program diatas fungsi utama terdiri dari pemanggilan fungsi pertama dan kedua dengan instruksi sebagai berikut: pertama; kedua; Setiap panggilan pernyataan menyebabkan program untuk cabang ke salah satu fungsi dan kemudian kembali ke utama bila fungsi selesai. Gambar dibawah menggambarkan jalan yang diambil oleh program 260 Direktorat Pembinaan SMK | 2008 Gambar 7.3. Pemanggilan lebih dari satu fungsi Sebuah fungsi sering juga dipanggil dalam dalam sebuah hirarki, atau berlapis. Program dibawah ini merupakan sebuah program yang memiliki tiga buah fungsi dimana fungsi tersebut adalah utama, Agakdalam dan PalingDalam . Kerja program tersebut adalah fungsi palingdalam dipanggil oleh fungsi agakdalam dan kemudian fungsi AgakDalam dipanggil oleh fungsi Utama. Untuk lebih jelasnya perhatikan program dibawah ini: Program 7.4. include conio.h include iostream using namespace std; void PalingDalam { cout Saya sekarang sedang di dalam fungsi PalingDalam.\n ; } void AgakDalam void pertama { cout Saya sekarang sedang di Fungsi Pertama.\n ; } void kedua { cout Saya sekarang sedang di Fungsi Kedua.\n ; } int main { cout Saya sedang di program Utama.\n ; pertama; kedua; cout Saya kembali ke Program Utama.\n ; getch; return ; } 2008 | Direktorat Pembinaan SMK 261 { cout sekarang saya sedang di fungsi AgakDalam.\n ; PalingDalam; panggil Fungsi cout Sekarang saya Kembali ke fungsi AgakDalam.\n ; } int main { cout saya sekarang sedang didalam fungsi Utama.\n ; AgakDalam; Panggil Fungsi cout Saya kembali ke Fungsi Utama Lagi.\n ; getch; return ; } Keluaran Program adalah sebagai berikut: saya sekarang sedang didalam fungsi Utama. sekarang saya sedang di fungsi AgakDalam. Saya sekarang sedang di dalam fungsi PalingDalam. Sekarang saya Kembali ke fungsi AgakDalam. Saya kembali ke Fungsi Utama Lagi. Dalam Program 7.4 diatasfungsi utama hanya memanggil fungsi agakDalam. Sedangkan fungsi AgakDalam memanggil Fungsi PalingDalam. Program diatas adalah memanggil fungsi dan kemudian fungsi yang dipanggil tersebut memnggil fungsi yang lain. Untuk lebih jelasnya perhatikan gambar dibawah ini: 262 Direktorat Pembinaan SMK | 2008 Gambar 7.4. Pemanggilan fungsi didalam fungsi

7.4. Prototipe Fungsi

Sebelum compiler menemukan panggilan ke fungsi tertentu, kita harus sudah mengetahui beberapa hal mengenai fungsi. Secara khusus, kita harus mengetahui jumlah parameter yang digunakan oleh fungsi, jenis parameter, dan cara atau jenis kembalinya fungsi. Sebuah parameter membolehkan informasi untuk dikirim ke salah satu fungsi. Untuk saat ini, fungsi yang akan digunakan berupa fugsi yang tidak memiliki parameter dan, kecuali pada fungsi utama, dan cara kembalinya menggunakan jenis void. Salah satu cara untuk memastikan bahwa compiler ini memiliki informasi yang diperlukan adalah dengan menempatkan fungsi yang telah didefinisikan sebelum melakukan panggilan ke fungsi tersebut. Ini merupakan pendekatan yang diambil seperti halnya dalam program 7.1 sampai program 7.4 diatas. Cara lainnya adalah adalah dengan menyatakan fungsi dengan fungsi prototipe a function prototype. Berikut ini adalah prototipe untuk fungsi TampilPesan seperti dalam Program 7.1 adalah sebagai berikut: void TampilPesan; Prototipe tersebut diatas tampak mirip dengan fungsi header, kecuali ada titik koma dibagian akhir. Sebuah pernyataan fungsi akan void AgakDalam { cout sekarang saya sedang di fungsi AgakDalam.\n ; PalingDalam; panggil Fungsi cout Sekarang saya Kembali ke fungsi AgakDalam.\n ; } void PalingDalam { cout Saya sekarang di dalam fungsi PalingDalam.\n ; } int main { cout saya sekarang sedang didalam fungsi Utama.\n ; AgakDalam; Panggil Fungsi cout Saya kembali ke Fungsi Utama Lagi.\n ; getch; return ; } 2008 | Direktorat Pembinaan SMK 263 memberitahukan ke compiler bahwa fungsi TampilPesan memiliki tipe kembali return void, berarti fungsi tersebut tidak mengembalikan nilai serta tidak menggunakan parameter. Prototipe fungsi biasanya ditempatkan pada bagian atas pada program sehingga compiler akan melakukan eksekusi terlebih dahulu sebelum fungsi tersebut dipanggil. Program 7.5 dibawah ini adalah modifikasi dari program 7.3 diatas. Definisi fungsi pertama dan kedua telah ditempatkan setelah program utama, dan fungsi prototip telah ditempatkan diatas program utama secara langsung setelah pernyataan namespace std. Perhatikan program dibawah ini: Program 7.5. include conio.h include iostream using namespace std; Prototipe Fungsi