BAB
I
PENGANTAR
C++
1.SEJARAH
C++
C++ diciptakan
oleh Bjarne Stroustrup di laboratorium Bell pada awal tahun 1980-an, sebagai
pengembangan dari bahasa C dan Simula. Saat ini, C++ merupakan salah satu
bahasa yang paling popular untuk pengembangan softwere berbasis OOP. Kompiler
untuk C++ telah banyak beredar di pasaran. Software developer yang paling
diminati adalah Borland Inc, dan Microsoft Corp. Produk dari Borland untuk
compiler C++ adalah Turbo C++, Borland C++, Borland C++ Builder. Sedangkan dari
Microsft adalah Ms.Visual C++. Walaupun banyak kompiler yang tersedia, namun
pada intinya bahasa pemorograman yang di pakai adalah C++. Sebelum mulai
melakukan kode program, sebaiknya diingat bahwa C++ bersifat “case sensitive”,
yang artinya huruf besar dan huruf kecil dibedakan.
2.
STURKTUR BAHASA C++
Salah
satu cara untuk belajar bahasa pemrograman adalah dengan langsung
mempraktikannya. Cobalah contoh program berikut :
//program
pertamaku
#include
<iostream.h>
#include
<conio.h>
void
main()
{
Cout<<”Selamat
belajar c++\n”;
Getch();
}
|
Analisis : Sisi atas merupakan source code, dan sisi
bawah adalah hasilnya setelah di-kompile dan di-eksekusi. tetapi dalam program
tersebut mengandung komponen dasar yang selalu ada pada setiap pemrograman C++.
Ketika
di-run, maka di layar akan muncul sebuah tulisan “Selamat belajar c++’. Contoh
di atas, adalah sebuah contoh program sederhana menggunakan C++. Namun,
penggalan program tersebut telah menyertakan sintak-sintak dasar bahasa C++.
Sintak dasar tersebut akan dibahas satu per satu:
Ø // program pertamaku
Merupakan sebuah baris komentar. Semua baris, yang
ditandai dengan dua buah tanda slash(//) akan dianggap sebagai baris komentar
dan tidak akan berpengaruh pada hasil. Biasanya baris komentar dipakai oleh programmer
untuk memberikan penjelasannya tentang program. Baris komentar dalam C++,
selain ditandai dengan (//) juga dapat ditandai dengan(/*….*/)
Perbedaan mendasar dari keduanya adalah:
//baris
komentar
/*
blok komentar */
Ø #include <iostream.h>
#include
<conio.h>
Pernyataan yang diawali dengan tanda (#) merupakan
pernyataan untuk menyertakan preprocessor. Pernyataan ini bukan untuk
dieksekusi. #include<iostream.h> berarti
memerintahkan kompiler untuk menyertakan file file header iostream.h. Dalam
file header ini, terdapat beberapa fungsi standar yang dipakai dalam proses
input dan output. Seperti misalnya perintah cout yang dipakai dalam program
utama.
Ø Void main ()
Baris ini menandai dimulainya kompiler akan
mengeksekusi program. Atau dengan kata lain, pernyataan main sebagai penanda
program utama. Adalah suatu keharusan dimana sebuah program yang ditulis dalam
bahasa C++ memiliki sebuah main. Main diikuti oleh sebuah tanda kurung ()
karena main merupakan sebuah fungsi.
Dalam
bahasa C++ sebuah fungsi harus diikuti dengan tanda (), yang nantinya dapat
berisi argument. Dan sintak formalnya,
sebuah fungsi dimulai dengan tanda {}, seperti contoh program.
Ø Cout <<”Selamat belajar c++”;
Perintah ini merupakan hal yang akan dieksekusi oleh
kompiler dan merupakan perintah yang akan dikerjakan. Cout termasuk dalam file
iostream. Cout merupakan perintah untuk menampilkan ke layar. Perlu diingat,
bahwa setiap pernyataan dalam C++ harus diakhiri dengan tanda semicolon (;)
untuk memisahkan antara pernyataan satu dengan pernyataan lainnya.
Ø Getch ();
Pernyataan getch adalah fungsi untuk menunggu input
dari keyboard. Sehingga program menjadi berhenti sementara.
Dalam
library C++, iostream mendukung dua oprasi dasar yaitu cout untuk output dan
cin untuk input atau masukan melalui keyboard.
a).
Output(cout)
Untuk cout menggunakan operator <<(insertion
operation).
Cout << “Selamat Datang”; //mencetak tulisan Selamat datang ke layar
Cout << 120; //mencetak
angka 120 ke layar
Cout << x; //mencetak
isi nilai variable x ke layar
Operator
<<
dikenal sebagai insertion operator yang memberikan perintah kepada cout. Untuk
contoh pertama, kalimat yang akan di cetak di layar di apit tanda “ “ karena
berupa string. Sedangkan untuk contoh kedua dan ketiga, tanpa tanda “ “, karena
yang akan ditampilkan ke layar bukan
berupa string ataupun karakter. Insertion Operation (<<) dapat digunakan
lebih dari satu dalam sebuah pernyataan:
Cout <<”Halo, “<<” saya “<<
belajar c++ “;
Dengan perintah di atas, maka dilayar akan muncul
pesan Halo, saya belajar C++. Selanjutnya dapat juga dikombinasikan dengan
variable. Misalnya:
Cout << “Halo, saya
berusia”<<age<<”tahun”;
Maka tampilan di layar, adalah sebagai berikut:
Halo, saya berusia 23 tahun.
Yang
paling penting dari cout adalah bahwa perintah ini tidak akan menambahkan
perintah ganti baris. Untuk menambahkan perintah ganti baris, ada dua perintah
yang dapat dipakai:
Cout<<:Kalimat pertama.\n”;
Cout<<”Kalimat kedua.\nkalimat ketiga.”;
Tampilan di layar adalah sebagai berikut:
Kalimat pertama.
Kalimat kedua.
Kalimat ketiga.
Atau dapat juga dengan menggunakan perintah endl:
Cout<<”kalimat pertama.”<<endl;
Cout<<”kalimat kedua.”<<endl;
Tampilan dilayarnya adalah sebagai berikut:
Kalimat pertama
Kalimat Kedua.
b).
Input (cin)
Untuk
menerima inputan dengan perintah cin, maka operator yang akan digunakan adalah
overloaded operator (>>) dan diikuti oleh variable tempat menyimpan
inputan data. Seperti contoh:
Int age;
Cin>>age;
Cin
hanya
dapat diproses setelah penekanan tombol ENTER. Jadi, walaupun hanya satu
karakter yang dimasukkan, sebeleum penekanan Enter, cin tidak akan merespon
apa-apa. Cin juga dapat digunakan menerima beberapa inputan dalam sekali
pernyataan:
cin >> a >> b; sama dengan pernyataan:
cin >> a >> b; sama dengan pernyataan:
Cin>>a;
Cin>>b;
Kedua pernyataan di atas, jika dijalankan akan
meminta dua kali inputan data. Satu untuk variable a dan satunya lagi adalah
untuk variable b. Dan untuk pemasukan datanya dipisahkan dengan pemisah,
misalnya dengan Spasi, Tab atau Enter. Cobalah contoh program berikut :
#include<iostream.h>
#include<conio.h>
void main ()
{
float
panjang,lebar,Luas;
cout<<”Program
Pencari Lebar Persegi Panjang \n”;
cout<<”Masukkan
nilai Luas :”;cin>>Luas;
cout<<”Masukkan
nilai panjang :”cin>>panjang;
lebar=Luas/panjang;
cout<<”lebar
persegi panjang :”<<lebar;
getch();
}
|
Analisis: memasukan dan menampilkan hasil inputan
(cin) program pencari lebar persegi panjang.
BAB
II
STRUKTUR
KONTROL
Dalam
sebuah proses program, biasanya terdapat kode penyeleksian kondisi, kode
pengulangan program, atau kode untuk pengambilan keputusan.
1. SELEKSI KONDISIONAL (if…else…)
Format penulisannya: if (kondisi) pernyataan;
Kondisi adalah ekspresi yang akan dibandingkan. Jika
kondisi bernilai benar, maka pernyataan aka dijalankan. Namun, jika kondisi
bernilai salah, maka pernyataan akan diabaikan. Contoh pernyataan berikut akan
menampilkan tuliskan x adalah 100 apabila x bernilai 100:
If (x==100)
Cout << “x adalah 100”;
Jika menginginkan lebih dari sebuah pernyataan yang
dijalankan, ketika kondisi terpenuhi maka blok instruksi harus menyertakan
tanda {dan}.
If (x==100)
{
Cout << “x adalah “;
Cout << x;
}
Bila menginginkan sesuatu dijalankan ketika
kondisitidak terpenuhi, dapat di tambahkan keyword else. Sintaknya adalah:
If
(kondisi)
|
|
If
(x==100)
|
Pernyataan1;
|
Cout
<<”x adalah 100”;
|
|
Else
|
Else
|
|
Pernyataan2;
|
Cout
<<”x bukan 100”;
|
Pernyataan if…else…dapat terdiri dari beberapa else.
Pada contoh berikut, program akan memeberikan jawaban terhadap inputan data,
apakah berupa nilai positif, negative atau nol:
if (x>0)
if (x>0)
Cout<<”positive”;
else if (x<0)
Cout<<”negative”;
else
Cout<<”x
adalah 0”;
2.
PERULANGAN (loops)
Sebuah atau beberapa pernyataan akan dijalankan
secara berulang-ulang, selama kondisi terpenuhi.
·
Perulangan dengan while
Sintaknya adalah: while
(kondisi) pernyataan;
Pernyataannya akan dijalankan selama ekspresi
bernilai true. Contoh:
//hitungan
mundur menggunakan while
#include<iostream.h>
#include<conio.h>
void
main()
{
int
n;
cout<<”Masukkan
angka untuk mulai:”;
cin>>n;
while
(n>0)
{
cout
<<n<<”,”;
--n;
}
cout
<<”STOP!”;
getch();
}
|
Analisi: Pada
fungsi pengulangan do, data yang di inputkan oleh kita nilai angka nya akan
semakin berkurang/bertambah (pada kasus ini berkurang) hingga berhenti pada
angka yang telah ditentukan (n>0).
·
Perulangan dengan do…while
Sintaknya: do
pernyataan while (kondisi);
Konsep do…while mirip dengan while. Namun pernyataan
akan dijalankan terlebih dahulu sebelum pengecekan kondisi. Untuk lebih
jelasnya, perhatikan contoh berikut:
#include<iostream.h>
#include<conio.h>
void
main()
{
int
n;
do
{
cout
<<”Masukkan nomor (tekan 0 untuk mengakhiri):”;
cin>>n;
cout<<”Anda
memasukkan angka :”<<n<<”\n”;
}
while (n!=0);
getch();
}
|
Analisis:
Pada perintah ini data yang di inputkan akan
berhenti pada angka yang di inputkan tersebut, maksudnya selain angka (pada
kasus ini proses akan berhenti pada saat kompiler memasukkan angka 0) data
tidak akan behenti memproses untuk memerintahkan memasukkan angka.
·
Perulangan dengan for
Sintaknya: for
(inisialisasi; kondisi; counter) pernyataan;
Pernyataan akan diulangi jika kondisi bernilai true.
Sama seperti perulangan dengan while. Namun for menetapkan inisialisasi dan
penaikan berada dalam(dan). Penjelasannya adalah sebagai berikut:
1. Inisialisasi : akan dieksekusi. Biasanya
merupakan variable yang akan dipakai sebagai counter atau pencacah. Bagian ini
akan di eksekusi hanya sekali
2. Kondisi : akan diperiksa, jika bernilai true maka
perulangan akan dilanjutkan dan jika bernilai false maka perulangan akan
dilewati.
3. Pernyataan : akan dieksekusi. Biasanya dapat
terdiri dari sebuah instruksi atau blok instruksi yang berada di antara{dan}.
4. Terakhir, apapun perintah dalam counter akan
dijalankan dan kemudian perulangan kembali lagi ke langkah 2.
Contoh:
#include<conio.h>
#include<iostream.h>
void
main()
{
for
(int n=10; n>0;n--)
{
cout<<n<<”,”;
}
cout<<”STOP!”;
getch();
}
|
Analisis: pada perintah ini,
pernyataan akan diulangi jika kondisi bernilai true (benar). Dan nilai
akan berhenti saat kompiler memasukkan angka hingga (pada kasus ini nilai
berhenti atau n>0).
Inisialisasi dan Counter adalah optional atau dapat
di tiadakan. Namun tidak demikian dengan tanda semicolon (;). Misalnya kita
dapat menuliskan: for(;n<10;) jika tanpa inisialisasi dan tanpa penaikan,
atau for(;n<10;n++) jika tanpa inisialisasi namun tetap menggunakan
penaikan.
·
Nested Loops(Perulangan Bertumpuk)
Perulangan bertumpuk
secara sederhana dapat diartikan: terdapat satu atau lebih loop didalam sebuah
loop. Banyaknya tingkatan perulangan tergantung dari kebutuhan. Biasanya,
nested loops digunakan untuk membuat aplikasi matematika yang menggunakan baris
dan kolom. Loop luar, biasanya digunakan untuk mendefinisikan baris. Sedangkan
loop dalam digunakan untuk mendefinisikan kolom.
Contoh:
for (int baris = 1; baris <=4; baris++)
{
for (int kolom = 1; kolom <=5; kolom++)
{
cout<<kolom<<” “;
}
cout<<endl;
}
Analisis: perintah
pengulangan akan terus mengulang selama nilai yang di inputkan salah, perintah
akan berhenti secara otomatis bila nilai sudah benar.
Tambahan:
·
Perintah break
Break berfungsi untuk keluar dari loop, walaupun
kondisinya belum seluruhnya terpenuhi. Biasanya, perintah ini digunakan untuk
memaksa program keluar dari loop. Contoh berikut akan berhenti menghitung
sebelum terhenti secara normal.
For (int n=10; n>0;n--)
{
Cout<<n<<”,
“;
If
(n==3)
{
Cout<<”penghitungan
dihentikan !”;
Break;
}
}
Analisis: menampilkan angka yang di
input oleh kompiler hingga angka tersebut bernilai benar, dan perintah angka
terus dimunculkan selama angka yang dimasukan salah.
Dan dilayar akan tampak hasil sebagai berikut:
10,9,8,7,6,5,4,3, penghitung dihentikan !
·
Perintah continue
Perintah ini akan melewati satu iterasi yang sesuai
dengan syarat tertentu, dan melanjtukan ke iterasi berikutnya. Contoh:
For
(int n=10; n>0;n--)
|
Dan
layar akan muncul:
|
{
|
10,9,8,7,6,4,3,2,1,
STOP !
|
If
(n==5) continue;
|
|
}
|
|
Cout<<”STOP
!”;
|
|
Analisis: pada
perintah ini,sama menggunakan perintah for hanya saja ditambah perintah continue
dalam program ini, dalam program ini angka 5 tidak tampil karena terdapat
sintaks if (n==5) continue, sehingga dalam program ini tampilan akhirnya
langsung mengahasilkan angka 10 sampai dengan 1 tanpa angka 5 dan diakhiri
dengan STOP.
·
Struktur Selektif dengan switch
Logika menggunakan switch sama dengan menggunakan
perintah if yang telah dijelaskan sebelumnya. Sintaknya adalah:
Switch (pilihan)
{
case
nilai1:
blok
pernyataan 1
break;
case
nilai2:
blok
pernyataan 2
break;
-
-
default
:
blok
pernyataan default
}
Contoh (kedua penggalan program memiliki arti yang
sama):
Contoh
switch
|
Contoh
if
|
Switch
(x)
|
If
(x==1)
|
{
|
{
|
Case
1 :
|
Cout<<”x adalah 1”;
|
Cout<<”x
adalah 1”;
|
}
|
Break;
|
Else
if(x==2)
|
Case:
|
{
|
Cout<<”x
adalah 2”;
|
Cout<<”x
adalah 2”;
|
Break;
|
}
|
Default:
|
Else
|
Cout<<”tidak
terindetifikasikasi”:
|
{
|
}
|
Cout<<”tidak
teridentifikasika”;
|
}
|
}
|
Sedangkan untuk program yang memiliki beberapa nilai
pilahan, maka dapat ditulis seperti contoh berikut:
Switch
(x)
{
Case
1:
Case
2:
Case
3:
Cout<<”x=1,2
atau 3”;
Break;
Default:
Cout<<”x
tidak sama dengan 1,2 atau 3”;
}
|
BABIII
FUNGSI
Fungsi merupakan sebuah blok instruksi yang
dieksekusi dan dipanggil dari bagian lain tubuh program. Pada intinya fungsi
berguna untuk:
·
Kategori
Function dalam C/C++
1) Standard Library Function
Yaitu
fungsi-fungsi yang telah disediakan oleh C/C++ dalam file-file header atau
librarynya. Misalnya: clrscr(), printf(), getch() Untuk function ini kita harus
mendeklarasikan terlebih dahulu library yang akan digunakan, yaitu dengan
menggunakan preprosesor direktif.
2) Programmer-Defined function
Adalah
function yang dibuat oleh programmer sendiri. Function ini memiliki nama
tertentu yang unik dalam program, letaknya terpisah dan program utama, dan bias
dijadikan satu ke dalam suatu library buatan programmer itu sendiri yang
kemudian juga di-include-kan untuk penggunaannya. Format penulisannya adalah
sebagai berikut: tipe nama (argumen1, argumen2,…) pernyataan;
Contoh penggunaan fungsi:
//contoh
fungsi
#include
<iostream.h>
#include
<conio.h>
int
penjumlahan(int a, int b)
{
int
r;
r=a+b;
return
r;
}
void
main()
{
int
z;
z=penjumlahan(5,3);
cout<<”Hasil
penjumlahan=”<< z;
getch();
}
|
Analisa : menampilkan hasil dari penjumlahan dari 5 +
3. Perintah ini berfungsi untuk
penjumlahan dengan menggunakan fungsi, terdapat int a & int b sebagai
parameternya dan int penjumlahan sebagai tipe datanya, lalu terdapat juga int r
sebagai parmeternya dan r=a+b; sebagai hasilnya , lalu terdapat juga return r. nilai r dan int z sebagai variabelnya, lalu dipanggil
fungsinya sehingga mendapatkan hasil 8.
3)
Pendeklarasian fungsi tanpa tipe(menggunakan void)
Kadang-kadang terdapat fungsi yang tanpa memerlukan
adanya pengembalian nilai. Misalkan, sebuah fungsi yang hanya bertugas mencetak
kalimat ke layar monitor dan tanpa memerlukan adanya pertukaran parameter.
Dalam kondisi seperti ini, maka di pergunakan kata kunci void.
Contoh program:
#include
<iostream.h>
#include<conio.h>
void
garis()
{
int
I;
for
(i=0;i<35;i++)
cout<<’-‘;
}
void
main()
{
garis()
//panggil
fungsi garis
cout<<”\n
Erwan Ramdani Nugeaha \n”;
cout<<”107006115
\n”;
garis();
getch();
}
|
Yang harus diperhatikan adalah, pemanggilan fungsi
harus disertai dengan tanda().
Analisa : perintah diatas merupakan perintah yang
mendeklarasikan sebuah fungsi tanpa tipe nya. Dengan menggunakan fungsi
pengganti yaitu void, data yang dituliskan dalam cout akan ditampilkan.
Fungsi
Rekrusif
Fungsi rekursif adalah suatu fungsi yang memanggil
dirinya sendiri, artinya fungsi tersebut dipanggil di dalam tubuh fungsi itu
sendiri. Fungsi rekursif sangat berguna bila diimplementasikan untuk pekerjaan pengurutan
data, atau menghitung nilai factorial suatu bilangan.
Bentuk rekursi bertujuan untuk:
1. Menyerdahanakan penulisan program
2. Menggantikan bentuk iterasi
Syarat bentuk rekursif:
1. Ada kondisi terminal(basis)
2. Ada subroutine call yang melibatkan parameter
yang nilainya menuju kondisi terminal(recurrence)
Misalnya:
#include<iostream.h>
#include<conio.h>
long
factorial (long a)
{
if
(a>1)
return
(a* factorial (a-1));
else
return
(1);
}
void
main()
{
long
i;
cout<<”tuliskan
bilangan :”;
cin>>1;
cout<<”!”<<”=
“<<factorial(1);
getch();
}
|
Analisis : menampilkan sebuah faktorial angka
dengan fungsi rekursif.
Tidak ada komentar:
Posting Komentar