LAPORAN PRAKTIKUM VIII ( FUNGSI ) DASAR KOMPUTER DAN PEMROGRAMAN
NURWAHYUDDI (12022038)
Program Studi Teknik Elektro Fakultas Teknologi Industri
UNIVERSITAS AHMAD DAHLAN YOGYAKARTA 2012
I.
TUJUAN PRAKTIKUM VIII
Adapun yang menjadi tujuan dalam Praktikum VI ini antara lain : 1.
Mahasiswa dapat memahami implementasi konsep dasar pemrograman dengan alat bantu Turbo C++,
2.
Mahasiswa dapat menjelaskan konsep fungsi,
3.
Mahasiswa mampu menjelaskan struktur fungsi dan bagian-bagiannya,
4.
Mahasiswa mampu menjelaskan cara memanggil fungsi dalam fungsi main (),
5.
Mahasiswa dapat menyusun dan menjelaskan program menggunakan struktur fungsi ,
6.
Mahasiswa dapat menjelaskan fungsi tanpa nilai balik (tipe void ). ).
1
II.
DASAR TEORI
Sebuah fungsi pada C++ umumnya berisi sejumlah pernyataan C++ yang dikemas dengan sebuah nama. Selanjutnya nama ini dapat dipanggil beberapa kali dalam suatu kode C++. Salah satu fungsi yang sering dilibatkan dalam aplikasi berbasis konsol yaitu main(). Biasanya didalam fungsi tersebut dituliskan sejumlah pernyataan.
Tujuan utama pembuatan fungsi adalah untuk membuat suatu aplikasi agar dapat dipecah menjadi sejumlahbagian yang dapat dikelola dengan lebih mudah oleh pemrogram daripada kalau aplikasi hanya mengandung sebuah fungsi, misalnya fungsiA(), fungsiB(), dan fungsiC(). Kemudian didalam fungsi main(),
terdapat pemanggilan ketiga fungsi tersebut sebagai berikut : Int main() { fungsiA(); fungsiB(); fungsiC(); }
Dalam implementasinya, pemrogram dapt berkonsentrasiuntuk menuliskan fungsiA() secara detil telebih dahulu, kemudian ke fungsi-fungsi berikutnya sehingga seluruh kode dituliskan.
2
Dalam prakteknya fungsiA() juga bisa tersusun atas sejumlah fungsi. Berikut adalah contoh kerangka pemakaian fungsi dalam sebuah aplikasi.
main ()
fungsiA()
fungsiB()
fungsiC()
fungsiB1()
fungsiB2()
fungsiB3()
a) Struktur Fungsi
tipe_nilai_balik_nama_fungsi(tipe_parameterA, tipe_parameterB,...) { pernyataan_1; ... pernyataan_n; return nilai_balik; }
3
Bagian tipe_nilai_balik_nama_fungsi(tipe_parameterA,tipe_parameterB,..)
disebut judul fungsi, yang terdiri dari tiga bagian : 1.
tipe_nilai_balik
menentukan tipe nilai yang diberikan oleh fungsi ketika fungsi dipanggil. Nilai balik ditentukan melalui pernyataan return. 2.
nama_fungsi
3.
parameter
digunakkan untuk melewatkan nilai ke fungsi. Antar parameter dipisahkan oleh tanda (,). Jika tak ada parameter, judul fungsi berupa : tipe_nilai_balik_nama_fungsi()
Dalam definisi fungsi, tanda titik koma sesudah tanda } tidak diperlukan. Pada bagian pernyataan fungsi terdapat pernyataan return yang digunakan untuk mengakhiri eksekusi fungsi dan memberikan nilai balik, yaitu nilai yang diberikan oleh fungsi ketika fungsi dipanggil. Contoh : long kuadrat(long x) { long hasil = x*x; return hasil; }
Artinya didefinisikan fungsi dengan nama kuadrat() yang digunakan untuk menghitung nilai kuadrat dari sebuah bilangan. Nama parameter adalah x, dengan tipe
long dan memberikan nilai balik berupa perkalian x dengan x dan tipe long.
4
b) Fungsi tanpa nilai balik
Fungsi dengan tipe void berarti tidak memiliki nilai balik, sehinnga tidak dapat nilai balik berkedudukan sebagai ekspresi. Contoh : void info () { cout < << “Tidsk ada nilai balik”; }
Bisa ditambahkan pernyataan return : void info () { cout << “Tidak ada nilai balik”;
return; }
Cara memanggil fungsi diatas : info ()
5
III.
HASIL DAN PEMBAHASAN a) Fungsi pada perhitungan nilai Rerata
Program VIII-1 #include int N; float jumlah, rerata, data[100]; void Masukkan_Data(){ cout << "Banyaknya nilai = "; cin >> N; for (int i=0; i> data[i]; } } void Hitung_Rerata(){ jumlah = 0; for (int i=0; i
Hasil kompile Program :
6
Berikut merupakan penjelasan dari program VIII-1: Baris 1.
2. 3. 4.
Keterangan header yang menyediakan operasi stream, Merupakan keterangan untuk tipe data N yang akan dimasukkan dalam bentuk bilangan bulat (integer), merupakan bentuk dari deklarasi array( jumlah, rerata data[100]) yang akan ditampilkan dalam format bilangan /float(bertipe data float), Merupakan perintah untuk fungsi “Masukkan data” data” tetapi tidak memiliki nilai kembalian(return value)
5.
Perintah output/keluaran untuk menampilkan men ampilkan tulisan “Banyaknya Nilai =”
6.
Perintah input/masukkan untuk memasukkan nilai N,
7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Merupakan perintah untuk perulangan yang dibatasi dengan kondisi i = 0 dan i
18.
Fungsi utama dari program,
19.
Cara pemanggilan dari fungsi pada proses memasukkan data pada program,
20.
Cara pemanggilan dari fungsi pada proses penghitungan rerata pada program,
21.
Cara pemanggilan dari fungsi pada proses menampilkan hasil pada program,
7
Perhitungan nilai Rerata dengan Standar Deviasi
Untuk menghitung standar Deviasi kita perlu menambahkan satu pustaka header yaitu (math.h) , serta fungsi string yang penting untuk menghitung standar deviasi yaitu
fungsi (stdrdev)(2) . Listing Program : #include #include int N; float jumlah, rerata, peny, stdrdev, data[100]; void Masukkan_Data(){ cout << "Banyaknya nilai = "; cin >> N; for (int i=0; i> data[i]; } } void Hitung_Rerata(){ jumlah=0; for(int i=0; i
8
Berikut hasil kompile dari program perhitungan nilai rerata dengan standar deviasi :
b) Fungsi untuk mengisi dan menampilkan Matriks Program VIII-2 #include int N = 2; void MengisiMatriks(float X[5][5]){ for (int i=0; i> X[i][j]; } } } void MenampilkanMatriks (float X[5][5]){ for (int i=0; i
9
Berikut hasil kompile program serta penjelasan tiap baris dari program :
Berikut merupakan penjelasan dari program VIII-2: Baris
1. 2. 3.
4.
5. 6. 7. 8.
9.
10. 11. 12.
Keterangan
File header yang menyediakan operasi stream, Merupakan keterangan untuk N =2 yang akan dimasukkan dalam bentuk bilangan bulat (integer), Merupakan perintah untuk Mengisi Matriks tetapi tidak memiliki nilai kembalian/nilai balik(return value) dimana X[5][5] dalam kondisi float/bilangan, Merupakan perulangan yang digunakan dengan kondisi i =0 dan i
10
13.
Merupakan fungsi utama pada program C++,
14.
Keterangan untuk A[5][5] dalam bentuk bilangan / float,
15.
Perintah output untuk menampilkan tulisan “Masukkan elemen matriks A” serta perintah untuk newline,
16.
Pemanggilan untuk fungsi “MengisiMatriks(A)”,
17. 18.
Perintah keluaran/output untuk menampilkan tulisan”Matriks A=” serta perintah untuk newline, Pemanggilan untuk fungsi “MenampilkanMatriks(A)”,
Berikut merupakan program hasil modifikasi dari program VIII-2 serta hasil kompilenya(4) : #include int N=2; float A[5][5], B[5][5], C[5][5]; void MengisiMatriksA(float A[5][5]) // ukuran array A yg didefinisikan { for (int i=0; i> A[i][j]; } } } void MengisiMatriksB(float B[5][5]) { for (int i=0; i> B[i][j]; } } } void MenjumlahMatriks(float C[5][5]) { for (int i=0; i
Lanjutan program dibelakang,,
11
void MenampilkanMatriksB (float B[5][5]) { for (int i=0; i
12
c) Program Konversi Suhu Program VIII-3 #include float Suhu_C, Suhu_F; // definisikan variabel float C_ke_F(float C) { float F; F = 1.8*C+32.0; return F; } void Mengisi_Input() { cout << "Isikan nilai Suhu C = "; // tampilkan tulisan cin >> Suhu_C; // isikan nilai Suhu C } void Mengkonversi() { Suhu_F = C_ke_F(Suhu_C); // hitung nilai Suhu F } void Menampilkan_Hasil() { cout << "Temperatur " << Suhu_C << " C = " << Suhu_F << "F" << endl; } main() { Mengisi_Input(); Mengkonversi(); Menampilkan_Hasil(); }
Berikut hasil eksekusi dari Listing program diatas :
Empat pendefinisian fungsi : float C_ke_F(float C); void Mengisi_Input(); void Mengkonversi (); void Menampilkan_Hasil();
13
Setelah dilakukan pemindahan keempat fungsi ke bagian bawah program setelah akhir dari program utama main () serta dilakukannya compile, muncul Error Message, antara lain sebagai berikut(5) :
a. Function ‘Mengisi_Input’ ‘Mengisi_Input’ should have a prototype b. Function ‘Mengkonversi’ should have a prototype c. Function ‘Menampilkan_Hasil’ ‘Menampilkan_Hasil’ should have a prototype d. Type mismatch in redeclaration of ‘Mengisi_Input()’ e. Type mismatch in redeclaration of ‘Mengkonversi()’ f. Type mismatch in redeclaration of ‘Menampilkan_Hasil()’ Kegunaan keempat pendefinisian fungsi tersebut adalah memberikan header baru sesuai keingina kita, dimana dalam header tersebut terdapat fungsi yang dapat dipanggil. Jadi kita dapat menambahkan suatu header jika suatu compiler tidak support terhadap fungsi yang kita gunakan (6) . IV.
TUGAS Listing program :
#include char pilihan; float input, output; float C_ke_F(float C) { float F; F = 9.0/5.0*C+32.0; return F; } float F_ke_C(float F) { float C; C = 5.0/9.0*(F-32.0); return C; } float C_ke_R(float C) { float R; R = 4.0/5.0*C; return R; } float R_ke_C(float R) { float C; C = 5.0/4.0*R; return C; } float F_ke_R(float F) { float R; R = 4.0/9.0*(F-32); return R; }
float R_ke_F(float R) { float F; F = 9.0/4.0*R+32; return F; } void Menampilkan_Menu() { cout << "Pilih konversi berikut :" << endl << "A. Celcius ke Fahrenheit" << endl << "B. Fahrenheit ke Celcius" << endl << "C. Celcius ke Reamur" << endl << "D. Reamur ke Celcius" << endl << "E. Fahrenheit ke Reamur" << endl << "F. Reamur ke Fahrenheit" << endl << "X. Selesai" << endl; } void Mengisi_Pilihan () { cout << "Masukkan pilihan konversi = "; cin >> pilihan; } void Mengisi_Input() { cout << "Isikan nilai suhu = "; cin >>input; } void Pilihan_Konversi() { if((pilihan=='A')||(pilihan=='a')) { output = C_ke_F(input); cout << "Temperatur " << input << "C = " << output << "F"; } }
14
else if((pilihan=='B')||(pilihan=='b')) { output = F_ke_C(input); cout << "Temperatur " << input << "F = " << output << "C"; } else if((pilihan=='C')||(pilihan=='c')) { output = C_ke_R(input); cout << "Temperatur " << input << "C = " << output << "R"; } else if((pilihan=='D')||(pilihan=='d')) { output = R_ke_C(input); cout << "Temperatur " << input << "R = " << output << "C"; } else if((pilihan=='E')||(pilihan=='e')) { output = F_ke_R(input); cout << "Temperatur " << input << "F = " << output << "R"; } else if((pilihan=='F')||(pilihan=='f')) { output = R_ke_F(input); cout << "Temperatur " << input << "R = " << output << "F"; } else if((pilihan=='X')||(pilihan=='x')) { cout << "Selesai"; } else cout << "Tidak ada dalam menu konversi"; } main() { Menampilkan_Menu(); Mengisi_Pilihan(); Mengisi_Input(); Pilihan_Konversi(); }
Berikut hasil kompile dari program untuk menghitung konversi suhu :
15
16
V.
KESIMPULAN
Adapun kesimpulan yang dapat diambil dari praktikum VIII ini antara lain sebagai berikut : 1. Didalam C++ umumnya terdapat sebuah fungsi yang berisi sejumlah pernyataan C++ yang dikemas dengan sebuah nama, dimana nama tersebut te rsebut dapat di panggil beberapa kali dengan suatu kode C++. Salah satu fungsi yang sering dilibatkan dalam aplikasi berbasis konsol yaitu main (). 2. Dalam memanggil sebuah fungsi pada program C++ memiliki dua cara pemanggilan, yaitu : a) Cara tak langsung, yaitu cara pemanggilan fungsi untuk fungsi yang mengembalikan nilai (return value), b) Cara langsung, yaitu cara pemanggilan fungsi untuk fungsi bertipe void ( fungsi yang tidak mengembalikan nilai), 3. Suatu fungsi atau Sub-program bersifat sebagai suatu program utuh, maksudnya fungsi tersebut dapat melakukan suatu pekerjaan secara utuh. Semua jenis atau macam instruksi dapat digunakan dalam sebuah fungsi.
17
VI.
REFERENSI
Modul Praktikum Dasar Pemrograman Kartika Firdausy, Fi rdausy, S.T.,M.T
tugaskuliah.googlecode.com/
ilmukamu.wordpress.com/
18