SEKILAS MENGENAI BAHASA PEMROGRAMAN
C DAN C++
Bahasa pemrograman C++ merupakan superset dari bahasa pendahulunya yaitu bahasa
pemrograman C. Bahasa pemrograman C dikembangkan oleh Dennis Ritchie pada tahun
1972 di Laboratorium Bell. Bahasa pemrograman C adalah bahasa pemrograman yang
dapat dikatakan berada antara bahasa tingkat rendah (berorientase mesin) dan
bahasa tingkat tinggi (bahasa berorientase pada manusia). Bahasa pemrograman C
berada satu tingkat di atas bahasa yang berorientasi pada mesin, namun tetap
satu tingkat dibawah sebagian besar bahasa yang berorientasi persoalan. Bahasa
pemrograman C cukup dekat dengan komputer untuk memberikan kendali yang besar
terhadap detil implementasi pemakaian, namun cukup jauh untuk mengabaikan detil
hardware. Karena itulah bahasa pemrograman C suatu ketika dipandang sebagai
bahasa high-level dan pada saat yang lain dilihat sebagai bahasa low-level.
Bahasa
pemrograman C merupakan bahasa pemrograman terstruktur, yang membagi program
kedalam bentuk sebuah blok. Tujuannya adalah untuk memudahkan dalam pembuatan
dan pengembangan program. Program yang ditulis dengan bahasa pemrograman C
mudah sekali untuk dipindahkan dari satu jenis mesin ke jenis mesin lainnya.
Hal ini berkat adanya standarisasi bahasa pemrograman C yaitu berupa standar
ANSI (American National Standards Institute) yang dijadikan acuan oleh para
pembuat kompiler C.
ELEMEN DASAR BAHASA PEMROGRAMAN C++
1. Identifier (Pengenal) Bahasa C++
Identifier adalah nama yang digunakan untuk mempresentasikan variabel,
konstanta, jenis (type), fungsi, dan nama program. Identifier dalam
pendeklarasian variabel, jenis, atau fungsi pada bahasa pemrograman C++ dimulai
dengan sebuah huruf atau garis bawah. Karakter-karakter lain dalam sebuah
identifier dapat berupa huruf, angka, garis bawah, atau tanda dollar. Compiler
C++ membedakan huruf kecil dan besar. Variabel NAMA_PEGAWAI dan nama_pegawai
dipandang sebagai dua identifier yang menggambarkan variabel memori yang
berbeda. Contoh identifier yang diperkenankan untuk dipakai: a atau akelas atau
kelas$ atau _kelas atau _KELAS$, sedangkan identifier yang tidak diperbolehkan
untuk dipakai: $KELAS atau 7kelas atau kelas! atau ..kelas.
2. Himpunan Karakter
Himpunan karakter pada C++ terdiri dari huruf, digit maupun simbol-simbol
lainnya (termasuk spasi, karakter kontrol)
Huruf: A B C D E F G H I J K L M N O P Q R S T U V W X Z Y a b c d e f g h i j k l m n o p q r s t u v w x y z
Digit: 0 1 2 3 4 5 6 7 8 9
Simbol dan lain-lain: _ - + * dan sebagainya.
Huruf: A B C D E F G H I J K L M N O P Q R S T U V W X Z Y a b c d e f g h i j k l m n o p q r s t u v w x y z
Digit: 0 1 2 3 4 5 6 7 8 9
Simbol dan lain-lain: _ - + * dan sebagainya.
3. Kata-kata Kunci
Kata kunci (keyword) adalah pengenal sistem yang mempunyai makna khusus bagi
kompiler. Kegunaan dari golongan ini tidak dapat diubah. Karena itu kata kunci
tidak dapat digunakan sebagai pengenal yang dibuat oleh pemrogram.
Kata kunci diusulkan ANSI:
auto, double, int, struct, break, else, loop, switch, case, enum, register, typedef, char, extern, return, union, const, float, short, unsigned, continue, for, signed, void, default, goto, sizeof, volatile, do, if, static, while
Sedangkan turbo C memperluasnya dengan menambahkan beberapa kata kunci:
_cs, _ss, far, near, _ds, asm, huge, pascal, _es, cdecl, interrupt
Sementara itu, Microsoft C/C++ menambah beberapa kata kunci:
_asm, _loadds, _cdecl, _huge, _far, _pascal, _export, _interrupt, _fortran, _segname, _near, _saveregs, _segment, _syscall, _self, _stdcall, _fastcall, _based
auto, double, int, struct, break, else, loop, switch, case, enum, register, typedef, char, extern, return, union, const, float, short, unsigned, continue, for, signed, void, default, goto, sizeof, volatile, do, if, static, while
Sedangkan turbo C memperluasnya dengan menambahkan beberapa kata kunci:
_cs, _ss, far, near, _ds, asm, huge, pascal, _es, cdecl, interrupt
Sementara itu, Microsoft C/C++ menambah beberapa kata kunci:
_asm, _loadds, _cdecl, _huge, _far, _pascal, _export, _interrupt, _fortran, _segname, _near, _saveregs, _segment, _syscall, _self, _stdcall, _fastcall, _based
4. Tipe Data Bahasa C++
Tipe data dasar pada C++, yakni: teks (char), nilai integer (int, short, long),
nilai floating-point (float, double, long double), dan enumerated (enum). Jika
jenis data yang didefinisikan adalah variabel enumerated, maka ini terkait
dengan konstanta integer yang telah diberi nama enumeration set. Dalam bahasa
pemrograman C, jenis enum dianggap ekivalen dengan jenis int, sehingga
memungkinkan sebuah program untuk memberikan nilai integer langsung pada
variabel enumerated. Namun dalam bahasa pemrograman C++, ada mekanisme
pemeriksaan jenis data yang ketat, dan tidak memperkenankan operasi campuran
seperti ini.
Setiap
bahasa memakai seperangkat karakter untuk mengekspresikan pernyataan yang
mengandung arti. Bahasa pemrograman C++ ditulis menggunakan sejumlah karakter
yang meliputi: 26 huruf kecil (a, b, c, ... dstnya) dan 26 huruf besar (A, B,
C, ... dstnya); 10 angka (0, 1, 2, 3, 4, 5, 6, 7, 8, 9); dan lambang-lambang (+
- * = / . , : ; ? ' \ " ! @ # $ % ^ & * ( ) { } [ ]).
Ukuran
memori yang diperlukan untuk masing-masing tipe data sangat bergantung pada
perangkat keras dari komputer yang digunakan. Karena itu jangkauan bilangan
dari masing-masing tipe data juga bisa berlainan antara satu jenis mesin dengan
mesin lainnya. Nilai yang tercakup pada tipe data bilangan (bulat maupun
pecahan) pada arsitektur PC yang berbasis DOS, adalah sebagai berikut:
Tipe data
Ukuran memori Jangkauan nilai
char 1 byte -128 s/d +127
int 2 byte -32768 hingga +32767
short 2 byte -32.768 s/d 32.767
long 4 byte -2.147.438.648 s/d 2.147.438.647
float 4 byte 3,4x10-36 s/d 3,4x10+38
double 8 byte 1,7x10-308 s/d 1,7x10+308
long double 10 byte 3,4x10_4932 s/d 1,1x10+4932
enum 2 byte -32.768 s/d 32.767
pointer 2 byte (near, based)
pointer 4 byte (far, huge)
char 1 byte -128 s/d +127
int 2 byte -32768 hingga +32767
short 2 byte -32.768 s/d 32.767
long 4 byte -2.147.438.648 s/d 2.147.438.647
float 4 byte 3,4x10-36 s/d 3,4x10+38
double 8 byte 1,7x10-308 s/d 1,7x10+308
long double 10 byte 3,4x10_4932 s/d 1,1x10+4932
enum 2 byte -32.768 s/d 32.767
pointer 2 byte (near, based)
pointer 4 byte (far, huge)
4.1. Tipe Data Tertentu
Modifier
unsigned:
Yang
termasuk jenis data modifier unsigned yang dapat diterapkan pada char, int,
short, long adalah void dan pointer. Bila salah satu jenis data di atas
dimodifikasi menjadi usigned, dapat dipandang range nilai yang bisa dijangkau
mempresentasikan bilangan seperti pada angka yang ditunjukkan oleh jumlah
kilometer yang telah ditempuh pada mobil atau sepeda motor. Angka tersebut
dimulai dari 0000... dan mencapai maksimum 9999..., dan kembali ke 0000... Jadi
dalam unsigned, yang ditampilkan hanyalah bilangan positif keseluruhan dalam
range nol sampai ke bilangan maksimum yang dapat diprepresentasikannya.
Tipe data
Ukuran memori Jangkauan nilai
unsigned char 1 byte 0 s/d 255
unsigned int 2 byte 0 s/d 32767
unsigned short 2 byte 0 s/d 32.767
unsigned long 4 byte 0 s/d 2.147.438.647
Modifier signed:
Digunakan untuk memperluas tanda yang digunakan integer dan karakter. Cara ini memungkinkan untuk menyimpan suatu nilai dalam bentuk bilangan positif atau negatif.
Tipe data Ukuran memori Jangkauan nilaisigned char 1 byte -128 s/d +127
signed int 2 byte -32768 hingga +32767
signed short 2 byte -32.768 s/d 32.767
signed long 4 byte -2.147.438.648 s/d 2.147.438.647
unsigned char 1 byte 0 s/d 255
unsigned int 2 byte 0 s/d 32767
unsigned short 2 byte 0 s/d 32.767
unsigned long 4 byte 0 s/d 2.147.438.647
Modifier signed:
Digunakan untuk memperluas tanda yang digunakan integer dan karakter. Cara ini memungkinkan untuk menyimpan suatu nilai dalam bentuk bilangan positif atau negatif.
Tipe data Ukuran memori Jangkauan nilaisigned char 1 byte -128 s/d +127
signed int 2 byte -32768 hingga +32767
signed short 2 byte -32.768 s/d 32.767
signed long 4 byte -2.147.438.648 s/d 2.147.438.647
Untuk
mengetahui ukuran memori yang diperlukan oleh semua tipe data, bisa dilihat
dengan meng-compiler dan mengeksekusi contoh program sederhana, berikut:
//*
Menentukan ukuran memori *
#include
#include
void main()
{
clrscr();
cout << "Ukuran char : " << sizeof(char) << '\n';
cout << "Ukuran short : " << sizeof(short) << '\n';
cout << "Ukuran int : " << sizeof(int) << '\n';
cout << "Ukuran long : " << sizeof(long) << '\n';
cout << "Ukuran float : " << sizeof(float) << '\n';
cout << "Ukuran double : " << sizeof(double) << '\n';
cout << "Ukuran long double : " << sizeof(long double) << '\n';
}
Penjelasan program:
#include
#include
void main()
{
clrscr();
cout << "Ukuran char : " << sizeof(char) << '\n';
cout << "Ukuran short : " << sizeof(short) << '\n';
cout << "Ukuran int : " << sizeof(int) << '\n';
cout << "Ukuran long : " << sizeof(long) << '\n';
cout << "Ukuran float : " << sizeof(float) << '\n';
cout << "Ukuran double : " << sizeof(double) << '\n';
cout << "Ukuran long double : " << sizeof(long double) << '\n';
}
Penjelasan program:
Pemrograman
C++ tidak terlepas dari fungsi. Sebab fungsi adalah salah satu dasar penyusunan
blok pada C++. Sebuah program C++ minimal mengandung sebuah fungsi main().
Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul
fungsi. Sedangkan yang dimulai dari tanda { hingga tanda } disebut tubuh
fungsi. Semua yang terletak di dalam tanda {} disebut blok. Tanda () digunakan
untuk mengapit argumen fungsi, yaitu nilai yang akan dilewatkan ke fungsi. Kata
void yang mendahului main() dipakai untuk menyetakan bahwa fungsi ini tidak
memiliki nilai balik.
Pengenal cout
merupakan sebuah obyek di dalam C++. Obyek ini disediakan oleh C++ untuk
mengarahkan data ke standard output (normalnya adalah layar), sebagai contoh
tambahan misalnya:
cout << "Hallo! Selamat datang di website ideelok \n";
Tanda
<< merupakan sebuah operator yang disebut operator penyisipan/peletakan.
Operator ini akan mengarahkan operand (data) yang terletak di sebelah kanan
obyeknya ke obyek yang terletak di sebelah kiri. Pada pernyataan di atas,
konstanta string "Hallo! Selamat datang di website ideelok \n"
diarahkan ke cout, yang memberikan hasil berupa tampilan string tersebut ke
layar. Didalam sebuah string, karakter \ diikuti dengan karakter tertentu
menyatakan sebuah karakter tunggal. Pada contoh \n adalah karakter pindah baris
(newline).
Pada baris
#include , baris ini menginstruksikan kepada kompiler untuk menyiapkan file
lain pada saat program dikompolasi. Dalam hal ini file-file yang berakhiran
dengan .h disebut file header, yaitu file-file yang berisi berbagai deklarasi,
seperti fungsi, variabel dan sebagainya. #include perlu disertakan pada program
yang melibatkan obyek cout. Tanpa kehadiran baris tersebut akan terjadi
kesalahan program sewaktu program dikompilasi. Sebab file iostream.h berisi
deklarasi yang diperlukan oleh cout dan berbagai obyek yang berhubungan dengan
operasi masukan-keluaran pada stream.
Pada baris
clrscr(); adalah perintah untuk menghapus layar. Apabila pernyataan di atas
digunakan, baris #include perlu disertakan dalam program.
5. Variabel dan Konstanta Bahasa C++
Data pada
C++ tersusun dari variabel dan konstanta. Variabel merupakan komponen penting
pada pemrograman. Variabel digunakan dalam program untuk menyimpan suatu nilai,
dengan nilai yang ada padanya dapat diubah selama eksekusi program berlangsung.
Adapun konstanta menyatakan nilai yang tetap. Misalnya 234 adalah sebuah
konstanta bilangan bulat.
5.1. Mendeklarasikan dan Mendefinisikan Variabel
Variabel
yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu,
maksudnya mengenalkan sebuah pengenal ke program dan menentukan jenis data yang
bisa disimpan di dalamnya. Apabila suatu pendeklarasian menyebabkan
pengalokasian memori, maka pendeklarasian tersebut dinamakan pendefinisian.
Yang jelas pendefinisian berarti pula pendeklarasian, tetapi tidak semua
pendeklarasian berarti pendefinisian.
bentuk pendefinisian variabel:
tipe daftar_variabel;
Pada pendefinisian variabel, daftar_variabel dapat berupa sebuah variabel atau beberapa variabel yang dipisahkan dengan koma.
bentuk pendefinisian variabel:
tipe daftar_variabel;
Pada pendefinisian variabel, daftar_variabel dapat berupa sebuah variabel atau beberapa variabel yang dipisahkan dengan koma.
5.2. Memberikan Nilai ke Variabel
Bentuk
pernyataan yang digunakan untuk memberikan nilai ke variabel adalah:
variabel = nilai;
Contoh:
jumlah = 10;
harga_barang = 1500;
variabel = nilai;
Contoh:
jumlah = 10;
harga_barang = 1500;
5.3. Variabel dan Konstanta Bertipe char
Bentuk
pernyataan variabel bertipe char:
char karakter;
Dalam hal ini variabel karakter bertipe char. Variabel ini dapat menampung data sebuah karakter. Untuk menuliskan sebuah konstanta bertipe char, karakter perlu ditulis di dalam tanda petik tunggal, contoh: 'A' karakter berupa huruf A.
Karakter yang ditulis dengan bentuk \karakter mempunyai arti tersendiri (karakter khusus) dan biasa disebut escape sequence characters.
Karakter-karakter khusus tersebut antara lain:
\0 artinya karakter ber-ASCII nol (karakter nul)
\a artinya karakter bel
\b artinya karakter backspace
\f artinya karakter formfeed (ganti halaman)
\n artinya karakter newline (pindah baris)
\r artinya karakter carriage return (ke awal baris) tanpa linefeed
\t artinya karakter tab horizontal
\v artinya karakter tab vertikal
\\ artinya karakter \
\' artinya karakter '
\" artinya karakter "
\? artinya karakter ?
\ooo artinya karakter yang nilai oktalnya adalah ooo (tiga digit oktal)
\xhh artinya karakter yang nilai heksadesimalnya adalah hh (dua digit heksadesimal)
char karakter;
Dalam hal ini variabel karakter bertipe char. Variabel ini dapat menampung data sebuah karakter. Untuk menuliskan sebuah konstanta bertipe char, karakter perlu ditulis di dalam tanda petik tunggal, contoh: 'A' karakter berupa huruf A.
Karakter yang ditulis dengan bentuk \karakter mempunyai arti tersendiri (karakter khusus) dan biasa disebut escape sequence characters.
Karakter-karakter khusus tersebut antara lain:
\0 artinya karakter ber-ASCII nol (karakter nul)
\a artinya karakter bel
\b artinya karakter backspace
\f artinya karakter formfeed (ganti halaman)
\n artinya karakter newline (pindah baris)
\r artinya karakter carriage return (ke awal baris) tanpa linefeed
\t artinya karakter tab horizontal
\v artinya karakter tab vertikal
\\ artinya karakter \
\' artinya karakter '
\" artinya karakter "
\? artinya karakter ?
\ooo artinya karakter yang nilai oktalnya adalah ooo (tiga digit oktal)
\xhh artinya karakter yang nilai heksadesimalnya adalah hh (dua digit heksadesimal)
5.4. Variabel dan Konstanta Bertipe int
Variabel
bertipe int didefinisikan dengan bentuk:
int bilangan;
int bilangan;
Setelah
pendefinisian seperti itu, variabel ini dapat digunakan untuk menampung nilai
bertipe int. Sebuah konstanta bertipe int adalah bilangan bulat yang terletak
antara minus 32768 hingga plus 32767 (pada PC berbasis DOS) dan tidak
mengandung titik desimal.
5.5. Variabel dan Konstanta Bertipe long
Apabila
diinginkan untuk memproses bilangan bulat yang nilainya lebih besar daripada
tipe int, Anda dapat menggunakan tipe long. Suatu variabel bertipe long
didefinisikan dengan cara seperti di bawah ini:
long jumlah_penduduk;
Pada contoh ini, jumlah_penduduk didefinisikan bertipe long. Dengan demikian variabel ini dapat menampung nilai ratusan juta. Adapun konstanta bertipe long biasa ditulis dengan akhiran L. Sebagai contoh: 1543267635435L
long jumlah_penduduk;
Pada contoh ini, jumlah_penduduk didefinisikan bertipe long. Dengan demikian variabel ini dapat menampung nilai ratusan juta. Adapun konstanta bertipe long biasa ditulis dengan akhiran L. Sebagai contoh: 1543267635435L
5.6. Variabel dan Konstanta Bertipe float, double dan
long double
Tipe-tipe
data yang telah dibahas di depan (char, int dan long) berhubungan dengan
bilangan bulat. Seandainya diinginkan untuk memproses bilangan yang mengandung
nilai pecahan, bisa menggunakan tipe float, double atau long double. Ketiga
tipe yang berhubungan dengan bilangan pecahan ini mempunyai perbedaan dalam
hal: kepresisian data, dan jangkauan nilai yang dicakup.
Contoh
pendefinisian variabel untuk menampung bilangan pecahan:
float panjang;
double phi;
long double tetapan;
float panjang;
double phi;
long double tetapan;
5.7. Inisialisasi Variabel
Adakalanya dalam penulisan program,
variabel langsung diberi nilai awal setelah didefinisikan. Sebagai contoh:
int jumlah;
jumlah = 80;
Dua pernyataan seperti di atas sebenarnya dapat diangkat melalui pendefinisian yang disertai penugasan nilai, seperti berikut:
int jumlah = 80;
int jumlah;
jumlah = 80;
Dua pernyataan seperti di atas sebenarnya dapat diangkat melalui pendefinisian yang disertai penugasan nilai, seperti berikut:
int jumlah = 80;
OPERATOR BAHASA PEMROGRAMAN C++
Operator
merupakan simbol yang biasa dilibatkan dalam program untuk melakukan sesuatu
operasi atau manipulasi, misalnya untuk menjumlahkan dua buah nilai, memberikan
nilai pada suatu variabel, ataupun membandingkan kesamaan dua buah nilai.
Bahasa pemrograman C++ mempunyai banyak operator yang tidak didapat dalam
bahasa pemrograman lain, antara lain: operator bitwise, operator inkremen dan
dekremen, operator kondisional, operator koma, operator aritmatika dan
lain-lain.
a) Operator bitwise
Operator
bitwise pada bahasa pemrograman C++ memperlakukan variabel sebagai gabungan
dari bit-bit dan bukan sebagai bilangan. Operator ini berguna untuk mengakses
bit-bit individual dalam memori, seperti memori screen untuk display grafik,
informasi CapsLock (on atau off). Operator bitwise ini hanya dapat beroperasi
pada jenis data integral, bukan bilangan floating-point. Tiga operator bitwise
berkelakuan seperti operator logika, namun ini terjadi pada setiap bit dalam
sebuah integer, yakni: AND (&), OR(I), dan XOR (^), komplemen (~) membalik
(menginversi) setiap bit, operator shift kiri (<<), dan operator shift
kanan (>>).
ANDSimbol operator: &, dengan
bentuk penggunaan : operand1 & operand2
Operasi AND bitwise membandingkan dua bit; jika kedua bit tersebut adalah 1, maka hasilnya 1, selain itu hasilnya 0.
Logika AND:
Bit 0 Bit 1 Hasil
0 0 0
0 1 0
1 0 1
1 1 1
OR
Simbol operator I, dengan bentuk pemakaian : operand1 I opeand2
Operasi OR bitwise membandingkan dua bit dan memberikan hasil 1 jika kedua bit yang dibandingkan itu salah satu atau keduanya 1.
Logika OR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 1
XOR
Simbol operator: ^, dengan bentuk penggunaan : operand1 ^ operand2
Operasi EXCLUSIVE OR (XOR) bitwise membandingkan dua bit dan memberikan hasil 1 bila kedua bit merupakan komplementer satu sama lain.
Logika XOR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 0
Operasi AND bitwise membandingkan dua bit; jika kedua bit tersebut adalah 1, maka hasilnya 1, selain itu hasilnya 0.
Logika AND:
Bit 0 Bit 1 Hasil
0 0 0
0 1 0
1 0 1
1 1 1
OR
Simbol operator I, dengan bentuk pemakaian : operand1 I opeand2
Operasi OR bitwise membandingkan dua bit dan memberikan hasil 1 jika kedua bit yang dibandingkan itu salah satu atau keduanya 1.
Logika OR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 1
XOR
Simbol operator: ^, dengan bentuk penggunaan : operand1 ^ operand2
Operasi EXCLUSIVE OR (XOR) bitwise membandingkan dua bit dan memberikan hasil 1 bila kedua bit merupakan komplementer satu sama lain.
Logika XOR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 0
Posting Komentar