Anda di halaman 1dari 50

Dasor

Pemrogro,mcfit
C don C++

Dinurupkun Anda mengenal berbagai fondasi bahasa


penrograman C maupun C++ l:.1
t:.
l::
1.tt

1,.:,

t..
i:
?,,,
,..:.
l'.: ,

l.
1.
Algoritma Pemrograman Menggunakan C ++

4.L Mengenal Program C dan C++


Selamat datang di dunia pemograman. Anda akan mempelajari
-lahasa
C dan C++. C merupakan bahasa komputer yang sangat singkat.
\amanya tidak memiliki kepanjangan apapun. Bahasa ini diciptakan oleh
Dennis Ritchie sekitar tahun 1'972. Hingga kini bahasa ini masih populer
dan penggunaannya tersebar di pelbagai platform; dari Windows sampai
Linux dan dari PC hingga mainframe. C++ adalah bahasa yang relatif
baru dibandingkan dengan C. Bahasa g++ diciptakan oleh Bjame
Stroustroup sekitar tahun 1982. Bahasa c++ merupakan pengembangan
dari Bahasa C dan mendukung pemrograman berorientasi objek. Dengan
menggunakan C**, Anda tetap dapat menulis program C'
Pertama-tama Anda mengenal sebuah contoh program C yang
sangat sederhana, sebagaimana dapat Anda lihat di bau'ah ini:

Kode'Sumbep (:.:. pCrtamai

#include <stdio.h>
int main ( )

{
printf ( "Se1amat Belajar C\n" ) ;
ret,urn 0;
]

Program di atas berfungsi untuk menampilkan tulisan


Selamat Belajar C
ke layar.
Marilah sejenak mengenal beberapa kode yang terkait dengan program
tersebut.
Dasar Pemrograman C dan C++ 57

#include <sLdio . h>


nt-

printf ( "selamat Belajar Cn,,) ;


return O;

Gambar 4.1 Penjelasan program C

Berkas header (berekstensi .h) adalah berkas yang berisi prototipe


fungsi, definisi konstanta, dan definisi variabel. Proptotipe fungsi
berupa judul suatu fungsi yang dilengkapi dengan argumen dan tipe
argumen serta tipe nilai balik untuk fungsi yang memberikan nilai
balik. Prototipe fungsi harus sudah tersedia sebelum pemanggilan
fungsi. Ini merupakan persyaratan selama kompilasi. Fungsi adalah
kumpulan kode C yang diberi nama dan ketika nama tersebut
dipanggil maka kumpulan kode tersebut drjalankan.
Praprosesor #include adalah suatu perintah yang digunakan untuk
mengatur kompiler agar membaca berkas header yang disertakan di
belakang kata include saat pelaksanaan kompilasi.

main0 adalah fungsi yang akan dijalankan pertama kali ketika


program dieksekusi. Kata int di depan mainQ menyatakan bahwa
program memberikan nilai balik yang bertipe int. Tipe int adalah tipe
yang menyatakan bilangan bulat.
Algoritma Pemrograman Menggunakan C ++

Nilai balik program ditentukan oleh pemyataan return. Pada


program di depan, return 0 menyatakan bahwa nilai balik program
adalah nol. Nilai balik nol biasa digunakan untuk menyatakan bahwa
program berhasil melaksanakan tugas yang dibebankannya.

Pernyataan di dalam C adalah suatu perintah yang dapat berdiri


sendiri dalam melaksanakan suatu aksi dan dijalankan ketika program
dieksekusi. Setiap pemyataan ditulis dengan diakhiri tanda titik-koma
(;). Pada program di depan, ada dua buah pernyataan, yaitu:

O printf ( "Selamat Belajar C\n" ) ;


@ return 0;

printfQ adalah suatu fungsr yang protototipenya terdapat dalam


berkas stdio.h. Yang berada dalam tanda kurung yang mengikuti
printf pada program di depan disebut string. String adalah deretan
karakter yang ditulis di dalam tanda petik ganda (").
Adapun program C++ yang setara dengan program C di depan adalah
seperti berikut:

#include <iostream.h>
int main ( )

{
cout "Selamat Belajar C\n";
return 0;
)

Akhir Kode Sumber


Perbedaan utama program C++ di atas dengan kode C di depan:

o Berkas header yang digunakan bukan berupa stdio.h meiainkan


iostream.h.
o Pemyataan untuk menampilkan keluaran berupa cout. Dalam hal ini
cout merupakan contoh sebuah objek pada C++.
C dan C++

4,2 Mengenal Pengenal


Pengenal (identifier) adalah suatu nama yang digunakan dalam
program untuk menyatakan variabel, fungsi, d11. Aturan umum yang
berlaku dalan, membuat pengenal baik pada C maupun C++:
. Berawaian huruf kapital, huruf kecil, atau karakter garis-bawah (*).
. Bagian berikutnya dapat berupa huruf, angka (0..9), atau karakter
garis-bawah.

eototo n

Contoh pengenal yang absah dan yang salah dapat dilihat pada tabel
berikut:
Tabel 4.1 Pengenal yculg absah dan yang salalt

n 1
Semester (ada spasi)
Bilangan 3Bulan (diawali dengan angka)
semeseter_l modal*bunga (ada tanda *)
PERUSAHAAN

4.3 Mengenal Tipe Data


C dan C++ menyediakan berbagai tipe data dasar, sebagaimana
diperlihatkan pada tabel berikut:
Tabel 4.2 Tipe data dasar

char Menyatakan sebuah karakter (bisa berupa huruf


seperti A dan a, digit seperti 0 atau 7, alau
simbol seperti * dan &)
double Menyatakan bilangan titik-mengambang
(bilangan real) dengan ketelitian tinggi
60 Algoritma Pemrograman Mengqunakan C ++

'l-ina
r rlJL :
Keterangan
tloat Menyatakan bilangan titik-mengambang
(bilangan real) densan ketelitian rendah
mt Menyatakan bilangan bulat antara 32768
sampai dengan 32167.
long int Menyatakan bilangan bulat yang berkisar antara
-2147 483648 st d 2147 483647

e ototomr Beneiaf-a pemodifikasi tipe sepe*i signed dan


unsigned-juga 'dapat diterapkan pada sejumlah: lipe
,,das6r,,Mi$alnya, ,::,,

mencakup'.nilai antarA 0 bampai dengan 65535. Jika


Anda tertarik dengan detail pemrograman C, Anda
dapat membaca buku penulis yang berjudul
T*rbo C untuk fBM ,.PC"
"Femrograman: Dasar:
(Penerbit Andi).

4.4 Mengenal Variabel


Variabel adalah suatu nama yang menyatakan tempat dalam
memori komputer yang digunakan untuk menyimpan suaru nilai dan
nilainya dapat diubah sewaktu-waktu ketika program sedang dieksekusi.

..r1.,,
.. . ......:-,:::.',.., ::,.:.
.

Gambar 4.2 Variabel. Isinya dapat diubah seu'aktLt-yaktLr


Dasar Pemrograman C dan C++ 61

4. 4. L Mendeklarasikan Variabel
Sebelum Anda dapat menggunakan suatu variabel dalam
program, variabel harus dideklarasikan dulu. Pendeklarasian variabel
digunakan untuk memesan lokasi dalam memori komputer dan
menentukan tipe dari data yang dapat disimpan dalam variabel. Bentuk
pendeklarasiannya adalah sebagai berikut:
tipe_data nama variabel;
Contoh dapat dilihat pada tabel berikut:
Tabel 4.3 Contoh deklarasi variobel

Variabel n bertipe int (untuk


menyimpan bilangan bulat).
Variabel ch bertipe char (dipakai
untuk menyimpan sebuah karakter).
long int jumjenduduk; Variabel jum_penduduk bertipe long
int (dipakai untuk menyimpan
bilangan bulat dengan nilai mencapai
sekitar 2 milyar).
double jarak; Variabel jarak bertipe double (dipakai
untuk menyimpan sebuah bilangan
real dengan kepresisian tinggi).

Jika ada beberapa variabel dengan tipe yang sama, pendeklarasian dapat
dilakukan dengan menggunakan sebuah pemyataan. Contoh;
int i, j, k;

4.4.zMemberikan Nilai ke Variabel


Untuk mengisikan nilai ke variabel, pernyataan yang diperlukan
berbentuk
variabel: nilai;

Contoh:
n = 7':
o/. Algoritma Pemrograman Menggunakan C ++

merupakan pemyataan untuk mengisikan 7 ke variabel n.

Pemberian nilai juga dapat berbentuk semacam berikut:


n - n + 1;

1,'angberarti "hasil penjumlahan nilai n dengan 1 diberikan ke n". Dengan


kata lain, isi n dinaikkan sebesar satu.

Berikut ini ditunjukkan cara mengonversi pernyataan dalam pseudokode


ke dalam bentuk pernyataan C.
Tabel 4.4 Pengonversianpseudokode ke pernyataan C dan C++

n€n+l n:n+ 1;

luas €panjangxlebar luas:panjang*lebar;

4.5 Mengenal Literal


Literal atau konstanta menyatakan nilai yang tetap di dalam program.
Contoh:
c 2.3 (literal bilangan titik-mengambang)
o 10 (literal bilangan bulat)
o 'K' (sebuah karakter K)
Beberapa aturan penting yang perlu diketahui dalam menuliskan berbagai
literal dapat dilihat pada tabel berikut:
Tabel 4.5 Aturan penulisan literal

Berupa bilangan bulat antara -32768 sld 32767.


Tanda pemisah ribuan tidak boleh digunakan
Berupa bilangan bulat antara -2147483648 sld
2141483647. Tanda pemisah ribuan tidak boleh
digunakan. Tanda L atau I (huruf I kecil) perlu
disertakan di bagian akhir literal untuk
menyatakan tipe Iong int secara eksplisit.
Contoh: 4276898L
Harus ditulis dengan akhiran F atau f. Tanda
pecahan berupa titik. Notasi sains seperti
2.2e+04 diperkenankan (artinya 2,2 x l0a). Huruf
e dapat dirulis
Seperti pada float, tetapi tidak perlu akhiran F
atau f
Literal ditulis dengan awalan dan akhiran petik
tunggal ('). Di dalam tanda petik tersebut
terdapat satu karakter. Literal bertipe char juga
dapat mengandung dua karakter atau lebih
dengan karakter pertama berupa \. Pada keadaan
seperti ini, deretan karakter dalam tanda petik
tunggal tersebut tetap menyatakan sebuah
karakter

4.6 Mengenal Karakter Escape


Karakter escape adalah sebuah karakter yang ditulis dengan awalan tanda
\. Tabel 4.6 memperlihatkan karakter escape pada C dan C*+.
Tabel 4.6 Daftar karakter escape

Karakter NULL (Tulisannya berupa \ dan angka


nol)
Karakter bel
Karakter backspace
Formfeed
Linefeed (disebut juga newline atau pindah baris)
Carriage return
Tab horisontal
64 Algoritma Pemrograman Menggunakan C ++

. i::::iB*:llrriiiiiiiill
YauriFff,ffial
il-ffi
il
Tab vertikal
Karakter \
Karakter petik tunggal
Karakter petik ganda
\? Karakter tanda tanya
\DDD Menyatakan sebuah karakter yang nilai ASCII-
nya sama dengan nilai oktal DDD
\xHH Menyatakan sebuah karakter yang niiai ASCII
nya sama dengan nilai heksadesimal HH

4.7 Men$enal String


String berarti deretan karakter. Dalam praktik, sebuah string
dapat saja tidak mengandung karakter sama sekali, mengandung sebuah
karakter, atau mengandung banyak karakter. Konstanta string ditulis
dengan awalan dan akhiran tanda petik ganda. Contoh:
Tabel 4.7 Contoh string

"Yogya" String dengan panjang 5 karakter


"Y" String dengan panjang I karakter. Literal inr
berbeda dengan literal karakter. Sebagaimana
diketahui, literal karakter ditulis dengan arvalan
dan akhiran petik tunggal.
String kosong (tidak mengandung satu
karakterpun).
"Jl. Beo 45lB" String yang mengandung huruf, angka, dan
simbol.
*123" String yang berisi angka 123. Hal ini berbeda
dengan literul 123.

String pada C dan C++ selalu diakhiri dengan karakter NULL 00).
Sebagai contoh, jika terdapat string "Yogya", secara internal string itu
disaj ikan seperti berikut:
Dasar Pemrograman C dan C++ 65

Y'l' (} a \0
' t) Y,,

String diatldri dengan


ktuakter NLILL

Gambar 4.3 Karakter NULL sebogai akltiran dalam string

Variabel yang digunakan untuk menyimpan string perlu dideklarasikan


sebagai berikut:
char nama [15] ;

Pada deklarasi di atas, narna dideklarasikan sebagai variabel string yang


dapat menampung hingga l5 karakter (termasuk untuk karakter NULL).

6eliorllomr

Berbeda dengan penanganan literal non-string ke suatu variabel,


penugasan literal string ke variabel string harus dilakukan melalui fungsi
bernama strcpyQ. Dalam hal ini di dalam program harus disertakan baris
seperti berikut:
#include <stdio.h>

Hal ini perlu dilakukan mengingat prototipe fungsi strcpyQ terdapat pada
berkas tersebut.
Contoh program C:

E tr.c
66 Algoritma Pemrograman Menggunakan C ++

#include <stdio.h>
#include <string.h>
int main ( )

t
char info [25 ] ;

strcpy(info, "Nama: David Beckam") ;


printf ( info) ;
prj-nlf("\n");
strcpy(info, "Info: Pemain sepakbola" ) ;
printf ( info) ;
return 0;
)

Akhir Kode,Sumber
Pada program di atas,
char info[25];
digunakan untuk mendeklarasikan variabel string bemama info yang
dapat menyimpan hingga 24 karakter (plus sebuah karakter NULL).
Melalui pernyataan
strcpy(info, "Nama: David Beckam" ) ;
variabel string info diisi dengan string "Nama: David Beckam".
Selanj utnya, pernyataan
strcpy(info, "Info: Pemain sepakbola" ) ;
diganti dengan "lnfo: Pemain sepakbola".
Hasil pengeksekusian program dapat dilihat pada gambar berikut:

Gambar 4.4 Hasil program kopistr


Dasar Pemrograman C dan C++ 67

Program C++ yang setara dengan kode di depan:

#include <i-ostream. h>


#include <string.h>

int rnain ( )
{,
char info [25] ;

strcpy(inf o. "Nama: David Beckam', ) ;


cout << info,.
cout << "\n";
strcpy (inf o, ', Inf o : pema j_n sepakbola', ) ;
cout << info;
return 0,.
)

Inisialisasi terhadap variabel string dapat dilakukan saat pendeklarasian.


Contoh:

E
l-

#include <stdio.h>
# j-nclude <string. h>

int main ( )

{
char info[25] = "Nama: David Beckam,';
printf (info) ;
printf("\n");
strcpy(info, ,'Info: pemain sepakbola', ) ;
printf (info) ;
return 0;
68 Algoritma Pemrograman Menggunakan C ++

Pada program di atas,


char info[25] = "Nama: David Beckam";
digunakan untuk mendeklarasikan variabel string bernama info yang
dapat menyimpan hingga 24 katakter (plus sebuah karakter NULL) dan
selanjutnya variabel tersebut diisi dengan string:
"Nama: David Beckam"

Gambar 4.5 Hasil program initistt'

Contoh dalam C++:

#include <iostream.h>
#include <string.h>
int main ( )

{
char infol25l = "Nama: David Beckam";
cout << info;
cout. << " \n",'
strcpy(info, "Info: Pemain sepakbola") ;

cout << info;


return 0;
)

it<hir: koa-e.sunruef' .'.'' : ,.,.'' ,1 -,,.'


C dan C++

untuk mengakses suatu karakter yang terdapat dalam sebuah variabel


string, notasi berikut dapat digunakan:
n a m a *v a r i a b e I li n d e ll"sl

Dalam hal ini indeks dimulai dari nol.

1=------
fr-,.t* I
r

kota[0]

Gambar 4.6 Karakter NULL sebagai akhiran dalam string

4.8 Menampilkan Informasi ke Layar


4.8.f Pada Bahasa C
Sejauh ini Anda telah mengenal fungsi printfQ pada bahasa C
yang berguna untuk menampilkan informasi ke layar. Selain fungsi ini
terdapat dua fungsi penting yang berguna untuk menampilkan keluaran,
berupa putsQ dan putcharQ. Dalam hal ini:
putsQ berguna untuk menampilkan string. Dengan sendirinya fungsi
ini menambahkan karekter newline (pindah baris).
putcharQ berguna untuk menampilkan sebuah karakter tanpa
menambahkan karakter newl ine.
Prototipe kedua fungsi ini terdapat pada berkas header stdio.h.
Contoh pemakaian:
puts ("Pemrograman C,') ; /,/ Menampilkan string
putchar('A'); // Menampilkan karakter A

Fungsi printfQ iuga dapat digunakan untuk memformat keluaran.


Bentuk pemakaiannya:
printf("string kontrol", argumenl , argumen2, ...)

Dalam hal ini "string kontrol" berupa string yang mengandung


penentu format dan argurnenl, argumen2, dan seterusnya adalah data
yang hendak diformat melalui "string kontrol".
Tabel 4.8 memperlihatkan sejumlah penentu format yang dapat dipakai
pada printfQ.
Tabel 4.8 Penentu format pada printfQ

Menampilkan bilangan bulat tak bertanda


Menampilkan bilangan bulat bertanda
Menampilkan bilangan bulat tak bertanda dalam
bentuk sistem oktal (sistem bilangan berbasis 8)
Menampilkan bilangan bulat tak bertanda dalam
bentuk sistem heksadesimal (sistem bilangan
berbasis 16). Huruf dinyatakan dengan huruf
kecil
Menampilkan bilangan bulat tak bertanda dalam
bentuk sistem heksadesimal (sistem bilangan
berbasis 16). Huruf dinyatakan dengan huruf
kapital
Menampilkan bilangan real dengan notasi:
dddd.dddddd
Menampilkan bilangan real dalam benruk notasi

Menampilkan bilangan real dalam benruk seperti


%of, atau %oE tergantung pada kepresisian data
Dasar Pemrograman C dan C++ 71

I (huruf L kecil) Awalan yang digunakan untuk menyatakan long


int atau double. Contoh: %ld untuk long int atau
%lf untuk double
Menyatakan simbol %

Di dalam string kontrol, suatu angka yang menyatakan lebar


untuk menampilkan data dapat diberikan. Gambar 4.7 Memperlihatkan
efek pengaturan lebar data.

pri nt f { "Cacah \2d" I 23) i ,ia


;ur1 :#i

pri.ntf ("cacah 93d". 23) ;


L ;9,;..

Frintf ("cacdh XAd" . ?3) ;

qY'

Gambar 4.7 Gambaran penentuan lebar penampilan data

Untuk mengatur penampilan bilangan real, notasi


m.n

dipakai untuk menentukan lebar data secara keseluruhan (m) dan untuk
menentukan jumlah digit pecahan (n). Contoh:
printf ("2e.2f" , 52.0) ;

membuat 52.0 ditampilkan dengan ukuran 8 karakter dan jumlah digit


pecahannya sebanyak 2 digit.
72 Algoritma Pemrograman Menggunakan Bahasa C ++

ti/
printf (""88 -2f " , 12 .A) ;

Gambar 4,8 Pengaturon jumlah digit pecahan pada bilangan real


Untuk mengatur agar suatu string ditampilkan dalam ruang
berukuran n karakter dan diatur rata kiri terhadap ruang yang tersedia,
tanda minus perlu diletakkan antara tandao/o dan angka yang menentukan
lebar string. Contoh dapat dilihat pada Gambar 4.9.

prrncf ("%8s", "Hai") ; H &


]ir.ti

,a;,
printf ("t-Bs". "Hai") ; l:gi'ii

String fiahu rata kiri

Gambar 4.9 Pengaturan rata kiri pada string

4.8.2 Pada Bahasa C++


Pada C++, cout dapat digunakan untuk menampilkan tipe data apa saja
dengan bentuk yang sederhana, cukup dengan melibatkan operator <<.
Contoh:
cout << "Pemrograman C++";
cout << 'A' ;
Dasar Pemrograman C dan C++ 73

Pada contoh pertama, yang ditampilkan adalah data string, sedangkan


pada contoh kedua berupa tipe karakter.

Untuk keperluan pemformatan data pada keluaran, C++


menyediakan sejumlah manipulator. Contoh manipulator untuk
mengonversi ke sistem bilangan heksadesimlal dan oktal:
o hex : untuk menampilkan bilangan dalam bentuk heksadesimal
r oct : untuk menampilkan bilangan dalam bentuk oktal
Program berikut menurgukkan penggunaan kedua manipulator tersebut:

E
15 Kode Sumbep f,++ I hexoct.cpp

#include <iostream.h>
int main ( )

{
int bi1 = 23;
cout << "Desimal = " << bil << "\n"'
cout << "Heksadesimal = " << hex << bi1 << "\n";
cout << "Oktaf = r'<< oct << bi1 << "\n';
couL << bil << "\n",'
return 0;
]

Akhir'Kode Sumber:
Hasil program di atas adalah seperti berikut:

Gambar 4.10 Hasil program hexoct


74 Algoritma Pemrograman Menggunakan C ++

Tampilan terakhir menunjukkan bahwa manipulator oct


mempengamhi tampilan bilangan-bilangan yang terletak sesudahnya.
Untuk mengembalikan ke format desimal (bilangan berbasis 10), gunakan
manipulator dec. Contoh:

cout << dec << bi1 << "\n";


Contoh manipulator yang lain:
o setw(n) : untuk menentukan lebar tampilan sebanyak n karakter
o setfill(ftarakter): untuk menambahkan karakter pada bagian ruang
yang ditentukan oleh setw yang normalnya tidak berisi karakter
apapun
. setprecision(n): untuk menentukan jumlah digit pecahan.
Adapun tabel berikut menunjukkan sejumlah argumen yang dapat
digunakan pada manipulator setiosflags dan resetiosflags.
Tabel 4.9 Argumen untuk manipulator setiosflags dan resetiosflags

illtliailikr
ios::skipws Mengabaikan spasi-putih pada pemasukan

data

ios::left Keluaran diatur rata kiri

ios::right Keluaran diatur rata kanan

ios::dec Konversi ke sistem desimal

ios::hex Konversi ke sistem heksadesimal

10s::oct Konversi ke sistem oktal

los::uppercase Keluaran dalam sistem heksadesimal

menggunakan huruf kapital

ios::showpos Menampilkan tanda + untuk bilangan


positif
Dasar Pemrograman C dan C++ 75

ios::scientific Menggunakan notasi sains

ios::fixed Menggunakan notasi tetap (bukan sains)

Contoh penggunaan setw dan setfill:

E
l- Kode Sumbe7 (,++ i manip.cpp
#include <iosiream.h>
#include <iomanip.h>
int maj-n ( )
{
int. bi1 = 23;
char st[] = "Ha1o";
cout << bi1 << "\n';
cout << setw(4) << bi1 <<
cout << setw{S) << bi1 <<

cout << bil << "\n"


couE << setw(6) << setfill (' ') << bi1 << "\n";
cout << setw(7) << setfill ('*') << bil << "\n";
couL << st << "\n*;
cout << setw(6) << setfill (' ') << St << " \n",'
cout << setw(7) << setfill ('*') << st << "\n";

return 0;
76 Algoritma Pemrograman Menqgunakan C ++

Hasilnya seperti berikut:

Gambar 4.ll Hasil program manip

Adapun contoh berikut menunjukkan penggunaan manipulator setios-


flags:

#include <iostream.h>
#include <iomanip.h>
int main ( )
{
double bil = 46'7856-6784532;
cout << bi1 << "\n";
cout << setiosflags ( ios: : fixed)
<< setw(15)
<< setprecision (2 )
<< bi1 << "\n",'
cout << setw(15)
<< setprecision (3 )
<< bi1 << "\nn'
cout << setw(15)
C dan C++

<< setprecision(5)
<< bil << "\nil'
cout << bi1 << " 1tr". / / Tetap berpresisi 5 digit pecahan
cout << set.iosflags ( ios: :scientific)
<< biL << "\n"'
return 0;

Hasilnya seperti berikut:

467 857
467 856 .68 Efek setpreci-sion (2 )

461856.6',78 Efek setprecision (3 )

461856.67845 Efek setprecision (5)


461 856 . 61 845
4.6786e+05 +- Efek setiosflagrs ( ios : : scientific )

4.9 Mengenal Operator


Pada operasi seperti 2 + 3. tanda * dinamakan operator. Operator
berupa simbol yang digunakan untuk menyusun suatu ekspresi, dengan
melibatkan satu atau beberapa operand, tergantung dari jenis operator.
Pada contoh , + 3, ada dua buah operand yang dilibatkan, yaitu 2 dan 3.
Adapun 2 + 3 sendiri dinamakan sebagai ekspresi. Dalam hal ini ekspresi
dapat dipakai untuk melakukan perhitungan atau bahkan pembandingan.
78 Algoritma Pemrograman Menggunakan C ++

Operator

Ekspresi

Gambar 4.12 Operator, operand, dan ekspresi

Ditinjau dari jumlah operand yang dilibatkan dalam sebuah operator,


terdapat tiga macam operator.
1. Operator unary, yaitu operator yang hanya melibatkan sebuah
operand.
Contoh:
+1
-1

2. Operutor binury, yaitu operator yang melibatkan dua buah operand.


Contoh:
2+3
5*2
5>2
3. Operator tertiary, yaitu operator yang melibatkan tiga buah operand.
Contoh:

a>b?1:0
Ekspresi di atas berarti 'Jika a lebih besar daripada b maka ekspresi
rnenghasilkan nilai 1, sedangkan kalau tidak maka ekspresi
menghasiikan nilai 0""
eqtotqn

Berdasarkan kelompok kegunaaan, operator dapat dibagi menjadi


operator aritmetika, operator pembanding, operator logika, dan operator
lain-lain.

4.9. I Operator Aritmetika


operator aritmetika digunakan untuk melakukan perhitungan aritmetika.
Daftar operator aritmetika dapat dilihat pada Tabel 4.10.
Tabel 4.10 Daftor operator aritmetika
":*:€-l+,::,:
Operato,r_,'
,:.t

Piibritas
I Unary minus
$Iri['i i'-
I
+ I Unary plus +1
{<
2 Perkalian 2*346
2*3.0t6.0
2 Pembagian 7 t2>3
1 t2.0 ) 3.s
7.012)3.s
o/
/o 2 Sisa 1%2+t
pembagian 8%3t2
8%2>0
+ J Penjumlahan 2+3>5
2+3.0t5.0
J Pengurangan 3 1)2
3-1.0)2"0
a Pemrograman Menggunakan C ++

:..:'
eqtoton -' Frioritas.: dalam operator menentukan urutan
pengerjaan :dalam 'satu eksPresi, Contoh, Pada
, ekspresi ,sePerti 2 +'3 " 4,.3
* 4 akan.,'dikerjakan
terlebih dulu.
Hasil ekspresi ditentukan oleh tipe operand' l-ebih
lanjut, lihatlah Subbab 4.10,
C dan C++ tidak mendukung' operator untuk
menanganl perpangkatan. Untukr,lmenangani
perpandtat"n, C Oan C++ menyediakan fung5i
b*riiut* pow(). Prototipe fungsi ini ada'Pada
berkas header math.h.
Pad; GNU/Linux, jika Anda menggunakan:.gcc
untuk,,mengompilasi program C yang melibatkan
iungai mat;naiika, Anda perlu menambahkah opsi '
Oerip, -lm,(huruf L kecit dan M kecil)' Contoh::
gCC :lmr,namapfog,C *O namaprog
t_
Berkasheadermath.hmenyediakanprototipesejumlahfungsi
yang terkait dengan operasi aritmetika' Tabel 4'11 mencantumkan
beberapa fungsi untuk operasi aritmetika'
Tabel 4.11 Sejumtah Jungsi aritmetika
trrtffii
sqrt(x) ffiaakarx Nilaibalik
bertipe double dan argumen juga bertipe double'
pow(x, y) ffirupa x)'. Nilai balik
bertipe double dan argumen juga bertipe double'
tan(x) Memberikan nilai balik berupa tangent x'
Argumen x beruPa nilai dalam satuan radians'
Nilai balik bertiPe double dan algumen juga
bertipe double
sin(x) Memberikan nilai balik berupa Sinus x Argumen x
berupa nilai dalam satuan radians' Nilai balik
bertipe double dan argumen juga bertipe double'
cos(x) Memberikan nilai balik berupa Cosinus x.
Argumen x beruPa nilai dalam satuan radians.
Nilai balik bertiPe double dan argumen juga
bertipe double.
Dasar Pemrograman C dan C++ 81

log(x) Memberikan nilai balik berupa 1og. x. Nilai balik


bertipe double dan argumen juga bertipe double.
logl0(x) Memberikan nilai balik berupa logls x. Nilai balik
bertipe double dan argumen juga bertipe double.
cabs(x) Memberikan nilai balik berupa nilai absolut x.
Nilai balik bertipe int dan argumen juga bertipe
int.
tabs(x) Memberikan nilai balik berupanilai absolut x.
Nilai balik bertipe double dan argumen juga
bertipe double.

Tabel 4.12 mencantumkan sejumlah contoh notasi matematika dan


penulisan rumus pada C dan C++.
Tabel 4.12 Notasi motematika dan ekspresi dalam C dan C++

ffiMlu#iiiil*: EkspiCsi C dan C++

ax2+ bx+c a*x*x*b*x*c


sqrt(b)
^l-n
,vb pow(b, 1.0/3)
a+b (a+b)/(c+d)
c+d
,lb'-4ac sqrt(b*b-4*a*c)
d*Y exp(x+y)/(x+y)
x+v
b a+b/fabs(m-n)
d*-
lm- nl
logl6 m log10(m)

log, (m+n) log(m+n)


82 Algoritma Pemrograman Menggunakan Bahasa C ++

peluru. c memberikan contoh pemakaian fungsi sin0


Program
dan cosQ untuk menghitung jarak peluru jatuh terhadap posisi
penembakan peluru. Gambar 4.13 memberikan ilustrasi tentang hal itu.

Gambar 4.13 a Lintasan pelw'u

Jarak lintasan peluru (X) dapat dihitung dengan menggunakan rumus:


Jarak : 2 xY o2 x sin u x cos a, /g
dengan Vo adalah kecepatan tembak dan g adalah gaya gravitasi (9,8)

#include <stdio.h>
#include <math.h>
int. main ( )

i
double kecepatan, sudut, jarak;
kecepat.an = 32;
sudut = 40;
jarak = 2 * kecepatan * kecepatan *
sin(sudut * 3.L4 / 180) *
cos(suduL * 3.14 / 180) / 9.8;
print.f (".Tarak- = Zf " , jarak) ;
.
return O;
)

Akhir'Koda Sumber
Hasil program di atas adalah seperti berikut:

C: \progc>peluruJ
;a,al*,.,*3i$,?,1'Sl ;9di$*,:t i i=ii*i,1 +g.i,. i, r ti:,liLl,.'r
C: \progc>C: \progc>

Gambar 4.13 b Hesil program peluru

Program C++ yang setara dengan program C di depan:

E
l:

#include <iostream.h>
#incl-ude <math. h>
int main ( )
{
doubfe kecepatan, sudut, jarak;
kecepatan = 32;
sudut -- 40;
jarak = 2 * kecepatan * kecepatan *
sin(sudut * 3.14 / lBA\ *
cos(sudut x 3.L4 / LB1) / 9.8;
cout << "Jarak = 't << jarak,.
rallvn A,

4.9.2 Operator Pembanding


Operator pembanding atau disebut,juga operator relasional adalah
operator yang berguna untuk melakukan pembandingan terhadap dua
buah nilai. Hasil pembandingan bemilai 1 atau 0. Dalam hal ini:

o nilai nol berarti bahwa pembandingan memberikan hasil bernilai


salah, dan
84 Algoritma Pemrograman Menggunakan C ++

o nilai satu berarti bahwa pembandingan memberikan hasil bemilai


benar.

Daftar keseluruhan operator pembanding dapat dilihat pada Tabel 4.13.


Tabel 4.13 Daftar operator pembonding
:::,:,.
'Y:;:i:,.,:,tl::
fieteraingan

Lebih dari

>= Lebih dari atau sama dengan

Kurang dari

<= Kurang dari atau sama dengan

l= Tidak sama dengan

Sama dengan

Contoh dapat dilihat pada Tabel4.l4.


Tabel 4.14 Contoh pemakaian operator pembanding
iril
fikiP.n

5>1 I (benar)

4<5 I (benar)

4 <:3 0 (salah)

'A'>'B' 0 (salah)

'B' > 'A' 1 (benar)

'A'< 'a' I (benar)

Pada data bertipe karakter, pembandingan didasarkan pada nilai


ASCII dari karakter yang dibandingkan. Misalnya, nilai ASCII A adalah
65, nilai ASCII B berupa 6, dan nilai ASCII a berupa 97.
eototqn

4.9.3 Operator Logika


Operator logika digunakan membentuk suatu ekspresi
pembandingan dari satu atau dua buah ekspresi pembandingan. Tiga
macam operator logika yang tersedia pada c dan c++ dapat dilihat pada
Tabel 4.15.

Tabel 4.15 Daftar operator logika

&& Operator "dan"

ii Operator "atau

Operator "bukan"

Operator && dan ll melibatkan dua buah operand, sedangkan


operator ! melibatkan sebuah operancl. Hasil operasi dengan operator
logika && dan ll dapat dilihat pada Tabel 4.16.
Tabel 4.16 Tabel logika untuk operasi && dan ll

Salah Salah Salah Salah

Salah Benar Salah Benar

Benar Salah Salah Benar

Benar Benar Benar Benar


86 Algoritma Pemrograman Menggunakan C ++

Operasi dengan ! berbentuk:


I operand
Dalam hal ini operand berupa ekspresi yang menghasilkan nilai benar
atau salah. Adapun hasil operasi berupa:
o benarkalau operardbernilai salah,
. salah kaTau opetrandbemllai benar.

Contoh operasi dengan operator logika dapat dilihat pada Tabel4.17.


Tabel 4.17 Contoh operasi dengan operator logika

kar >= 'A' && kar <= 'Z' Hasil berupa benar hanya
kalau kar berupa huruf
kapital
kode == ,a, I I kode -= ,A' Hasil berupa benar kalau
kode berupa huruf a atau A
(kar == 'A') Hasil berupa benar kalau kar
tidak berupa huruf A

4.10 Mengenal Prioritas Operator


Masing-masing operator dalam suatu ekspresi memiliki prioritas
pengerjaan yang berbeda-beda. Itulah sebabnya jika terdapat suatu
ekspresi yang melibatkan sejumlah operator, pengerjaannya ditentukan
oleh prioritas masing-masing. Misalnya:
L+4*2
akan dievaluasi sebagai berikut:
Dasar Pemrograman C dan C++ 87

Gambar 4,14 Urulan pengerjuan ekspresi

Seandarnya suatu ekspresi melibatkan operator dengan prioritas


yang sama, umurrmya pengerjaan dilakukan dari kiri (misalnya operator *
dan -), tetapi ada juga yang pengevaluasiannya dilakukan dari kanan
(misalnya : dan a:1. Contoh pengevaluasian dari kanan diperlihatkan
berikut ini.
a = b = 5;
Pada contoh di atas urutan pengerjaan diperlihatkan pada gambar berikut.

Gambar 4.15 Pengevaluasian ekspresi dilakukan dari kanan

Tabel 4.18 memperlihatkan prioritas operator-operator pada C


dan C++ dimulai dari yang tertinggi menuju ke yang terendah. Operator
yang terletak pada baris yang sama menyatakan bahwa prioritasnya sama.
Tabel ini dapat Anda gunakan sebagai acuan kalau Anda menggunakan
sejumlah operator dalam sebuah ekspresi.
88 Algoritma Pemrograman Menggunakan Bahasa C ++

Tabel 4.18 Daftar operator tlon prioritas


-,ilJfiilr*i,Fft
riiii
'..fr.llt19fi
W&a& ill:N=:t

=3,S.fl.UqEii
++ Penaikan di belakang Tertinggi Kiri ke kanan
Penurunan di belakang
0 Pemanggilan fungsi
n Elemen array
Pointer ke anggota
strukfur atau kelas
Anggota struktur, union,
atau kelas
++ Penaikan di depan Kanan ke kiri
Penurunan di belakang
! Logika bukan
Operator komplemen bit
Tanda minus
+ Tanda plus
& Alamat
)k
Indirection
new Pengalokasian memori
delete Dealokasi memori
sizeof Ukuran tipe data
(tipe) Type casting

0 Kurung untuk ekspresi Kiri ke kanan


'F Perkalian Kiri ke kanan
Pembagian
o/
/o Sisa pembagian
(modulus)
+ Penjumlahan Kiri ke kanan
Pengurangan
Geser bit ke kiri Kiri ke kanan
Geser bit ke kanan
Dasar Pemrograman C dan C++ 89

Kurang dari Kiri ke kanan


Lebih dari
Kurang dari atau sama
dengan
Lebih dari atau sama
dengan
Sama dengan Kiri ke kanan
Tidak sama dengan
& Operator bit "dan" Kiri ke kanan
Operator bit "xor" Kiri ke kanan
Operasi bit "atau" Kiri ke kanan
&& Logika "dan" Kiri ke kanan
il Logika "atau" Kiri ke kanan
?: Operator kondisi Kiri ke kanan
Penugasan Kanan ke kiri
Operator majemuk
O/- L-

_: ((:

,&:, n:,
I

l-
Operator koma Terendah Kiri ke kanan

Kadangkala urutan pengedaan dalam suatu ekspresi yang tidak


tergantung oleh prioritas operator perlu diatur. Ha1 seperti ini dapat
dilakukan dengan menggunakan tanda kurung. Contoh:
(L+4)*2
memberikan hasil 10. Pada contoh ini, tanda kurung menyebabkan 1 + 4
dikerjakan terlebih dulu. Setelah itu baru mengerjakan pengalian hasil I +
4 dengan2.
Contoh lain:
5* (5+ (6-2) +1)
memberikan hasil 50.
90 Algoritma Pemrograman Menggunakan C ++

r_#
5+4

Gambar 4.16 Pengevaluasian ekspresi 5 't (5 + (6 - 2) + 7)

4.LL Mengenal Pengonversian TiPe


Operasi perhitungan pada C dilakukan dengan menggunakan
tipe data yang sama. Jika dalam suatu ekspresi terdapat operand dengan
tipe yang berbeda, C akan mengonversi salah satu tipe sehingga kedua
tipe menjadi sama.
Aturan yang digunakan oleh C dalam mengonversi trpe data adalah
sebagai berikut:

1. Jika salah saflt operand bertipe long double. maka yang lain
dikonversi ke long double.
2. Jika salah satu operand bertipe double, maka yang lain dikonversi ke
double.
3. Jika salah satu operand bertipe float, maka yang lain dikonversi ke
float.
4. Jika salah satu operand bertipe char, signed char, unsigned char,
atau unsigned short maka yang lain dikonversi ke int.
5. Tipe enumerasi akan dikonversikan ke int, unsigned int, long, atau
unsigned long dengan mengakomodasi jangkauan tipe enumerasi.
6. Jika salah satu operand bertipe unsigned long, maka yang lain
dikonversi ke unsigned long.
7. Jika salah satu operand bertipe long dan yang lain bertipe unsigned
int maka kedua operand dikonversi ke unsigned long.
8. Jika salah satu operand bertipe long, maka yang lain dikonversi ke
long.
Dasar Pemrograman C dan C++ 91

Gambar 4.17 mengilustrasikan pengonversian tipe dalam sebuah


ekspresi. Pada contoh tersebut variabel jumlah bertipe int, variabel
hargaPerUnit bertipe float, dan variabel hargaTotal bertipe
double. Pada saat menemukan ekspresi
hargaPerUnit * jumlah
CIC++ akan mengonversi jumlah yang bertipe int ke float mengingat
ada operand (yaitu hargaPerUnit) yang bertipe lloat. Selanjutnya,
hasil ekspresi tersebut dikonversi ke double mengingat di sebelah kanan
operator : bertipe double.
int jurnloh;
floot horgoPerUnit;
double hcrgcTotol;

I;:
horgoTotol = horgoPerUnit - jumlo h;
Dikonversi dari
int ke float

Gambar 4,17 Gombat"an konversi tipe

Kadangkala diperlukan langkah untuk mengubah suatu tipe data


menjadi tipe data lain. Proses untuk mengubah suatu tipe ke tipe yang
lain dikenal dengan istilah type casting atau pengarah tipe. Bentuk
pengarah tipe adalah sebagai berikut:
(tipe_data) data

Contoh berikut memperlihatkan pengonversian data:


Algoritma Pemrograman

#incfude <stdio.h>
int main ( )
{
char kar - 'A' ;

int nilai;
nilai = (int) kar;
printf ( "Nilai ASC]r Zc

return 0;
)

Pada contoh di atas,


nilai = (int) kar;
isi variabel kar dikonversi ke tipe int dan kemudian disimpan ke
variabel nilai.
Hasil eksekusi program ditunjukkan pada gambar berikut:

c: \progc>konversj-J
tl:i.Ue$l; s ntl najL, e5:+ €4 ,iiiiff*iii#+i. iiiri":i+;ti:i,:n::i:
C: \proqc>ec

Gambar 4.18 Hasil program konversi

4.L2 Mengenal Tipe struct


Di daiam c dan c++ terdapat tipe struct yang dapat dipakai
untuk menghimpun sejumlah data dengan tipe yang berbeda-beda. Data
yang diletakkan dalam sebuah struct adalah data yang terkait. Sebagai
contoh, dimungkinkan untuk membuat tipe struct yang mengandung data
nomor pegawai (NIP), nama pegawai, dan gaji. pendefinisiannya adalah
seperti berikut:
struct data3egawai
{
int nip;
char nama [25] ;
Dasar Pemrograman C dan C++ 93

long int gaji;


];
Pada contoh di atas, tipe struct data_pegawai terdiri atas data
nip, nama, dan ga j i yang secara berturut-turut bertipe int, char[25],
dan long int. Dalam hal ini nip, nama, dan gaj i disebut sebagai
elemen struct alau field.
Setelah suatu tipe struct didefinisikan, tipe tersebut dapat dipakai untuk
mendeklarasikan suatu variabel. Caranya seperti berikut:
sLruct data_pegawai peg;

rup nama saji

Variabel peg

Gambar 4.19 Variabel bertipe struct

Untuk mengakses suatufield, notasi seperti berikut digunakan:


Variabel_shuct.nama_fi eld

Contoh berikut menunjukkan pendefinisian tipe struct, pendeklarasian


variabel bertipe struct, dan cara mengakses setiapfield dalam tipe struct:

#incfude <stdio-h>
#include <string.h>
struct datajegawai
t
int nip;
char nama [25] ;
94 Algoritma Pemrograman Menggunakan C ++

long int gaji;


|;
int main ( )

{
struct data3egawai peg;
Peg.niP = 456'7;
strcpy(peg.nama, "Audi Febrianti" ) ;
peg.gaji = 1200000L;

printf ( "NIP : ?d\n", peg.nip) ;


printf ("Nama : %-s\n", peg.nama) ,'

printf("caji : %fd\n", peg.gaji);


return 0;
)

,Akhir Kqde,

Hasil pengeksekusian progmm dapat dilihat pada gambar berikut:

C: \progc>struct!

Gambar 4.20 Hasil pr"ogram struct


Program C++ serupa program struct.c di depan adalah seperti
berikut:

#include <iostream.h>
#include <slring.h>
struct data3egawai
{
int nip;
char nama[25];
long int gaji;
Dasar Pemrograman C dan C++ 95

i;
int main ( )

{
struct data3egawai peq;
Peg.niP = 4561;
strcpy(peg.nama, "Audi Febrianti" ) ;
peS.Saji = 1,200000L;
cout << "NIP : " << peg.nip << "\n";
cout << "Nama : " << peg.nama << "\n"i
couL << "Gaji : " << peg.gaji << "\n";
return 0,'
]

4.13 Mengenal Komentar


Komentar biasa digunakan dalam program untuk memberikan
penjelasan kepada pembaca program. Komentar tidak memberikan efek
apa-apa pada keluaran. Isinya dapat saja berupa penjelasan terhadap suatu
pernyataan atau sejumlah pernyataan; dapat pula berisi kegunaan
program beserta waktu pembuatan dan pembuatnya.

Sebuah komentar ditulis di dalam pasangan tanda l* dan *l.Isinya dapat


mencakup lebih dari satu baris. Contoh komentar:
/* Program ini dibuat oleh Abdul Kadir */
Adapun contoh berikut menunjukkan komentar yang diletakkan di
sebelah kanan pemyataan:
printf("\n"); /* Menyisipkan karakter pindah baris */
Khusus pada C++, komentar dapat menggunakan simbol //.
Dalam ha1 ini semua teks yang terletak sesudah simbol tersebut hingga
akhir baris diperlakukan sebagai komentar. Contoh:
/ / Tni komentar pada C++
96 Algoritma Pemrograman Menggunakan C ++

4.L4 Mengenal Operasi Masukan


Seringkali dalam suatu program diperlukan operasi masukan
yang berasal dari keyboard. Operasi seperti inilah yang akan dibahas pada
subbab ini.

4.14.1 Fungsi scanffl


Secara umum C menyediakan fungsi bemama scanf0 dengan
prototipe terdapat pada berkas header stdio.h untuk menangani
pemasukan data dari keyboard. Fungsi ini dapat dipakai untuk menangani
pemasukan berbagai tipe data. Bentuk penggunaannya:
scanf("string kontrol", argumen) ;

Dalam hal ini "string kontrol" dapat berupa:


o penentu format,
. karakterspasi-putih,
o karakterbukan-spasi-putih.
Adapun argumen berupa alamat suatu variabel. Alamat suatu variabel
dapat diperoleh dengan menyertakan tanda & di depan suatu variabel.

6ctoton

Penentu format menentukan tipe data yang akan dibaca. Kode-kode yang
dapat dipakai dalam penentu format dapat dilihat pada Tabel 4.19.
Tabel 4.19 Penentuformat pada scanf)

Data yang dibaca berupa sebuah karakter


"/oc
Data yang dibaca berupa string
Tos

o/oi atau o/od Data yang dibaca berupa sebuah bilangan


bulat
Dasar Pemrograman C dan C++ 97

ohe atauo/of Data yang dibaca berupa sebuah bilangan


real
Data yang dibaca berupa sebuah bilangan
Tott
bulat tak bertanda
Awalan untuk membaca data long int atau
I (hurufL kecil)
double. Contoh: Told

Contoh penggunaan scanfQ dapat dilihat pada tabel berikut:


Tabel 4.20 Contoh pemakoian scaffi

Pernyataan untuk membaca


scanf("o%f', &jarak);
sebuah bilangan real dan
meletakkannya ke variabel
j arak yang bertipe float.
Dalam hal ini &jarak berarti
"alamat dari variabel jarak"
Pernyataan untuk membaca
scanf( "o%d", &j umlah) ;
sebuah bilangan bulat dan
meletakkannya ke variabel
jumlah yang betipe int.
Pernyataan untuk membaca
sebuah bilangan bulat bertipe
long int dan meletakkannya ke
variabel j um-penduduk
yang bertipe long int.

Program berikut memberikan gambaran penggunaan scanfQ.


Program ini merupakan hasil pemodifikasian terhadap program
peluru. c. Dalam hal ini data kecepatan dan sudut penembakan peluru
dimasukkan melalui keyboard sewaktu progmm dieksekusi.

iu2.c

Contoh program dengan scanf ( )

Pada GNU/Linux, kompilasilah dengan memberikan


perinLah:
9B Algoritma Pemrograman Menggunakan C ++

gcc -1m peluru2 . c -o peluru2

#include <stdio.h>
#include <math.h>
int main ( )
{
double kecepatan, sudut, jarak;
printf ( "Kecepatan: " ) ;
scanf ( "U 1f",
&kecepatan) ;
printf("Sudut : ");
scanf ('?1f", &sudut) ;
jarak = 2 * kecepatan * kecepatan *
sin(suduL x 3.14 / L8A) *
cos(sudut * 3.14 / 180) / 9.8;
Printf ("'farak = %f" , jarak) ;
return 0;
]

Pada program di atas, pernyataan


printf ( "Kecepatan: " ) ;
digunakan untuk menampilkan tulisan "Kecepatan". Kemudian,
scanf ("81f ", &kecepatan) ,'

membuat program menunggu pemakai memasukkan data. Jika data


dimasukkan, maka data akan diberikan ke variabel kecepatan. Penentu
format "o/olf' menyatakan bahwa data yang dibaca bertipe double.
Dasar Pemrograman C dan C++ 99

Gambar 4.21 Hasil program peluru2

Tabel berikut memberikan gambaran tentang eara mengonversi


pseudokode yang terkait dengan pemasukan data ke dalam pernyataan C.

Tabel 4.21 Contoh pengonversian pseudokode ke pernyataun C

masukan ( jumlah) printf ("'Jumfah = ");


(Dengan asumsi j umlah scanf ( "2d", &jumlah)
bertipe int)
masukan (panjang, lebar) printf("Panjang = ";;
(Dengan asumsi panj ang dan scanf ("Zf' , &panjang)
f ebar berlipe float) printf("Lebar = ");
scanf ( "?f", &1ebar) ;
masukan (nama) printf("Nama = ");
(Dengan asumsi nama adalah scanf ( "8s". nama) ;
variabel string)
(Perhatikan bahwa di depan
nama tidak diberi tanda &)

4.L4.2 Pemasukan Data pada C++


Bagaimana halnya dengan C++? C++ menyediakan objek
bernama cin yang dapat digunakan untuk membaca data dari keyboard
dan berlaku untuk sebarang tipe data. Bentuk penggunaannya adalah
seperti berikut:
100 Algoritma Pemrograman Menggunakan C ++

cin >> namaVariabel;


Contoh berikut menunjukkan program C++ yang setara dengan program
peluru2.cdidepan:

-t""t"-" .t"-ream. h>


#include <math.h>
int main ( )

{
double kecepatan, sudut, jarak;
cout << "Kecepatan: ",'
cin >> kecepatan;
cout << "Sudut : ";
cin >> sudut;
jarak = 2 * kecepatan * kecepatan *
sin(sudut * 3.14 / I80) *
cos(sudut " 3.14 / LB]) / 9.8;
couL << ",Jarak = " << jarak << " \n" -

return 0;
]

Akhir Kode Sumber

4.L4.3 Fungsi gets$


C menyediakan fungsi bernama gets0 yang berguna untuk memasukkan
data string dari keyboard. Bentuk pemakaiannya:
gets (v a r i a b e I S t r i n g) ;

eototc n
Dasar Pemrograman C dan C++ 101

Perlu diketahui, getsQ membaca seluruh karakter yang


dimasukkan dari keybord sampai tombol Enter ditekan. oleh karena itu
harus dipastikan bahwa ukuran variabel string harus mampu menyimpan
seluruh karakter dalam string plus 1 (yang digunakan untuk menyimpan
karakter NULL).
Contoh berikut memperlihatkan pemakaian gets0:

E
l:

#include <stdio.h>
int main ( )

{
char nama[35];
printf("Nama Anda: ");
gets (nama) ;

printf ( "uai, Bs. Selamat belajar C\n" , nama) ;

return 0;
)

Akhir Kode Sumber


Hasil pengeksekusian program dapat dilihat pada gambar berikut:

Gambar 4.22 Hasil program bacanama

Pada C++, string juga dapat dibaca melalui cin. Contoh berikut
memperlihatkan program C++ yang setara dengan program
bacanama. c di depan:
102 Algoritma Pemrograman Mengqunakan C ++

Ei roa" sumbar
#include <iostream.h>
int main ( )

{
char nama [35] ;

cout << "Nama Anda: ";


cj-n >> nama,'
cout << "Hai, " << nama << ". Selamat belajar C++\n";
return 0;
)

4.15 Tanya dan Jawab


l. Bagaimana aatanya kalau saya ingin membandingkan dua buah
string?

Jawab:
Anda perlu menggunakan fungsi bemama strcmp0. Prototipenya ada
pada dua berkas header string.h.

2. Adakah fungsi yang digunakan untuk membaca sebuah huruf tanpa


harus menekan tombol Enter untuk mengakhirinya?

Jawab:
Fungsi seperti itu sangat spesifik terhadap platform yang digunakan.
Pada Borland C, Anda dapat menggunakan getchQ dengan prototipe
pada conio.h.
Dasar Pemrograman C dan C++ 103

4.16 Soal
1. Manakah nama pengenal yang benar pada C dan C++:

a. Halo
b.h
c. nama bulan
d. semester-2
e. bungalrer bulan
f. 2bulan
2. Tipe data apa yang Anda perlukan jika Anda diminta untuk
menyimpan data berikut:

a. usia orang
b. sebuahhurufkapital
c. jumlah penduduk di Indonesia
3. Lrbahlah notasi matematika berikut ke dalam perrlyataan CIC++I

a' (2 x -r3 y)G z-a y)


b'
1e*fi)'-'
c. 1+o
b

,-Lz
d. *'
a+b
e' ,Eit -i7
f. log"(a-b)2

g. er, -lx, - yrl


104 Algoritma Pemrograman Menggunakan C ++

4. Apa kegunaan manipulator berikut pada C++?


a. dec

b. oct
c. hex
d. setw
e. setfill
5. Buatlah program C atau C** untuk membaca dua buah bilangan
bulat dan kemudian menampilkan jumlah kedua bilangan tersebut.
6. Buatlah program C atau C++ yang membaca dua buah data jam dan
kemudian menghitung selisih kedua jam tersebut. Bentuk dialognya
adalah seperti berikut:

Jam 1:

Menit 1:

Jam2:
Menit 2:
Selisih kedua jam tersebut: .. menit

Anda mungkin juga menyukai