Tutorial Pemrograman C/C++: Contoh Class Kerucut Sederhana
Sesuai dengan judulnya, maka tulisan ini akan memberikan contoh class sederhana untuk bangun tiga-dimensi kerucut. Gambar di samping menunjukkan tiga parameter atau properti kerucut yakni t (tinggi), r (jejari) dan s (garispelukis). Dari ketiga properti itu dapat menghitung luasalas, luas selimut, luas permukaan dan volume kerucut.
Karena kita akan membuat class untuk objek kerucut maka kita perlu menentukan apa saja yang akan menjadi member dari objek kerucut. Berbeda dengan struct, class dapat memiliki member berupa variabel dan fungsi.
Kita mulai dari ketiga parameter kerucut yakni tinggi, jejari dan garis pelukis. Secara mudah kita dapat memasukkan ketiganya sebagai member variabel dari class kerucut. Namun benarkah demikian? Tidak.
Kita lihat bahwa tinggi, jejari dan garis pelukis membentuk segitiga siku-siku. Artinya kita dapat menghitung panjang garis pelukis jika diketahui tinggi dan jejari kerucut. Oleh karenanya kita tidak akan memasukkan garis pelukis sebagai member class kerucut, akan tetapi akan menjadikannya sebagai fungsi dalam class kerucut. Dengan demikian, class kerucut hanya perlu diberi masukan berupa nilai tinggi dan nilai jejari saja.
Selain tinggi, jejari dan fungsi garis pelukis, kita akan memasukkan fungsi luas alas, luas selimut, luas permukaan, dan volume ke dalam class kerucut. Sehingga class kerucut dapat kita susun sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| class kerucut { float jejari; float tinggi; public : void set_jejari( float r) { jejari = r; } void set_tinggi( float t) { tinggi = t; } float get_jejari() { return jejari; } float get_tinggi() { return tinggi; } float garis_pelukis() { return sqrt (jejari*jejari + tinggi*tinggi); } float luas_alas() { return M_PI*jejari*jejari; } float luas_selimut() { return M_PI*jejari*garis_pelukis(); } float luas() { return luas_alas()+luas_selimut(); } float volume() { return (1.0/3.0*M_PI*jejari*jejari*tinggi); } }; |
Anda dapat membaca tulisan Tutorial C++ – Abstraksi Data: Apa, Mengapa, Dan Bagaimanajika ingin mempelajari tentang abstraksi data yang dimulai dari pembahasan struct hingga class pada C++.
public menyatakan bahwa fungsi-fungsi di bawahnya dapat diakses oleh program utama. Namun tidak demikian dengan variabel jejari dan tinggi yang bersifat private. M_PI adalah konstanta PI atau 22/7 yang tersedia dalam header math.h.
Pada class kerucut, garis_pelukis adalah sebuah fungsi bertipe float yang merupakan hasil perhitungan nilai akar kwadrat dari nilai total jejari kwadrat ditambah tinggi kwadrat.
Setelah mendeklarasikan class kerucut sederhana seperti di atas, maka kita bisa menyusun program sederhana untuk sekedar menunjukkan cara penggunaan class kerucut dalam program.
Berikut ini adalah kode program class kerucut selengkapnya.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| /* kerucut.cpp Class kerucut Sederhana */ #include #include #include class kerucut { float jejari; float tinggi; public : void set_jejari( float r) { jejari = r; } void set_tinggi( float t) { tinggi = t; } float get_jejari() { return jejari; } float get_tinggi() { return tinggi; } float garis_pelukis() { return sqrt (jejari*jejari + tinggi*tinggi); } float luas_alas() { return M_PI*jejari*jejari; } float luas_selimut() { return M_PI*jejari*garis_pelukis(); } float luas() { return luas_alas()+luas_selimut(); } float volume() { return (1.0/3.0*M_PI*jejari*jejari*tinggi); } }; int main() { kerucut K; K.set_jejari(3); K.set_tinggi(4); cout << setprecision(3) << fixed; cout << "Jejari Kerucut = " << K.get_jejari() << endl; cout << "Tinggi Kerucut = " << K.get_tinggi() << endl; cout << "Garis Pelukis = " << K.garis_pelukis() << endl; cout << "Luas Alas = " << K.luas_alas() << endl; cout << "Luas Selimut = " << K.luas_selimut() << endl; cout << "Luas Permukaan = " << K.luas() << endl; cout << "Volume Kerucut = " << K.volume() << endl; cout << endl; return 0; } |
setprecision() dan fixed adalah fungsi untuk memformat tampilan tipe float pada fungsi console output cout. Pada program di atas cout << setprecision(3) << fixed; akan memformat tipe float untuk menampilkan 3 angka dibelakang koma secara fixed.
Hasil eksekusi program di atas menggunakan Borland C++ Compiler 5.5 adalah sebagai berikut.
Jika penasaran apakah hasil perhitungan program di atas benar ataukah salah, Anda bisa menguji hasil perhitungan program di atas dengan cara menghitung sendiri secara manual.
0 comments:
Post a Comment