Prosedur dan Fungsi
Pengantar Pada dasarnya bahasa C++ tidak mengenal istilah prosedur, C++ hanya mengenal fungsi, prosedur dalam C++ dianggap sebagai fungsi yang tidak mengembalikan nilai, sehingga dalam pendeklarasian prosedur cukup dituliskan dengan kata kunci void dan diikuti dengan nama prosedur.
Definisi FUNGSI dan Procedure Fungsi dan procedure merupakan sejumlah baris pernyataan/ instruksi yang dikemas di dalam suatu nama (identifier). Perbedaan antara Fungsi dan Procedure : Procedure berisikan proses tertentu yang tidak akan mengembalikan nilai ke modul utama. Fungsi mengembalikan nilai ke modul utama yang memanggilnya. Keuntungan pembuatan fungsi dan Procedure : Menghindari penulisan kode program yang sama berulang kali. Kemudahan menulis dan menemukan kesalaham (debug) program.
Definisi Prosedur Prosedur URUS PASPOR Isi formulir permintaan paspor dengan Lampiran fotocopy KTP, Kartu Keluarga dan Pas Foto. Serahkan formulir yang sudah diisi beserta biaya pembuatan paspor. Wawancara dengan petugas imigrasi Terima paspor
Definisi Prosedur Prosedur URUS VISA Isi formulir permohonan visa dengan lampiran fotocopy KTP, paspor, pas foto, tiket pesawat terbang. Serahkan formulir yang diisi beserta biaya pengurusan visa. Terima Visa.
Definisi Prosedur Prosedur BERANGKAT DARI BANDARA Datang ke bandara satu jam sebelum keberangkatan. Jika sudah disuruh naik ke pesawat, tunjukkan tiket, paspor, dan visa anda ke petugas. Naik ke pesawat. Selamat Jalan.
Definisi Prosedur Algoritma Pergi_Ke_Luar_Negeri DESKRIPSI : URUS PASPOR. URUS VISA. BERANGKAT DARI BANDARA. /* Didalam setiap prosedur ada sekumpulan instruksi yang harus dilaksanakan satu persatu oleh orang yang akan berangkat ke luar negeri. */
Flowchart Prosedur Prosedur URUS VISA Prosedur URUS PASPOR
Cara Mendefinisikan Prosedur procedure Nama_Procedure { Spesifikasi Prosedur, Berisi penjelasan tentang apa yang dilakukan oleh prosedur ini } { K. Awal : keadaan sebelum prosedur dilaksanakan } { K. Akhir : keadaan setelah prosedur dilaksanakan} DEKLARASI { semua nama yang dipakai dalam prosedur dan hanya berlaku lokal di dalam prosedur didefinisikan disini } DESKRIPSI : { badan prosedur, berisi kumpulan instruksi }
Contoh Prosedur : procedure Cetak_Halo { Mencetak String ‘Halo, dunia!’ ke piranti keluaran } { K. Awal : sembarang } { K. Akhir : string ‘Halo, dunia!’ tercetak} DEKLARASI { tidak ada } DESKRIPSI : write (‘Halo, dunia!’)
Contoh Prosedur : procedure Hitung_Luas_Segitiga { Menghitung Luas Segitiga dengan rumus L = ½ x a x t } { K. Awal : sembarang } { K. Akhir : L berisi Luas Segitiga. Nilai L dicetak ke Piranti Keluaran } DEKLARASI a, t, L : real DESKRIPSI : read (a, t) L a * t * 0.5 write (L)
Pemanggilan Prosedur : Algoritma Halo { Program utama untuk mencetak String ‘Halo, dunia!’ } DEKLARASI procedure Cetak_Halo { Mencetak String ‘Halo, dunia!’ ke piranti keluaran } DESKRIPSI : Cetak_Halo { Memanggil Prosedur Cetak_Halo }
Pemanggilan Prosedur : Algoritma Luas_Segitiga { Program utama untuk mencetak String ‘Halo, dunia!’ } DEKLARASI procedure Hitung_Luas_Segitiga { Menghitung Luas Segitiga dengan rumus L = ½ x a x t } DESKRIPSI : Hitung_Luas_Segitiga { Memanggil Prosedur Hitung_Luas_Segitiga }
LATIHAN Buatlah Pseudocode Prosedure untuk menghitung nilai rata – rata N buah bilangan bulat yang diinputkan. Nilai rata – rata dari seluruh bilangan dicetak.
LATIHAN Buatlah Pseudocode Prosedure untuk menghitung Luas Persegi Panjang, Keliling Persegi Panjang. Sesuai dengan tampilan Berikut :
Soal 1 procedure Hitung_Rata_Rata { Menghitung rata – rata N buah bilangan bulat yang diinputkan } { K. Awal : sembarang } { K. Akhir : Nilai rata – rata dari seluruh bilangan yang diinputkan} DEKLARASI n, jumlah, i, bil, rata : double DESKRIPSI : read (n) jumlah 0 for i 1 to n do read (bil) jumlah jumlah + bil endfor rata jumlah / n write (‘Nilai Rata – Rata = ’, rata)
Algoritma Rata_Rata_Bilangan_Bulat { Program utama untuk menghitung rata – rata N buah bilangan bulat } DEKLARASI procedure Hitung_Rata_Rata { Menghitung rata – rata N buah bilangan bulat yang diinputkan } DESKRIPSI : Hitung_Rata_Rata { Memanggil Prosedur Hitung_Rata_Rata }
Flowchart Prosedur : Flowchart Sub program Hitung_Rata_Rata
Soal 1 #include <iostream> #include <conio.h> using namespace std; void Hitung_Rata_Rata() { double n, jumlah, i, bil; double rata; cout<<"Masukkan Jumlah Bilangan : "; cin>>n; jumlah = 0; for (int i= 1; i <= n; i++) { cout<<"Masukkan Bilangan Ke - "<<i<<" : "; cin>>bil; jumlah = jumlah + bil; } rata = jumlah / n; cout<<"Nilai Rata - Rata : "<<rata; void main() { Hitung_Rata_Rata(); _getch();
Soal 2 procedure Hitung_Luas { Menghitung Luas Persegi Panjang. Panjang dan lebar persegi panjang diinput. Luas Persegi Panjang dicetak } { K. Awal : sembarang } { K. Akhir : Luas Persegi Panjang Dicetak} DEKLARASI p, l, luas : double DESKRIPSI : read (p, l) luas p * l write (luas)
Soal 2 procedure Hitung_Keliling { Menghitung Keliling Persegi Panjang. Panjang dan lebar persegi panjang diinput. Keliling Persegi Panjang dicetak } { K. Awal : sembarang } { K. Akhir : Keliling Persegi Panjang Dicetak} DEKLARASI p, l, keliling : real DESKRIPSI : read (p, l) keliling (2 * p) + (2 * l) write (keliling)
Algoritma Persegi_Panjang { Program utama untuk Menampilkan Menu Perhitungan Persegi Panjang } DEKLARASI nomor_menu : integer procedure Hitung_Luas { Menghitung Luas Persegi Panjang. Panjang dan lebar persegi panjang diinput. Luas Persegi Panjang dicetak } procedure Hitung_Keliling { Menghitung Keliling Persegi Panjang. Panjang dan lebar persegi panjang diinput. Keliling Persegi Panjang dicetak } DESKRIPSI : read (nomor_menu) case (nomor_menu) nomor_menu = 1 : Hitung_Luas nomor_menu = 2 : Hitung_Keliling endcase
Nama Global dan Nama Lokal Di deklarasikan berlaku secara global (dapat digunakan di seluruh bagian program) Nama Lokal Konstanta, variabel dan lain - lain yang dideklarasikan di dalam prosedur tersebut. #include <iostream> #include <conio.h> using namespace std; int nilai = 60; void ContohGlobalLokal(); void main() { ContohGlobalLokal(); _getch(); } void ContohGlobalLokal() { cout<<nilai; int angka = 10; cout<<angka; }
Sintax prototype procedure : void namaProcedure(); Sintax procedure (mendefinisikan procedure) : void namaProcedure() { [Blok pernyataan] } Contoh : void garis(); Procedure
Menggunakan Procedure Cara 1 : prototype procedure void main() { memanggil procedure _getch(); } definisi procedure Cara 2 : definisi procedure void main() { memanggil procedure _getch(); }
Contoh Cara 1 #include <iostream> #include <conio.h> using namespace std; void garis(); void main() { garis(); garis(); cout<<"Ini Contoh Penggunaan Procedure Dengan Cara 1 "<<endl; _getch(); } void garis() { cout<<"------------------------------------------"; cout<<endl;
Contoh Cara 2 #include <iostream> #include <conio.h> using namespace std; void garis() { cout<<"------------------------------------------"; cout<<endl; } void main() { garis(); garis(); cout<<"Ini Contoh Penggunaan Procedure Dengan Cara 2"<<endl; _getch();