BAB I PENDAHULUAN
A. Sejarah Visual C++ Tahun 1978, Brian W. Kerninghan & Dennis M. Ritchie dari AT & T Laboratories mengembangkan bahasa B menjadi bahasa C. Bahasa B yang diciptakan oleh Ken Thompson sebenarnya merupakan pengembangan dari bahasa BCPL ( Basic Combined Programming Language ) yang diciptakan oleh Martin Richard. Sejak tahun 1980, bahasa C banyak digunakan pemrogram di Eropa yang
sebelumnya
menggunakan
bahasa
B
dan
BCPL.
Dalam
perkembangannya, perkembangannya, bahasa C menjadi bahasa paling populer diantara bahasa lainnya, seperti PASCAL, BASIC, FORTRAN. Tahun 1989, dunia pemrograman C mengalami peristiwa penting dengan dikeluarkannya standar bahasa C oleh American National Standards Institute (ANSI). Bahasa C yang diciptakan Kerninghan & Ritchie kemudian dikenal dengan nama ANSI C. Mulai awal tahun 1980, Bjarne Stroustrup dari AT & T Bell Laboratories mulai mengembangkan bahasa C. Pada tahun 1985, lahirlah secara resmi bahasa baru hasil pengembangan C yang dikenal dengan nama C++. Sebenarnya bahasa C++ mengalami dua tahap evolusi. C++ yang pertama, dirilis oleh AT&T Laboratories, dinamakan cfront. C++ versi kuno ini hanya berupa kompiler yang menterjemahkan C++ menjadi bahasa C. Pada evolusi selanjutnya, Borland International Inc. mengembangkan kompiler C++ menjadi sebuah kompiler yang mampu mengubah C++ langsung menjadi bahasa mesin (assembly). Sejak evolusi ini, mulai tahun 1990 C++ menjadi bahasa berorientasi obyek yang digunakan oleh sebagian besar pemrogram professional.
1
BAB II PEMBAHASAN A. Pengertian C++ C++ adalah sebuah bahasa pemrograman yang memiliki banyak dialek,
seperti bahasa orang yang banyak memiliki dialek. Dalam C++, dialek bukan disebabkan oleh karena si pembicara berasal dari Jepang atau Indonesia, melainkan karena bahasa ini memiliki beberapa kompiler yang berbeda. Ada empat kompiler umum yaitu : C++ Borland, C++ Microsoft Visual, C/386 Watcom, dan DJGPP. Anda dapat mendownload DJGPP atau mungkin saja anda telah memiliki kompiler lain. Setiap kompiler ini agak berbeda. Setiap kompiler akan dapat menjalankan fungsi fungsi standar C++ ANSI/ISO, tetapi masing masing kompiler juga akan dapat menjalankan fungsi fungsi nonstandard ( fungsi fungsi ini, agak mirip dengan ucapan yang tidak standar yang diucapkan orang diberbagai pelosok negeri. Sebagai contoh, di New Orleans kata median disebut neutral
ground ). ).
Kadang
kadang
pemakaian
fungsi
nonstandard
akan
menimbulkan masalah pada saat anda hendak mengkompilasi kode sumber data (source code) (yaitu program berbahasa C++ yang ditulis oleh seorang programer) mempergunakan kompiler yang berbeda. Tutorial ini tidak terlepas dari masalah seperti itu. Bila anda belum mempunyai sebuah kompiler, disarankan agar anda segera memiliki sebuah kompiler. Sebuah kompiler sederhana sudah cukup untuk dipergunakan dipergunakan oleh anda dalam mengikuti tutorial ini. Bahasa pemrograman C++ adalah bahasa yang amat berbeda. Untuk kompiler C++ berbasis DOS, akan memerlukan beberapa kata kunci (keywords); keyword sendiri tidak cukup untuk difungsikan sebagai input dan output. Walau hampir semua fungsi dalam file library tampaknya bias diakses oleh header filenya. Coba kita lihat program sesungguhnya :
2
#include int main() { cout<<”HEY, you, I‟m alive! Oh, and Hello World!”; return 0; }
a) Program C++ pertama Contoh
program
sederhana
C++
untuk
hello
world
dengan
menggunakan Pustaka Dasar C++ dapat dilihat di bawah ini: #include // provides std::cout int main() { std::cout << "Hello, world!\n"; return 0; }
Berikut ini adalah contoh program sederhana yang akan mencetak kalimat "Hello, World!" dengan menggunakan pustaka stdio.h (ANSI C): #include
int main(void) { printf("Hello, World!\n"); return 0; }
3
b) Pustaka dasar C++ Dalam bahasa pemrograman C++, Pustaka Dasar adalah kumpulan class dan fungsi yang menjadi inti bahasa pemrograman C++. Pustaka Dasar C++ terdiri dari container umum dan fungsi untuk memanipulasinya, string
dan stream (termasuk fungsi untuk antarmuka pengguna serta fungsi untuk menulis dan membaca file (file I/O)), serta fungsi-fungsi yang sering digunakan seperti fungsi untuk mencari akar kuadrat dari sebuah bilangan. Pustaka Dasar C++ sudah termasuk Pustaka Dasar ISO C90 untuk bahasa
pemrograman C. Fitur-fitur dalam Pustaka Dasar C++ dinyatakan dalam namespace std. Pustaka Pola Dasar (The Standard Template Library atau STL)
adalah bagian dari Pustaka Dasar C++. Pustaka Pola Dasar C++ terdiri dari container ,
algorithm,
iterator dan
lain
sebagainya.
Orang
kadang
menyebutkan Pustaka Dasar C++ dan Pustaka Pola Dasar C++ untuk merujuk pada hal yang sama. Kepala ( header ) untuk penggunaan Pustaka Dasar C++ ditulis tanpa akhiran .h.
c) Kata yang dipesan Kelompok Pertama C++ mempunyai 32 buah kata yang dipesan ( reserved words). Kata kunci kelompok pertama merupakan turunan dari bahasa C, C, di antaranya:
auto
const
double float int
short
struct
signed switch
unsigned
break continue else
for
long
case
default
enum
goto
register sizeof
typedef typedef volatile
char
do
extern
if
return
union
static
void
while
4
Kelompok Kedua Kata yang dipesan kelompok kedua berjumlah 30. Kata-kata ini adalah baru dan hanya ada di bahasa C++. asm
dynamic_cast dynamic_cast namespace reinterpret_cast reinterpret_cast
try
bool
explicit
new
static_cast
typeid
catch
false
operator
template
typename
class
friend
private
this
using
const_cast const_cast inline
public
throw
virtual
delete
protected protected
true
wchar_t
mutable
Kata-kata yang dipesan tersebut di atas tidak boleh dipakai sebagai nama variable, class, enum, macro, dan struct.
d) Tipe data dasar Untuk menyimpan suatu variabel diperlukan tempat khusus di dalam memori komputer. Besar dan tipe dari variabel-variabel di dalam standar program C++ dispesifikasikan sebagai berikut. Nama
char
Keterangan
Abjad/karakter atau untuk
Ukuran
1 byte
Jangkauan
signed: -128 to 127
bilangan bulat kecil unsigned: 0 to 255 short int
Bilangan bulat dengan jangkauan
(short)
pendek
2 byte
signed: -32768 to 32767 unsigned: 0 to 65535
int
Bilangan bulat
4 byte
signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295
long int (long)
Integer dengan jangkauan panjang
4 byte
signed: -2147483648 to 2147483647
5
unsigned: 0 to 4294967295 bool
Boolean, dapat bernilai benar atau
1 byte
true or false
4 byte
3.4e +/- 38 (7 digit)
8 byte
1.7e +/- 308 (15 digits)
8 byte
1.7e +/- 308 (15 digits)
2 byte
1 karakter lebar
salah (true or false) float
Angka dengan titik mengambang (bilangan cacah)
double
Bilangan cacah dengan ketelitian ganda
long
Bilangan cacah dengan ketelitian
double
ganda panjang
wchar_t
Karakter lebar, biasa dipakai untuk Unicode untuk Unicode karakter
e) Daftar C++ compiler Untuk mengubah kode-kode C++ program menjadi suatu program aplikasi yang dimengerti oleh sistem operasi dan komputer, diperlukan sebuah kompilator C++. Berikut ini adalah beberapa kompilator C++ yang dapat digunakan secara gratis.
Microsoft Visual C++ 2005 Express
Turbo C++ Explorer
Apple Xcode for Mac OS X
Open Source Watcom / OpenWatcom C/C++ Compiler
Digital Mars C/C++ Compiler (Symantec ( Symantec C++ Replacement)
Bloodshed Dev-C++ C++ Compiler
Free Microsoft .NET Framework Software Development Kit (SDK) / Free Microsoft Visual C++ Compiler
Intel C++ Compiler for Linux Non-Commercial Version
Sun Studio Compilers and Tools
6
f)
Open64 Compiler Tools
Apple's Macintosh Programmer's Workshop (C and C++ compilers)
TenDRA C/C++ Compiler
GNU C/C++ Compiler
Ch Embeddable C/C++ Interpreter (Standard Edition)
DJGPP C and C++ Compilers
CINT C and C++ Interpreter
SDCC C Cross-compiler
Cygwin Project (C & C++ Compilers)
SDCC C Cross-compiler
Code::Blocks
Kompilator Kompilator (Inggris: compiler ) adalah sebuah program komputer yang
berguna untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman
tertentu
menjadi
program
yang
ditulis
dalam
bahasa
pemrograman lain. Terlepas dari pengertiannya yang demikian relatif luas, istilah kompilator biasa digunakan untuk program komputer yang menerjemahkan
program yang ditulis dalam bahasa pemrograman tingkat tinggi (semacam bahasa Pascal, C++, BASIC, FORTRAN, Visual Basic, Visual C#, Java, xBase, atau COBOL) menjadi bahasa mesin, biasanya dengan bahasa Assembly (assembler) sebagai perantara. Kompilator berbeda dengan assembler karena biasanya kompilator akan
menghasilkan kode obyek ( object code) yang bisa berupa file executable pada sisten operasi Windows atau file bin pada sisten operasi berbasis Unix. Kompilator melakukan proses kompilasi dengan cara menganalisis kode
sumber secara keseluruhan, sehingga waktu yang dibutuhkan untuk melakukan kompilasi lebih lama, namun hasilnya lebih cepat dalam proses eksekusi daripada program yang dibuat dengan menggunakan teknik interpretasi dengan interpreter
7
B. Header dan Fungsi main() Beberapa bagian yang harus di perhatikan adalah header dan fungsi. Header adalah diana diana kita memasukkan
library yang ada ada dalam C++ kedalam kedalam kode
program kita. Fungsi adalah “tempat” dimana kita bisa “bereksperimen”. Didalamnya terdapat semua statement yang kita buat. Program yang paling sederhana yang pernah diketahui umat manusia (seram amat kata-katanya) adalah: #include using namespace std;
void main () { cout << “Hello, World!\ World!\n”; }
Pada baris pertama, seperti yang kita lihat, ada perintah #include . Tanda „#‟ adalah preprocessor directive. Preprocessor directive
adalah perintah – perintah yang diberikan kepada compiler untuk melakukan definisi, memasukkan file library, dll. Contoh – contoh dari preprocessor ini adalah:
#define maximum_number 100000
#include “fileku.h”
#ifdef maximum_number #undef maximum_number #define maximum_number_2 1000 #endif
Itu berarti bahwa kita memasukkan ( include) library iostream ke dalam kode program kita. iostream itu adalah header yang dibutuhkan untuk “kegiatan” input dan output dari program. Perintah
cout sendiri ada karena kita
memasukkan iostream ke dalam kode program kita dan juga using namespace std; dimana ada member cout di dalamnya.
Berikut beberapa header yang terdapat dalam C++:
ctime = header waktu
cstdio = header untuk perintah C seperti printf dan scanf
8
cmath = header untuk operasi matematika seperti sin, cos, sqrt, dan tan
cstring = header untuk memanipulasi string seperti strcpy, strcat, dll
main () adalah fungsi utama ( main) yang harus ada dalam setiap program
C++ kita. Di sini yang digunakan adalah dengan main tanpa nilai kembalian dan tanpa paramater. Apa itu nilai kembalian dan apa itu paramater? Saksikan setelah pesan – pesan – pesan pesan berikut… eh salah, lihat dalam bab berikutnya . Jika diperhatikan ada perintah \n pada akhir “kalimat” Hello, World!. Apa itu? ”\n” adalah perintah dalam banyak bahasa pemrograman sebagai baris baru ( new line). ‟) juga ada beberapa jenis, Perintah dengan menggunkan backslash („ \ \ ‟) diantaranya:
„\a‟ = untuk menghasilkan bunyi alert
„\t‟= tabulasi
„\0‟ = null terminated dalam array
Tanda „{„ juga harus ada dalam setiap fungsi C++, itu menandakan awal dari fungsi / program dan „}‟ menandakan akhir dari fungsi / program.
C. Penulisan Dalam Bahasa C++ Penulisan dalam bahasa C++ adalah case sensitive. Yang berarti, C++ membedakan huruf kecil dan kapital. Yang berarti (lagi): variabel_pertama tidak sama dengan variabel_Pertama atau mboknya_echi tidak sama dengan mboknya_Echi.
Komentar dalam C++ ditulis dengan „ //‟ untuk komentar dengan panjang satu baris atau „/*‟ dan „*/‟ untuk komentar lebih dari satu baris, dimana tanda /*
merupakan “pembuka” komentar dan */ adalah “penutup” komentar.
Komentar adalah cataatan ang ditulis oleh programmer untuk sebagai pengingat atau penjelasan ketika membaca sebuah kode. Kata – kata dalam sebuah komentar tidak akan dieksekusi oleh compiler. Beberapa kesalahan dalam penulisan dalam C++ adalah:
int int; /*salah karena nama sebuah variabel tidak boleh sama dengan seuah tipe data (int)*/
int Jam_9; //salah karena nama variabel dimulai dengan huruf besar
9
int 90jam; /*nah, ini juga salah karena nama sebuah variabel tidak boleh dimulai dengan bilangan*/
Penulisan yang benar dalam C++ adalah:
int myint; //betul
char kata_2; //betul juga...
double
bilangan_KeD uA;
/*walaupun
nama
identifiernya
aneh,
tapi ini juga betul :) */
Setiap statement dalam C++ harus diberi tanda „;‟ pada akhir dari statement. Contoh penulisan statement yang benar dalam C++ adalah: int a, b, c; a = 1; b = 2; c = a + b;
Sedangkan penulisan yang salah adalah: int a, b, c
karena itu dianggap error error oleh compiler, karena merupakan merupakan statement yang tidak tidak lengkap.
D. Tipe Data Tipe – Tipe – tipe tipe data yang dikenal dalam C++ adalah sebagai berikut: int
adalah tipe data bilangan bulat ( integer ). ). Contoh penggunaan tipe int
adalah: int a = 1; int num1 = 2, num2 = 4;
Perhatikan bahwa dalam nilai – nilai yang masuk di assign (masukkan) ke dalam variabel – variabel bertipe int adalah angka – angka / bilangan bulat. Seperti namanya, int hanya bisa bernilai bulat dan bukan pecahan (desimal). Bagaimana kalau yang tipenya int
lalu yang dimasukkan adalah hasil
pembagian yang tidak bulat hasilnya? Maka: int hasil_bagi_bulat hasil_bagi_bulat = 5 / 2;
10
Hasilnya: 2
Ini karena 5 dibagi 2 = 2,5 kemudian karena hasil_bagi_bulat adalah integer (bilangan bulat) 2,5 kemudian dibulatkan menjadi 2. Untuk bilangan desimal sendiri ada tipe tertentu untuk bilangan ini.
double
adalah tipe yang khusus untuk bilangan yang tidak bulat alias desimal /
pecahan. Contoh penggunaannya adalah: double mydouble = 5.00; double pecahan_pertama = 2.5, pecahan_kedua = 9.9;
char
adalah tipe data karakter yang bisa menyimpan mulai dari: a – z, – z, A – A – Z, Z, „!‟,
„@‟, dsb. Penggunannya ± sama dengan tipe - tipe yang yang sebelumnya: sebelumn ya: char huruf = „c‟; char inisial1 = „A‟, inisial2 = „W‟; char simbol = „#‟;
bool
adalah tipe yang hanya “menyimpan” nilai “benar” dan “salah” yaitu, true
dan false (boolean). Contoh: bool benar_atau_salah = true;
string
adalah tipe yang khusus untuk menampung semua masukan dari user /
gabungan karakter yang sangat panjang. Misalnya: string string_gue = “nah, kyk gini deh contohnya string...”;
E. Operator Aritmatika Operator aritmatika yang sering digunakan di gunakan dalam C++ adalah:
„+‟ = penjumlahan
„-„ = pengurangan
„*‟ = perkalian
„/‟ = pembagian
„%‟ = sisa bagi (modulo)
11
Contoh dari pemakaian masing – masing operator tersebut adalah sebagai berikut: #include using namespace std;
void main () { int satu, dua, tiga, empat, lima; satu = 1 + 0; dua = 4 - 2; tiga = 1 * 3; empat = 20 / 5;
//mencari sisa bagi dari 25 / 10 lima = 25 % 10;
cout << satu << “\ “\n”; cout << dua << “\ “\n”; cout << tiga << “\ “\n”; cout << empat << “\ “\n”; cout << lima << “\ “\n”; }
F. Contoh Program Algoritma dan C++ Contoh 1 Algorima & C++ C++ Dosen sebuah Universitas digaji berdasarkan jumlah jam kerjanya selama satu bulan. Gaji per jam adalah Rp 15.000,00. Bila jumlah jam kerjanya lebih dari 224 jam, maka sisanya sisanya dianggap dianggap sebagai jam jam sampingan. Upah Upah jam sampingan adalah adalah Rp 20.000,00. Dibaca jumlah jam kerja seorang dosen, tentukan gaji bulanannya. Misalkan jumlah jam kerja dosen adalah jjk. Analisis kasus : Kasus jjk ≤ 224 → jjk * 15000 Kasus jjk≥ 224 → jjk * 15000 + (jjk -224) -224) * 20000
12
Program Gaji_Dosen { Menentukan gaji bulanan seorang dosen. Masukan yang dibaca dari papan kunci adalah nama Dosen, golongan, dan jumlah jam kerja. Nama Dosen dan gajinya dicetak ke piranti keluaran }
Kamus nama : string jjk : integer
{ jumlah jam kerja }
gaji : real
Algoritma read (nama , jjk) if jjk jjk ≤ 224 then gaji ← jjk * 15000 else gaji ← 224 * 15000 + (jjk – 224 ) * 20000 endif write (gaji)
#include main () { nama char; int jjk;
/* jumlah jam kerja */
float gaji; std : : cin >> nama , jjk; If jjk ≤ 224; gaji = jjk * 15000; else gaji = 224 * 15000 + (jjk – (jjk – 224) * 20000; std : : cout << “gaji = “ << gaji << “\ “\n”; }
13
Contoh 2 ALGORITMIK Program Peledakan_Bom Peledakan_Bom { Hitung mundur peledakan bom }
Kamus b : integer
Algoritma for b←60 for b←60 downto 0 do write ( b ) endfor write ( „Beledug‟ ) { bom meledak }
C++ #include main () { int b; for ( b = 60 ; b >= 1; b - - ); std : : cout << b; sdt : : cout <<”Beledug”;
/* bom meledak */
}
14
Contoh 3 ALGORITMIK Program Dosen_Mata_Kuliah_TI Dosen_Mata_Kuliah_TI { Diberikan mata kuliah. Harus ditentukan nama Dosennya. }
Kamus mk : string { mata kuliah }
Algoritma read ( mk ) case ( mk ) mk = „algoritma dan pemrograman‟ : write ( „Yudi Herdiana, ST.‟ ) mk = „bahasa indonesia‟
: write ( „Indra Nurgahayu, SPd.‟ )
mk = „kalkulus‟
: write ( „Deni Sofiansyah, MPd.‟ )
mk = „fisika dasar‟
: write ( „Taofik, SSi.‟)
endcase
C++ #include main () {
char mk [ 15 ] ; /* mata kuliah */ cout << “ketikan mata kuliah:”; cin >> mk; if ( strcm ( mk, “algoritma dan pemrograman”)) cout << “Yudi Herdiana, ST.\ ST.\n”; else if ( strcm ( mk, “bahasa Indonesia” )) cout << “Indra Nurgahayu, SPd.\ SPd.\n”; else 15
if ( strcm strcm ( mk, “kalkulus” )) cout << “Deni Sofiansyah, MPd.\ MPd.\n”; else if ( strcm ( mk, “fisika dasar” )) cout << “Taofik, SSi.\ SSi.\n”; /*endif*/ /*endif*/ /*endif*/ /*endif*/ }
Contoh 4 ALGORITMIK Program Jalan_Alternatif { menentukan jalan alternatif bila jalan Pasar Baru di majalaya macet }
Kamus jl : string { jalan }
Algoritma Read ( jl )
If jl = „pasar baru macet‟ then write ( „coba jalan Ebah‟ ) else write ( „coba jalan anyar‟ ); endif C++ 16
#include main () { char jl; if jl = („pasar ( „pasar baru macet‟) cout << „coba jalan ebah‟; else cout << ‟coba jalan anyar‟; }
Contoh 5 ALGORITMIK Program Ngukur_Waktu { mengukur waktu berdasarkan jarak dan kecepatan } Kamus
v : integer { kecepatan } s : integer { jarak } t : real
{ waktu }
Algoritma v←5 s←20 t←s/v output(“waktu output(“waktu = “,t); 17
C++ #include Main () { Int v; Int s; float t; v = 5; s = 20; t = s/v; cout<<“waktu:””<
18
BAB III PENUTUP
3.1. Kesimpulan Adapun beberapa kesimpulan yang dapat diambil adalah : 1. Dalam sintaks
bahasa
C++
semua
hal-hal
yang
berhubungan
dengan
harus diperhatikan secara seksama, hal ini dikarenakan dikarenakan sebuah sebuah
program tidak akan bisa di running apabila salah satu sintak itu missing. 2. Pada Visual C++ terdapat empat kompiler umum yaitu : C++ Borland, C++ Microsoft Visual, C/386 Watcom, dan DJGPP.
3.2. Saran 1. Semoga makalah ini menjadi sebuah titik pendorong bagi pemula yang ingin belajar bahasa C++ secara mendalam. mendalam. 2. Semoga makalah ini menjadi pegangan pembaca dalam memahami setiap sintak umum yang yang ada pada bahasa C++
19
Daftar Pustaka
http://id.wikipedia.org/wiki/C%2B%2B http://selinliz.wordpress.com/2008/09/11/pe http://selinliz.wordpress. com/2008/09/11/pengertian-bahasa-p ngertian-bahasa-pemograman-c/ emograman-c/ http://ericwanda.wordpress.com/2008/09/24/bone/ http://ilmukomputer.org/2009/05/pemrograman-de http://ilmukomputer.org/2009 /05/pemrograman-dengan-c-part-i ngan-c-part-i / http://ilmukomputer.org/2009/05/pemrograman-dengan-c-part-ii/ http://ilmukomputer.org/2009/05/pemrograman-dengan-c-part-iii/ http://www.cplusplus.com/info/history.html Drs. Suarga, M.Sc., M. Math., Ph.D., Algoritma Pemrograman, Penerbit ANDI, 2006 Robert Setiadi, Algoritma Itu Mudah, PT. Prima Infosarana Media, 2008 Kernighan, Brian W. and Ritchie, Dennis M. 1988. C Programming Language 2nd Edition. Prentice-Hall. Stroustrup, Bjarne. 1997. C++ Programming Language Third Edition. AddisonWesley. Schildt, Herbert. 1998. C++: The Complete Reference. McGraw-Hill. Munir, Rinaldi. 1999. Algoritma dan Pemrograman dalam bahasa pascal dan c. informatika : Bandung
20