DASAR-DASAR
Lisensi Dokumen:
Copyright 2013 Dokumen ini dapat digunakan, dimodifikasi dan disebarluaskan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau mengubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari penulis.
BAB
MS. Word to PDF converter using OpenOffice.org 1.1.4 Keistime2aan C++ adalah karena bahasa ini mendukung 55P &5b%ect 5riented Programming'. (u%uan utama pembuatan C++ adalah untuk meningkatkan produkti6itas pemrogram dalam membuat aplikasi. Kebanyakan pakar setu%u bah2a 55P dan C++ mampu mengurangi kompleksitas terutama program yang terdiri dari !7.777 baris lebih, bahkan dapat meningkatkan produkti6itas $8 lipat dari C, Pascal dan Basic.
Pembagian departemen dalam perusahaan merupakan upaya untuk memudahkan pengoperasian perusahaan. ,ebagai gambaran, %ika *nda seorang mana%er pen%ualan di kantor pusat ingin mengetahui data para salesmen di kantor cabang, apa yang *nda lakukan< .angkah yang *nda tempuh pasti bukan datang ke kantor cabang dan mencari data;data tersebut. :ntuk memudahkan tugas *nda cukup *nda menyuruh sekretaris untuk meminta in9ormasi. Masalah bagaimana dan siapa yang mencarikan bukanlah urusan *nda. *nalogi dengan hal itu, kalau seseorang bermaksud menggunakan obyek, ia cukup mengirim pesan ke obyek dan obyek itu sendiri yang akan menanganinya.
C. Pro(ram C++
Program C++ dapat dibuat menggunakan sebarang editor teks maupun editor sekaligus compilernya. Program utama berekstensi &.CPP'. Pada saat kompilasi program utama bersama dengan 9ile header &.h' akan diter%emahkan oleh compiler men%adi 9ile obyek &.5B='. ,elan%utnya 9ile obyek ini bersama;sama dengan 9ile obyek lain dan 9ile library &..-B' dikaitkan men%adi satu oleh linker. )asilnya adalah 9ile &.>?>' e8ecutable.
D. Com+iler C++
Compiler C++ yang telah beredar di pasaran antara lain Microso9t C@C++ dan Aisual C++. Keduanya dari Microso9t. ,ementara Borland international %uga mengeluarkan (urbo C++ dan Borland C++.
B. -un(si main)*
Program C++ memang tidak akan pernah lepas dari suatu 9ungsi@9unction. )al ini karena merupakan ciri 55P. ,ebuah program C++ minimal memiliki satu 9ungsi yaitu main&'. Bungsi ini merupakan a2al program utama. (ulisan main&' merupakan nama 9ungsi, sedangkan bagian yang diapit dengan C dan D disebut blok &tubuh 9ungsi'. Dalam hal ini C merupakan tanda a2al blok dan D adalah tanda akhir blok. ,eperti halnya dalam Pascal, C dalam Pascal identik dengan B>E-+, sedangkan D identik dengan >+D. Perintah 6oid bermakna bah2a 9ungsi main&' tidak mengembalikan nilai@6alue. Cara penulisan 9ungsi main&' tidak mutlak seperti di atas. Berikut ini cara penulisan yang lain
#include <iostream.h> int main() { cout << Hello world.\n; return 0; } C. S'a'emen'
Perintah cout << Hello world.\n; merupakan salah satu contoh statement. Perintah tersebut digunakan untuk mencetak tulisan pada layar. ,etiap statement harus diakhiri dengan F al .an( men%a#i &a'a'an +en'in( #i sini $ah/a +ro(ram C++ $ersi0a' Case Sensi'i1e, ar'in.a huru0 $esar #an 2e&il #ian((a+ $e#a. (anda Gn digunakan untuk pindah baris.
D. -ile
ea#er
Pada contoh di atas, iostream.h disebut 9ile header. Bile header tersebut diperlukan agar perintah cout bisa di%alankan. *pabila 9ile header tersebut dihapus, maka akan ter%adi error. :ntuk mengakses 9ile header, digunakan perintah #include < ile header>, atau #include ile header. Dalam suatu program bisa %adi melibatkan lebih dari satu 9ile header. Ca'a'an: Perintah cout << Hello world.\n; dapat diganti dengan !rint (Hello world.\n); *kan tetapi untuk bisa menggunakan print9 diperlukan 9ile header s'#io.h
E. Men(ha+us "a.ar
Dalam C++, perintah clrscr&' F digunakan untuk menghapus@membersihkan layar. Perintah ini akan bisa di%alankan setelah ditambahkan 9ile header conio.h
#include <iostream.h> #include <conio.h> void main() { clrscr(); cout << Hello world.\n; } -. Komen'ar
*nda dapat menambahkan komentar pada program *nda. Berikut ini style untuk menambah komentar.
"" ################################## "" ini adalah $omentar$u %an& !ertama "" ##################################
atau
G. "a'ihan (. )uatlah !ro&ram se!erti di *awah ini #include <conio.h> #include <iostream.h> void main() { clrscr(); cout << +t is m% irst ,-- !ro&ram\n; cout << + am sure that + will *e amiliar with this; cout << ##########################\n; } .im!an den&an nama ile /012034(.,//
a. 5*ahlah salah satu huru men6adi huru *esar !ada !erintah include. ,om!ilelah7 a!a hasiln%a8 *. 9a$u$an hal %an& sama untu$ conio7 iostream7 void7 main7 clrscr7 cout7 \n. c. :ari$ $esim!ulan *erdasar$an a dan *. ;. <en&an men&&una$an !rintah cout atau !rint 7 *uatlah !ro&ram ,-- untu$ menam!il$an = huru terde!an nama 3nda. 4isal nama 3nda 325.7 ma$a *uatlah tam!ilan se!erti *eri$ut> 333333333 333333333 33 33 33 33 333333333 33 33 33 33 33 33 2222222222 2222222222 22 22 222222 22 222222 22 22 2222222222 2222222222 55 55 55 55 55 55 55 55 55 55 55 55 5555555555 5555555555
)erilah se*aran& $omentar !ada setia! *aris statement. .im!an den&an nama ?343@5.,//
B. Tipe Data
!erikut ini tipe data yang ada dalam C Tipe data bilangan bulat: - char - int "integer# - short "short integer# - long "long integer# Tipe data bilangan real: - float "real# - double "real double# - long double $elain itu terdapat %uga tipe data unsigned Tipe data bilangan bulat: - unsigned char - unsigned int "integer# - unsigned short "short integer# - unsigned long "long integer# Tipe data unsigned mirip dengan yang bukan unsigned. !edanya adalah tipe data unsigned tidak mengenal bilangan negatif "nilainya selalu posisif#.
C. Deklarasi
aria!el
$eperti halnya Pascal, variabel yang digunakan dalam program harus dideklarasikan terlebih dahulu. Pengertian deklarasi di sini yaitu mengenalkan variabel ke program dan menentukan tipe datanya. !erikut ini contoh pendeklarasian variabel:
D. Assign"ent
Proses assignment adalah proses pemberian nilai kepada suatu variabel yang telah dideklarasikan. !erikut adalah contoh assignment:
!erikut ini contoh program yang menggambarkan deklarasi variabel dan assignment.
# !3&$C1 < *."+1'%.(> # !3&$C1 <3*! *.(> /* C %' !() { !" /'+2, /'+9, /'+:; 3('+ 5'+'5"1+; /'+2 = 27; /'+9 = <; /'+: = /'+2 + /'+9; 5'+'5"1+ = ?DA; 3*$" << EF &' 3*$" << EF &' ,1"3((); } /'+: = G << /'+: << EH!G; 5'+'5"1+ = G << 5'+'5"1+;
contoh berikutnya yang melibatkan tipe data real dan memformat tampilan presisi.
# !3&$C1 "3*! *.("; # !3&$C1 " *."+1'%.("; # !3&$C1 " *%'! I.("; /* C %' !() { 3&+.3+(); C*$0&1 +1'&; +1'& = 2J9.92J9K2:=K;J92K;=; 3*$" << .1"I+13 . *!(29); 3*$" << "F &' +1'& = " << +1'&; ,1"3((); } E. #$nstanta
'ntuk pendeklarasian konstanta dalam C adalah: mirip dengan Pascal. $intaksnya
Contoh:
3*!." )&*'" I(
= :.2;2<L9;
untuk mencari luas dan keliling lingkaran dengan
# !3&$C1 <3*! *.(> # !3&$C1 < *."+1'%.(> # !3&$C1 < *%'! I.(> /* C %' !() { 3*!." )&*'" I( = :.2;2<L9; )&*'" #'+ -#'+ , 51& & !,, &$'.; #'+ -#'+ = K.9; &$'. = I( * #'+ -#'+ * #'+ -#'+ ; 51& & !, = 9 * I( * #'+ -#'+ ; 3*$" << .1"I+1. 3 *!(<); 3*$" << EM$'. & !,5'+'! 'C'&'( G << &$'. << E.'"$'! &$'. H!G; 3*$" << EB1& & !, & !,5'+'! 'C'&'( G << 51& & !, << E.'"$'! I'!#'!, H!G; ,1"3((); } %. Lati&an
+. !uatlah program C ++, ))0 untuk mencari rata-rata , buah bilangan -., ,&, /+,
). 1iketahui - buah lingkaran dengan posisi saling menindih seperti pada gambar.
2ari-%ari lingkaran A adalah +3 cm, %ari-%ari lingkaran ! adalah +) cm, dan C adalah +. cm. 1engan menggunakan program C hitunglah luas bagian yang diarsir.
MS Word to PDF Converter using OpenOffice.org 1.1.4 -. $uatu ember berbentuk tabung dengan tutupnya terbuka berisi air penuh. 2ari-%ari alas ember adalah +3., cm, dan tingginya , cm. 5emudian sebuah kerucut dengan %ari-%ari alas yang berbentuk lingkaran adalah . cm dan tingginya ..( cm dimasukkan ke dalam ember. Akibatnya sebagian air dalam ember tumpah. 1engan menggunakan program C hitunglah berapa liter air yang tumpah6
A. Pengantar Operator
Operator merupakan simbol yang biasa dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi, misalnya untuk: - menjumlahkan dua nilai - memberikan nilai ke suatu variabel (assignment) - membandingkan kesamaan dua nilai.
B. Operator Aritmatika
Operator ini digunakan untuk perhitungan dasar aritmatika. Operator ini antara lain Operator * " $ ' Keterangan Perkalian Pembagian #odulo Penjumlahan pengurangan Contoh 2*3 ! 2 !"2 %$& %'&
D. Assignment an!"t
+ssignment merupakan proses pemberian nilai pada suatu variabel. (erikut ini ,ontoh',ontohnya:
a = 1; a = 2 + b; a = 2 + (b = 1);
-ontoh no. 3 di atas prosesnya adalah mula'mula b diberi nilai ., kemudian variabel a diisi dengan nilai penjumlahan 2 dan ..
a = b = c = d = e = 1;
./
MS Word to PDF Converter using OpenOffice.org 1.1.4 -ontoh tersebut identik dengan:
e d c b a
= = = = =
1; e; d; c; b;
x = x + 1; y = y 1;
dapat ditulis
++x; --y;
atau
x++; y--;
0e,ara sekilas tak ada perbedaan antara $$1 dan 1$$ atau ''y dan y2 Perhatikan ,ontoh berikut ini:
r = 10; s = 10 + r++; cout << Nilai r = << r << \n; cout << Nilai s = << s << \n;
bandingkan dengan
r = 10; s = 10 + ++r; cout << Nilai r = << r << \n; cout << Nilai s = << s << \n; $. Operator Ma!em"k
-$$ menyediakan operator yang dimaksudkan untuk memendekkan penulisan operasi assignment, misalnya:
x = x + 2;
..
9asil operasi relasi ini dihasilkan nilai benar atau salah. -ontoh:
nilai1 = ' ( 2; nilai2 = 1$ == 1); cout << Nilai1 = << nilai1 << \n; cout << Nilai2 = << nilai2 << \n;
9asil program di atas akan menampilkan nilai. adalah . (benar) dan nilai2 adalah / (salah).
nilai1 = (' ( 2) ** (! < 10); nilai2 = +(1$ == 1$); cout << Nilai1 = << nilai1 << \n; cout << Nilai2 = << nilai2 << \n;
.2
MS Word to PDF Converter using OpenOffice.org 1.1.4 0etelah di run, dihasilkan nilai. adalah . (benar) dan nilai2 adalah / (salah)
I. $"ngsi()"ngsi Matematika
-$$ menyediakan beberapa *ungsi khusus untuk perhitungan matematika. ?ungsi'*ungsi ini memerlukan *ile header math.h $"ngsi abs(1) ,os(1), sin(1), tan(1) e1p(1) log(1) po)(1,y) s@rt(1) Keterangan #en,ari nilai mutlak #en,ari nilai ,os, sin, tan (1 dalam radian) #en,ari nilai e1 #en,ari nilai log #en,ari nilai 1y #en,ari nilai akar kuadrat dari 1
.3
B. get#h*+
Perintah get,h() ber*ungsi sama seperti ,in (perintah input), akan tetapi get,h() khusus untuk input berupa karakter. <isamping itu get,h() dapat memba,a input berupa spasi atau tab, sedangkan ,in tidak bisa. 0intaksnya: Eariabel 3 get,h()A ?ungsi ini juga dapat digunakan apabila tidak diinginkan penekanan F;5F> ketika input data karakter.
C. get#he*+
Perintah get,he() kegunaannya sama dengan get,h(), bedanya adalah: - get,h() tidak menampilkan karakter yang diiinput - get,he() menampilkan karakter yang diinput *ungsi get,h() dan get,he() sama'sama membutuhkan *ile header #onio.h (erikut ini ,ontoh penggunaan get,h() dan get,he() ,har karakterA ,out 88 Bmasukkan sebuah karakter : BA karakter 3 get,h()A ,out 88 B+nda mengetik karakter : C 88 karakterA ,out 88 Bmasukkan sebuah karakter : BA karakter 3 get,he()A ,out 88 B+nda mengetik karakter : C 88 karakterA NB, -nt"k inp"t .er"pa string/ akan di.ahas di .a. 0ang &ain.
.&
D. #o"t
<alam ,$$, perintah ,out digunakan untuk menampilkan suatu in*ormasi ke piranti output (layar). -ontoh',ontoh penggunaannya telah banyak diberikan di bab'bab sebelumnya. (erikut ini perintah'perintah tambahan untuk mengatur tampilan output. endl Perintah ini ber*ungsi sama dengan Dn (ganti baris) -ontoh:
- = 12'; . = /&; 0 = 1; cout << Nilai - = << set%()) << - << endl; cout << Nilai . = << set%()) << . << endl; cout << Nilai 0 = << set%()) << 0 << endl;
(andingkan bila tanpa menggunakan set)(). set*ill() Perintah set*ill digunakan untuk menambahkan suatu karakter tertentu pada *ield yang kosong pada suatu data. Perhatikan ,ontoh berikut ini
- = 12'; . = /&; cout<< Nilai - = << set%()) << set1ill(2 3) << - << endl; cout<< Nilai . = << set%()) << set1ill(243) << . << endl;
Perintah set*ill() biasanya digunakan setelah penggunaan set)(). setpre,ision() 5elah dijelaskan di bab sebelumnya. ;(: Perintah'perintah tambahan pada ,out di atas memerlukan *ile header iomanip.h supaya dapat digunakan.
.%
a. Session
.. (uatlah program menggunakan -$$ untuk menentukan harga barang setelah di diskon dengan tampilan sbb:
5asu66an 7ar8a baran8 9 :;4 1$0000 5asu66an discount (<) 9 124$ ---------------------------------------------,ar8a baran8 .esar dis6on ,ar8a bersi7 9 :;4 1$0000 9 :;4 1&=$0 ------------------ 9 :;4 1'12$0
2. (uatlah program -$$ untuk menghitung jarak peluru yang ditembakkan dari suatu lokasi dengan sudut penembakan 1o, dan ke,epatan a)al peluru Eo. <iketahui besar Pi 3 3..&.%G3 dan besar per,epatan gravitasi (g) adalah G.H m s 2. Input : 1 (dalam derajad), Eo (dalam m s). Output : jarak peluru (dalam meter) 9int: Junakan rumus 0 3 2 Eo sin(1) ,os(1) g
.K
if (kondisi) statement;
Statement pada sintaks di atas akan dilakukan jika kondisinya bernilai !"# (tidak sama dengan nol). $pabila statement yang akan dilakukan lebih dari satu, maka sintaksnya menjadi
#include <iostream.h> #include <conio.h> void main() { int usia; clrscr(); cout << Bera a usia !nda " ; cin >> usia; if (usia < 1#) cout << !nda tidak $oleh menonton $iosko %; }
Statement IF juga dapat ditambahkan #*S# sebagai konsekuensi alternati% jika kondisi tidak dipenuhi (F$*S#). Sintaksnya)
statement2; }
$nda dapat modi%ikasi program C++ untuk menentukan boleh tidaknya seseorang menonton bioskop seperti di ba+ah ini)
#include <iostream.h> #include <conio.h> void main() { int usia; clrscr(); cout << Bera a usia !nda " ; cin >> usia; if (usia < 1#) cout << !nda tidak $oleh menonton $iosko %; else cout << !nda $oleh menonton $iosko %; }
"ntuk menyatakan kondisi (syarat) yang akan dicek pada IF, $nda dapat menggunakan operator logika dan operator relasional seperti yang telah dijelaskan pada bab sebelumnya. Perhatikan contoh di ba+ah ini,
&1
if ($il ) 2 *& +) cout << Bilan,an ,an-il%; if ($il ) 2) cout << Bilan,an ,an-il%
Selain itu, IF juga dapat berbentuk seperti di ba+ah ini.
if (kondisi1) statement1; else if (kondisi2) statement2; else if (kondisi() statement(; . . else statement;
$nda tahu kan maksudnya2 Latihan: (uatlah program dengan C++ untuk menentukan hari menggunakan IF. 3esain tampilannya sbb) P!04!$5 5#6#6 "7$6 6$5$ 8$!I Pilihan) $ . S#6I6 ( . S#*$S$ C . !$(" 3 . 7$5IS # . -"59$ F . S$( " 4 . $8$3
5asukkan 7ode 8ari ($..4) ) Skenario) $pabila kode hari yang dimasukkan $ s:d 4, maka selanjutnya akan tampil nama hari sesuai kodenya. api apabila selain & s:d ', maka akan tampil ;5$$F 703# 8$!I6<$ S$*$8=. 7ode hari harus bisa juga membaca huru% kecil, artinya jika kode harinya >a9, maka akan tampil S#6I6, dst.
B. Statement SWITCH
Statement S?I C8 juga ber%ungsi sama dengan IF. Perintah S?I C8 sama dengan perintah C$S# 0F dalam P$SC$*. Sintaks)
s.itch (varia$el) { case value1 " statement1; $reak; case value2 " statement2; $reak; . .
&@
default }
/0 o tional 0/
contoh penggunaan)
#include <iostream.h> #include <conio.h> void main() { int $il; clrscr(); cout << 1asukkan $ilan,an " ; cin >> $il s.itch ($il) { case 1 " cout << !nda memasukkan $reak; case 2 " cout << !nda memasukkan $reak; case ( " cout << !nda memasukkan $reak; default" cout << !nda memasukkan $reak; } }
$il. satu%; $il. dua%; $il. ti,a%; $il selain 12 22 dan (%;
Selanjutnya coba kalian hapus semua break program di atas dan kalian jalankan. $pa yang terjadi22 7eanehan akan muncul. ?hy 22 Latihan: 3engan soal yang sama dengan latihan sebelumnya, kalian coba buat program C++ nya menggunakan S?I C8.
C. Statement FOR
Statement F0! digunakan untuk menyatakan perulangan (seperti P$SC$*). Sintaksnya)
AB
Contoh)
for (huruf & 789; huruf >& 7!9; huruf::) { cout << 5uruf a$-ad& << huruf << 6n%; }
Perintah di atas akan menampilkan teks 8uru% abjad . ... mulai dari E sampai dengan $. Perhatikan perintah huruf--
for (an,ka & 1; an,ka <& ;; an,ka4&2) { cout << <si dari an,ka & << an,ka << endl; }
Perintah di atas akan menampilkan angka &, /, D. 7ok bisa2 Perhatikan perintah an !a+"#. 3i ba+ah ini adalah program untuk mencetak bilangan genap yang kurang dari n (n diperoleh dari input).
#include <iostream.h> #include <conio.h> void main() { int $il2 n; cout << 1asukkan n & ; cin >> n; for ($il & +; $il < n; $il44) { if ($il ) 2 && +) cout << $il << %; } }
Latihan: (uatlah program C++ untuk membuat tampilan segitiga seperti di ba+ah ini menggunakan F0!. F F F F F F FF FFF FFFF A&
$. Statement WHILE
Statement ?8I*# juga digunakan untuk menyatakan perulangan. PenggunaanG nya mirip pada P$SC$*. Sintaksnya)
.hile (kondisi) { . . }
contoh) 3ua perintah di ba+ah ini adalah identik.
#include <iostream.h> #include <conio.h> void main() { int data2 -umlah2cacah; -umlah & +; data & +; cacah & +; .hile (data *& :1)
AA
} cout << =umlah data adalah " << -umlah% << endl; cout << >ata:rata " % << -umlah/cacah;
cout << 1asukkan data an,ka " ; cin >> data; -umlah 4& data; cacah44;
do
{ . . } .hile (kondisi);
Perbedaan dengan ?8I*# sebelumnya yaitu bah+a pada 30 ?8I*# statement perulangannya dilakukan terlebih dahulu baru kemudian di cek kondisinya. Sedangkan ?8I*# kondisi dicek dulu baru kemudia statement perulangannya dijalankan. $kibat dari hal ini adalah dalam 30 ?8I*# minimal terdapat &J A/
perulangan. Sedangkan ?8I*# dimungkinkan perulangan tidak pernah terjadi yaitu ketika kondisinya langsung bernilai F$*S#. Contoh)
AI
A. Seseorang punya rekening tabungan di bank sebesar !p. &B.BBB,G (saldo a+al). Selanjutnya ia dapat menyetor atau mengambil tabungannya. (uatlah program dengan C++ untuk keperluan transaksi di bank tsb. ampilan menu utamanya sbb) GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG P . ($67 S<$!I$8 (#6#!$6 GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG Saldo ) .... 5enu ransaksi &. Setor abungan A. $mbil abungan /. #Jit Pilihan menu (&:A:/) 2 ... 7etentuan) (ank membuat kebijakan bah+a saldo minimum yang harus disisakan di rekening adalah !p. &B.BBB,G
AD
A. Pengantar Function
Sebua! %un tion berisi se¨a! pernyataan yang dikemas dalam sebua! nama. 'ama ini selan&utnya dapat dipanggil beberapa kali di beberapa tempat dalam program. (u&uannya) *. memuda!kan dalam mengembangkan program. +rogram dibagi men&adi beberapa subprogram ke il, se!ingga !al ini men&adi kun i dalam pembuatan program terstruktur. ,. meng!emat ukuran program, karena beberapa perinta! yang sama dan di&alankan beberapa kali dalam program dapat di&adikan satu kali sa&a dalam suatu %un tion, kemudian %un tion tersebut dapat dipanggil berulang kali. Conto! -un tion .)
#include <iostream.h> #include <conio.h> void garis(); // prototype function main function panggil function N"!" !"#"$ $%"& << endl; panggil function "! + #"!,"# << endl; ." !"N& << endl; panggil function
void main() // { clrscr(); garis(); // cout << N ! garis(); // cout << !'()*''( cout << !'()*''garis(); // /
void garis() // detail function { int i; for(i0';i<01';i22) { cout << 3&; / cout << endl; /
Conto! di atas menggambarkan bagaimana membuat %un tion untuk membuat garis. 'ama %un tionnya adala! garis. Untuk membuat suatu %un tion, diperlukan suatu prototype dari %un tion tersebut. +rototype %un tion memiliki sintaks sbb) ,/
returned01alue0data0type
nama0%un tion(argumen"2
Seperti !alnya dalam +as al, suatu %un tion dapat mengembalikan (return" suatu nilai (1alue" yang tergantung tipe datanya. (ipe data 1alue yang dikembalikan inila! yang dimaksud dengan returned01alue0data0type. Sedangkan argumen merupakan parameter-parameter yang akan diola! dalam %un tion tersebut. Argumen bole! ada bole! tidak, sesuai kebutu!an. Apabila parameter argumennya lebi! dari satu, ara penulisannya sbb) tipe0data param*, tipe0data param,, ... Conto! penulisan prototype %un tion) double kuadrat(int 3"2 %loat luas0segitiga(%loat alas, %loat tinggi"2 int ¨a!0bil(int 3, int y, int 4"2
Apabila suatu %un tion tidak mengembalikan nilai, maka returned01alue0data0type nya diisi void. Setela! prototype %un tion dibuat, selan&utnya membuat %un tion tersebut se ara detail. Suatu %un tion disebut &uga subprogram, ole! karena itu strukturnya &uga sama dengan struktur program utama. +ada onto! %un tion garis(" di atas, detail dari %un tion tersebut adala!)
void garis() // detail function { int i; for(i0';i<01';i22) { cout << 3&; / cout << endl; /
5alau diper!atikan, strukturnya sama dengan program utama main(). Conto! -un tion ..)
#include <iostream.h> #include <conio.h> float luas(float alas4 float tinggi); void main() { clrscr(); a 0 ('.5; t 0 ((; cout << # 67N8 97"$ $:8 6 8"& << cout << .an;ang alas < << a << cout << 6inggi < << t << cout << 9uasnya < << / float luas(float alas4 float tinggi) {
,6
float luas=segitiga; luas=segitiga 0 alas > tinggi > '.5; return luas=segitiga;
float luas(float alas4 float tinggi) { return (alas > tinggi > '.5); /
+erinta! return adala! untuk mengembalikan !asil operasi di sebela! kanannya ke perinta! pemanggilan %un tion.
#include <iostream.h> #include <conio.h> void ceta?(); void main() { int a; a 0 ('; cout << Nilai a 0 << a << endl; ceta?(); / void ceta?() { a22; cout << Nilai a 0 << a << endl; /
5etika program di atas di ompile, akan terdapat error yaitu 1ariabel a dalam %un tion etak(" unde%ined. Artinya ba!7a 1ariabel a tidak dikenal dalam etak(". 8ariabel a !anya dikenal dalam program utama9 %un tion main(" sa&a. :aka dalam !al ini 1ariabel a disebut 1ariabel lokal (!anya dikenal dalam %un tion yang di dalamnya dide%inisikan a tersebut". Selan&utnya program di atas diuba! sbb)
#include <iostream.h> #include <conio.h> void ceta?(); void main() { int a; a 0 ('; cout << Nilai a 0 << a << endl; ceta?(); / void ceta?() { int a; cout << Nilai a 0 << a << endl; /
Apabila program di atas di&alankan, !asilnya adala!) 'ilai a < *= 'ilai a < 6@6 Aasil di atas menun&ukkan ba!7a meskipun nama 1ariabelnya sama-sama a, tapi kedua 1ariabel a tersebut berbeda. Setiap 1ariabel a tersebut !anya dikenali di %un tionnya masing-masing (tidak terkait satu dengan yang lain".
,B
Latihan:
*. >uatla! %un tion yang akan memberikan nilai * &ika nilai parameter yang dimasukkan !uru% #a$, dan akan memberikan nilai = &ika nilai parameter yang dimasukkan selain !uru% #a$. ,. >uatla! %un tion untuk men ari nilai %ungsi %(3" < ,3, C D3 + *2 +arameter %un tionnya adala! nilai 3 (tipe data %loat9double". Eeturn 1aluenya adala! nilai %(3". D. >uatla! %un tion untuk membuat tampilan seperti di ba7a! ini) F FF FFF FF F (ampilan di atas mun ul apabila dimasukkan n < D. F F F F F F F F FF FFF FF F
(ampilan di atas mun ul apabila dimasukkan n < @. +arameter %un tionnya adala! n (tipe datanya integer".
D=
char te?sA-'B;
+erinta! di atas bermakna ba!7a teks merupakan 1ariabel string dengan ¨a! karakter yang dapat disimpan maksimal adala! ,= (suda! termasuk karakter 'UGG".
A. Inisialisasi
tring
:isalkan suatu 1ariabel string katakanla! kalimatID=J akan diberi nilai SAYA >KGALAE C++, maka perinta!nya)
#include <iostream.h> #include <conio.h> void main() { int a; a 0 -'; char ?alimatAC'B 0 $"D" E:9"F"+ G22&; cout << Nilai a 0 << a << endl; cout << Nilai ?alimat 0 << ?alimat << endl;
D*
void main() { int a; char ?alimatAC'B; a 0 -'; ?alimat 0 $"D" E:9"F"+ G22&; // atau ?alimatAC'B 0 $"D" E:9"F"+ G22&; cout << Nilai a 0 << a << endl; cout << Nilai ?alimat 0 << ?alimat << endl;
!. "embaca
Selan&utnya bagaimana ara memba a string yang berasal dari keyboard? >erikut ini onto!nya)
#include<iostream.h> #include<conio.h> void main() { char namaA-'B; char alamatAC'B; cout << !asu??an nama "nda < ; cin.getline(nama, sizeof(nama)); cout << !asu??an alamat "nda < ; cin.getline(alamat, sizeof(alamat)); cout << Nama "nda < << nama << endl; cout << "lamat "nda < << alamat << endl;
%. "engco&$
tring
5emudian bagaimana untuk mengassign suatu string dari 1ariabel ke 1ariabel lain? :isalnya kata' diberi string AAGGN. Selan&utnya kata( akan diberi string dari kata'. Untuk melakukan !al ini, Anda tidak bisa memberikan &erintah
?ata- 0 ?ata(;
+erinta! yang digunakan untuk keperluan di atas adala! dengan)
strcpy(?ata-4 ?ata();
D,
Conto!)
#include<iostream.h> #include<conio.h> #include<string.h> void main() { char ?ata(A-'B 0 #"99H&; char ?ata-A-'B; strcpy(kata2, kata ); cout << Iata(< << ?ata( << endl; cout << Iata-< << ?ata- << endl;
tring
-un tion-%un tion berikut ini dapat digunakan untuk memanipulasi string. Sebelum %un tion digunakan, tamba!kan %ile !eader string.h pada in lude. "engetahui &an+ang string dengan strlen() sintaks)
strlen(string)
akan mereturn bilangan bulat yang menyatakan pan&ang string. Conto!)
int pan;angte?s; char ?alimatAC'B 0 E:9"F"+ G22 6 J"I9"# $79 6&; pan;angte?s 0 strlen(?alimat); cout << .an;ang string < << pan;angte?s;
"enggabungkan string dengan strcat() Sintaks)
strcat(string(4 string-)
menamba!kan string, ke string*. Conto!)
char ?ata(A5B 0 $"67 &; char ?ata-A5B 0 J7"&; strcat(?ata(4 ?ata-); // nilai ?ata( men;adi $"67 J7"&
DD
strupr(string)
:enguba! !uru% ke il dari string ke !uru% kapital. Conto!2
strlLr(string)
-un tion ini kebalikan dari strupr(". "encari ubstring dengan strstr()
:isalkan diberikan suatu string LA5AE(A 5N(A :K(EN+NG.(A'. Apaka! string :K(EN terdapat dalam string tersebut? Untuk mengeta!ui !al ini dengan C++, kita dapat menggunakan %un tion strstr(". Sintaks)
strstr(string(4 string-);
-un tion tersebut akan mereturn nilai * &ika string, merupakan substring dari string*, dan akan mereturn = &ika tidak. Conto!)
if (strstr(F"I"+6" IH6" !:6+H.H9 6"N&4 !:6+H&) 00 () cout << !erupa?an su@string&; else cout << Eu?an merupa?an su@string&;
"embalik string dengan strrev() >agaimana ara membalik string C++ supaya diperole! ++C? >erikut ini perinta! dalam C++, sintaks)
strrev(string);
D@
Conto!)
DO
++ entri '( data ,or (elemen-(*elemen #- .*elemen++) % cout ## /Data ke 0 / ## elemen ## / /* cin $$ data&elemen)* 1 ++ tampilkan data setelah entri ,or (elemen-(*elemen #- .*elemen++) % cout ## /Data ke 0 / ## elemen ## / / ## data&elemen)* 1
23 Dalam C+C++ elemen array dimulai dari (. Contoh 2. Program untuk menampilkan data array dari hasil inisialisasi "include#iostream.h$ "include#conio.h$ void main() % int data&4) - %5, ', (, 6., 71* int elemen* clrscr()* ++ tampilkan data ,or (elemen-(*elemen #- 5*elemen++) % cout ## /Data ke 0 / ## elemen ## / / ## data&elemen)* 1
Contoh 3. Program untuk mencari data dari array, dan menampilkan nomor elemennya. "include#iostream.h$ "include#conio.h$ void main() % int data&'() - %5, ', (, 6., 7, 4, 6', 8, 9, 6:1* int elemen, ketemu* cout ## /Data yang dicari cin $$ ;* /*
ketemu - (* ,or(elemen-(* elemen#- .* elemen++) % i, (data&elemen) -- ;) % ketemu - < ketemu* break* 1 1 i, (ketemu -- () cout ## /Data tidak ditemukan /* else cout ## /Data ada di elemen / ## elemen*
Contoh 4. Program untuk menampilkan data terbesar (maks) dari suatu array. "include#iostream.h$ "include#conio.h$ void main() % int data&'() - %5, ', (, 6., 7, 4, 6', 8, 9, 6:1* int elemen, ma;* ma; - data&()* ,or(elemen-(* elemen#- .* elemen++) % i, (data&elemen)$ma;) ma; - data&elemen)* else ma; - ma;* 1 1 cout ## /2ilai maksimum adalah / ## ma;*
Array di atas adalah array dimensi satu. 3agaimana dengan array dimensi dua= 3erikut ini contoh penggunaan array dua dimensi
"include#iostream.h$ "include#conio.h$ void main() % int j, k* int data&4)&9) % %9, %8, %', %4, %>, 1*
5, 9, ', ., >,
,or (j - (* j#-5* j++) % ,or (k - (* k#-8* k++) cout ## /data&/ ## j ## /)&/## k ## /) - / ## data&j)&k) ## endl* 1
Latihan : '. Diberikan suatu array bertipe integer yang berukuran '( ruang+elemen yang setiap elemen sudah ada nilainya yang sudah terurut. 3uatlah program untuk mencari jangkauan (range) dari nilai dalam array tersebut. 8. Diberikan suatu n buah data statistik yang diisikan ke dalam larik bertipe real. ?tandard deviasi dari suatu data statistik dide,inisikan sebagai
d=
(X
n i =1
n 1
BAB X. STRUKTUR
?truktur berman,aat untuk mengelompokkan sejumlah data dengan tipe yang berlainan. Perhatikan contoh struktur berikut ini struct data@tanggal % int tahun* int bulan* int tanggal* 1* ?truktur di atas bernama data@tanggal, yang tersusun atas 9 unit penyusunnya yaitu tahun, tanggal, dan bulan. ?etelah dibuat struktur tanggal, selanjutnya struktur tersebut dapat digunakan sebagai tipe data suatu variabel, dalam hal ini disebut tipe data abstrak.
3erikut contoh programnya. Contoh 1. "include#iostream.h$ "include#conio.h$ void main() % struct data@tanggal % int tanggal* int bulan* int tahun* 1* data@tanggal tanggal@lahir* tanggal@lahir.tanggal - '* tanggal@lahir.bulan - .* tanggal@lahir.tahun - '.:.* cout 1 Cisalkan terdapat 8 buah variabel tgl' dan tgl8 sama6sama bertipe data@tanggal. ?elanjutnya diinginkan mengcopy isi dari tgl' ke tgl8, maka dapat dilakukan dengan perintah assignment biasa. Contoh Contoh 2. "include#iostream.h$ "include#conio.h$ void main() % struct data@tanggal % int tanggal* int bulan* int tahun* 1* data@tanggal tgl', tgl8* tgl'.tanggal - '* tgl'.bulan - .* tgl'.tahun - '.:.* tgl8 - tgl'* ++ atau ## tanggal@lahir.tanggal ## A+B ## tanggal@lahir.bulan ## A+B ## tanggal@lahir.tahun*
tgl8.tanggal - tgl'.tanggal* tgl8.bulan - tgl'.bulan* tgl8.tahun - tgl8.tahun* cout ## tgl'.tanggal ## A+B ## tgl'.bulan ## A+B ## tgl'.tahun ## endl*
cout 1
Dntuk membandingkan 8 buah struktur, masing6masing unit harus dibandingkan sendiri6sendiri, contoh i, ((tgl'.tanggal -- tgl8.tanggal) EE (tgl'.bulan -- tgl8.bulan) EE (tgl'.tahun -- tgl8.tahun)) cout ## /Fsi strukturnya samaG* else cout ## /Fsi struktur tak samaG* ?uatu struktur juga dapat digunakan untuk argumen+parameter suatu ,unction. Contoh 3. "include#iostream.h$ "include#conio.h$ struct data % int ;* int y* 1* void tampilkan(data nilai) void main() % data nilaiku* nilaiku.; - '(* nilaiku.y - '>* 1 tampilkan(nilaiku)*
void tampilkan(data nilai) % cout ## /2ilai ; - / ## nilai.; ## endl* cout ## /2ilai y - / ## nilai.y ## endl* 1 Latihan: '. 3uatlah program menggunakan ,unction untuk menentukan selisih antara dua !aktu (jam). Cisalkan selisih antara pukul 5.9( dengan >.(( adalah .( menit. Herdapat 8 argumen ,unction yaitu jam pertama dan jam kedua (lebih besar dari jam pertama). hint buat struktur jam (dengan unit jam, dan menit). 8. 3ilangan kompleks memiliki ,ormat a+b i, dengan a dan b adalah bilangan real. 2otasi a disebut juga bagian real, dan b disebut juga bagian imajiner. 3uatlah program menggunakan struktur untuk menjumlahkan, mengurangkan, dan mengalikan 8 buah bilangan kompleks. Contoh
(8+9 i) + (6' + 9i) - '+> i (8+9 i) 6 (6' + >i) - 9 0 9i (8+9 i) . (6' + 9i) - 68 0 9i + >i + . i8 - 68 0 9i + >i 0 . - 6'' + 9i
ofstream nama_obyek;
perintah ofstream dapat dijalankan dengan menyertakan file header fstream.h Setelah itu, suatu file dapat dibuka dengan perintah
nama_obyek.close();
Contoh 1. Program berikut ini untuk menulis teks ke dalam file
#include<iostream.h> #include<fstream.h> void main() ofstream fileteks; fileteks.open(!"#al$o.t%t); fileteks << << fileteks << fileteks << << fileteks << << * &ntuk mencapai tu'uan y$ besar( maka tu'uan itu endl; harus diba$i)ba$i men'adi tu'uan kecil<< endl; sampai tu'uan itu merupakan tu'uan y$ dapat dicapai << endl; berdasarkan kondisi dan potensi y$ dimiliki saat itu << endl;
fileteks.close();
perintah fileteks.open( C:!algo.t"t#$% akan membuka file algo.t"t yang ada di C:& 'pabila file tersebut belum ada maka akan dibuat se(ara otomatis, dan apabila sudah ada isi file algo.t"t akan terhapus. D. Menambah Data pada File Suatu file yang sudah ada sebelumnya dapat ditambah data yang baru (tidak menghapus data lama$. Caranya dengan menambahkan perintah ios::app pada open($.
#include<iostream.h> #include<fstream.h> void main() ofstream fileteks; fileteks.open(!"#al$o.t%t( ios""app); fileteks << endl; fileteks << +leh" ,l -ho.ari/mi << endl; * fileteks.close();
E. Memeriksa Keberhasilan Operasi File *idak selamanya jalan yang mulus ditemui. 'da kemungkinan terjadi saat file dibuka, ternyata file tidak ada. +alam C,, tersedia fun(tion untuk memeriksa kondisi-kondisi pada operasi file, sehingga kesalahan saat eksekusi dapat dikendalikan. .un(tion yang dimaksud adalah fail !. Contoh 3:
#include<iostream.h> #include<fstream.h> void main() ifstream fileteks; ifstream di$unakan u# membaca file * fileteks.open(!"#al$o.t%t); if (fileteks.fail()) cout << 0aaf file takdapat dibuka# << tidak ditemukan; fileteks.close();
F. Operasi Berbasis Karakter Operasi file dapat dilakukan dalam bentuk karakter. /isalnya proses penyimpanan data ke file dilakukan setiap karakter, atau memba(a data file karakter per karakter. Operasi ini didukung oleh fun(tion put ! dan "et !. Contoh 0: Program untuk menyimpan data karakter per karakter ke dalam file.
#include<iostream.h> #include<fstream.h> void main() ofstream fileteks; fileteks.open(!"#contoh.t%t); fileteks.put(1,2); fileteks.put(132); fileteks.put(1!2); fileteks.close();
#include<iostream.h> #include<fstream.h> void main() char karakter; ifstream fileteks; * fileteks.open(!"#contoh.t%t); .hile(4fileteks.eof()) fileteks.$et(karakter); cout << karakter;
* *
fileteks.close();
#atihan. 1. 2uatlah program C,, untuk menghitung jumlah karakter dalam suatu file. 3nputnya adalah nama file dan pathnya. ). 2uatlah program C,, untuk menghitung jumlah karakter tertentu, misalnya karakter 4'5. 3nput berupa nama file dan karakter yang akan dihitung. 3. /isalkan suatu file teks berisi listing program C,,. 2uatlah program untuk menghitung pasangan kurung kura6al yang ada pada file teks tersebut. 0. 2uatlah program C,, untuk melakukan enkripsi shift (hiper suatu file teks (dengan asumsi semua karakter huruf adalah huruf kapital$. 3nputnya adalah file teks yang akan dienkripsi dan besar pergeseran (integer$. Outputnya adalah file teks hasil enkripsi.
7int: 3de dasar shift (hiper adalah mengubah setiap karakter huruf ke karakter huruf lain. /isalkan pergeserannya ), maka berikut ini karakter hasil enkripsi a6al hasil ' 2 C +8 . 97 3 : ; < /= OP >? S * @ A B C D E C +8 . 97 3 : ; < /= OP >? S * @ A B C D E ' 2
Sehingga misal diberikan suatu teks C,, 3S 8'SD, maka hasil enkripsinya adalah 8,, ;@ 9C@'
#include <iostream.h> #include <conio.h> #include <string.h> struct mahasiswa { char nim[8]; char nama[20]; int umur; }; void main( { mahasiswa mhsd!; strc"#(mhsd!.nim$ %&0'()00'* ; strc"#(mhsd!.nama$ %+urhanudin ,araha"* ; mhsd!.umur - 20; cout << mhsd!.nim << endl; cout << mhsd!.nama << endl; cout << mhsd!.umur << endl;
Setelah program di atas dicompile, error tidak ada. Berikutnya struktur di atas kita ganti dengan class, menjadi Contoh .
#include <iostream.h> #include <conio.h> #include <string.h> class mahasiswa { char nim[8]; char nama[20]; int umur; }; void main( { mahasiswa mhsd!; strc"#(mhsd!.nim$ %&0'()00'* ; strc"#(mhsd!.nama$ %+urhanudin ,araha"* ; mhsd!.umur - 20; cout << mhsd!.nim << endl; cout << mhsd!.nama << endl; cout << mhsd!.umur << endl;
setelah program di atas di compile, ternyata error muncul. !rror tersebut muncul karena class tidak dikenal dalam main"#. $esalahan ini sekaligus menunjukkan perbedaan dengan struktur. Penggunaan PUBLIC %gar program di atas dapat dicompile, ditambahkan perintah public diikuti dengan tanda titik dua ":#, sehingga programnya menjadi Contoh &.
#include <iostream.h> #include <conio.h> #include <string.h> class mahasiswa { "u.lic/ char nim[8]; char nama[20]; int umur; }; void main( { mahasiswa mhsd!; strc"#(mhsd!.nim$ %&0'()00'* ; strc"#(mhsd!.nama$ %+urhanudin ,araha"* ; mhsd!.umur - 20; cout << mhsd!.nim << endl; cout << mhsd!.nama << endl; cout << mhsd!.umur << endl;
Perintah PUB'(C menyatakan bahwa perintah)perintah yang ada di bawahnya dapat diakses diluar class. Perintah PUB'(C merupakan termasuk access specifier "penentu akses#. Selain PUB'(C, terdapat perintah lain yang termasuk access speci*ier, yaitu P+(,%-!. Contoh ..
#include <iostream.h> #include <conio.h> #include <string.h> class mahasiswa { "rivate/ char nim[8]; char nama[20]; int umur; }; void main( { mahasiswa mhsd!; strc"#(mhsd!.nim$ %&0'()00'* ;
strc"#(mhsd!.nama$ %+urhanudin ,araha"* ; mhsd!.umur - 20; cout << mhsd!.nim << endl; cout << mhsd!.nama << endl; cout << mhsd!.umur << endl;
Setelah dicompile, error yang sama dengan sebelumnya muncul yaitu class tidak dapat diakses di main"#. Perintah P+(,%-! memberi pengertian bahwa perintah yang ada dibawahnya hanya dapat diakses dalam class tersebut, yang dalam hal ini adalah class mahasiswa. /ariabel nim, nama, dan umur dalam class mahasiswa disebut data anggota. Selain data anggota, kita juga dapat menambahkan *ungsi anggota. Contoh 0.
#include <iostream.h> #include <conio.h> #include <string.h> class mahasiswa { private : char nim[8]; char nama[20]; int umur; public : void inisialisasi(char 012&&,3$ char 014&4&,3$ int 5&56&,3 { strc"#(nim$ 12&&,3 ; strc"#(nama$ 14&4&,3 ; umur - 5&56&,3; } void tam"il7an( { cout << nim << endl; cout << nama << endl; cout << umur << endl; } }; void main( { mahasiswa mhsd!; mhsd!.inisialisasi(%&0'()00'*$ %+urhanudin ,araha"*$ 20 ; mhsd!.tam"il7an( ; }
Pada program di atas, *ungsi inisialisasi"# dan tampilkan"# merupakan *ungsi anggota dari class mahasiswa. $eduanya dibuat public karena akan diakses dari luar class, sedangkan data anggotanya "nim, nama, umur# dibuat pri/ate.
1ungkin %nda berpikir mengapa program terakhir "contoh 0# terlalu panjang, padahal akan diperoleh hasil yang sama dengan program sebelumnya "contoh 1#. %nda memang benar, tapi contoh 0 ini merupakan cara pemrograman berorientasi obyek "PB2#. Perhatikan program contoh 0, khususnya pada kedua *ungsi anggota. $edua *ungsi tidak punya prototype. $ita juga dapat memberikan prototype yang merupakan cara kedua dalam penulisan. Contoh 3.
#include <iostream.h> #include <conio.h> #include <string.h> class mhs { private : char nim[8]; char nama[20]; int umur; public : void inisialisasi(char 012&&,3$ char 014&4&,3$ int 5&56&,3 ; void tam"il7an( ;
};
void main( { mhs mhsd!; mhsd!.inisialisasi(%&0'()00'*$ %+urhanudin ,araha"*$ 20 ; mhsd!.tam"il7an( ; } void mhs//inisialisasi(char 012&&,3$ char 014&4&,3$ int 5&56&,3 { strc"#(nim$ 12&&,3 ; strc"#(nama$ 14&4&,3 ; umur - 5&56&,3; } void mhs//tam"il7an( { cout << nim << endl; cout << nama << endl; cout << umur << endl; }
Cara kedua inilah yang sering dipilih oleh para programmer C44. Berikut ini contoh)contoh program yang meman*aatkan class Contoh 5. Program untuk menyimpan data n data mahasiswa kemudian menampilkannya.
class mahasiswa { "u.lic/ char nim[20]; char nama[80]; int umur; void tam"il7an(char 012&&,3$ { cout << 912& &,3 cout << 914&4 &,3 cout << 95&56 } char 014&4&,3$ int 5&56&,3 / 9 << 12&&,3 << endl; / 9 << 14&4&,3 << endl; / 9 << 5&56&,3 << endl;
};
void main( { mahasiswa mhsd![80]; { ti"e data arra# } char tem"['0]; int n$ i; clrscr( ; cout << 9<< :1;62 <4;4 &4,4323=4 <! 9 << endl; cout << endl; cout << 9>umlah mahasiswa / 9; cin.getline(tem"$ si?eo@(tem" ; n - atoi(tem" ; @or (i-0;i<-nA';iBB { cout << 9<4;4 A 9 << iB' << endl; cout << 912& &4,4323=4 / 9 ; cin.getline(mhsd![i].nim$ si?eo@(mhsd![i].nim ; cout << 914&4 &4,4323=4 / 9 ; cin.getline(mhsd![i].nama$ si?eo@(mhsd![i].nama ; cout << 95&56 / 9; cin.getline(tem"$ si?eo@(tem" ; mhsd![i].umur - atoi(tem" ; cout << endl; } CC tam"il7an semua data cout << 9AAAAAAAAAAAAAAAAAAAAAAAAA9 << endl; cout << 9<4;4 D41E &435F9 << endl; cout << 9AAAAAAAAAAAAAAAAAAAAAAAAA9 << endl; @or (i-0;i<-nA';iBB { cout << 9<4;4 &4,4323=4 9 << iB' << endl; mhsd![i].tam"il7an(mhsd![i].nim$ mhsd![i].nama$ mhsd![i].umur ; cout << endl; } getch( ;
#include <iostream.h> #include <conio.h> class 7om"le7s { "rivate/ @loat real; @loat imaGiner; "u.lic/ void tam.ah(@loat real'$ @loat imaGiner'$ @loat real2$ @loat imaGiner2 { real - real' B real2; imaGiner - imaGiner' B imaGiner2; } @loat void 7urangi(@loat real'$ @loat imaGiner'$ real2$ @loat imaGiner2 { real - real' A real2; imaGiner - imaGiner' A imaGiner2;
};
void tam"il7an( { cout << 9,asiln#a adalah / 9 << real << 9B 9 << imaGiner << HiH << endl; }
void main( { clrscr( ; 7om"le7s .il7om"le7s; @loat elIreal'$ elIreal2$ elIimaG'$ elIimaG2; cout << 9+ilangan Fom"le7s "ertama9 << endl; cout << 9:lemen real / 9; cin >> elIreal'; cout << 9:lemen imaGiner / 9; cin >> elIimaG'; cout << 9+ilangan Fom"le7s 7edua9 << endl; cout << 9:lemen real / 9; cin >> elIreal2; cout << 9:lemen imaGiner / 9; cin >> elIimaG2; .il7om"le7s.tam.ah(elIreal'$elIimaG'$elIreal2$elIimaG2 ; .il7om"le7s.tam"il7an( ; .il7om"le7s.7urangi(elIreal'$elIimaG'$elIreal2$elIimaG2 ; .il7om"le7s.tam"il7an( ; getch( ;