TEORI DASAR C++
PENGERTIAN BAHASA C++
C++ adalah bahasa pemrograman komputer yang dibuat oleh Bjarne Stroustup, yang merupakan perkembangan dari bahasa C. Dikembangkan di Bong Labs (Dennis Ritchie) pada awal tahun 1070-an. Bahasa itu diturunkan dari bahasa sebelumnya, yaitu bahasa B. pada awalnya bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix. Pada perkembangannya, versi ANSI (American National Standart Institute) bahasa pemrograman C menjadi versi dominan. Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded.
Bjarne Stroustrup pada laboraturium Bell pertama kali mengembangkan C++ pada awal 1980-an. Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low-level languages). Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti inheritance dan overloading. Salah satu perbendaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented Programming).
- Sejarah dan konsep C++
a. Sejarah C++
Bahasa C dikembangken di Bell lab pada tahun 1972 ditulis pertama kali oleh Brian W. Kernighan dan Denies M. Ricthie merupakan bahasa turunan atau pengembangan dari bahasa B yang ditulis oleh Ken Thompson pada tahun 1970, yang juga merupakan bahasa yang diturunkan oleh bahasa sebelumnya, yaitu BCL.
Bahasa C pada awalnya dirancang sebagai bahasa pemrograman yang dioperasikan pada sistem operasi UNIX. Bahasa C merupakan bahasa pemrograman yang tergolong di antara bahasa tinggat rendah dan tingkat tinggi yang biasa disebut dengan Bahasa Tingkat Menengah. Bahasa C mempunyai banyak kemampuan yang sering digunakan diantaranya kemampuan untuk membuat perangkat lunak, misalnya dBASE, Word Star dan lain-lain.
Bahasa C++ lahir pada tahun 1980, yang dibuat oleh Bjame Stoustrob di AT&T Bell Laboratories awal tahun 1980-an berdasarkan C ANSI (American National Standard Institute). Pertama kali, prototype C++ muncul sebagai C yang dipercanggih dengan fasilitas kelas, bahasa tersebut disebut “C dengan kelas” (C with Class).
Pada tahun 1983-1984, C dengan kelas disempurnakan dengan menambahkan fasilitas overloading operator, yang mulanya disebut “a better C” kemudian berganti nama pada tahun 1983 menjadi C++. Simbol
++
merupakan operator penaikan pada C, digunakan untuk menunjukkan bahwa bahasa baru ini merupakan versi yang lebih canggih dari C.
Borland International merilis kompiler Borland C++ dan Turbo C++. Kedua kompiler ini sama-sama dapat digunakan untuk mengkompilasi kode C++. Bedanya, Borland C++ selain dapat digunakan dibawah lingkungan DOS, juga dapat digunakan untuk pemrograman Windows. Selain Borland International beberapa perusahaan lain juga merilis kompiler C++, seperti Topspeed C++ dan Zortech C++.Awal mula Bjarne Stroustrup membuat membuat C++ adalah ketika Bjarne Stroustrup melakukan pekerjaan untuk gelar Ph.D. tesis pada salah satu bahasa pemrograman dan Stroustrup memiliki kesempatan untuk bekerja dengan bahasa tersebut yang disebut Simula,
Simula merupakan bahasa untuk simulasi. The Simula 67 bahasa yang merupakan varian bekerja dengan Stroustrup. bahasa tersebut dianggap sebagai bahasa pertama untuk mendukung paradigma pemograman berorientasi objek. Stroustrup menyadari bahwa paradigma ini sangat berguna untuk pengembangan perangkat lunak, dengan kelebihan bahasa Simula tersebut tetapi bahasa Simula memiliki kekurangan yaitu, bahasa Simula terlalu lambat untuk penggunaan praktis.
Tak Lama kemudian, ia memulai untuk mengerjakan bahasa pemrograman berdasarkan ide yang telah ia dapatkan. Stroustrup mengerjakan C++ dengan nama awalnya yaitu C With Class. yang dimaksudkan untuk menjadi superset dari bahasa C, dengan menambahkan pemrograman berorientasi obyek ke dalam bahasa C.
Cfront kemudian ditinggalkan pada tahun 1993 setelah dianggap sulit untuk mengintegrasikan fitur baru ke dalamnya. Meskipun demikian, Cfront membuat dampak besar pada implementasi kompiler masa depan dan pada sistem operasi Unix.Pada tahun 1985, Stroustrup membuat buku referensi berjudul The C ++ Programming Language diterbitkan. Pada tahun yang sama, C ++ dilaksanakan sebagai produk komersial. Bahasa ini belum secara resmi distandarkan. Bahasa ini diperbarui lagi pada tahun 1989 dan menambahkan fasilitas Protected member, Static member, serta Inheritance.
Cfront kemudian ditinggalkan pada tahun 1993 setelah dianggap sulit untuk mengintegrasikan fitur baru ke dalamnya. Meskipun demikian, Cfront membuat dampak besar pada implementasi kompiler masa depan dan pada sistem operasi Unix.Pada tahun 1985, Stroustrup membuat buku referensi berjudul The C ++ Programming Language diterbitkan. Pada tahun yang sama, C ++ dilaksanakan sebagai produk komersial. Bahasa ini belum secara resmi distandarkan. Bahasa ini diperbarui lagi pada tahun 1989 dan menambahkan fasilitas Protected member, Static member, serta Inheritance.
Pada tahun 1990, buku The Annotated C ++ Reference dirilis. Pada tahun yang sama Borland dan Turbo C ++ kompiler dirilis sebagai produk komersial. Turbo C ++ menambahkan banyak library tambahan yang akan memiliki dampak yang besar terhadap pengembangan C ++. Meskipun rilis stabil terakhir Turbo C ++ pada tahun 2006, tapi kompiler tersebut sampai saat ini masih banyak digunakan.
Pada tahun 1998, panitia standar C ++ menerbitkan Standar Internasional pertama untuk C ++ ISO / IEC 14882: 1998. Pada tahun 2003, panitia mendapati beberapa masalah yang dilaporkan dengan C++ Standar mereka pada tahun 1998, karena itu bahasa diperbaharui yang merupakan revisi masalah sebelumnya dan dijuluki C ++ 03.
Pada tahun 2005, panitia Standarisasi C ++ merilis laporan teknis yang dijuluki TR1, merinci berbagai fitur mereka berencana untuk menambah C ++ standar terbaru. Standar baru itu secara informal dijuluki C ++ 0x seperti yang diharapkan akan dirilis sebelum akhir dekade pertama. Namun, ironisnya, standar baru tidak dirilis sampai pertengahan 2011.
Pada pertengahan 2011, C ++ 11 selesai dan merupakan C++ standar baru. The Library Project Meningkat, membuat dampak yang besar terhadap standar baru, dan beberapa modul baru berasal langsung dari Boost perpustakaan. Beberapa fitur baru termasuk dukungan ekspresi regular merupakan sebuah perpustakaan pengacakan komprehensif, perpustakaan threading standar , fungsi baru untuk pengulangan, Foreach Loop, kata kunci Auto, Class New Container, dukungan yang lebih baik untuk daftar inisialisasi Array, dan Variadic Template.
b. Konsep C++
Struktur Dasar Bahasa C++
# include
Void main()
{
Instruksi-instruksi /* Berisi perintah program */
}
Penjelasan :
- # include : Fungsinya untuk mengaktifkan library atau pustaka bahasa c++ yang berisi daftar perintah-perintah bahasa C++ yang akan digunakan dalam program. Misalnya pustaka dengan nama conio.h harus diaktifkan jika kita menggunakan perintah clrscr() yang berfungsi menghapus layar. Jika tidak conio.h disebutkan pada #include, maka perintah clrscr() tidak dapat dikenali sebagai perintah yang benar.
- Void main() : adalah nama fungsi utama dalam bahasa C++,. Setiap program dapat berisi beberapa fungsi tetapi fungsi dengan nama main() selalu ada. Fungsi main() didahui oleh kata kunci void artinya fungsi main() tidak mengembalikan sebuah nilai balik..
- Tanda { Menandakan awal program dan tanda } Menandakan akhir program.
- Instruksi : Berisi perintah-perintah yang akan dilakukan program.
Prinsip Kerja Program C++ :
- #include . Baris tersebut bukanlah sebuah pernyataan, karena itu tidak diakhiri dengan tanda titik koma. Baris tersebut menginstruksikan kepada kompiler untuk menyisipkan file lain saat program dikompilasi. File-file pustaka berakhiran .h disebut file header, Misalnya file iostream.h perlu disertakan pada program yang menggunakan obyek cout. Karena file iostream.h berisi deklarasi yang diperlukan oleh cout dan berbagai obyek yang berhubungan dengan masukan dan keluaran pada stream..
- Penulisan perintah bersifat case sensitip, artinya huruf besar dan kecil dibedakan.
- Perintah-perintah dalam bahasa C++ tidak boleh ditulis dalam huruf besar, misalnya perintah yang salah : Main(), MAIN(), Printf, dll.
- Program C++ , minimal mengandung 1 fungsi utama yang bernama main(). Eksekusi program akan diawali dengan mengeksekusi fungsi main().
- Setiap fungsi terdiri atas satu atau beberapa pernyataan, untuk menyelesaiakan tugas khusus.
- Bagian pernyataan fungsi atau tubuh fungsi diawali dengan tanda kurung kurawal buka ({) dan diakhiri tanda kurung kurawal tutup (}).
- Semua karakter di dalam simbol /* dan */ atau setelah simbol garis miring ganda // akan diabaikan oleh compiler. Simbol tersebut digunakan untuk menuliskan komentar atau penjelasan baris program.
Perintah Dasar :
- Pustaka stdio.h digunakan untuk mengaktifkan perintah printf dalam pustaka stdio.h. Jika tidak diaktifkan, maka akan terjadi kesalahan atau error pada perintah printf.
- printf(“Teks”) : digunakan untuk mencetak teks di layar komputer
- Simbol n : perintah untuk memindahkan kursor ke baris berikutnya.
- Komentar/ Keterangan : /* Komentar */
- clrscr() : untuk membersihkan layar sebelum menampilkan teks.
- getch() : perintah untuk menghentikan tampilan output program. Jika tidak digunakan, maka output program tidak akan tampak di layar karena langsung keluar dari program.
Contoh :
#include
#includevoid main()
{ clrscr(); //hapus layar
/* cetak ke layar */
printf(” Hello world, ini program C++ saya yang pertama n”);
printf(” Saya mau belajar Turbo C++ “);
getch(); //menghentikan tampilan output.
#includevoid main()
{ clrscr(); //hapus layar
/* cetak ke layar */
printf(” Hello world, ini program C++ saya yang pertama n”);
printf(” Saya mau belajar Turbo C++ “);
getch(); //menghentikan tampilan output.
}
- Devinisi Variabel, Liblary, Oprator, dan Manipulator
a.Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Untuk memperoleh nilai dari suatu variable digunakan pernyataan penugasan (assignment statement), yang mempunyai sintaks sebagai berikut :
variable = ekspresi ;
Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :
- Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C ++ bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda.
- Tidak boleh mengandung spasi.
- Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, = dsb.
- Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
Contoh penamaan variabel yang benar : NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.Contoh penamaan variable yang salah : %nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb
b. Liblary
library di C++ biasanya di tandai dengan header dengan simbol # di depan nya
contoh #inlcude <iostream.h>
Baris yang ditandai dengan simbol # disebut Preprocessor directive. Bertugas untuk mengarahkan prepocessor yang akan digunakan untuk membaca file header atau bisa dikatakan sebagai pengatur proses kompilasi.
Ada beberapa Library dalam bahasa C++ yang sering digunakan, diantaranya seperti berikut :
contoh #inlcude <iostream.h>
Baris yang ditandai dengan simbol # disebut Preprocessor directive. Bertugas untuk mengarahkan prepocessor yang akan digunakan untuk membaca file header atau bisa dikatakan sebagai pengatur proses kompilasi.
Ada beberapa Library dalam bahasa C++ yang sering digunakan, diantaranya seperti berikut :
- <stdio.h> yang merupakan singkatan dari "standard input / output header", adalah header yang berisi definisi makro, konstanta, dan deklarasi fungsi dan jenis yang digunakan untuk berbagai standard input dan output operasi
- <conio.h> adalah header file yang digunakan untuk membuat teks antarmuka pengguna
- <assert.h> adalah file header yang mendefinisikan makro menegaskan C preprocessor
- <complex.h> adalah file header yang mendefinisikan fungsi untuk aritmatika kompleks
- <ctype.h> adalah header untuk deklarasi yang berfungsi mengklasifikasi karakter
- <errno.h> adalah file header yang berfungsi melaporkan kondisi kesalahan melalui kode kesalahan.
- <fenv.h> adalah file header yang mengandung berbagai fungsi dan macro untuk memanipulasi lingkungan floating-point
- <float.h> adalah header yang berfungsi memperluas ke berbagai limit dan parameter dari jenis floating-point standar
- <inttypes.h> file header berfungsi mendefinisikan beberapa macro untuk digunakan dengan fungsi printf dan scanf, serta fungsi untuk bekerja dengan jenis intmax_t.
- <iso646.h> adalah header yang mendefinisikan beberapa macro yang memungkinkan programmer untuk menggunakan C bitwise bahasa dan operator logika, yang, tanpa file header, tidak bisa cepat atau mudah diketik pada beberapa keyboard non-QWERTY internasional dan.
- <limits.h> adalah file header dari perpustakaan standar bahasa pemrograman C yang mencakup definisi karakteristik dari jenis variabel umum
- <locale.h> adalah pemrograman bahasa C file header, digunakan untuk tujuan lokalisasi
- <math.h> berisi prototype fungsi untuk pustaka matematika
- <string.h> berisi prototype fungsi untuk pemrosesan string
c. Oprator
Operator sendiri berarti simbol khusus yang akan memberitahu kepada compiler untuk melakukan operasi aritmatika dan logika tertentu
dalam c++ ada beberapa jenis operator terdiri dari:
1.Operator aritmatika
2.Operator relasional
3.Operator logika
4.Operator Bitwase
5.Operator Assignment(penugasan)
6.Operator Precedence
6.Operator Misc
1. operator aritmatika
Oprator aritmatika berfungsi untuk perhitungan matematika seperti pembagian,perkalian, penambahan, pengurangan.berikut adalah tabel dari operator aritmatika
1.Operator aritmatika
2.Operator relasional
3.Operator logika
4.Operator Bitwase
5.Operator Assignment(penugasan)
6.Operator Precedence
6.Operator Misc
1. operator aritmatika
Oprator aritmatika berfungsi untuk perhitungan matematika seperti pembagian,perkalian, penambahan, pengurangan.berikut adalah tabel dari operator aritmatika
Operator | Deskripsi | Contoh Penggunaan(A=10,B=20) |
---|---|---|
+ | Menambahkan dua operan | A+B = 30 |
- | untuk operasi aritmatika pengurangan | B-A=10 |
* | untuk operasi aritmatika perkalian | A*B=30 |
/ | untuk operasi aritmatika pembagian | B/A=0 |
% | Modulus Operator dan sisa setelah pembagian integer | B%A=0 (sisa bagi pembagian antara 20 / 10 = 0) |
Operator relasional merupakan sebuah operator yang bernilai true dan false. Untuk mengevaluasi antara 2 ekspresi, dapat digunakan operator Relasional. Hasil dari operator ini adalah nilai bool yaitu hanya berupa true atau false, atau dapat juga dalam nilai int, 0 untuk mereprensentasikan "false" dan 1 untuk merepresentasikan "true".
3.operator logika
Operator | Deskripsi | Contoh Penggunaan(A=15,B=12) |
---|---|---|
== | digunakan untuk memeriksa apakah kedua nilai atau tidak. jika sama maka kedua kondisi benar | (A==B) false atau (0) |
!= | digunakan untuk memerika apakah kedua sama atau tidak. jika tidak sama maka kedua kondisi benar | (A!=B) true atau (1) |
> | Memeriksa apakah nilai operan kiri lebih besar dari nilai operan kanan, jika ya maka kondisi menjadi benar. | (A>B) true atau(1) |
< | Memeriksa apakah nilai operan kiri kurang dari nilai operan kanan, jika ya maka kondisi menjadi benar. | (A<B) false atau (0) |
>= | Memeriksa apakah nilai operan kiri lebih besar dari atau sama dengan nilai operan kanan, jika ya maka kondisi menjadi benar. | (A>=B) true atau (1) |
<= | Memeriksa apakah nilai operan kiri kurang dari atau sama dengan nilai operan kanan, jika ya maka kondisi menjadi benar. | (A<=B) false atau (0) |
3.operator logika
Operator logika Operator equivalen dengan operasi boolean NOT, hanya mempunyai 1 operand, berguna untuk membalikkan nilai dari operand yang bersangkutan dan operator Logika && dan || digunakan untuk mengevaluasi 2 ekspresi dan menghasilkan 1 nilai akhir. mempunyai arti yang sama dengan operator logika Boolean AND dan OR.
Operator | Deskripsi | Contoh Penggunaan(A=0,B=0) |
---|---|---|
&& | melambangkan AND operator jika kedua angka berisi 1 dan 1 maka hasilnya true(benar) | (A&&B) false atau (0) |
|| | Melambangkan OR operator Jika salah satu dari dua operan adalah l, maka kondisi menjadi benar(true) | (A||B) true atau (1) |
! | Melambangkan NOT operator, Jka kondisi benar, maka Logical operator NOT akan bernilai false(salah) | !(A&&B) true atau(1) |
4. Operator Bitwase
Operator Bitwise memodifikasi variabel menurut bit yang merepresentasikan nilai yang disimpan, atau dengan kata lain dalam representasi binary.
Operator | Deskripsi |
---|---|
& | Logika AND |
| | LOGIKA OR |
^ | XOR |
~ | NOT |
<< | SIFT LEFT(SHL) |
>> | SIFT RIGHT(SHR) |
5. Assigment operator(operator penugasan)
Operator assigment(operator penugasan) di tandai dengan tanda("=")
Operator | Deskripsi |
---|---|
= | operator penugasan seerhana, untuk menetapkan nilai ari sisi operan kanan ke operan kiri |
+= | tambahkan AND operator penugasan,menambahkan operan yang benar untuk operan kiri dan menetapkan hasil untuk operan kiri |
-= | kurangi AND operator penugasan, itu mengurangi operan kanan dari operan kri dan menetapkan hasil untuk operan kiri |
*= | kalikan AND operator penugasan, mengalihkan operan kanan dengan operan kiri dan menetapkan hasil untuk operan kiri |
/= | Bagikan AND operator penugasan, membagi operan kiri dengan operan kanan dan menetapkan hasil untuk operan kiri |
%= | Modulus AND operator penugasan, sisa bagi dengan menggunakan dua operan dan menetapkan hasil untuk operan kiri |
<<= | shift kiri AND operator penugasan |
>>= | shift kanan AND operator penugasan |
&= | Bitwise AND operator penugasan |
^= | bitwise XOR dan operator penugasan |
|= | bitwise inclusive OR dan operator penugasan |
6.operator Precedence
Operator Precedence operator yang didahulukan menentukan pengelompokan istilah dalam ekspresi. misal ada perintah perkalian dan penjumlahan maka akan didahulukan yang perkalian
Kategori | Operator | Associativity |
---|---|---|
Postfix | () [] -> . ++ - - | kiri ke kanan |
Unary | + - ! ~ ++ - - (type)* & sizeof | kanan ke kiri |
Multiplicative | * / % | kiri ke kanan |
Additive | + - | kiri ke kanan |
Shift | << >> | kiri ke kanan |
Relational | < <= > >= | kiri ke kanan |
Equality | == != | kiri ke kanan |
Bitwise AND | & | kiri ke kanan |
Bitwise XOR | ^ | kiri ke kanan |
Bitwise OR | | | kiri ke kanan |
Logical AND | && | kiri ke kanan |
Logical OR | || | kiri ke kanan |
Conditional(kondisi) | ?: | kanan ke kiri |
Assignment(penugasan) | = += -= *= /= %=>>= <<= &= ^= |= | kanan ke kiri |
Comma(koma) | , | kiri ke kanan |
7. operator misc
Operator misc
d. Manipulator
Manipulator adalah fungsi pembantu yang memungkinkan untuk mengontrol input / output stream. Manipulator pada umumnya digunakan untuk mengatur tampilan layar. Contohnya untuk mengatur supaya suatu nilai ditampilkan dengan lebar 8 karakter dan diatur rata kiri terhadap lebar tersebut.
Operator | Description |
---|---|
sizeof | size of operator digunakan untuk mengetahui ukuran dari memori |
Condition ? X : Y | operator kondisi Jika Kondisi ini benar? maka kembali nilai X: jika nilai Y |
, | Nilai seluruh ekspresi koma adalah nilai ekspresi terakhir dari daftar dipisahkan koma |
. (dot) and -> (arrow) | digunakan untuk individual members of classes, structures, and unions. |
Cast | digunakan untuk mengkonversi type data |
& | pointer & digunakan untuk mengembalikan alamat dari variabel |
* | opinter * digunakan untuk mengetahui alamat memori |
d. Manipulator
Manipulator adalah fungsi pembantu yang memungkinkan untuk mengontrol input / output stream. Manipulator pada umumnya digunakan untuk mengatur tampilan layar. Contohnya untuk mengatur supaya suatu nilai ditampilkan dengan lebar 8 karakter dan diatur rata kiri terhadap lebar tersebut.
Dalam C++, terdapat beberapa manipulator yang merupakan fitur baru, yang baru ditambahkan. hal ini karena compiler C++ klasik (belum distandarisasi) tidak mendukung adanya manipulator. Adapun manipulator yang dimaksud disini adalah seperti yang terlihat pada tabel dibawah ini:
Manipulator
|
Kegunaan
|
Operasi
|
boolalpha
|
Mengaktifkan flag
|
Input / Output
|
dec
|
Mengaktifkan flag dec
|
Input / Output
|
endl
|
Menampilkan baris baru dan membuat stream
|
Output
|
ends
|
Menampilkan null
|
Output
|
fixed
|
Mengaktifkan flag fixed
|
Output
|
flush
|
Membuang stream
|
Output
|
hex
|
Mengaktifkan flag hex
|
Input / Output
|
internal
|
Mengaktifkan flag internal
|
Output
|
left
|
Mengaktifkan flag left
|
Output
|
noboolalpha
|
Mematikan flag boolalpha
|
Input / Output
|
noshowbase
|
Mematikan flag showbase
|
Output
|
noshowpoint
|
Mematikan flag showpoint
|
Output
|
noshowpos
|
Mematikan flag showpos
|
Output
|
noskipws
|
Mematikan flag skipws
|
Input
|
nounitbuf
|
Mematikan flag unitbuf
|
Output
|
nouppercase
|
Mematikan flag uppercase
|
Output
|
oct
|
Mematikan flag oct
|
Input / Output
|
resetiosflags (fmtflags f)
|
Mematikan flag yang dituliskan (f)
|
Input / Output
|
right
|
Mengaktifkan flag right
|
Output
|
scientific
|
Mengaktifkan flag scientific
|
Output
|
setbase (int base)
|
Mengaktifkan basis base
|
Input / Output
|
setfill (int ch)
|
Mengisi karakter dengan ch
|
Output
|
setiodflags (fmtflags f)
|
Mengaktifkan flag yang dituliskan (f)
|
Input / Output
|
setprecision (int p)
|
Menentukan presisi digit
|
Output
|
setw (int w)
|
Menentukan lebar kolom
|
Output
|
showbase
|
Mengaktifkan flag show base
|
Output
|
showpoint
|
Mengaktifkan flag show point
|
Output
|
showpos
|
Mengaktifkan flag showpos
|
Output
|
skipws
|
Mengaktifkan flag skipws
|
Input
|
unitbuf
|
Mengaktifkan flag unitbuf
|
Output
|
uppercase
|
Mengaktifkan flag uppercase
|
Output
|
ws
|
Mengabaikan karakter white-space
|
Input
|
- Format variabel konstanta
a. Variabel
variabel merupakan sebuah nama pengenalan(identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program.
aturan-aturan dalam penulisan variabel
1. penulisan variabel di awali dengan huruf, tidak boleh dengan angka
2. penulisan variabel jika nama variabel ada 2 kata maka gunakan penghubung underscore ( _ )
3. penulisan variabel dalam c++ bersifat casesensitve jadi antara huruf besar dan huruf kecil itu tidak sama.
4. tidak mengandung keyword dalam sebuah variabel
1. penulisan variabel di awali dengan huruf, tidak boleh dengan angka
2. penulisan variabel jika nama variabel ada 2 kata maka gunakan penghubung underscore ( _ )
3. penulisan variabel dalam c++ bersifat casesensitve jadi antara huruf besar dan huruf kecil itu tidak sama.
4. tidak mengandung keyword dalam sebuah variabel
Format penulisannya adalah:
Tipe_data pengenal= nilai;
contoh:
int xy= 30 //variabel yang diberi imputan
b. Konstanta
Konstanta adalah jenis identifier yang bersifat konstan atau tetap, artinya nilai dari konstanta di dalam program tidak dapat dirubah / bersifat tetap. konstanta juga sering dianggap seperti variabel, namun nilainya tetap / tidak dapat diubah-ubah.
Konstanta berguna untuk menentukan nilai yang merupakan tetapan, misalnya nilai pi (Ï€), kecepatan cahaya, ketetapan gravitasi dan lainnya. Dengan mendefinisikan konstanta yang bersifat global, maka kita dapat menggunakannya di setiap bagian program.
1. Menggunakan (#define)
Format penulisannya :
#define pengenal nilai
Pendeklarasian dengan #define tanpa diperlukan adanya tanda = untuk memasukkan nilai
contoh penggunaan:
#define phi 3.14159265
2. Menggunakan (conts)
contoh:
conts int lebar = 100;
conts car tab = '\t';
conts zip = 1212;
- Input uotput (cin, cout, // komentar)
a. Input adalah perintah yang berfungsi untuk mamasukan data pernyataan kedalam memori program, yang biasanya akan diproses dan dikeluarkan dalam bentuk peintah keluaran (output) atau kemungkinan diolah/diproses terlebih dahulu sebelum dikeluarkan. Perintah standar yang disediakan di bahasa pemrograman C++ untuk melakukan input adalah cin>>.
Contoh:
cin>>nilai; // input variabel nilai atau memanggil variabel nilai
b. output adalah aktifitas program yang mendapatkan perintah untuk memberikan informasi data kepada pengguna (manusia). Data itu biasanya merupakan hasil olahan dari data sebelumnya. Dalam bahasa C++ kita dapat melakukan pengeluaran menggunakan objek cout
contoh:
contoh:
cout<<"ini adalah contoh uotput"; //maka akan keluar kata yang ada didalam tanda petik saat di jalankan program tersebut
- Jenis manipulator
a. Endl
Merupakan suatu fungsi manipulator yang digunakan untuk menyisipkan karakter NewLine atau mengatur pindah baris. Fungsi ini sangat berguna untuk piranti keluaran berupa file di disk. File header yang harus disertakan file header iostream.
Contoh:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
float a, b, c;
a=7.5; b=8.4; c=0;
cout<<"Nilai A : "<<a<<endl;
cout<<"Nilai B : "<<b<<endl;
c = a + b;
cout<<"Nilai C : "<<c<<endl;
}
|
Hasil running program diatas
Bandingkan jika tidak memakai endl
b. ends
Merupakan suatu fungsi manipulator yang digunakan untuk menambah karakter null ( nilai ASCII NOL ) kederetan suatu karakter. Fungsi ini akan berguna untuk mengirim sejumlah karakter kefile didisk atau modem dan mengakhirinya dengan karakter NULL..File header yang harus disertakan file header iostream.
Contoh:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a, b, c, d;
a = 6;
b = 5;
c = a % b;
d = a * b;
cout<<"Hasil dari C = A % B adalah "<<c<<ends;
cout<<"Hasil dari D = A * B adalah "<<d<<ends;
}
|
Hasil runningnya
c. dec, oct dan hex
Merupakan suatu fungsi manipulator yang digunakan untuk konversi data dalam bentuk desimal, oktal dan hexadesimal. File header yang harus disertakan file header iomanip.
Contoh:
# include <stdio.h>
# include <conio.h>
# include <iostream>
# include <iomanip>
using namespace std;
int main()
{
int nilai = 10;
cout<<"Nilai = "<<nilai<<endl;
cout<<"Nilai ke Octal = "<<oct<<nilai<<endl;
cout<<"Nilai ke Hexadesimal = "<<hex<<nilai<<endl;
cout<<"Nilai ke Desimal = "<<dec<<nilai<<endl;
}
|
Hasil runningnya
d. setprecision
Merupakan suatu fungsi manipulator yang digunakan untuk mengatur jumlah digit desimal yang ingin ditampilkan. File header yang harus disertakan file header iomanip.
Contoh:
# include <stdio.h>
# include <conio.h>
# include <iostream>
# include <iomanip>
using namespace std;
int main()
{
float a, b, c;
a = 25.77;
b = 23.45;
c = a * b;
cout<<setiosflags(ios::fixed);
cout<<setprecision(1)<<c<<endl;
cout<<setprecision(2)<<c<<endl;
cout<<setprecision(3)<<c<<endl;
cout<<setprecision(4)<<c<<endl;
cout<<setprecision(5)<<c<<endl;
}
|
Hasil rinningnya
e. setbase
Merupakan suatu fungsi manipulator yang digunakan untuk konversi bilangan Octal, Decimal dan Hexadecimal. File header yang harus disertakan file header iomanip.
Bentuk penulisannya : setbase(base bilangan);
Base bilangan merupakan base dari masing-masing bilangan, yaitu :
•Octal = basis 8
•Decimal = basis 10
• Hexadecimal = basis 16
Contoh:
# include <stdio.h>
# include <conio.h>
# include <iostream>
# include <iomanip>
using namespace std;
int main()
{
int a = 250;
cout<<"Penggunan Manipulator setbase()"<<"\n\n";
cout<<"Decimal Octal Hexadecimal"<<endl;
cout<<"----------------------------"<<"\n";
for(a=250;a<=260;a++)
{
cout<<setbase(10)<<a<<" ";
cout<<setbase(8)<<a<<" ";
cout<<setbase(16)<<a<<endl;
}
}
|
Hasil runningnya
f. setw
merupakan suatu fungsi manipulator yang digunakan untuk mengatur lebar tampilan dilayar dari suatu nilai variabel. File header yang harus disertakan file header iomanip.
Bentuk penulisannya :
setw(int n);
n = merupakan nilai lebar tampilan data, integer.
Contoh:
# include <stdio.h>
# include <conio.h>
# include <iostream>
# include <iomanip>
using namespace std;
int main()
{
int a;
cout<<"Penggunan Manipulator setw()"<<"\n\n";
cout<<"-------------------------------"<<"\n";
for(a=1;a<=15;a++)
{
cout<<setw(a)<<a<<endl;
}
cout<<"-------------------------------"<<"\n";
}
|
Hasil running
g. setfill
Merupakan suatu fungsi manipulator yang digunakan untuk manampilkan suatu karakter yang ditelakan didepan nilai yang diatur oleh fungsi setw(). File header yang harus disertakan file header iomanip.
Bentuk penulisannya :
setfill(charakter);
Contoh:
# include <stdio.h>
# include <conio.h>
# include <iostream>
# include <iomanip>
using namespace std;
int main()
{
int a;
cout<<"Penggunan Manipulator setfill()"<<"\n\n";
cout<<"-------------------------------"<<"\n";
for(a=1;a<=15;a++)
{
cout<<setfill('-');
cout<<setw(a)<<a<<endl;
}
getche();
}
|
Hasil running
g. Fungsi setiosflags
Merupakan suatu fungsi manipulator yang digunakan untuk mengatur sejumlah format keluaran data.. Fungsi ini biasa pada fungsi cout(), file header yang harus disertakan file header iomanip.
Ada beberapa format keluaran untuk fungsi
setiosflags(), antara lain.
Tanda Format Perataan Kiri dan Kanan :
Tedapat dua buah tanda format yang digunakan untuk perataan kiri dan
kanan, pengaturan terhadap lebar variabel untuk perataan kiri dan kanan
ini melalui fungsi setw().
ios::left digunakan untuk mengatur perataan sebelah kiri
ios::right digunakan untuk mengatur perataan sebelah kanan
contoh:
# include <stdio.h>
# include <conio.h>
# include <iostream>
# include <iomanip>
using namespace std;
int main()
{
int a = 75, b = 56;
cout<<"Penggunaan ios::left dan ios::right\n\n";
cout<<"Rata Sebelah Kiri = ";
cout<<setiosflags(ios::left)<<setw(10)<<a;
cout<<setiosflags(ios::left)<<setw(10)<<b;
cout<<endl;
cout<<"Rata Sebelah Kanan = ";
cout<<setiosflags(ios::right)<<setw(10)<<a;
cout<<setiosflags(ios::right)<<setw(10)<<b;
}
|
Hasil running
- Percabanngan (if, else, switch)Percabangan adalah suatu pemilihan statemen yang akan dieksekusi dimana pilihan tersebut didasarkan atas kondisi tertentu untuk mengarahkan perjalanan suatu proses. Artinya statemen yang terdapat pada suatu blok percabangan akan dieksekusi jika kondisi yang didefinisikan terpenuhi (bernilai benar) tetapi jika kondisi tersebut tidak terpenuhi (bernilai salah) maka statemen tersebut tidak akan dieksekusi atau diabaikan oleh compiler.
a. Percabangan if
Percabangan if merupakan percabangan yang hanya memiliki satu blok pilihan saat kondisi bernilai benar.
Coba perhatikan flowchart berikut ini:
Flowchart tersebut dapat kita baca seperti ini:
“Jika total belanja lebih besar dari Rp 100.000, Maka tampilkan pesan Selamat, Anda dapat hadiah“
Kalau dibawah Rp 100.000 bagaimana?
Ya pesannya tidak akan ditampilkan.
Mari kita coba dalam program C++.
Buatlah file bernama
if.cpp
, kemudian isi dengan kode berikut.#include <iostream>
using namespace std;
int main(){
cout << "=== Program Pembayaran ===" << endl;
unsigned int total_belanja;
cout << "Masukan total belanja: ";
cin >> total_belanja;
// menggunakan percabangan if
if(total_belanja > 100000){
cout << "Selamat! anda dapat hadiah" << endl;
}
cout << "Terimakasih sudah berbelanja di toko kami" << endl;
return 0;
}
Kompilasi kode tersebut dengan perintah:
g++ if.cpp -o if
Lalu eksekusi dengan perintah:
./if, maka;

Perhatikan pada bagian ini:
// menggunakan percabangan if
if(total_belanja > 100000){
cout << "Selamat! anda dapat hadiah" << endl;
}
Inilah yang disebut blok program.
Blok program berisi sekumpulan ekpresi dan statement untuk dikerjakan oleh komputer.
Blok program pada C++, selalu diawali dengan tanda buka kurung kurawal
{
dan akan diakhiri dengan tutup kurung kurawal }
.
Apabila di dalam blok hanya terdapat satu baris ekspresi atau statement, maka boleh tidak ditulis tanda kurungnya.
if (total_belanja > 100000)
cout << "Selamat! anda dapat hadiah" << endl;
b. Percabangan if/else
Percabangan if/else merupakan percabangan yang memiliki dua blok pilihan.
Blok pilihan pertama untuk kondisi benar, dan pilihan kedua untuk kondisi salah (else).
Coba perhatikan flowchart ini:

Ini adalah flowchart untuk mengecek password.
Apabila password benar, pesan yang ada pada blok hijau akan ditampilkan: “Selamat datang bos!”
Tapi kalau salah, maka pesan yang ada di blok merah yang akan ditampilkan: “Password salah, coba lagi!”
Kemudian, pesan yang berada di blok abu-abu akan tetap ditampilkan, karena dia bukan bagian dari blok percabangan if/else.
Perhatikan arah panahnya, setiap blok if/else mengarah ke sana…

Untuk lebih jelasnya, mari kita coba dalam program.
Buatlah file beru bernama
if_else.cpp
, kemudian isi dengan kode berikut:#include <iostream>
using namespace std;
int main(){
string password;
cout << "========= Login =========" << endl;
cout << "Masukan password: ";
cin >> password;
// percabangan if/else
if (password == "kopi"){
cout << "Selamat datang bos!" << endl;
} else {
cout << "Password salah, coba lagi!" << endl;
}
cout << "Terimakasih sudah menggunakan aplikasi ini!" << endl;
return 0;
}
Hasilnya:

c. Percabangan if/else/if
Percabangan if/else/if merupakan percabangan yang memiliki lebih dari dua blok pilihan.
Coba perhatikan flowchart berikut:

Perhatikan blok yang saya beri warna…
Ini adalah blok untuk percabangan if/else/if. Kita bisa menambahkan berapapun blok yang kita inginkan.
Contoh Program:
#include <iostream>
using namespace std;
int main(){
int nilai;
string grade;
cout << "=== Program Grade Nilai ===" << endl;
cout << "Inputkan nilai akhir: ";
cin >> nilai;
// menggunakan percabangan if/esle/if
if (nilai >= 90) {
grade = "A";
} else if (nilai >= 80) {
grade = "B+";
} else if (nilai >= 70) {
grade = "B";
} else if (nilai >= 60) {
grade = "C+";
} else if (nilai >= 50) {
grade = "C";
} else if (nilai >= 40) {
grade = "D";
} else if (nilai >= 30) {
grade = "E";
} else {
grade = "F";
}
cout << "Grade anda: " << grade << endl;
return 0;
}
Hasilnya:
Hasilnya:

d. Percabangan Switch/Case
Percabangan switch/case adalah bentuk lain dari percabangan if/else/if.
Strukturnya seperti ini:
switch(variabel){
case <value>:
// blok kode
break;
case <value>:
// blok kode
break;
default:
// blok kode
}
Kita dapat mermbuat blok kode (
case
) sebanyak yang diinginkan di dalam blok switch.Pada <value>
, kita bisa isi dengan nilai yang nanti akan dibandingkan dengan varabel
.Setiap case
harus diakhiri dengan break
. Khusus untuk default
, tidak perlu diakhiri dengan break
karena dia terletak di bagian akhir.Pemberian break
bertujuan agar program berhenti mengecek case
berikutnya saat sebuah case
terpenuhi.
Contoh:
#include <iostream>
using namespace std;
int main(){
char grade;
cout << "Inputkan grade: ";
cin >> grade;
switch (toupper(grade)){
case 'A':
cout << "Luar biasa!" << endl;
break;
case 'B':
case 'C':
cout << "Bagus!" << endl;
break;
case 'D':
cout << "Anda lulus" << endl;
break;
case 'E':
case 'F':
cout << "Anda remidi" << endl;
break;
default:
cout << "Grade Salah!" << endl;
}
return 0;
}
Hasilnya:

Perhatikan program di atas…
Kita menggunakan fungsi
toupper()
untuk mengubah huruf kecil menjadi huruf kapital atau huruf besar.switch (toupper(grade))
{
Mengapa menggunakan
toupper()
?
Ini karena agar kita dapat menginputkan huruf kecil dan huruf besar untuk mengecek grade.
Berikutnya coba perhatikan
case 'B'
dan case 'E'
.
Kedua case ini tidak memiliki isi.Ini artinya…dia akan mengikut pada case berikutnya.Sebagai contoh, apabila kita inputkan
B
maka case C
yang akan terpilih.Begitu juga saat kita inputkan E
, maka case F
yang akan terpilih.- Perulangan
Perulangan adalah suatu atau serangkaian bentuk kegiatan mengulang suatu statement sampai batas yang diinginkan.
Jawaban untuk pertanyaan ke dua
Bentuk umum Perulangan pada bahasa C++ ada 3 antara lain :
a. Perulangan FOR
Digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya.
Bentuk umumnya:
for( awal ; kondisi ; counter )
{
Statementl;
Statement2;
}
Statement3;
Bentuk umumnya:
for( awal ; kondisi ; counter )
{
Statementl;
Statement2;
}
Statement3;
b. Perulangan WHILE
Digunakan bila jumlah perulangannya belum diketahui.
Bentuk umumnya:
while( expression )
{
Statementl;
Statement2;
}
Statement3;
Bentuk umumnya:
while( expression )
{
Statementl;
Statement2;
}
Statement3;
c. Perulangan DO WHILE
Perulangan DO WHILE dan WHILE hampir sama, perbedaannya dengan while, do … while memiliki pengecekan kondisi yang terletak setelah statement perulangan.
Bentuk umumnya:
do
{
Statementl;
Statement2;
}
while( expression )
Statement3;
Bentuk umumnya:
do
{
Statementl;
Statement2;
}
while( expression )
Statement3;
Jawaban untuk pertanyaan ke tiga
Contoh Program Sederhana menggunakan Perulangan pada bahasa C++ menggunakan FOR :
#include <stdio.h> #include <conio.h> #include <iostream.h> void main() { int i;//deklarasi for (i=20; i<=120; i++) // pengulangan data dari 21 sampai dengan 119 {if(i%2==0) // jika i habis dibagi 2 maka tampilkan {cout<<i<<endl;}
} getch(); }
Contoh Program
- Contoh program Variabel, Liblary, oprator, dan Manipulator
a. Variabel
Contoh program :
//bekerja dengan variable
#include<iostream>
Int main()
{
//inisialisasi Variabel
Int a,b;
Int hasil;
//proses
a = 5;
b = 2;
a = a + 1;
hasil = a – b;
//cetak hasilnya :
Cout<<hasil;
//menghentikan program
Return 0;
b. Liblary
Contoh programnya:
#include <stdio.h>
int main()
{
printf("Hello SMKN 9 MALANG!\n");
printf("Selamat Belajar Pemrograman C++.");
return 0;
}
c. Oprator
Contoh programnya:
#include <iostream>
using namespace std;
int main ()
{
int a, b;
a=3;
b=++a
cout<<"a:"<< a;
cout<<"b:";
}
Contoh programnya:
#include <iostream>
using namespace std; int main (){ int jumlah = nilai1 + nilai2; // Contoh fungsi manipulator endl cout<<"Nilai 1 : "<<nilai1<<endl; cout<<"Nilai 2 : "<<nilai2<<endl<<endl; cout<<"Jumlah Kedua Nilai : "<<jumlah; return 0; }
int nilai1=100, nilai2=80;
- Contoh Program untuk percabangan
#include <iostream>
using namespace std;
void pilihan (int x) {
if (x==1) {
cout<< "anda memesan nasi goreng";
}
else {
cout<< "anda memesan nasi uduk";
}
}
int main(){
int pilih;
cout << "1. nasi goreng";<<'\n';
cout << "2. nasi kucing"<< '\n' ;
cout << "masukkkan pilihan anda (1-2): "; cin >> pi;ih;
pilihan (pilih) ;
}
- Contoh Perulangan
Contoh programnya:
#include <iostream>
using namespace std;
void CetakAngka (int i, int j) {
for (i = 1; i <= j; i++) {
cout << i << '\n';
}
}
int main ()
{
CetakAngka (1,10);
}
- Contoh program berdasarkan kasus :
Contoh programnya:
for(i=0;i<x;i++){
cout<<"==============================="<<endl;
cout<<endl;
cout<< "Masukkan Nama Barang = ";
cin>>nama[i];
cout<< "Masukkan Harga Barang = Rp.";
cin>>hrga[i];
cout<< "Masukkan Jumlah Barang = ";
cin>>jbrg[i];
cout<<endl;
}
for(i=0;i<x;i++){
cout<<"Nama Barang = "<<nama[i]<<endl;
cout<<"Harga Barang = Rp. "<<hrga[i]<<endl;
cout<<"Jumlah Barang = "<<jbrg[i]<<endl;
bayar[i]=hrga[i]*jbrg[i];
cout<<"jumlah Belanja = "<<bayar[i]<<endl;
cout<<endl;
}
for(i=0; i<x; i++){
totali=totali+bayar[i];
cout<<"Sub total = "<<totali<<endl;
}
//Contoh percabangan :
if (totali>30000){
diskon=0.1*totali;
cout<<"Diskon 10% = Rp. "<<diskon<<endl;
total=totali-diskon;
cout<<"Total = Rp. "<<total<<endl;
}
}
//Output dari program diatas :