Modul Belajar Bahasa Pemrograman C++ Untuk Pemula [#BelajarDiRumah]
Assalamu‘alaikum wr. wb.
Hello guys, Kembali lagi bersama Inzaghi's Blog! Pastinya kalian yang ingin jago di bidang IT pastinya ingin mempelajari tentang Bahasa Pemrograman (Programing Languages)? Dan biasanya bagi kalian sebagai Pemula pastinya merasa kesulitan untuk mempelajari Koding (Coding)? Salah satunya adalah Bahasa Pemrograman C++ yang merupakan turunan dari Bahasa Pemrograman C.
Sumber Artikel Utama : Niagahoster.co.id dan Duniailkom.com
Bahasa pemrograman C++ banyak digunakan untuk membuat berbagai aplikasi. Oleh karena itu, bagi Anda yang masih pemula, belajar C++ bisa menjadi langkah tepat untuk membangun karir sebagai seorang developer handal.
Nah, bagaimana menguasai bahasa pemrograman C++ dengan baik? Tenang saja, di artikel ini kami akan membahas semuanya, mulai dari pengertian, konsep dasar, keunggulan, dan contoh Program C++.
APA ITU BAHASA PEMROGRAMAN C++? (DAN SEJARAH SINGKAT)
Bahasa Pemrograman C++ adalah bahasa yang bisa digunakan untuk membuat berbagai aplikasi. Misalnya, aplikasi pengolah gambar, software gadget, game, hingga sistem operasi baru.
Sejarah Singkat C++
Bahasa pemrograman C++ dirintis sejak Tahun 1979 oleh Bjarne Stroustrup, seorang ilmuwan komputer asal Denmark. Pengembangan bahasa C++ terinspirasi dari Penelitian Tesis PhD yang dulunya pernah dikerjakan oleh Stroustrup.
Pada saat itu, Stroustrup tertarik dengan bahasa Simula yang sangat mudah dipakai untuk pembuatan aplikasi skala besar. Varian bahasa Simula, yakni Simula 67 dianggap sebagai bahasa pemrograman pertama yang menerapkan konsep pemrograman berbasis object.
Akan tetapi bahasa Simula dianggap terlalu lambat untuk penggunaan sehari-hari. Di sisi lain ada juga bahasa BCPL yang sangat cepat tapi kurang cocok untuk pembuatan aplikasi besar.
Ketika bekerja di laboratorium perusahaan AT&T Bell Labs, Bjarne Stroustrup memiliki masalah di pengembangan sistem operasi UNIX. Pada saat itu ia teringat tesis yang dulu dikerjakan dan ingin menerapkannya ke dalam bahasa C. Pemilihan bahasa C karena sudah cukup populer dan juga di eksekusi dengan cepat. Apalagi sistem operasi UNIX juga dibuat menggunakan bahasa C.
Akhirnya pada Tahun 1982 Bjarne Stroustrup mulai menambah fitur-fitur baru ke dalam Bahasa C, terutama dukungan class agar bahasa C bisa menggunakan paradigma object oriented programming (pemrograman berbasis object). Stroustrup terinspirasi dari bahasa Simula dan juga bahasa pemrograman lain seperti ALGOL 68, Ada, CLU and ML.
Bahasa baru ini disebut sebagai C++ yang diambil dari operator increment ” ++ ” . Operator Increment biasa di pakai dalam bahasa pemrograman untuk menaikkan nilai variabel sebanyak 1 angka. Dengan demikian C++ juga berarti sebuah penambahan dari bahasa C standar.
Pada tahun 1985, Bjarne Stroustrup membuat buku yang sangat terkenal berjudul C++ Programming Language. Buku ini menjadi referensi utama dan menjadi “standar tidak resmi” dari bahasa C++ pada saat itu. Pada tahun yang sama, dikembangkan pula compiler komersil C++ pertama.
Seiring perkembangan waktu, organisasi standar ISO secara resmi mengeluarkan standar C++98 pada Tahun 1998, yang kemudian diikuti standar C++03 di tahun 2003.
Setelah itu secara bergantian di rilis standar C++11 di tahun 2011, standar C++14 di tahun 2014 serta standar C++17 di tahun 2017. Di akhir tahun 2020 ini di rencanakan rilis standar C++ 20.
Untuk Apa Belajar C++?
Saya yakin sebagian besar Pembaca, yang belajar Bahasa C++ karena diwajibkan oleh Guru atau Dosen. Ini tidak mengherankan karena bahasa C++ termasuk bahasa dasar yang sering dipakai untuk mempelajari dasar algoritma dan pemrograman. Alternatif lain bisa juga menggunakan bahasa Pascal dan juga bahasa C (tergantung dosen senangnya pakai bahasa apa).
Pemilihan Bahasa C++ sebagai bahasa pertama atau bahasa dasar sebenarnya juga sangat bermanfaat meskipun tidak diwajibkan dosen atau bagi yang belajar Otodidak. Ini karena bahasa C dan C++ menjadi dasar dari banyak bahasa pemrograman modern.
Jika anda sudah familiar dengan syntax / aturan penulisan bahasa C++, akan sangat mudah beralih ke bahasa yang lebih modern seperti Java, C#, PHP, atau JavaScript. Karena bahasa-bahasa ini semuanya turunan dari bahasa C dan C++.
Di luar fungsinya untuk belajar pemrograman dasar, bahasa C++ juga bisa dipakai untuk membuat berbagai aplikasi. Yang paling menonjol menurut saya ada di game programming, yakni bahasa pemrograman yang dipakai untuk membuat game.
Game modern sudah terbilang sangat kompleks, apalagi untuk game desktop. Umumnya programmer game butuh sebuah Game Engine yang berisi kumpulan kode program siap pakai (disebut sebagai library). Fungsinya untuk membantu pembuatan game dengan cepat, tidak lagi membuat semuanya dari nol.
Game Engine yang paling terkenal diantaranya Unreal Engine, Unity, CryEngine, dan Construct. Daftar lengkap dari Aplikasi Game Engine bisa dilihat ke List of Game Engines. Di halaman tersebut bisa terlihat bahwa C++ adalah bahasa pemrograman yang paling banyak dipakai.
Jadi jika anda tertarik menjadi seorang programmer game (terutama game desktop), C++ adalah bahasa dasar paling pas!
Diluar itu, C++ juga cocok dipakai untuk membuat aplikasi yang perlu banyak mengakses hardware seperti di perangkat IoT (Internet of Things), embedded system, hingga membuat Aplikasi Desktop berbasis grafis, terutama saat digabung dengan Microsoft Visual Studio.
Meme Bahasa Pemrograman C++ |
Eits, C++ yang ada pada Gambar di atas bukan berarti PacMan ya guys! PacMan itu adalah Game Lawas/Jadul yang dikembangkan pada Tahun 1980, sedangkan C++ baru dikembangkan pada Tahun 1983. Kembali lagi ke Topik Awal, apa saja sih konsep dasar Bahasa Pemrograman C++? Simak pembahasan selanjutnya.
KEUNGGULAN BAHASA PEMROGRAMAN C++
Sebelum Anda belajar lebih jauh tentang coding C++, tentu Anda harus tahu dulu keunggulan bahasa pemrograman ini. Yuk simak lebih lanjut!
1. Portabel
Bahasa Pemrograman C++ itu Portabel. Artinya, Anda bisa melakukan coding, lalu melakukan Compile pada sistem operasi yang berbeda-beda. Misalnya, Anda bisa menulis kode di Sistem Operasi Linux dan melakukan compile kode tersebut di Windows. Dengan kata lain, saat Belajar Pemrograman C++, Anda bebas menggunakan sistem operasi apapun.
2. Object Oriented
C++ adalah bahasa pemrograman yang Object Oriented atau berfokus pada Objek. Artinya, data dan function disatukan dalam kelas dan objek untuk bekerjasama memecahkan sebuah masalah.
Objek yang saling terkait akan mempercepat penulisan kode. Sebab, Anda bisa menggunakan kode class yang sama melalui fitur inheritance untuk menghindari pengulangan kode. OOP juga memudahkan Anda untuk mendeteksi permasalahan apabila ada kendala pada aplikasi.
3. Mudah Mengatur Memori
Bahasa pemrograman C++ memiliki Dynamic Memory Allocation atau kemampuan mengatur memori dengan dinamis. Dengan pengaturan tersebut, Anda lebih mudah mendapatkan memori tambahan saat program berjalan.
Kemudahan ini cukup membantu programmer untuk mengatur Linked List atau Tree sesuai kebutuhan.
4. Memiliki Skalabilitas yang Baik
C++ memiliki skalabilitas yang cukup baik. Artinya, program yang dibuat bisa dikembangkan sesuai kebutuhan Anda. Jadi, Anda bisa membuat program sederhana yang kecil dulu sebelum mengembangkannya menjadi aplikasi yang lebih besar.
5. Eksekusi Lebih Cepat
Bahasa pemrograman C++ adalah bahasa yang memungkinkan Anda melakukan low level manipulation. Artinya, meskipun merupakan sebuah high level language, C++ mampu membuat eksekusi kode bisa berjalan lebih cepat di komputer karena minim jeda waktu saat interpretasi kode yang dilakukan.
CONTOH PROGRAM C++ YANG SERING DIGUNAKAN
Setelah mempelajari konsep dasar bahasa pemrograman C++, Anda bisa menggunakannya untuk berbagai pengembangan aplikasi. Berikut ini adalah contoh Aplikasi yang menggunakan Bahasa Pemrograman C++ :
1. Aplikasi Grafis
Coding C++ banyak digunakan untuk mengembangkan aplikasi pengolah grafis. Misalnya, Adobe Photoshop Adobe Illustrator, Adobe dan Premiere. Sebagian aplikasi ini membutuhkan proses image processing yang cukup intensif dan C++ dianggap cukup sesuai untuk membangun program tersebut.
Nah, jika belajar pemrograman C++, bukanlah suatu hal yang mustahil bila di masa mendatang Anda bisa menciptakan software kompleks seperti yang kami sebutkan di atas.
2. Software Games
Bahasa pemrograman C++ juga digunakan untuk mengembangkan software games 3D yang rumit. Salah satu game terkenal yang dikembangkan dengan C++ adalah Call of Duty: Black Ops II.
C++ cocok untuk pengembangan game karena kebutuhan proses eksekusi yang cepat. Nah, dengan kemampuan low level manipulation, C++ tentu mampu melakukannya lebih baik dibanding bahasa pemrograman lain.
3. Browser
Cukup banyak browser terkenal yang dikembangkan dengan bahasa pemrograman C++ seperti Google Chrome dan Mozilla Firefox. Salah satu alasannya tentu adalah portability yang dimiliki oleh C++. Sebab, sebuah browser tentu akan dibuat agar multiplatform untuk memudahkan penggunanya.
Pun demikian, sebuah browser biasanya tidak hanya dikembangkan dengan bahasa pemrograman C++ saja, tapi juga dengan bahasa lain seperti Java dan lainnya.
4. Akses Database
Bahasa pemrograman C++ banyak digunakan untuk mengembangkan database. Misalnya, MySQL dan MongoDB. Sebab, bahasa pemrograman C++ termasuk bahasa modern yang portable untuk mengakses banyak library database.
5. Media Player
C++ juga bisa Anda digunakan untuk membuat aplikasi media player seperti Winamp Player yang cukup mumpuni sebagai media untuk memainkan file audio dan video.
6. Sistem Operasi
Sebagian besar sistem operasi dikembangkan dengan C++, seperti Windows, macOS, dan Linux. Namun tentu saja dengan didukung oleh Bahasa Pemrograman lain, misalnya Swift.
Salah satu alasan utama penggunaan Coding C++ pada sistem operasi adalah kecepatan Eksekusi di Komputer yang menjadi kunci sebuah OS dapat berjalan dengan baik.
KONSEP DASAR BAHASA PEMROGRAMAN C++
Sumber lainnya : Petanikode.com (Variabel), Andhikanurafian.web.id, Pitikpedia.Wordpress.com, Gilacoding.com, Petanikode.com (Perulangan), dan Kelasprogrammer.com (Perulangan while dan do-while)
Kalau Anda ingin belajar C++, penting untuk memahami konsep dasar bahasa pemrograman C++ berikut ini :
A. Variabel dan Tipe Data
Variabel adalah penanda identitas yang digunakan untuk menampung suatu nilai. Artinya, variabel akan menunjukkan suatu lokasi yang ada di memori komputer atau RAM. Jadi, saat Anda membuat satu variabel, akan ada satu Slot memori untuk menampung nilai tersebut.
Bahasa C++ termasuk bahasa pemrograman dengan Konsep Strongly-Typed. Artinya, saat melakukan deklarasi, Anda harus memberi tipe data di dalam setiap variabel.
Berikut ini adalah Tipe-tipe Data yang ada di dalam Variabel C++ :
Nama Tipe
Data
|
Ukuran
dalam Memori
|
Rentang
Nilai
|
char
|
1 byte
|
-127 sampai
127 atau 0 sampai 255
|
unsigned char
|
1 byte
|
0 sampai 255
|
signed char
|
1 byte
|
-127 sampai
127
|
int
|
4 bytes
|
-2.147.483.648
sampai 2.147.483.647
|
unsigned int
|
4 bytes
|
0 sampai
4294967295
|
signed int
|
4 bytes
|
-2147483648
sampai 2147483647
|
short int
|
2 bytes
|
-32768 sampai
32767
|
unsigned short
int
|
Range
|
0 sampai
65,535
|
signed short
int
|
Range
|
-32768 sampai
32767
|
long int
|
4 bytes
|
-2.147.483.648
sampai 2.147.483.647
|
signed long
int
|
4 bytes
|
Same as long
int
|
unsigned long
int
|
4 bytes
|
0 sampai
4,294,967,295
|
float
|
4 bytes
|
+/- 3.4E-38 sampai +/- 3.4E+38 (~7 digits)
|
double
|
8 bytes
|
+/- 1.7E-308 sampai +/- 1.7E+308 (~15 digits)
|
long double
|
8 bytes
|
+/- 1.7E- 308 sampai +/- 1.7E+ 308 (~15 digits)
|
wchar_t
|
2 / 4 bytes
|
1 wide
character
|
boolean
|
4 bytes
|
true atau false
|
Lalu bagaimana cara menuliskan variabel dalam bahasa C++? Ada dua langkah untuk melakukannya, yaitu Deklarasi dan Inisialisasi.
Deklarasi dilakukan sebelum program dimulai. Namun, Anda juga bisa melakukan deklarasi di tengah program. Akan tetapi, deklarasi harus sudah selesai sebelum Anda menggunakan program. Berikut ini adalah Contoh Deklarasi :
int i; // contoh deklarasi char c; int i, j, k; // banyak deklarasi
Sedangkan Inisialisasi artinya mengisi nilai di dalam variabel yang sudah dideklarasikan. Contohnya seperti ini :
int i; // deklarasi i = 10; // inisialisasi
Jika dilakukan secara bersamaan, hasilnya seperti ini :
int i=10; // contoh deklarasi dan inisialisasi int i=10, j=11;
Jika Anda melakukan deklarasi tanpa inisialisasi, atau melakukan deklarasi ulang pada Variabel yang ada dalam satu cakupan, maka akan muncul error. Contohnya seperti ini :
int i,j; i=10; j=20; int j=i+j; // compile time error
Seluruh Variabel yang Anda tulis memiliki cakupan fungsinya masing-masing. Artinya, variabel tidak akan berfungsi jika Anda menuliskannya di luar cakupan. Cakupan suatu variabel biasanya berupa Kurung Kurawal.
Ada 2 (Dua) Cakupan dalam Bahasa C++, yaitu Variabel Global dan Variabel Lokal.
Variabel Global adalah variabel yang ketika Anda deklarasikan, bisa digunakan lagi dalam class dan function apapun selama program masih berjalan. Variabel ini dideklarasikan di luar function main(). Contohnya seperti ini :
#include <iostream>using namespace std;int x; // Deklarasi variabel globalint main(){x=10; // inisialisasi pertamacout <<"first value of x = "<< x;x=20; // inisialisasi keduacout <<"diinisialisasi lagi dengan value = "<< x;}
Sedangkan Variabel Lokal adalah variabel yang hanya bisa berfungsi jika dideklarasikan di dalam function main(). Artinya, jika dideklarasikan di luar main () maka Anda akan menemui Error.
#include <iostream>using namespace std;int main(){int i=10;if(i<20) // batas awal cakupan{int n=100; // variabel lokal dideklarasikan dan diinisialisasi} // batas akhir cakupancout << n; // Compile time error}
Berikut, inilah Contoh-contoh Pemrograman dari Tipe Data dalam Bahasa C++ :
1. Void (Kosong)
Void adalah tipe data yang tidak bertipe karena mempunyai ukuran 0 byte biasanya digunakan untuk tipe data kosong seperti membuat fungsi. Contohnya :
#include<iostream.h>#include<conio.h>using namespace std;void main(){cout<<" Hello World !!!!"<<endl;getch();}
2. Char (Karakter)
Char adalah tipe data untuk karakter yang sering digunakan untuk tipe data yang menggunakan huruf dan angka sebagai datanya. Misalnya seperti contoh dibawah ini :
#include <iostream.h>#include <conio.h>using namespace std;int main(){char jwb[2] = "B";cout<<"1. Bahasa Pemrograman C++ dirancangan untuk"<<endl;cout<<"A.PFC B.PBO C.CFP D.PBA"<<endl;cout<<"Jawabanya adalah "<<jwb<<endl;getch();}
3. Int (Integer)
Int adalah tipe data untuk numerik yang sering digunakan untuk data berupa angka. untuk fungsinya bisa dilihat contoh program dibawah ini :
#include <iostream.h>#include <conio.h>using namespace std;int main(){int sisi;sisi=10;cout<<"Pesergi memiliki sisi sebesar "<<sisi<<endl;cout<<"dan luas persegi adalah "<<sisi*sisi<<endl;getch();}
4. Float (Floating Point)
Float adalah tipe data untuk numerik yang digunakan untuk data berupa Angka Pecahan, untuk fungsinya bisa dilihat contoh program dibawah ini :
#include<iostream.h>#include<conio.h>using namespace std;int main(){float phi = 3.14, luas;int r = 20;luas = phi*r*r;cout<<"Diketahui lingkaran berdiameter "<<r<<" cm"<<endl;cout<<"luas lingkaran adalah "<<luas<<" cm^2"<<endl;getch();}
5. Double (Double Floating Point)
Double adalah tipe data untuk numerik yang digunakan untuk data berupa angka pecahan yang nilai decimalnya dua kali lebih banyak. contoh programnya :
#include <iostream.h>#include <conio.h>using namespace std;void main(){double diskon = 0.02;int harga = 100000;cout<<"Potongan harga Rp."<<harga<<endl;cout<<"mendapatkan diskon sebesar 2%"<<endl;cout<<"menjadi Rp."<<diskon*harga<<endl;getch();}
6. Bool (Boolean)
Bool adalah tipe data yang digunakan untuk menentukan False (Salah) dan True (Benar), tipe data ini sama seperti bilangan biner hanya ada dua angka saja yaitu 0 dan 1. untuk contoh program dengan Tipe Data Boolean :
#include <iostream.h>#include <conio.h>using namespace std;int main(){bool log = false;cout<<"jika kondisi salah maka bilangan bool adalah "<<log++<<endl;cout<<"jika kondisi benar maka bilangan bool adalah "<<log<<endl;getch();}
7. Wchar_t
Wchar_t adalah tipe data yang digunakan sama seperti char yang menyimpan karakter besar, biasanya digunakan untuk menyimpan karakter yang tidak ada di Huruf Alphabet (Seperti Latin dan Cyrillic) misalnya Aksara Kana Jepang, Han Tionghoa, Hangul Korea, Arab, Devanagari, dll. Contoh programnya seperti dibawah ini :
#include <iostream.h>#include <conio.h>using namespace std;int main(){char kanji[6] = "å¦ē";wchar_t kanji2[6] = L"å¦ē";cout<<"huruf kanji siswa (char) : "<<kanji<<endl;cout<<"huruf kanji siswa (wchar_t) : "<<kanji2<<endl;getch();}
Beberapa macam Tipe Data dapat dimodifikasi sesuai kegunaannya dengan menambahkan fungsi ini didepan Tipe Data :
- Short : Memodifikasi jangkauan nilai ke dalam bit yang lebih kecil (16bit).
- Long : Memodifikasi jangkauan nilai ke dalam bit yang lebih besar (32bit)
- Signed : Memodifikasi jangkauan nilainya negatif dan positif.
- Unsigned : Memodifikasi jangkauan nilainya 0
B. Operator
Sumber : Duniailkom.com
Sebelum masuk ke jenis-jenis operator di dalam Bahasa C++, terdapat istilah operand dan operator. Operand adalah nilai asal yang dipakai dalam sebuah proses operasi. Sedangkan Operator adalah instruksi yang diberikan untuk mendapatkan hasil dari proses tersebut.
Biasanya operator berbentuk karakter matematis atau perintah singkat sederhana. Sebagai contoh, pada operasi: 10 + 2. Angka 10 dan 2 disebut sebagai operand, sedangkan tanda tambah (karakter +) adalah operator.
Operator Unary, Binary dan Ternary
Berdasarkan jumlah operand-nya, operator C++ dibagi menjadi 3 jenis: Operator Unary, Operator Binary dan Operator Ternary.
- Operator Unary adalah operator yang hanya terdiri dari 1 operand. Contohnya adalah operator Positif (Plus) : +7, +9, +10.111
- Operator Binary adalah operator yang terdiri dari 2 operand. Sebagian besar operator di dalam bahasa C++ termasuk ke dalam operator binary. Contohnya seperti operator Aritmatika : 4 + 8, 9 * 2, 8 % 2, dll.
- Operator Ternary adalah operator yang terdiri dari 3 operand. Bahasa C++ memiliki 1 operator ternary, yakni ” ? : ” seperti (a == 1) ? 20: 30.
Jenis-jenis Operator dalam Bahasa Pemrograman C++
Berikut jenis-jenis operator dalam Bahasa Pemrograman C++ :
- Operator Aritmatika
- Operator Increment dan Decrement
- Operator Perbandingan / Relasional
- Operator Logika / Boolean
- Operator Bitwise
- Operator Assignment
- Operator Lainnya
Daftar di atas bisa saja berbeda karena cara pengelompokkan yang dipakai, misalnya operator increment atau decrement kadang dimasukkan ke dalam operator artmatika. Kita akan bahas sekilas tentang pengertian dari operator-operator ini.
1. Operator Aritmatika
Operator Aritmatika adalah operator yang biasa kita temukan untuk operasi matematika. Aritmatika sendiri merupakan cabang ilmu matematika yang membahas perhitungan sederhana, seperti kali, bagi, tambah dan kurang (kabataku)
Selain keempat operasi tersebut, bahasa C++ juga memiliki operasi modulo division, atau operator % yang dipakai untuk mencari sisa hasil bagi. Tabel berikut merangkum Operator Aritmatika dalam Bahasa Pemrograman C++ :
Operator
|
Penjelasan
|
Contoh
|
+
|
Penambahan
|
a = 5 + 2
|
–
|
Pengurangan
|
a = 5 – 2
|
*
|
Perkalian
|
a = 5 * 2
|
/
|
Pembagian
(Real/Pecahan)
|
a = 5 / 2
|
%
|
Sisa Hasil
Bagi (Modulus)
|
a = 5 % 2
|
Operator Aritmatika Unary :
Operator
|
Penjelasan
|
Contoh
|
+
|
Positif
(plus)
|
+5
|
–
|
Negatif
(min)
|
-3
|
Contoh :
#include <iostream>using namespace std;float tambah(float x, float y){return (x+y);}float kurang(float x, float y){return (x-y);}float kali(float x, float y){return (x*y);}float bagi(float x, float y){return (x/y);}int main(){int add, sub, mul;float dvd;int a = 9;int b = 4;add = tambah(a, b);sub = kurang(a, b);mul = kali(a, b);dvd = bagi(a, b);cout<<"a = "<<a<<", b = "<<b<<endl;cout<<"a + b = "<<add<<endl;cout<<"a - b = "<<sub<<endl;cout<<"a * b = "<<mul<<endl;cout<<"a / b = "<<dvd<<endl;}
2. Operator Increment dan Decrement
Operator increment dan decrement adalah sebutan untuk operasi seperti a++, dan a--. Ini sebenarnya penulisan singkat dari operasi a = a + 1 serta a = a – 1.
Increment digunakan untuk menambah Variabel sebanyak 1 angka, sedangkan decrement digunakan untuk mengurangi Variabel sebanyak 1 angka.
Penulisannya menggunakan tanda tambah 2 kali untuk Increment, dan tanda kurang 2 kali untuk decrement. Penempatan tanda tambah atau kurang ini boleh di awal seperti ++a dan --a, atau di akhir variabel seperti a++ dan a--.
Dengan demikian terdapat 4 Jenis Increment dan decrement dalam Bahasa C++ :
Operator
|
Contoh
|
Penjelasan
|
Pre-increment
|
++a
|
Tambah a sebanyak 1 angka, lalu tampilkan hasilnya
|
Post-increment
|
a++
|
Tampilkan
nilai a, lalu tambah a sebanyak 1 angka
|
Pre-decrement
|
--a
|
Kurangi a
sebanyak 1 angka, lalu tampilkan hasilnya
|
Post-decrement
|
a--
|
Tampilkan
nilai a, lalu kurangi a sebanyak 1 angka
|
3. Operator Perbandingan / Relasional
Operator perbandingan dipakai untuk membandingkan 2 buah nilai, apakah nilai tersebut sama besar, lebih kecil, lebih besar, dll. Hasil dari operator perbandingan ini adalah boolean true atau false.
Ketika ditampilkan dengan perintah cout, true dan false ini akan ditampilkan C++ sebagai integer 1 atau 0.
Operator
|
Penjelasan
|
Contoh
|
Hasil
|
==
|
Sama dengan
|
5 == 5
|
1 (true)
|
!=
|
Tidak sama dengan
|
5 != 5
|
0 (false)
|
>
|
Lebih besar
|
5 > 6
|
0 (false)
|
<
|
Lebih kecil
|
5 < 6
|
1 (true)
|
>=
|
Lebih besar atau
sama dengan
|
5 >= 3
|
1 (true)
|
<=
|
Lebih kecil atau sama
dengan
|
5 <= 5
|
1 (true)
|
4. Operator Logika / Boolean
Operator Logika dipakai untuk menghasilkan nilai boolean true atau false dari 2 kondisi atau lebih.
Operator
|
Nama
|
Penjelasan
|
Contoh
|
&&
|
And
|
Akan menghasilkan true jika kedua operand true
|
true && false, hasilnya: false
|
||
|
Or
|
Akan menghasilkan true jika salah satu operand
true
|
true || false, hasilnya: true
|
!
|
Not
|
Akan menghasilkan true jika
operand false
|
!false, hasilnya: true
|
Rumus yang dipakai adalah sebagai berikut :
- Operator && hanya akan menghasilkan true jika kedua operand bernilai true, selain itu hasilnya false.
- Operator || hanya akan menghasilkan false jika kedua operand bernilai false, selain itu hasilnya true.
- Operator ! Akan membalikkan logika, !false menjadi true, !true menjadi false.
5. Operator Bitwise
Bitwise adalah operator khusus untuk menangani operasi logika bilangan biner dalam bentuk bit.
Bilangan biner sendiri merupakan jenis bilangan yang hanya terdiri dari 2 jenis angka, yakni 0 dan 1. Jika nilai asal yang dipakai bukan bilangan biner, akan dikonversi secara otomatis oleh Compiler C++ menjadi bilangan biner. Misalnya 7 desimal = 0111 dalam bilangan biner.
Bahasa C++ mendukung 6 jenis operator bitwise. Daftar lengkapnya dapat dilihat pada tabel berikut :
Operator
|
Nama
|
Contoh
|
Biner
|
Hasil (Biner)
|
Hasil (Desimal)
|
&
|
AND
|
10 & 12
|
1010 & 1100
|
1000
|
8
|
|
|
OR
|
10 | 12
|
1010 | 1100
|
1110
|
14
|
^
|
XOR
|
10 ^ 1
|
1010 ^ 1100
|
0110
|
6
|
~
|
NOT
|
~ 5
|
~0101
|
1011
|
-11 (Two’s complement)
|
<<
|
Left shift
|
10 << 1
|
1010 << 1
|
10100
|
20
|
>>
|
Right shift
|
10 >> 1
|
1010 >> 1
|
101
|
5
|
6. Operator Assignment
Operator assignment adalah operator yang digunakan untuk memberikan nilai ke dalam suatu variabel. Di dalam bahasa C++, operator assignment menggunakan tanda sama dengan ” = “. Nantinya juga terdapat operator assignment gabungan, seperti ” += “, ” -= “, dsb.
Penjelasan lebih lanjut tentang operator assignment beserta contoh kode program bisa ke: Tutorial C++ Jenis-jenis Operator Penugasan (Assignment).
7. Operator Lainnya
Operator Lainnya ini adalah kelompok operator khusus yang tidak termasuk ke dalam kelompok sebelumnya, diantaranya adalah operator sizeof dan Operator Ternary ” ? : “.
C. Jenis-jenis File Header
Sumber : Pascaldhika.blogspot.com
Bahasa pemrograman memiliki cara yang tersendiri untuk mendapatkan akses memori. Dalam bahasa C maupun C++ membutuhkan suatu file yang digunakan untuk mengakses hal tersebut yaitu File Header. File Header adalah file yang berisi deklarasi untuk berbagai fungsi yang dibutuhkan oleh program baik itu sebagai standar Input/Output maupun sebagai Syntax.
Fungsi File Header antara kain sebagai berikut :
- Untuk manajement memori
- Untuk memanggil routines ROM BIOs
- Untuk fungsi matematika komplek
- Untuk memanggil console DOS Input Output
- Untuk routing basic di C++
- Untuk beberapa fungsi rutin (Seperti konversi)
- Untuk Menguakkan manipulator
- Untuk operasi string dan karakter
Macam-macam File Header yang sering digunakan adalah sebagai berikut :
1. stdio.h
"stdio.h" Merupakan singkatan dari standar input output header yang digunakan sebagai standar input output operasi yang digunakan oleh bahasa C, akan tetapi bisa juga digunakan dalam bahasa C++. Fungsi-fungsi yang ada didalam stdio.h antara lain sebagai berikut :
- printf() : merupakan fungsi keluaran yang digunakan untuk menampilkan informasi/pesan kelayar secara terformat (menentukan tipe data yang akan dikeluarkan).
- puts() : merupakan fungsi keluaran yang digunakan untuk menampilkan informasi/pesan yang bertipe data string (tanpa harus melakukan penentuan tipe data terlebih dahulu).
- putchar() : merupakan fungsi keluaran yang digunakan untuk menampilkan informasi/pesan yang bertipe data char(tanpa harus melakukan penentuan tipe data terlebih dahulu).
- scanf() : merupakan fungsi masukan yang digunakan untuk menginputkan data numerik, karakter, dan string secara terformat (menentukan tipe data yang akan dimasukan).
- gets() : merupakan fungsi masukan yang khusus untuk menerima masukan tipe data string (tanpa harus melakukan penentuan tipe data terlebih dahulu).
2. iostream.h
"iostream.h" Merupakan singkatan dari input outout stream header yang digunakan sebagai standar input output operasi yang digunakan oleh bahasa C++. Fungsi-fungsi yang ada didalam iostream.h antara lain sebagai berikut :
- cout : merupakan fungsi keluaran pada C++ yang menampilkan data dengan tipe data apapun kelayar.
- cin : merupakan fungsi masukan pada C++ yang bisa memasukan data berupa numerik dan karakter.
- endl : merupakan suatu fungsi yang manipulator yang digunakan untuk melakukan perintah Newline atau pindah baris.
3. conio.h
"conio.h" Merupakan File Header yang berfungsi untuk menampilkan hasil antarmuka kepada pengguna. Fungsi -fungsi yang ada didalam conio.h antara lain sebagai berikut :
- getch() : merupakan singkatan dari get character and echo yang digunakan untuk menahan (pause) output suatu program dan akan kembali mengeksekusi setelah kita melakukan inputan baik itu tombol enter atau tombol lainnya dan inputan tersebut tidak ditampilkan dalam window.
- getche() : secara fungsi sama dengan getch() akan tetapi ketika melakukan inputan, inputan tersebut tampil dalam window.
- clrscr() : merupakan singkatan dari clear screen yang digunakan untuk membersihkan layar windows.
4. math.h
"math.h" Merupakan file header yang berfungsi untuk Operasi Matematika. Fungsi-fungsi yang ada di math.h antara lain sebagai berikut :
- sqrt() : Fungsi ini digunakan untuk menghitung akar dari suatu bilangan. Bentuk umum penulisannya adalah sqrt(bilangan);.
- pow() : Fungsi ini digunakan untuk menghitung hasil dari perpangkatan suatu bilangan. Bentuk umum penulisannya adalah pow(bilangan,pangkat);
- sin(), cos(), tan() : Fungsi ini digunakan untuk menghitung nilai Trigonometri Sinus, Cosinus, dan Tangen. Bentuk umum penulisannya adalah sin(bilangan);.
- sinh(), cosh(), tanh() : Fungsi ini digunakan untuk menghitung nilai Hiperbolik Sinus, Cosinus, dan Tangen. Bentuk umum penulisannya adalah sinh(bilangan);.
- exp() : Fungsi ini untuk menghitung perpangkatan atau Eksponensial.
- log(), log10() : Untuk menghitung nilai Logaritma. Jika log(bilangan) untuk menghitung Logaritma Natural (Berbasis e = 2,7183), sedangkan log10(bilangan) untuk menghitung Logaritma berbasis 10.
Contoh Program dengan menggunakan math.h :
#include <iostream.h>#include <conio.h>#include <math.h>using namespace std;int main(){int a = 45;int b = 4;int c = 2;float ipangkat, iakar, isin ,icos, itan;iakar = sqrt(b);cout<<"Akar dari "<<b<<" adalah"<<iakar<<endl;ipangkat = pow(b,c);cout<<b<<" pangkat "<<c<<" adalah"<<ipangkat<<endl;isin = sin(a);cout<<"sin sudut "<<a<<" derajat adalah"<<isin<<endl;icos = cos(a);cout<<"cos sudut "<<a<<" derajat adalah"<<icos<<endl;itan = tan(a);cout<<"tan sudut "<<a<<" derajat adalah"<<itan;getch();}
Untuk selengkpnya terkait dengan Fungsi Matematika dalam C++, silahkan lihat di sini (Filesop.com).
5. stdlib.h
"stdlib.h" Merupakan file header yang berfungsi untuk operasi pembanding dan operasi konversi. Fungsi-fungsi yang ada di stdlib.h antara lain sebagai berikut :
- max() : fungsi ini digunakan untuk menentukan nilai maximum dari 2 bilangan yang diinputkan. Bentuk penulisannya adalah max(bilangan1,bilangan2);.
- min() : fungsi ini digunakan untuk menentukan nilai minimum dari 2 bilangan yang diinputkan. Bentuk penulisannya adalah min(bilangan1,bilangan2);.
- atof() : fungsi ini digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double. Bentuk umum penulisannya adalah atof(char nama_variabel);.
- atoi() : fungi ini digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer. Bentuk umum penulisannya adalah atoi(char nama_variabel);.
Contoh Program dengan menggunakan stdlib.h :
#include <iostream.h>#include <conio.h>#include <stdlib.h>using namespace std;int main(){char a[10], b[10];int bil1, bil2,imax, imin;cout<<"Masukan Bilangan 1 : ";cin>>a;cout<<"Masukan Bilangan 2 : ";cin>>b;bil1 = atoi(a);cout<<"Bilangan 1 adalah "<<bil1<<endl;bil2 = atoi(b);cout<<"Bilangan 2 adalah "<<bil2<<endl;imax = max(bil1,bil2);cout<<"Nilai yang paling besar adalah "<<imax<<endl;imin = min(bil1,bil2);cout<<"Nilai yang paling kecil adalah "<<imin;getch();}
6. string.h
"string.h" Merupakan file header yang berfungsi untuk melakukan manipulasi string. Fungsi-fungsi yang ada di string.h antara lain sebagai berikut :
- strcpy() : fungsi ini digunakan untuk menyalin suatu string ke variabel tujuan. Bentuk umum penulisannya adalah strcpy(variabeltujuan, string);.
- strlen() : fungsi ini digunakan untuk menghitung jumlah karakter yang ada dalam suatu string. Bentuk umum penulisannya adalah strlen(string);.
- strcmp() : fungsi ini digunakan untuk membandingkan 2 buah string. Bentuk umum penulisannya adalah strcmp(string1,string2);.
- strrev() : fungsi ini digunakan untuk membalikan urutan suatu string. Bentuk umum penulisannya adalah strrev (string);.
- strlwr() : fungsi ini digunakan untuk mengubah semua huruf menjadi huruf kecil. Bentuk umum penulisannya adalah strlwr(sterng);.
- strupr() : fungsi ini digunakan untuk mengubah semua huruf menjadi huruf kapital. Bentuk umum penulisannya adalah strupr(string);.
- strcat() : fungsi ini digunakan untuk menggabungkan 2 buah string, untuk menggunakan fungsi ini juga harus menambahkan file header ctype.h. Bentuk umum penulisannya adalah strcat(variabeltujuan, string);.
Contoh Program dengan menggunakan string.h :
#include <iostream.h>#include <conio.h>#include <stdio.h>#include <string.h>using namespace std;int main(){char kata[50];char kata2[50];cout<<"Masukan Kata : ";gets(kata);cout<<"Panjang kata = "<<strlen(kata)<<" karakter"<<endl;strcpy(kata2,kata);strlwr(kata);cout<<"Kata yang di copy : "<<kata2<<endl;cout<<"Kata menjadi huruf kecil : "<<kata<<endl;strupr(kata);cout<<"Kata menjadi huruf kapital : "<<kata<<endl;strrev(kata);cout<<"Kata yang dibalik : "<<kata<<endl;getch();}
D. Struktur If Else
Sumber (Lainnya) : Duniailkom.com (If Else If)
Control Struktur adalah konsep dasar untuk menentukan keputusan dalam setiap baris Pembacaan Kode atau Code Flow.
Bagaimana cara kerjanya?
Saat program membaca baris kode satu persatu menggunakan compiler, compiler akan menemukan titik pengambilan keputusan. Titik keputusan itu berupa penyeleksian dan pengulangan kode.
Nah, Control Structure akan membantu Compiler menetapkan keputusan apakah penyeleksian atau perulangan itu akan dipecahkan atau dilewati.
Berikut ini adalah Control Structure penyeleksian bahasa pemrograman C++ :
1. Statement If
Statement if digunakan untuk mencari kebenaran dari conditional expression yang berupa nilai Boolean dengan nilai True atau False. Begini contohnya :
#include <iostream.h>using namespace std;int main( ){int x,y;x=37;y=25;if (x > y ){cout << "x lebih besar daripada y";}}
2. Statement Else If
Ketika compiler menemukan penyeleksian dengan statement if, CPU akan memeriksa kebenaran dari conditional expression. Jika hasilnya True, maka perintah kode akan dijalankan. Namun, jika hasilnya False, maka compiler akan memeriksa kode dengan statemen else if.
#include <iostream>using namespace std;void main( ){int x,y;x=15;y=19;if (x > y ){cout << "x lebih besar daripada y";}else{cout << "y lebih besar daripada x";}}
3. Statement If Else If (Nested If)
Pada dasarnya, kondisi If Else If adalah sebuah struktur logika program yang di dapat dengan cara menyambung beberapa perintah If Else menjadi sebuah kesatuan.
Jika kondisi pertama tidak terpenuhi atau bernilai false, maka kode program akan lanjut ke kondisi If di bawahnya. Jika ternyata tidak juga terpenuhi, akan lanjut lagi ke kondisi If di bawahnya lagi, dst hingga blok Else terakhir atau terdapat kondisi If yang menghasilkan nilai true.
Sebagai contoh pertama, saya ingin membuat kode program untuk menampilkan nilai. User diminta menginput sebuah huruf antara ‘A’ – ‘E’. Kemudian program akan menampilkan hasil yang berbeda-beda untuk setiap huruf, termasuk jika huruf tersebut di luar ‘A’ – ‘E’.
Berikut, inilah contoh kode programnya :
#include <iostream>using namespace std;int main(){char nilai;cout << "Input Nilai Anda (A - E): ";cin >> nilai;if (nilai == 'A' ) {cout << "Pandai!" << endl;}else if (nilai == 'B' ) {cout << "Bagus!" << endl;}else if (nilai == 'C' ) {cout << "Cukup!" << endl;}else if (nilai == 'D' ) {cout << "Kurang!" << endl;}else if (nilai == 'E' ) {cout << "Jelek!" << endl;}else {cout << "Invalid" << endl;}return 0;}
Hasil Kode Program :
Input Nilai Anda (A - E): A Pandai! Input Nilai Anda (A - E): D Kurang! Input Nilai Anda (A - E): E Jelek! Input Nilai Anda (A - E): F Invalid
Jika ternyata nilai inputan bukan salah satu dari karakter ‘A’ – ‘E’, maka block ELSE di baris 28 lah yang akan dijalankan.
Setiap kondisi dari block IF ELSE IF bisa diisi dengan perbandingan yang lebih kompleks, seperti contoh berikut :
#include <iostream>using namespace std;int main(){short nilai;cout << "Input Nilai Anda (0 - 100): ";cin >> nilai;if (nilai >= 90 ) {cout << "Pandai!" << endl;}else if (nilai >= 80 && nilai < 90) {cout << "Bagus!" << endl;}else if (nilai >= 60 && nilai < 80) {cout << "Cukup!" << endl;}else if (nilai >= 40 && nilai < 60) {cout << "Kurang!" << endl;;}else if (nilai < 40) {cout << "Jelek!" << endl;}else {cout << "Invalid" << endl;}return 0;}
Angka inputan ini ditampung ke dalam variabel nilai yang sekarang di set sebagai tipe data short di baris 7. Tipe data short adalah salah satu tipe data angka bulat (integer) dalam bahasa C++ yang bisa menampung antara -32,768 hingga +32,767.
Di baris 12, variabel nilai di periksa apakah berisi angka yang lebih dari 90. Jika iya, tampilkan teks “Pandai!”.
Jika ternyata kondisi ini tidak dipenuhi juga (artinya isi variabel nilai kurang dari 80), program akan lanjut ke kondisi if(nilai >= 60 && nilai < 80) di baris 18, yakni apakah isi variabel nilai berada dalam rentang 60 – 79. Demikian seterusnya hingga kondisi terakhir if(nilai < 40) di baris 24.
Jika semua kondisi tidak terpenuhi, jalankan Block Else di baris 27. Berikut hasil percobaan dari kode program di atas :
Input Nilai Anda (0 - 100): 96 Pandai! Input Nilai Anda (0 - 100): 70 Cukup! Input Nilai Anda (0 - 100): 35 Jelek!
Yang cukup unik adalah, jika kita memberikan nilai di luar rentang 0 – 100, akan tetap ditangkap oleh kondisi IF di baris 10 atau di baris 22 :
Input Nilai Anda (0 - 100): 150 Pandai! Input Nilai Anda (0 - 100): -50 Jelek!
Ini terjadi karena nilai 190 tetap memenuhi syarat if (nilai >= 90), dan nilai -100 juga tetap memenuhi syarat if (nilai < 40). Silahkan anda modifikasi kode program di atas agar ketika diinput angka di luar dari rentang 0 – 100, tampil teks “Invalid”. Untuk hal ini kita cuma perlu mengubah / menambah 2 kondisi saja.
Untuk melihat bagian If Else, selengkapnya baca di Artikel tentang Flowchart di sini. Dan berikut, inilah contoh lainnya dari If Else :
1. Nama-nama Hari dalam Seminggu
#include <iostream>using namespace std;int main(){int hari;cout<<"Masukkan Hari : ";cin>>hari;if (hari == 1){cout<<"Senin";}else if (hari == 2){cout<<"Selasa";}else if (hari == 3){cout<<"Rabu";}else if (hari == 4){cout<<"Kamis";}else if (hari == 5){cout<<"Jumat";}else if (hari == 6){cout<<"Sabtu";}else if (hari == 7){cout<<"Minggu";}else {cout<<"Invalid";}return 0;}
2. Nama-nama Bulan dalam Setahun (Masehi/Gregorian)
#include <iostream>using namespace std;int main(){int bulanMasehi;cout<<"Masukkan Bulan : ";cin>>bulanMasehi;if (bulanMasehi == 1){cout<<"Januari";}else if (bulanMasehi == 2){cout<<"Februari";}else if (bulanMasehi == 3){cout<<"Maret";}else if (bulanMasehi == 4){cout<<"April";}else if (bulanMasehi == 5){cout<<"Mei";}else if (bulanMasehi == 6){cout<<"Juni";}else if (bulanMasehi == 7){cout<<"Juli";}else if (bulanMasehi == 8){cout<<"Agustus";}else if (bulanMasehi == 9){cout<<"September";}else if (bulanMasehi == 10){cout<<"Oktober";}else if (bulanMasehi == 11){cout<<"November";}else if (bulanMasehi == 12){cout<<"Desember";}else {cout<<"Invalid";}return 0;}
3. Nama-nama Bulan dalam Setahun (Hijriah)
#include <iostream>using namespace std;int main(){int bulanHijriah;cout<<"Masukkan Bulan : ";cin>>bulanHijriah;if (bulanHijriah == 1){cout<<"Muharram";}else if (bulanHijriah == 2){cout<<"Shafar";}else if (bulanHijriah == 3){cout<<"Rabiul Awal";}else if (bulanHijriah == 4){cout<<"Rabiul Akhir";}else if (bulanHijriah == 5){cout<<"Jumadil Awal";}else if (bulanHijriah == 6){cout<<"Jumadil Akhir";}else if (bulanHijriah == 7){cout<<"Rajab";}else if (bulanHijriah == 8){cout<<"Syaban";}else if (bulanHijriah == 9){cout<<"Ramadhan";}else if (bulanHijriah == 10){cout<<"Syawal";}else if (bulanHijriah == 11){cout<<"Dzulqaidah";}else if (bulanHijriah == 12){cout<<"Dzulhijjah";}else {cout<<"Invalid";}return 0;}
E. Switch Case
Sumber : Duniailkom.com
1. Pengertian SWITCH CASE Bahasa C++
Kondisi SWITCH CASE adalah percabangan kode program dimana kita membandingkan isi sebuah variabel dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan true, maka block kode program akan di proses.
Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE untuk setiap nilai yang akan diperiksa.
Berikut saya tampilkan kembali kode program dengan struktur If Else If :
#include <iostream>using namespace std;int main(){char nilai;cout << "Input Nilai Anda (A - E): ";cin >> nilai;if (nilai == 'A' ) {cout << "Pandai!" << endl;}else if (nilai == 'B' ) {cout << "Bagus!" << endl;}else if (nilai == 'C' ) {cout << "Cukup!" << endl;}else if (nilai == 'D' ) {cout << "Kurang!" << endl;}else if (nilai == 'E' ) {cout << "Jelek!" << endl;}else {cout << "Invalid" << endl;}return 0;}
Program yang sama bisa dikonversi ke dalam bentuk Switch Case berikut ini :
#include <iostream>using namespace std;int main(){char nilai;cout << "Input Nilai Anda (A - E): ";cin >> nilai;switch (nilai) {case 'A':cout << "Pandai!" << endl;break;case 'B':cout << "Bagus!" << endl;break;case 'C':cout << "Cukup!" << endl;break;case 'D':cout << "Kurang!" << endl;break;case 'E':cout << "Jelek!" << endl;break;default:cout << "Invalid" << endl;}return 0;}
Hasil Kode Program :
Input Nilai Anda (A - E): A Pandai! Input Nilai Anda (A - E): B Bagus! Input Nilai Anda (A - E): C Cukup! Input Nilai Anda (A - E): F Invalid
Di baris 10 terdapat perintah untuk meminta user menginput salah satu huruf antara ‘A’ – ‘E’. Nilai huruf ini kemudian disimpan ke dalam variabel nilai yang sudah di set ber tipe data char.
Kondisi Switch Case dimulai pada baris 12. Di sini terdapat perintah switch (nilai) yang artinya kita ingin memeriksa isi dari variabel nilai. Seluruh block SWITCH berada di dalam tanda kurung kurawal yang dimulai dari baris 12 sampai 30.
Di baris 13 terdapat perintah case ‘A’: Ini artinya jika variabel nilai berisi karakter ‘A‘, maka jalankan isi dari block CASE, yakni perintah cout << “Pandai!” << endl. Lalu terdapat perintah break di baris 15 agar struktur CASE lain tidak perlu di proses lagi.
Di baris 16 terdapat perintah CASE kedua, yakni case ‘B’:. Sama seperti sebelumnya, blok ini akan dijalankan jika variabel nilai berisi huruf ‘B‘. Demikian seterusnya sampai case ‘E’ : di baris 25.
Jika ternyata tidak ada nilai yang sesuai, maka block default di baris 28 yang akan di eksekusi.
Struktur SWITCH CASE ini terlihat lebih rapi daripada struktur IF ELSE IF, dan kadang kala bisa lebih efisien. Namun SWITCH CASE juga memiliki batasan, dimana tidak bisa dipakai untuk kondisi yang lebih kompleks seperti perbandingan dengan tanda lebih besar dari ” > “, maupun penggabungan kondisi.
Contoh lainnya dari Switch Case :
1. Nama-nama Hari dalam Seminggu
#include <iostream>using namespace std;int main() {int hari;cout<<"Masukkan Hari : ";cin>>hari;switch (hari) {case 1 :cout << "Senin" << endl;break;case 2 :cout << "Selasa" << endl;break;case 3 :cout << "Rabu" << endl;break;case 4 :cout << "Kamis" << endl;break;case 5 :cout << "Jumat" << endl;break;case 6 :cout << "Sabtu" << endl;break;case 7 :cout << "Minggu" << endl;break;}return 0;}
2. Nama-nama Bulan dalam Setahun (Masehi/Gregorian)
#include <iostream>using namespace std;int main() {int bulanMasehi;cout<<"Masukkan Bulan : ";cin>>bulanMasehi;switch (bulanMasehi) {case 1 :cout << "Januari" << endl;break;case 2 :cout << "Februari" << endl;break;case 3 :cout << "Maret" << endl;break;case 4 :cout << "April" << endl;break;case 5 :cout << "Mei" << endl;break;case 6 :cout << "Juni" << endl;break;case 7 :cout << "Juli" << endl;break;case 8 :cout << "Agustus" << endl;break;case 9 :cout << "September" << endl;break;case 10 :cout << "Oktober" << endl;break;case 11 :cout << "November" << endl;break;case 12 :cout << "Desember" << endl;break;}return 0;}
3. Nama-nama Bulan dalam Setahun (Hijriah)
#include <iostream>using namespace std;int main() {int bulanHijriah;cout<<"Masukkan Bulan : ";cin>>bulanHijriah;switch (bulanHijriah) {case 1 :cout << "Muharram" << endl;break;case 2 :cout << "Shafar" << endl;break;case 3 :cout << "Rabiul Awal" << endl;break;case 4 :cout << "Rabiul Akhir" << endl;break;case 5 :cout << "Jumadil Awal" << endl;break;case 6 :cout << "Jumadil Akhir" << endl;break;case 7 :cout << "Rajab" << endl;break;case 8 :cout << "Syaban" << endl;break;case 9 :cout << "Ramadhan" << endl;break;case 10 :cout << "Syawal" << endl;break;case 11 :cout << "Dzulqaidah" << endl;break;case 12 :cout << "Dzulhijjah" << endl;break;}return 0;}
F. Struktur Perulangan
C++ menyediakan banyak sekali resource untuk dapat kita pakai dan merangkainya menjadi sebuah source code program. Dari sekian banyak resource, beberapa digunakan untuk membentuk struktur perulangan. Ada tiga bentuk perulangan “populer” di C++, yaitu : For, Whike, dan Do While. Tetapi terlepas dari ketiga bentuk tersebut, sebenarnya ada sebuah bentuk lagi, yaitu Goto. Namun, karena perulangan bentuk ini kurang terstruktur sehingga tidak banyak digunakan.
Sebelum memasuki inti, apa itu perulangan? Secara morfologis, perulangan terdiri dari kata dasar “ulang” yang diberi imbuhan “pe-an” yang artinya suatu kegiatan. Jadi, dapat dikatakan perulangan adalah kegiatan mengulang. Tetapi, pada konteks pemrograman, perulangan dapat secara spesifik diartikan sebagai kegiatan mengulang suatu statement menurut batas tertentu yang telah ditentukan.
Adanya perulangan ini tentu sangat membantu dalam mempersingkat penulisan kode program. Contohnya saja jika kita ingin menampilkan isi pada sebuah array, kita bisa menggunakan perulangan untuk menampilkan isi array tersebut sesuai dengan index array tersebut. Tetapi, masalah muncul ketika kita dihadapkan pada sebuah kasus tertentu yang menuntut kita menggunakan bentuk perulangan yang sesuai. Bagaimana jika kita hanya ingin meampilkan index array yang sudah terisi sedangkan kita tidak tahu apakah semua index pada array tersebut telah terisi. Atau bagaimana jika kita ingin membentuk suatu deret bilangan dimana deret tersebut harus terdiri dari sepuluh hasil yang terbentuk menurut iterasi tertentu.
Perulangan akan membantu kita mengeksekusi kode yang berulang-ulang, berapapun yang kita mau.
Ada 4 (Empat) macam bentuk perulangan pada C++. Secara umum, dibagi menjadi 2 (Dua) Kelompok yaitu Counted Loop dan Uncounted Loop. Berikut, inilah Perbedaanya :
- Counted Loop merupakan perulangan yang jelas dan sudah tentu banyak kali perulangannya.
- Sedangkan Uncounted Loop, merupakan perulangan yang tidak jelas berapa kali ia harus mengulang.
1. Perulangan yang termasuk dalam Counted Loop :
- Perulangan For
2. Perulangan yang termasuk dalam Uncounted Loop :
- Perulangan While
- Perulangan Do/While
Manakah bentuk perulangan yang sesuai? Berikut, inilah pembahasannya :
1. Perulangan For
Perulangan For merupakan perulangan yang termasuk dalam Couted Loop, karena sudah jelas berapa kali ia akan mengulang.
Bentuknya Kodenya seperti ini :
for(int i = 0; i < 10; i++){
printf("Perulangan ke-%i\n", i);
}
Atau seperti ini :
for (start; condition; increment)
{
// kode program
// kode program
}
Yang perlu diperhatikan adalah kondisi yang ada di dalam kurung setelah kata for.
Kondisi ini akan menentukan :
- Hitungan akan dimulai dari 0 (i = 0);
- Hitungannya sampai berapa? Sampai i < 10;
- Lalu di setiap perulangan i akan bertambah +1 (i++).
- Variabel i pada perulangan for berfungsi untuk menyimpan nilai hitungan.
Jadi setiap perulangan dilakukan nilai i akan selalu bertambah satu. Karena kita menentukannya di bagian i++.
Contoh Program Loop dengan for :
#include<iostream>using namespace std;int main(){cout<<"Masukkan jumlah nilai yang akan dihitung rata - ratanya ";int n,i; int jumlah=0; cin>>n;int nilai[n];for(i=0;i<n;i++){ cin>>nilai[i];jumlah +=nilai[i];}float mean = (float)jumlah/n;cout<<"Rata - ratanya adalah "<<mean;return 0;}
Atau yang ini :
#include <iostream>using namespace std;int main() {int a;for(a = 1;a <= 10;a++) {cout<<"a = "<<a<<endl;}}
2. Perulangan While
Perulangan while merupakan perulangan yang termasuk dalam perulangan uncounted loop. Perulangan while juga dapat menjadi perulangan yang counted loop dengan memberikan counter di dalamnya.
Bentuk Flowchart-nya sama seperti Flowchart for.
Bentuk kodenya seperti ini :
start;
while (condition)
{
// kode program
// kode program
increment;
}
Untuk memahami perulangan ini, mari kita coba lihat contohnya :
#include <conio.h>#include <iostream>using namespace std;int main() {int i=1;while (i<=10){cout<<"Belajar Perulangan While "<<i<<endl;i++;}getch();}
Dan inilah Contoh Lainnya :
#include <iostream>using namespace std;int main(){int i = 1;while (i <= 5){cout << "Hello World" << endl;i++;}return 0;}
Output :
Hello World
Hello World
Hello World
Hello World
Hello World
Di baris 7 terdapat perintah untuk menginput angka 1 ke dalam variabel i. Nantinya, variabel i ini akan menjadi variabel counter yang dipakai untuk menentukan jumlah perulangan.
Proses perulangan di mulai di baris 8. Perintah while (i <= 5) artinya, selama nilai variabel i kurang atau sama dengan 5, maka jalankan perulangan.
Di dalam blok perulangan terdapat perintah cout << “Hello World” << endl di baris 9. Ini dipakai untuk menampilkan teks “Hello World“. Kemudian di baris 10 terdapat perintah increment, yakni i++. Perintah ini akan menaikkan nilai variabel i sebanyak 1 angka dalam setiap iterasi.
Perulangan while akan di ulang sebanyak 5 kali, mulai dari i = 1, i = 2, i = 3, i = 4, hingga i = 5. Ketika nilai variabel counter i sudah mencapai 6, maka kondisi while (i <= 5) tidak terpenuhi lagi (false), sehingga perulangan berhenti.
Contoh lainnya untuk mencetak secara Kustom (Input secara Kustom) :
#include <iostream>using namespace std;int main(){int n;cout<<"Masukkan nilai n : ";cin>>n;int i = 1;while (i <= n){cout << "Hello World" << endl;i++;}return 0;}
Dan inilah Program untuk penulisan Fungsi Iterasi (Iterated/Nesting Function) dengan menggunakan Struktur Perulangan While :
#include <iostream>using namespace std;int main(){int n, i = 1;;cout<<"f^n(x)"<<endl;cout<<"Input n : ";cin>>n;i = 1;while (i <= n){cout<<"f(";i++;}cout<<"x";i = 1;while (i <= n){cout<<")";i++;}return 0;}
3. Perulangan Do-While
Perulangan do/while sama seperti perulangan while. Perbedaanya adalah jika Perulangan do/while akan melakukan perulangan sebanyak 1 kali terlebih dahulu, lalu mengecek kondisi yang ada di dalam kurung while. Flowchart perulangan do-while :
Bentuk kodenya seperti ini :
do {
// blok kode yang akan diulang
} while (<kondisi>);
Atau seperti ini :
start;
do
{
// kode program
// kode program
increment;
}
while (condition)
Jadi perbedaannya adalah :
Perulangan do-while akan mengecek kondisi di belakang (sesudah mengulang), sedangkan while akan mencek kondisi di depan atau awal (sebelum mengulang).
Mari kita coba lihat contohnya :
#include <conio.h>#include <iostream>using namespace std;int main() {int i=1;do {cout<<"Belajar Perulangan Do While "<<i<<endl;i++;} while (i<=10);getch();}
Contoh tersebut sama seperti contoh pada perulangan while. Dan inilah contoh lainnya dengan menggunakan perulangan Do While :
#include <iostream>using namespace std;int main(){int i = 1;do {cout << "Hello World" << endl;i++;}while (i <= 5);return 0;}
Output :
Hello World
Hello World
Hello World
Hello World
Hello World
Dalam perulangan Do While kita juga bisa mengakses variabel counter seperti contoh berikut :
#include <iostream>using namespace std;int main(){int i = 1;do {cout << i * 3 << " ";i++;}while (i <= 5);return 0;}
Yup, ini adalah Kode Program untuk membuat sebuah deret dengan Kelipatan 3. Dan inilah Output-nya :
3 6 9 12 15
Kunci utama yang membedakan perulangan DO WHILE dengan perulangan WHILE adalah posisi pemeriksaan kondisi.
Karena dalam perulangan DO WHILE pemeriksaan kondisi di lakukan di akhir, maka perulangan akan selalu di jalankan minimal 1 kali, meskipun syarat perulangan sudah tidak dipenuhi.
Berikut contoh kasusnya :
#include <iostream>using namespace std;int main(){int i = 10;do {cout << i * 3 << " ";i++;}while (i <= 5);return 0;}
Hasil Kode Program : 30.
Di baris 7 saya mengisi angka 10 ke dalam variabel counter i. Namun syarat kondisi adalah while (i <= 5). Apakah i <=5 ? tidak (false). Namun meskipun kondisi ini tidak dipenuhi, perulangan akan tetap dijalankan 1 kali.
4. Perulangan Bersarang (Nested Loop)
Di dalam blok perulangan, kita juga dapat membuat perulangan. Ini disebut dengan nested loop atau perulangan bersarang atau perulangan di dalam perualangan.
#include <iostream>using namespace std;int main(){for(int i = 0; i < 10; i++){for(int j = 0; j < 10; j++){printf("Perulangan ke (%d, %d)\n", i, j);}}return 0;}
Pada perulangan tersebut, kita menggunakan 2 (Dua) Perulangan for. Perulangan pertama menggunakan variabel i sebagai counter, sedangkan perultangan kedua menggunakan variabel j sebagai counter.
Atau juga bisa ditulis seperti ini :
#include <iostream>using namespace std;int main(){for(int i = 0; i < 10; i++){for(int j = 0; j < 10; j++){cout<<"Perulangan ke ("<<i<<", "<<j<<")"<<endl;}}return 0;}
5. Perulangan Tak Hingga (Infinite Loop)
Sumber : Beginnersbook.com (Lalu diterjemahkan melalui Google Translate)
Ada suatu kondisi (dari data misalnya) atau bahkan kesalahan/bug dari kode yang dibuat sehingga menyebabkan proses looping tidak berhenti atau disebut Infinite Loops.
Hal ini akan mempuat proses dalam Aplikasi yang kita buat menjalankan proses terus-menerus sampai not responding dan hanya dapat dihentikan dengan paksa (Task Manager -> End Task). Karena itu dalam membuat perulangan kita harus sangat berhati-hati.
#include <iostream>using namespace std;int main(){int i = 1;while (i <= 5){cout << "Hello World" << endl;}return 0;}
Dan juga Infinite Loop yang terbentuk dengan Struktur Perulangan For :
#include <iostream>using namespace std;int main(){for(int i=1; i>=1; i++){cout<<"Nilai dari vaiabel i adalah : "<<i<<endl;}return 0;}
Ini adalah Infinite Loop karena kita menaikkan nilai i sehingga selalu memenuhi kondisi i >= 1, kondisi tidak akan pernah kembali False.
ARRAY DALAM BAHASA PEMROGRAMAN C++
Di kebanyakan bahasa pemrograman array sangat penting dan banyak digunakan. Array membantu kita untuk membuat sebuah variabel yang dapat diisi oleh banyak nilai, dengan kata lain kita tidak perlu membuat banyak variabel. Cukup satu variabel namun bisa menampung banyak nilai, dengan catatan tipe data yang digunakan harus sama ya. jadi misalnya sebuah array menggunakan tipe Integer maka semua nilai dalam variabel tersebut harus ber-tipe sama yaitu Integer.
Array adalah sebuah variabel yang punya kemampuan untuk menyimpan lebih dari 1 nilai yang memiliki tipe yang sama. Atau dalam kata lain array adalah sekumpulan data dengan tipe data yang sama.
A. Array 1 Dimensi
Sumber : Kelasprogrammer.com
1. Inisialisasi Array di C++
Didalam Bahasa Pemrograman C++ kita dapat mendeklarasikan variabel array dengan bentuk yang umum adalah sebagai berikut :
- Tipe data adalah tipe jenis data yang digunakan pada variabel array tersebut. bisa berupa karakter string atau sebuah bilangan.
- Nama array adalah nama yang kalian gunakan. bebas untuk membuat nama array. Namun perlu diperhatikan standar yang baik untuk nama sebuah variabel array.
- ukuran adalah sebuah nilai kapasitas untuk menentukan berapa space yang disediakan untuk menampung nilai didalam array tersebut.
tipe _data nama_array [ukuran];
Contoh :
int nilai[10];
Sebenarnya didalam c++ kita juga dapat membuat array tanpa perlu menentukan ukurannya, hanya saja kita perlu langsung menginisialisasi nilainya. Jadinya seperti ini :
int nilai[]={23,4,10,9};
2. Inisialisasi Nilai Array
Kita dapat memasukan nilai dalam sebuah variabel array berdasarkan ukuran dari array tersebut. Dengan catatan jika kita menentukan ukurannya, sementara bila tidak maka array tersebut bersifat dinamis menyesuaikan jumlah nilai didalamnya.
Contoh :
//inisialisasi array dengan ukuran.
int nilai[5]={2,4,9,15,22};
// inisialisasi array tanpa ukuran
int nilai[]={2,4,9,15,22};
3. Mengakses Variabel Array
Untuk mengakses nilai di dalam variabel array menggunakan index. Array selalu diawali dari index ke-0. Contoh jika berdasarkan array yang kita buat diatas dan kita ingin mencetak nilai 2 dan 15 maka index yang diakses adalah 0 dan 3 karena nilai 2 berada pada index ke 0 dan nilai 5 berada pada index ke-3. Lihat program berikut :
#include <conio.h>#include <iostream>using namespace std;int main() {int nilai[5]={2,4,9,15,22};cout<<nilai[0]<<endl;cout<<nilai[3]<<endl;getch();}
4. Mengakses Nilai Array dengan Perulangan
Untuk nilai array kebanyakan cara mengaksesnya menggunakan bantuan perulangan for. karena akses index membutuhkan deretan angka yang dapat kita buat dengan mudah menggunakan Perulangan.
Contoh :
#include <conio.h>#include <iostream>using namespace std;int main() {int nilai[5]={2,4,9,15,22};for (int i=0;i<5;i++){cout<<nilai[i]<<endl;}getch();}
5. Studi Kasus Contoh Program Tentang Array di C++
Input :
#include <conio.h>#include <iostream>#include <string>using namespace std;int main(){int n;string nama[10],status[10];int nilai[10];cout<<"Masukan Jumlah Data = ";cin>>n;cout<<endl;for (int i=0; i<n; i++) {cout<<endl;cout<<"Data ke-"<<i+1<<endl;cout<<"Masukan Nama = ";cin>>nama[i];cout<<"Masukan Nilai = ";cin>>nilai[i];if (nilai[i]<=60) {status[i]="Tidak Lulus";} else {status[i]="Lulus";}}cout<<endl;cout<<"DAFTAR NILAI MAHASISWA"<<endl;cout<<"-------------------------------------------"<<endl;cout<<"No Nama Nilai Status "<<endl;cout<<"-------------------------------------------"<<endl;for (int i=0; i<n;i++) {cout<<i+1<<" "<<nama[i]<<" "<<nilai[i]<<" "<<status[i]<<endl;cout<<"-------------------------------------------"<<endl;}getch();}
Output :
Pada program diatas merupakan implementasi penggunaan array di C++. Disini saya membuat beberapa variabel array seperti nama dan status dengan tipe string dan nilai dengan tipe integer. Masing-masing saya beri Slot 10 Space, dari sini dapat kita ketahui bahwa program ini hanya akan mampu menampung nilai kurang dari atau sama dengan 10 nilai yang dapat di tampung di variabel array tersebut.
User akan memasukan nama dan nilai yang akan dilakukan perulangan berdasarkan jumlah data yang akan diinput. Jika nilai yang dimasukan kurang dari 50 maka status mahasiswa tersebut tidak lulus. Natinya sistem akan menampilkan data mahasiswa tersebut dan juga status kelulusannya.
B. Array 2 Dimensi
Sumber : Kelasprogrammer.com
Array 2 Dimensi adalah array yang memiliki lebih 2 bentuk index array. Jika pada array 1 dimensi hanya memiliki satu bentuk index, di array 2 dimensi atau bisa kita sebut array multidimensi memiliki lebih dari satu bentuk Index Array.
1. Bentuk Array 2 Dimensi
Jika didalam Array 1 Dimensi hanya menggunakan sebuah tanda [] (bracket) namun pada Array 2 Dimensi kita membuat 2 tanda [] tersebut. Berikut ini adalah bentuk umum Array 2 Dimensi.
tipe_data nama_array[jumlah elemen baris][jumlah elemen kolom];
Contoh :
int A[3][4];
Contoh diatas kita mendeklarasikan sebuah variabel array 2 dimensi dengan menggunakan tipe data Integer dengan nama A memiliki ukuran 3 Jumlah elemen baris dan 4 Kolom.
2. Inisialisasi Nilai Array 2 Dimensi
Inisialisasi nilai Array 2 Dimensi dapat dibuat dengan cara manual ataupun dapat diinput oleh pengguna saat program dijalankan. Karena Array 2 dimensi mempunyai lebih dari satu bentuk index array, maka ketika kita melakukan inisialisasi nilai (secara manual) perlu menggunakan tanda {} untuk membentuk baris array.
int A[3][4]={{3,4,8,0},{3,9,2,1},{6,3,0,2}};
Sebagai contoh jika kita memilii array dengan jumlah elemen baris sebanyak 3 Elemen, maka setiap elemen baris tersebut di apit dengan tanda {} dan dipisahkan dengan tanda koma. Didalam elemen baris tersebut baru kemudian kita memasukan nilai sesuai dengan jumlah elemen kolom yang dibuat (dalam hal ini berjumlah 4 Kolom).
Untuk dapat melihat lebih jelas inisialisasi array yang dibuat diatas dapat digambarkan lewat Tabel berikut :
Karena index array dimulai dari 0 maka setiap elemem baris dan kolom dimulai dari 0. Nilai 3 akan menempati pada baris ke 0 dan kolom ke 0. nilai 4 menempati baris ke 0 kolom ke 1 nilai 8 pada baris ke 0 dan kolom ke 2 dan seterusnya.
3. Mengakses Nilai Array 2 Dimensi
Mengakses nilai array dapat dilakukan dengan cara manual dimana kita langsung mencetak sesuai dengan index baris dan kolom pada array tersebut. Sebagai contoh jika kita ingin mengakses nilai 1 maka index array yang kita akses adalah A[1][3]; karena 1 berada pada elemen baris ke-1 dan pada kolom ke-3.
Selain itu kita juga dapat menggunakan perulangan for. Berikut ini contoh programnya :
#include <iostream>#include <conio.h>using namespace std;int main() {int A[3][4]={{3,4,8,0},{3,9,2,1},{6,3,0,2}};for (int b=0;b<3;b++){for (int k=0;k<4;k++){cout<<A[b][k]<<" ";}cout << endl;}getch();}
Pada program diatas kita membuat dua buah perulangan for perulangan yang pertama untuk mengakses elemen BARIS pada array A. kemudian didalam perulangan tersebut kita buat sebuah perulangan lagi untuk mengakses elemen KOLOM pada Array A.
4. Contoh Program Input Nilai dari User
Input :
#include <iostream>#include <conio.h>using namespace std;int main() {int A[3][4];for (int b=0;b<3;b++){for (int k=0;k<4;k++){cout<<"A["<<b<<"]["<<k<<"] = ";cin>>A[b][k];}cout << endl;}for (int b=0;b<3;b++){for (int k=0;k<4;k++){cout<<A[b][k]<<" ";}cout << endl;}getch();}
Output :
INPUT-OUTPUT (I/O) FILE DALAM BAHASA PEMROGRAMAN C++
Sumber Materi : Petanikode.com,
A. Tampilan Input-Output (I/O) dalam C++
C++ memiliki 4 (Empat) fungsi dasar untuk menampilkan Output :
- cout untuk menampilkan teks ke layar;
- cerr untuk menampilkan error;
- clog untuk menampilkan log;
- printf() untuk menampilkan output, fungsi ini dari C;
Kita akan fokus memabahas yang 2 saja, yakni cout dan printf(). Soalnya cerr dan clog, cara pakainya sama seperti cout. Bedanya sih pada konteks penggunaanya, yakni untuk error dan log.
1. Fungsi cout
Fungsi cout adalah fungsi standar pada C++ untuk menampilkan output ke layar. Berikut ini struktur dasar fungsi cout :
Setelah simbol << kita bisa menuliskan teks yang akan ditampilkan ke layar. Teks harus diapit dengan tanda petik dan untuk membuat baris baru bisa menggunakan endl atau simbol \n. Pembuatan baris baru bersifat opsional, terserah kita mau ditambahkan atau tidak.
Contoh :
cout << "Namaku adalah ";
cout << "Inzaghi Posuma";
Maka outputnya akan ditampilkan dalam 1 (Satu) Baris :
Namaku adalah Inzaghi Posuma
Sedangkan kalau kita menggunakan endl atau \n.
cout << "Namaku adalah " << endl;
cout << "Inzaghi Posuma
";
Hasilnya akan ditampilkan dalam 2 (Dua) Baris :
Namaku adalah
Inzaghi Posuma
Apapun setelah simbol << akan ditampilkan ke layar. Jika kita ingin menampilkan variabel, kita bisa menulisnya seperti ini :
string nama = "Inzaghi Posuma";
cout << "Hello " << nama << endl;
Hasilnya :
Hello Inzaghi Posuma
Mudah sekali kan?
Buatlah program bernama program_output.cpp, kemudian isi dengan kode berikut :
#include <iostream>
using namespace std;
int main(){
cout << "=========== PROGRAM OUTPUT ===========" << endl;
cout << "Progarm ini adalah program untuk\n";
cout << "Menampilkan output ke layar komputer.\n";
cout << "Output sangat penting buat menampilkan\n";
cout << "informasi kepada user.\n";
cout << "======================================" << endl;
cout << endl;
cout << "Program ini dibuat oleh Inzaghi" << endl;
return 0;
}
Coba kita Compile dan jalankan, maka hasilnya :
=========== PROGRAM OUTPUT ===========
Progarm ini adalah program untuk
Menampilkan output ke layar komputer
Output sangat penting buat menampilkan
informasi kepada user
======================================
Program ini dibuat oleh Inzaghi
2. Fungsi printf()
Fungsi printf() merupakan fungsi yang aslinya dari Bahasa C, tapi bisa juga dipakai pada C++. Fungsi printf() merupakan fungsi untuk menampilkan output ke layar komputer. Fungsi ini terdapat pada library <stdio.h> dan juga <iostream>. Berikut ini struktur dasar fungsi printf() :
Perhatikan :
"format" adalah sebuah teks (string) untuk ditampilkan. Lalu tanda ... akan berisi sebuah variabel atau nilai untuk ditampilkan berdasarkan format yang diberikan pada teks "format".
Mari kita lihat contohnya:
Buatlah sebuah program C++ bernama program_output_printf.cpp, lalu isi dengan kode berikut.
#include <iostream>
using namespace std;
int main(){
printf("Hello, ini adalah teks output\n");
printf("Nama saya %s\n", "Inzaghi");
printf("Usia saya %d\n", 19);
return 0;
}
Hasilnya :
Hello, ini adalah teks output
Nama saya Inzaghi
Usia saya 19
Ada beberapa hal yang perlu di perhatikan, yaitu pada fungsi printf() kita menggunakan simbol %s, %d, dan \n untuk format teks.
Mari kita bahas arti dari simbol tersebut :
- %s adalah simbol untuk menampilkan nilai string;
- %d adalah simbol untuk menampilkan nilai angka atau bilangan desimal;
- \n adalah simbol untuk membuat baris baru.
Selain 3 (Tiga) Simbol tersebut, masih banyak lagi simbol yang lain.
Simbol
|
Arti atau
Fungsi
|
%c
|
Untuk
menampilkan Karakter
|
%s
|
Untuk
menampilkan Teks (String)
|
%d, %i
|
Untuk
menampilkan Bilangan Desimal
|
%f
|
Untuk
menampilkan Bilangan Pecahan
|
%o
|
Untuk
menampilkan Bilangan Oktal
|
%x
|
Untuk
menampilkan Bilangan Heksadesimal
|
\t
|
Untuk membuat Tabs
|
Sekarang dari Fungsi Output, mari kita ke Fungsi Input.
3. Fungsi cin
Fungsi cin (c input) adalah fungsi untuk mengambil input dari keyboard. Berikut ini bentuk dasar fungsi cin :
Fungsi cin membutuhkan variabel untuk menyimpan data yang diinputkan. Intinya variabel berfungsi untuk meyimpan data saat program berjalan. Mari kita coba menggunakan fungsi cin.
Buatlah program baru bernama program_input.cpp, kemudian isi dengan kode berikut :
#include <iostream>
using namespace std;
int main(){
string nama;
cout << "Tuliskan nama : ";
cin >> nama;
cout << "Hi " << nama;
cout << "Selamat datang di klub!" << endl;
return 0;
}
Setelah itu, coba kita compile dan jalankan. Maka hasilnya :
Tuliskan nama : Inzaghi
Hai Inzaghi Selamat datang di klub!
4. Fungsi scanf()
Fungsi scanf() sebenarnya dari Bahasa C, tapi bisa juga digunakan pada C++.
Fungsi scanf() adalah fungsi untuk mengambil input dari keyboard. Fungsi ini memiliki format seperti fungsi printf().
Format yang diberikan tergantung dari jenis tipe data apa yang ingin kita ambil. Misalnya mau mengambil angka, maka kita bisa pakai %d atau %i. Mari kita lihat contohnya :
#include <iostream>
using namepsace std;
int main () {
// membuat variabel
char name[20], web_address[30];
printf("Nama : ");
scanf("%s", &name);
printf("Alamat Web : ");
scanf("%s", &web_address);
printf("\n------------------------------\n");
printf("Nama yang diinputkan : %s\n", name);
printf("Alamat Web yang diinputkan : %s\n", web_address);
return 0;
}
Hasilnya :
Nama : Inzaghi
Alamat Web : inzaghiposuma.blogspot.com
------------------------------
Nama yang diinputkan : Inzaghi
Alamat Web yang diinputkan : inzaghiposuma.blogspot.com
Tapi saat kita menginputkan teks yang mengandung spasi, hasilnya akan dipecah menjadi 2 (Dua) seperti ini :
Nama : Inzaghi
Alamat Web : inzaghiposuma.blogspot.com
------------------------------
Nama yang diinputkan : Inzaghi
Alamat Web yang diinputkan : inzaghiposuma.blogspot.com
Untuk mengatasi masalah ini, kita bisa ubah format yang digunakan pada scanf() menjadi seperti ini :
printf("Nama: ");
scanf("%[^\n]s", name);
Maka fungsi scanf() akan menerima spasi. Dalam menggunakan scanf(), kita dianjurkan menggunakan simbol & sebelum nama variabel.
Contoh :
#include <stdio.h>
void main(){
int a, b, c;
printf("Inputkan nilai a: ");
scanf("%i", &a);
printf("Inputkan nilai b: ");
scanf("%i", &b);
c = a + b;
printf("Hasil a + b: %i", c);
}
Simbol & berfungsi untuk mengambil alamat memori dari sebuah variabel. Fungsi scanf() membutuhkan tempat untuk menyimpan nilai yang akan diinputkan.
Karena itu kita memberikan simbol & di depan nama variabel untuk menentukan alamat memori yang akan digunakan oleh scanf(). Kita bisa menggunakan fungsi bawaan C++ atauapun Fungsi dari Bahasa C seperti printf(), scanf(), puts() dll.
Dan kalau saya sendiri lebih suka menggunakan cout dan cin dalam Bahasa C++, karena kalau printf() dan scanf() justru lebih mirip Bahasa C dan juga lebih sulit dan rumit.
B. Input-Output (I/O) File dalam C++
Sumber : Belajarcpp.com dan Tulisandb.blogspot.com
1. Pemrosesan File Dalam C++
Adapun Pemrosesan File dalam C++ yatu :
- Pemrosesan file dalam C++ dilakukan dengan menggunakan fstream class.
- Tidak seperti struktur FILE, fstream merupakan sebuah complete class dengan constructors, sebuah destructor and overloaded operators.
- Untuk melakukan pemrosesan File, kita bisa mendeklerasikan sebuah instance dari sebuah objek fstream. Jika nama file yang mau diproses tidak diketahui, maka cukup gunakan default
- constructor.
- Tidak seperti struktur FILE, fstream class menyediakan dua buah distinct class untuk pemrosesan file. Satu digunakan untuk menulis sebuah file sedangkan satu lagi untuk membaca sebuah file.
2. Input/Output File
Sebelumnya kita sudah sering melakukan input output berupa karakter di layar menggunakan fungsi
cout
dan cin
yang disediakan oleh pustaka iostream
. Tapi bukan hanya itu, pada Bahasa Pemrograman C/C++ juga menyediakan pustaka yang berfungsi untuk melakukan tugas Input dan Output berupa sebuah file, seperti :ofsteam
: Merupakan sebuah tipe data output yang memungkinkan kita untuk melakukan pembuatan dan menulis informasi pada file.ifstream
: Merupakan sebuah tipe data input yang memungkinkan kita melakukan pembacaan informasi dari file.fstream
: Merupakan sebuah tipe data input output file yang memungkinkan kita untuk melakukan kedua hal tersebut, seperti membuat, menulis dan membaca informasi dari file.
Contoh :
#include <iostream>#include <fstream>using namespace std;int main () {[file example.txt]Writing this to a file.ofstream myfile;myfile.open ("example.txt");myfile << "Writing this to a file.\n";myfile.close();return 0;}
3. Membuka Sebuah File Dalam C++
- Dalam C++, fungsi untuk membuka file adalah open().
- Untuk membuka sebuah file dengan sebuah objek stream object kita menggunakan fungsi open berikut: open (filename, mode);
- Dimana filename adalah sebuah null-terminated character yang bertipe const char * dan merupakan nama file yang akan dibuka.
- mode adalah sebuah parameter tambahan dengan kombinasi flag-flag dibawah ini :
Contoh Untuk Membuat Sebuah File Dalam C++ :
#include <fstream>#include <iostream>using namespace std;int main() {char FirstName[30], LastName[30];int Age; char FileName[20];cout << "Enter First Name: "; cin >> FirstName;cout << "Enter Last Name: "; cin >> LastName;cout << "Enter Age: "; cin >> Age;cout << "\nEnter the name of the file you want to create: ";cin >> FileName;ofstream Students(FileName, ios::out);Students << FirstName << "\n" << LastName << "\n" << Age;cout << "\n\n";return 0;}
Contoh Untuk Membuka Sebuah File Dalam C++ :
#include <fstream>#include <iostream>using namespace std;int main() {char FirstName[30], LastName[30];int Age; char FileName[20];cout << "Enter the name of the file you want to open: ";cin >> FileName;ifstream Students(FileName);Students >> FirstName >> LastName >> Age;cout << "\nFirst Name: " << FirstName;cout << "\nLast Name: " << LastName;cout << "\nEnter Age: " << Age;cout << "\n\n";return 0;}
4. Menutup Sebuah File Dalam C++
Ketika kita selesai dalam melakukan operasi dan berurusan dengan file tersebut, maka disarankan untuk menutupnya. Ketika penutupan file dilakukan maka object dapat digunakan kembali untuk membuka file lainnya dan untuk file yang sudah ditutup maka akan tersedia unuk dibuka pada proses lainnya.
5. Menulis ke sebuah File
Untuk melakukan penulisan terhadap sebuah file yang telah kita buka, membutuhkan sebuah operator yang dinamakan Stream Insertion Operator
<<
mirip seperti apa yang kita lakukan saat menggunakan obyek cout
, sebagai gantinya kita di sini menggunakan ofstream
atau fstream
.6. Membaca sebuah File
Untuk membaca informasi dari sebuah file yang telah kita buka kedalam program kita, membutuhkan sebuah Sream Extraction Operator
>>
. Mirip seperti apa yang kita lakukan saat menggunakan obyek cin
. Sebagai gantinya kita menggunakan ifstream
atau fstream
.7. Contoh Operasi File (Membuka, Menulis, Membaca dan Menutup File)
Setelah semua penjelasan di atas, saatnya kita melakukan percobaan membuat program untuk melakukan operasi file. Alur operasi sebuah file masih sama seperti penjeasan di atas, dimana kita harus membuka file terlebih dahulu, melakukan operasi seperti menulis dan membaca informasi dan jika sudah selesai kita akan melakukan penutupan file.
Contoh Program :
#include <fstream>#include <iostream>using namespace std;int main () {string baris;// membuka file dalam mode menulis.ofstream outfile;// menunjuk ke sebuah nama fileoutfile.open("contohfile.txt");cout << ">= Menulis file, \'q\' untuk keluar" << endl;//unlimited loop untuk menuliswhile(true){cout << "- ";//mendapatkan setiap karakter dalam satu barisgetline(cin, baris);//loop akan berhenti jika anda memasukan karakter qif(baris == "q") break;// menulis dan memasukan nilai dari 'baris' ke dalam fileoutfile << baris << endl;}//selesai dalam menulis sekarang tutup filenyaoutfile.close();//Membuka file dalam mode membacaifstream infile;//menunjuk ke sebuah fileinfile.open("contohfile.txt");cout << endl << ">= Membuka dan membaca file " << endl;//jika file ada makaif (infile.is_open()){//melakukan perulangan setiap baruswhile ( getline (infile,baris) ){//dan tampilkan di sinicout << baris << '\n';}//tutup file tersebut setelah selsaiinfile.close();}//jika tidak ditemukan file maka akan menampilkan inielse cout << "Unable to open file";return 0;}
POINTER DALAM C++
Sumber : Bundet.com dan Belajarcpp.com
Pointer adalah sebuah variabel atau object yang menunjuk ke variabel atau object lainnya. Sebelumnya pernah dijelaskan mengenai Variabel, menyatakan bahwa. “Variabel merupakan sebuah representasi dari alamat memori pada Komputer”.
Dan pointer hanyalah variabel yang menyimpan alamat memori, memori tersebut dapat berasal dari variabel, obyek dan lain-lain. Dengan pointer kita dimungkinkan untuk menunjuk suatu Memori, mendapatkan isi dari memori dan mengubah isi dari memori yang di tunjuk.
A. Macam-macam Operator pada Pointer
Sebelum kita mempelajari pointer, ada dua hal yang perlu anda ketahui. Dalam pointer terdapat 2 (Dua) macam Operator yang akan kita gunakan, yaitu Address-of (&) dan Dereference operator (*).
1. Operator Deference (&)
Operator ini biasanya disebut dengan address of atau operator alamat. Dengan menggunakan operator deference (&) ini, suatu variabel akan menghasilkan alamat memori.
Contoh :
int x = 45;
cout << &x;
Pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.
2. Operator reference (*)
Operator ini biasanya disebut value pointed by. Dengan menggunakan operator ini, kita dapat mengakses secara langsung nilai yang terdapat pada suatu alamat memori.
Contoh :
int x = 45;
cout <<*&x;
Pada program di atas, akan ditampilkan nilai dari alamt memori &x.
B. Macam-macam Operator pada Pointer
Suatu variabel pointer didefinisikan dengan bentuk sebagai berikut :
- tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabel bukan pointer.
- nama_variabel adalah nama variabel pointer.
tipe_data *nama_variabel
Contoh :
#include <iostream.h>#include <conio.h>using namespace std;void main() {int x, y; int *px;x = 89;y = x;px = &x;cout << "Nilai x = " << x << endl;cout << "Nilai y = " << y << endl;cout << "Alamat px = " << px << endl;cout << "Nilai px = " << *px << endl;getch();}
Output :
Nilai x = 89
Nilai y = 89
Alamat px = 0×0012ff88
Nilai px = 89
#include <iostream.h>#include <conio.h>using namespace std;void main() {int x, y;int *px;x = 89;y = x;px = &x;cout << "Nilai x = " << x << endl;cout << "Nilai y = " << y << endl;cout << "Alamat x = " << &x << endl;cout << "Alamat px = " << px << endl;cout << "Nilai px = " << *px << endl;x = 108;cout << "\nNilai x = " << x << endl;cout << "Nilai y = " << y << endl;cout << "Alamat x = " << &x << endl;cout << "Alamat px = " << px << endl;cout << "Nilai px = " << *px << endl;*px = 123;cout << "\nNilai x = " << x << endl;cout << "Nilai y = " << y << endl;cout << "Alamat x = " << &x << endl;cout << "Alamat px = " << px << endl;cout << "Nilai px = " << *px << endl;getch();}
Output :
Nilai x = 89
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 89
Nilai x = 108
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 108
Nilai x = 123
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 123
C. Mendeklarasikan Variabel Pointer
Suatu variabel pointer didefinisikan dengan bentuk sebagai berikut :
- tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabel bukan pointer.
- nama_variabel adalah nama variabel pointer.
tipe_data *nama_variabel
Contoh :
#include <iostream>#include <conio.h>using namespace std;int main() {int x, y; int *px;x = 89;y = x;px = &x;cout << "Nilai x = " << x << endl;cout << "Nilai y = " << y << endl;cout << "Alamat px = " << px << endl;cout << "Nilai px = " << *px << endl;getch();}
Output :
Nilai x = 89
Nilai y = 89
Alamat px = 0×0012ff88
Nilai px = 89
#include <iostream>#include <conio.h>using namespace std;int main() {int x, y;int *px;x = 89;y = x;px = &x;cout << "Nilai x = " << x << endl;cout << "Nilai y = " << y << endl;cout << "Alamat x = " << &x << endl;cout << "Alamat px = " << px << endl;cout << "Nilai px = " << *px << endl;x = 108;cout << "\nNilai x = " << x << endl;cout << "Nilai y = " << y << endl;cout << "Alamat x = " << &x << endl;cout << "Alamat px = " << px << endl;cout << "Nilai px = " << *px << endl;*px = 123;cout << "\nNilai x = " << x << endl;cout << "Nilai y = " << y << endl;cout << "Alamat x = " << &x << endl;cout << "Alamat px = " << px << endl;cout << "Nilai px = " << *px << endl;getch();}
Output :
Nilai x = 89
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 89
Nilai x = 108
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 108
Nilai x = 123
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 123
D. Pointer pada Pointer
Tidak terbatas menunjuk alamat dari suatu variabel, pointer dapat pula menunjuk ke pointer lainnya. Dalam pendeklarasiannya, kita tambahkan pointer reference (*) pada variabel yang akan ditunjuk.
Contoh :
int x;
int *px; //pointer ke variabel int
**ppx; //pointer pada pointer
x = 100;
px = &nama;
ppx = &pNama;
Contoh :
#include <iostream>#include <conio.h>using namespace std;int main() {int x;int *px; //pointer ke variabelint **ppx; //pointer ke pointerx = 175;px = &x;ppx = &px;cout << "Nilai x = " << x << endl;cout << "Nilai px = " << *px << endl;cout << "Nilai ppx = " << **ppx << endl;getch();}
Output :
Nilai x = 175
Nilai px = 175
Nilai ppx = 0×0012ff88
E. Pointer Pada Array
Pada Array/Larik, pointer hanya perlu menunjukan alamat elemen pertama saja karena alamat array dalam memori sudah disusun secara berurutan.
Contoh :
int a[] = {76, 67, 88, 98};
int *pa;
pa = a;
Pernyataan pa=a artinya pointer pa menyimpan alamat array a, yang alamatnya diwakili alamat elemen pertama, yaitu a[0]. Kita juga bisa mengganti perintah pa=a dengan pa=&a[0]. Untuk pembacaan semua elemen array dengan pointer, bisa menggunakan perulangan seperti pada penggalan program berikut.
for (int i=0; i < 4; i++) {
cout << *pa << " ";
pa++;
}
Contoh Program :
#include <iostream>#include <conio.h>#define MAX 5using namespace std;int main() {int a[MAX];int *pa; pa = a; //atau pa = &a[0]for (int i = 0; i < MAX; i++) {cout << "Masukkan Nilai " << i+1 << " : ";cin >> a[i];}cout << endl;for (int i = 0; i < MAX; i++) {cout << "Nilai a[" << i << "] = " << *pa << endl;pa++;}getch();}
Output :
Masukkan Nilai 1 : 100
Masukkan Nilai 2 : 120
Masukkan Nilai 3 : 50
Masukkan Nilai 4 : 80
Masukkan Nilai 5 : 65
Nilai a[0] = 100
Nilai a[1] = 120
Nilai a[2] = 50
Nilai a[3] = 80
Nilai a[4] = 65
F. Pointer pada String
Pointer pada string dapat anda lihat pada contoh program berikut :
#include <iostream>#include <conio.h>using namespace std;int main() {char nama[] = "Albert Einstein";char *pNama = nama;cout << "Nama = " << nama << endl;cout << "pNama = " << pNama << endl;pNama += 7; cout << "\nSetelah pNama += 7" << endl;cout << "Nama = " << nama << endl;cout << "pNama = " << pNama << endl;getch();}
Output :
Nama = Albert Einstein
pNama = Albert Einstein
Setelah pNama += 7
Nama = Albert Einstein
pNama = Einstein
G. Argument Passing
Sumber : Includehelp.com, Belajarcpp.com (Pass by Value), Belajarcpp.com (Pass by Address), dan Belajarcpp.com (Pass by Reference)
Melewati informasi dari fungsi pemanggil (Method) ke fungsi yang dipanggil (method) dikenal sebagai Argument Passing, dengan menggunakan argument passing, kita dapat berbagi informasi dari satu ruang lingkup ke ruang lingkup lainnya dalam Bahasa Pemrograman C++.
Kita dapat meneruskan argumen ke dalam fungsi sesuai kebutuhan. C++ mendukung 3 (Tiga) jenis Argument Passing :
- Pass by Value
- Pass by Reference
- Pass by Address
1. Pass by Value
Pass by value (memberikan nilai) adalah salah satu metode untuk memberikan argumen kepada function parameter di saat pemanggilan function. Pada dasarnya C/C++ memberikan argument kepada funtion parameter dalam bentuk nilai (value). Ketika kita memberikan argument pada function, maka nilai dari argument akan di salin ke dalam function parameter.
Dalam menentukan argument kita dapat membuatnya dalam bentuk nilai, ekspresi, variabel, literal, object, enum dan lain-lain yang mengandung nilai di dalamnya.
Contoh Program :
#include <iostream>using namespace std;int tambah (int a, int b){return a+b;}int main () {cout<<tambah(5,6)<<endl; //pass by valuereturn 0;}
Function parameter sebenarnya hanyalah variabel lokal. Setiap ketentuan yang ada pada variabel lokal berlaku pada function parameter. Perbedaanya adalah hanya pada segi peletakanya.
Contoh Program :
#include <iostream>using namespace std;int tambah (int a, int b){return a+b;}int main () {cout<<tambah(5,6)<<endl; //pass by valuecout<<tambah(19,24)<<endl; //pass by valuecout<<tambah(79,64)<<endl; //pass by valuereturn 0;}
Dari program di atas, terlihat bahwa function kustom tambah() dipanggil berulang kali. Dengan argument yang berbeda-beda. Itu bukan berarti bahwa nilai function parameter selalu diperbaharui setiap function itu di panggil dan diberi argument baru, melainkan function parameternya lah yang selalu baru.
Sama seperti variabel lokal, bahwa function parameter termasuk dalam Automatic duration dengan arti bahwa variabel tersebut hanya akan ada pada saat function tersebut sedang berjalan. sebelum itu dan sesudah itu, semua local variabel di dalamnya akan hilang atau tidak ada.
Contoh Program :
#include <iostream>using namespace std;int ubah(int x){x = 99;cout<<"x = "<<x<<endl;}int main () {int a = 1;cout<<"a = "<<a<<endl;ubah(a); //pass by valuecout<<"a = "<<a<<endl;return 0;}
Perubahan pada function parameter tidak akan berpengaruh pada argument, karena apa yang terjadi adalah function parameter hanya menyalin nilai dari argument dengan arti lain bahwa argument dan function parameter adalah variabel yang berbeda dan berdiri sendiri.
Satu hal terakhir yang perlu anda tahu sebelum melakukan metode pass by value adalah, bahwa metode ini tidak cocok digunakan untuk memberikan argument berupa array, object dan segala sesuatu yang cukup memakan memori besar. karena apa yang terjadi adalah nilai dari argument di salin ke function parameter, hal itu dapat menurunkan performa program Anda.
Contoh Program :
#include <iostream>using namespace std;void myFunction(int a,double b,char c);//function prototypeint main(){int var=29029;myFunction(var-29000,2,'A'); //pass by valuereturn 0;}void myFunction(int a,double b,char c){cout<<"a"<<" = "<<a<<endl;cout<<"b"<<" = "<<b<<endl;cout<<"c"<<" = "<<c<<endl<<endl;}
2. Pass by Address
Pass by address kadang juga disebut sebagai Pass by pointer. adalah salah satu metode untuk memberikan argument kepada function parameter saat pemanggilan function, dengan memanfaatkan pointer dereference *.
//function parameter
int myFunction (int *par){
}
//function parameter
myFunction(&var);
Function parameter merupakan sebuah variable, hal yang berbeda antara function parameter dan variabel hanyalah pada penepatanya. Karena function parameter merupakan variabel, maka saat pembuatan function parameter kita juga dimungkinkan untuk menggunakan operator dereference, untuk membuat function parameter berupa variabel pointer.
Pointer merupakan variabel yang dapat menunjuk ke sebuah alamat memori, atau dalam pengertian lain yaitu, variabel yang memiliki kemampuan untuk memiliki alamat memori sebagai nilai dari variabel pointer tersebut. dari variabel pointer kita dimungkinkan untuk mengakses nilai dari alamat memori yang ditunjuk.
Dalam segi pemberian argument kepada function parameter mirip seperti metode pass by value, ketika kita memberikan argument kepada function parameter, apa yang terjadi adalah nilai dari argument yang diberikan akan disalin dan diberikan kepada function parameter.
Tapi ketahui bahwa pointer hanya dapat menyimpan alamat memori sebagai nilai dari variabel pointer dan, perbedaanya antara pass by value dan pass by address adalah, nilai yang disalin pada metode pass by address merupakan alamat memori.
Contoh Program :
#include <iostream>using namespace std;void myFunction(int *x){*x = *x+1;cout<<"x = "<<x<<" = "<<*x<<endl;}int main(){int a=2;cout<<"a = "<<&a<<" = "<<a<<endl;myFunction(&a);cout<<"a = "<<&a<<" = "<<a<<endl;}
Cara mengoperasikan variabel pointer pada function parameter masih sama seperti kita mengoperasikan variabel pointer dengan metode Lvalue dan Rvalue.
int *lvalue = &rvalue;
Untuk memberikan nilai yang berupa alamat memoir dari sebuah variabel ke sebuah variabel pointer, meskipun variabel pointer tersebut merupakan function parameter, kita tetap akan membutuhkan operator Address-of &.
Pada contoh program di atas kita diperlihatkan kemampuan dari penggunaan pemberian argument dengan metode pass by address. Pada program di atas function parameter x memiliki kemampuan dapat mengakses variabel a yang diberikan sebagai argument, Meskipun variabel tersebut berada pada luar function.
Pada program di atas kita diperlihatkan bahwa function parameter x dapat mengubah dan melihat nilai dari variabel a yang berada di luar function dan diakses secara langsung.
Contoh Program :
#include <iostream>using namespace std;void cetakArrayInt(int *theArr, int panjang){//Jika argumen adalah nullif(!theArr){cout<<"Array tidak ditemukan"<<endl;return;}//jika array kosongif(!panjang){cout<<"Array kosong"<<endl;return;}for(int i=0; i<panjang; i++){cout<<theArr[i]<<" ";}}int main(){int myArr[]={2, 3, 5, 8, 1};cetakArrayInt(myArr, sizeof(myArr)/sizeof(int));return 0;}
Setelah penyampain 3 artikel, yaitu pass by value, pass by reference dan pass by address. Bertujuan untuk memberikan pemahaman, cara-cara dan metode yang mungkin dapat anda gunakan di masa mendatang.
Dari ketiga metode tersebut masing-masing memiliki kelebihan dan kekurangan. tapi penulis tidak mencoba untuk menyampaikan perbandingan dan mencari tau metode yang terbaik untuk digunakan, karena ketiga metode tersebut saling melengkapi dan masing-masing berguna dalam dalam situasi tertentu.
3. Pass by Reference
Pass by Reference adalah salah satu metode pemberian argument kepada function parameter saat pemanggilan function, dengan memanfaatkan reference pada function parameter.
Pada pembuatan function parameter kita dimungkinkan untuk menggunakan reference. metode ini tidak jauh beda dengan pass by value, keduanya merupakan metode yang memberikan argument kepada parameter. Tapi hal yang berbeda di sini adalah bagaimana function parameter menerima argument tersebut.
//parameter
void myFunction (int &a,int &b){
}
//pemanggilan
myfunction (argument1,argument2);
Pada pass by value kita mengetahuhi sifat dari metode pass by value, yaitu ketika kita memberikan argument kepada function parameter, yang CPU lakukan adalah nilai dari variabel argument akan disalin kepada variabel function paremeter, keduanya akan berdiri sendiri sebagai variabel.
Jadi ketka nterjad perubahan nilai pada function parameter tidak akan mempengaruhi argument, Nilai pada argument akan selalu aman saat function tersebut sedang berjalan.
Contoh Program :
#include <iostream>using namespace std;void myF(int x);//function prototypeint main(){int a=1;cout<<"a = "<<a<<endl;myF(a);cout<<"a = "<<a<<endl;return 0;}void myF(int x){x++;cout<<"x = "<<x<<endl;}
Tapi hal itu akan berbeda jika kita menggunakan reference pada function parameter. Reference pada function parameter masih memiliki fungsi yang sama seperti kita menggunakanya pada variabel biasa. Apa yang terjadi pada argument adalah cpu akan membuat function parameter sebagai referensi dari argument, atau dengan arti lain bahwa function parameter akan menjadi alias / variabel dari memori argument yang deberikan.
Jadi function parameter akan menjadi argument tersebut dengan identitas berbeda, apapun yang terjadi pada nilai function parameter maka akan berpengaruh kepada argument tersebut. hal itu terjadi karena function parameter dan argument memiliki satu memori yang sama.
Contoh Program :
#include <iostream>using namespace std;void myF(int &x);int main(){int a=1;cout<<"a = "<<a<<endl;myF(a);cout<<"a = "<<a<<endl;return 0;}void myF(int &x){x++;cout<<"x = "<<x<<endl;}
Untuk membuktikan hal tersebut, kalian bisa melihat pada contoh program di atas. Semua perubahan nilai pada function parameter &x dari function kustom myF() akan berpengaruh juga pada argument a pada function utama int main().
Fungsi dari metode ini biasanya digunakan untuk mengembalikan nilai. saat kita mengoperasikan sebuah function kustom, terkadang kita menginginkan function kustom tersebut dapat mengembalikan nilai yang lebih dari satu. Kadang ini tidak dimungkinkan jika kita menggunakan keyword return.
Dan metode ini bisa kita gunakan untuk mengatasi permasalahan tersebut. kita dapat membuat function kustom yang dapat mengembalikan nilai lebih dari satu. Nilai yang dikembalikan tidak perlu menjadi RValue tapi akan langsung diberikan kebada argument.
Contoh Program :
#include <iostream>using namespace std;void naik_turun(int &penaikan, int &penurunan, int nilai, int jumlah);//function prototypeint main(){int hasilNaik=0, hasilTurun=0, nilai=10;naik_turun(hasilNaik, hasilTurun, nilai, 3);cout<<"hasilNaik = "<<hasilNaik<<endl;cout<<"hasilTurun = "<<hasilTurun<<endl;return 0;}void naik_turun(int &penaikan, int &penurunan, int nilai, int jumlah){penaikan = nilai + jumlah;penurunan = nilai - jumlah;}
Bukan hanya itu saja keuntungan dalam menggunakan metode ini. Metode pass by reference juga dapat meningkatkan performa program anda, khususnya saat kita mencoba untuk memberikan variabel yang cukup besar seperti array, object dan lain-lain.
Jika kalian ingin menggunakan pass by reference untuk menambahkan performa program anda tapi tidak ingin nilai dari argument dapat di ubah anda dapat mendambahkan fitur konstanta pada function parameter, dengan itu nilai dari argumen akan tetap aman.
Vector adalah Standard Template Library (STL) jika di dalam C/C++ memiliki bentuk
std::vector
. Umumnya, Vector mirip seperti Array yang memiliki kemapuan untuk menyimpan data dalam bentuk elemen-elemen yang alokasi memorinya dilakukan otomatis dan bersebelahan.Perbedaan signifikan dalam array dan vector terdapat pada fitur, dimana jika array memiliki ukuran elemen statis atau akan tetap sepanjang runtime berdasarkan saat pengkodingan, sedangkan pada vector, ukuran memori bersifat dinamis saat runtime.
A. Kemampuan Vector
Kemampuan vector bukan hanya pada jumlah elemen yang dinamis, vector pada C/C++ juga dilengkapi dengan fitur-fitur pelengkap seperti element access, iterators, capacity, modifiers.
dan berikut merupakan beberapa function umum yang sering digunakan untuk melakukan pengolahan data pada vector adalah :
vector::assign
, vector::at
, vector::back
, vector::begin
, vector::capacity
, vector::cbegin
, vector::cend
, vector::clear
, dan masih banyak lagi.B. Cara Membuat Vector
Untuk membuat vector dalam Bahasa pemrograman C/C++, dibutuhkan header untuk mendapatkan kata kunci
std::vector
diikuti dengan penentuan tipe data, identitas dari variabel dan jumlah elemen.Bentuk deklarasi std::vector :
std:vector<tipe data> identitas(jumlah_elemen);
Catatan : Jumlah_elemen merupakan opsional, jika tidak disertakan maka komputer akan otomatis menentukan berdasarkan inisialisasi variabel.
Contoh Deklarasi :
//vector x yang berisi integer
vector<int> x = {4, 2, 3, 3, 4, 5};
//vector y yang berisi string
vector<string> y = {"tak kenal", "maka", "kenalan"};
C. Cara Menggunakan Vector
Untuk menggunakan dan mengakses data dalam vector, sama seperti array yang membutuhkan subscript
[]
untuk mengarah ke elemen yang spesifik.Bentuk Penulisan :
variabel_vector[nomer_elemen];
Contoh Program :
#include <vector>#include <iostream>using namespace std;int main(){vector<int> nomer = {1,2,3};int no_elemen = 1;//memodifikasi nilainomer[no_elemen] = 10;//melihat nilaicout<<"nilai dari elemen "<<no_elemen<<" adalah "<<nomer[no_elemen];return 0;}
D. Macam-macam member function dari std::vector
Vector memiliki banyak member function yang digunakan untuk melakukan pengolahan data pada vector dan member function pada vector bisa dikategorikan menjadi 5 (Lima) Jenis, yaitu :
- Dasar merupakan kumpulan function umum, seperti: (constructor), (destructor), assign/operator
=
, danget_allocator
. - Akses Elemen atau Element Access, merupakan jenis yang digunakan untuk melakukan pengaksesan pada vector, seperti
at
, operator[]
,front
,back
, dandata
(C++11), - Iterators merupakan kumpulan function yang digunakan untuk melakukan operasi iterasi dalam vector, yaitu
begin
/cbegin
(C++11),end
/cend
(C++11),rbegin
/crbegin
(C++11), danrend
/crend
(C++11). - Kapasitas atau Capacity merupakan jenis-jenis member function yang digunakan untuk operasi kapasitas pada vector, yaitu
empty
,size
,max_size
,reserve
,capacity
, danshrink_to_fit
(C++11) - Pengubah atau Modifiers merupakan kumpulan member function yang memiliki jenis untuk melakukan operasi data pada vector, yaitu
clear
,insert
,emplace
(C++11),erase
,push_back
,emplace_back
(C++11),pop_back
,resize
, danswap
.
Untuk detail cara menggunakan member-member function yang disediakan oleh Vector C++ STL, akan penulis pisah pada artikel selanjutnya.
CONTOH PROGRAM DENGAN BAHASA C++
Sumber lainnya : W3resource.com dan Duniailkom.com
Dan berikut, inilah Contoh Program Sederhana hingga Kompleks dengan Bahasa C++ :
Luas Segitiga
#include <iostream>#include <conio.h>using namespace std;int main() {float luas;int a, t;cout<<"Masukan Alas : ";cin>>a;cout<<"Masukan Tinggi : ";cin>>t;cout<<endl;luas = 0.5*a*t;cout<<"Luas Segitiga = "<<luas<<endl;getch();}
Luas dan Keliling Persegi
#include <iostream>using namespace std;int main (){float sisi, keliling, luas;cout<<"PROGRAM MENGHITUNG LUAS & KELILING PERSEGI "<<endl;cout<<"---------------------------------------------"<<endl;cout<<"Masukan Sisi \t: ";cin>>sisi;keliling = 4*sisi;luas = sisi*sisi;cout<<"Keliling Persegi : "<<keliling<<endl;cout<<"Luas Persegi \t : "<<luas<<endl;return 0;}
Luas dan Keliling Persegi Panjang
#include <iostream>using namespace std;int main (){float panjang, lebar, keliling, luas;cout<<"PROGRAM MENGHITUNG LUAS & KELILING PERSEGI PANJANG"<<endl;cout<<"--------------------------------------------------"<<endl;cout<<"Masukan Panjang\t\t: ";cin>>panjang;cout<<"Masukan Lebar\t\t: ";cin>>lebar;keliling = 2*(panjang+lebar);luas = panjang*lebar;cout<<"Keliling Persegi Panjang : "<<keliling<<endl;cout<<"Luas Persegi Panjang\t : "<<luas<<endl;return 0;}
Luas dan Keliling Lingkaran
#include <iostream>using namespace std;int main(){cout << "==============================================" << endl;cout << "Program Menghitung Keliling dan Luas Lingkaran" << endl;cout << "==============================================" << endl;cout << endl;float r, keliling, luas;double pi = 3.1416;cout << "Input Jari-jari Lingkaran: ";cin >> r;keliling = 2*pi*r;luas = pi*r*r;cout << "Keliling Lingkaran = "<< keliling << endl;cout << "Luas Lingkaran = "<< luas << endl;return 0;}
Volume dan Luas Permukaan Kubus
#include <iostream>using namespace std;int main (){float sisi, luas_permukaan, volume;cout<<"PROGRAM MENGHITUNG VOLUME & LUAS PERMUKAAN KUBUS "<<endl;cout<<"---------------------------------------------------"<<endl;cout<<"Masukan Sisi \t: ";cin>>sisi;luas_permukaan = 6*sisi*sisi;volume = sisi*sisi*sisi;cout<<"Luas Permukaan Kubus : "<<luas_permukaan<<endl;cout<<"Volume Kubus \t : "<<volume<<endl;return 0;}
Volume dan Luas Permukaan Balok
#include <iostream>using namespace std;int main (){float panjang, lebar, tinggi, luas_permukaan, volume;cout<<"PROGRAM MENGHITUNG VOLUME & LUAS PERMUKAAN BALOK"<<endl;cout<<"------------------------------------------------"<<endl;cout<<"Masukan Panjang\t\t: ";cin>>panjang;cout<<"Masukan Lebar\t\t: ";cin>>lebar;cout<<"Masukan Tinggi\t\t: ";cin>>tinggi;luas_permukaan = 2*(panjang*lebar + panjang*tinggi + lebar*tinggi);volume = panjang*lebar*tinggi;cout<<"Luas Permukaan Balok : "<<luas_permukaan<<endl;cout<<"Volume Balok : "<<volume<<endl;return 0;}
Volume dan Luas Permukaan Tabung
#include <iostream>using namespace std;int main(){float r, t, volume, luas_permukaan;double pi = 3.1416;cout << "\nPROGRAM MENGHITUNG LUAS & VOLUME TABUNG"<<endl;cout <<"Masukan Jari-jari Lingkaran : ";cin >> r;cout <<"Masukan Tinggi Tabung : ";cin >> t;volume = pi*r*r*t;luas_permukaan = 2*pi*r*(r+t);cout <<"Volume Tabung : "<< volume <<endl;cout <<"Luas Permukaan Tabung : "<< luas_permukaan;return 0;}
Volume dan Luas Permukaan Kerucut
#include <iostream>using namespace std;int main(){float pi = 3.1416;float rusuk, tinggi, s;float luas_permukaan, volume;cout << "\tPROGRAM MENGHITUNG LUAS & VOLUME KERUCUT"<<endl;cout << "Masukkan Rusuk : ";cin >> rusuk;cout << "Masukkan Tinggi : ";cin >> tinggi;cout << "Masukkan Garis Pelukis : ";cin >> s;luas_permukaan = pi * rusuk * (rusuk + s);volume = 1/(float)3 * pi * rusuk * rusuk * tinggi;cout <<"Volume Kerucut : "<< volume <<endl;cout <<"Luas Permukaan Kerucut : "<< luas_permukaan<<endl;}
Volume dan Luas Permukaan Bola
#include <iostream>using namespace std;int main (){cout<<"PROGRAM MENGHITUNG LUAS & VOLUME BOLA"<<endl;const float pi=3.14;float rusuk, luas_permukaan, volume;cout<<"Masukkan Rusuk : ";cin>>rusuk;cout<<endl;luas_permukaan = 4*pi * rusuk*rusuk;volume = 4 / (float) 3 * pi * rusuk*rusuk*rusuk;cout<<"Luas Permukaan Bola : "<<luas_permukaan<<endl;cout<<"Volume Bola : "<<volume<<endl;return 0;}
Operasi Hitung Aritmatika
#include<iostream>using namespace std;int main() {double angka1, angka2, hasil;cout <<"Masukan Angka Pertama : ";cin>>angka1;cout <<"Masukan Angka Kedua : ";cin>> angka2;hasil = angka1 + angka2;cout<<"Penjumlahan = "<<hasil<<endl;hasil = angka1 - angka2;cout<<"Pengurangan = "<<hasil<<endl;hasil = angka1 * angka2;cout<<"Perkalian = "<<hasil<<endl;hasil = angka1 / angka2;cout<<"Pembagian = "<<hasil<<endl;}
Operasi Hitung Perbandingan
#include<iostream>using namespace std;int main() {double angka1, angka2;bool hasil;cout <<"Masukan Angka Pertama : ";cin>>angka1;cout <<"Masukan Angka Kedua : ";cin>> angka2;hasil = angka1 == angka2;cout<<"a = b : "<<hasil<<endl;hasil = angka1 != angka2;cout<<"a != b : "<<hasil<<endl;hasil = angka1 > angka2;cout<<"a > b : "<<hasil<<endl;hasil = angka1 < angka2;cout<<"a < b : "<<hasil<<endl;hasil = angka1 >= angka2;cout<<"a >= b : "<<hasil<<endl;hasil = angka1 <= angka2;cout<<"a <= b : "<<hasil<<endl;}
Operator Logika
#include<iostream>using namespace std;int main() {int angka1, angka2;bool hasil;cout <<"Masukan Angka Pertama : ";cin>>angka1;cout <<"Masukan Angka Kedua : ";cin>> angka2;hasil = angka1 & angka2;cout<<"a & b : "<<hasil<<endl;hasil = angka1 && angka2;cout<<"a && b : "<<hasil<<endl;hasil = angka1 | angka2;cout<<"a | b : "<<hasil<<endl;hasil = angka1 || angka2;cout<<"a || b : "<<hasil<<endl;hasil = angka1 ^ angka2;cout<<"a ^ b : "<<hasil<<endl;}
Akar Persamaan Kuadrat
#include <iostream>#include <math.h>using namespace std;int main(){int a, b, c, D;float x1, x2;cout<<"Masukan nilai a : ";cin>>a;cout<<"Masukan nilai b : ";cin>>b;cout<<"Masukan nilai c : ";cin>>c;cout<<endl;cout<<"Bentuk Persamaan :"<<endl;cout<<a<<"x^2 + "<<b<<"x + "<<c<<" = 0"<<endl;cout<<"\nAkar-Akar Persamaan Kuadratnya adalah :"<<endl;D=(b*b)-(4*a*c);if (D>0){x1 = (-b + sqrt(D)) / (2*a);x2 = (-b - sqrt(D)) / (2*a);}else if (D==0){x1 = (-b + sqrt(D)) / (2*a);x2 = x1;}else {cout<<"\nAkar Imajiner"<<endl;exit(0);}cout<<"X1 = "<<x1<<endl;cout<<"X2 = "<<x2<<endl;}
Program Besaran Vektor dalam Fisika
#include <iostream>#include <math.h>using namespace std;int main(){int a, b;float R, theta;cout<<"Program Vektor dalam Fisika"<<endl;cout<<"Masukkan nilai A : ";cin>>a;cout<<"Masukkan nilai B : ";cin>>b;cout<<"\nResultan Dua Vektor Sejajar"<<endl;R = abs(a+b);cout<<"R = |"<<a<<"+"<<b<<"| = "<<R<<endl;cout<<"\nResultan Dua Vektor yang Saling Tegak Lurus"<<endl;R = sqrt(a*a+b*b);theta = atan(b/a);cout<<"R = sqrt("<<a<<"^2+"<<b<<"^2) = "<<R<<endl;cout<<"tan(Īø) = "<<b<<"/"<<a<<", Īø = tan^-1("<<b<<"/"<<a<<") = "<<theta<<"°"<<endl;return 0;}
Program Rumus Kecepatan (Fisika)
#include <iostream>using namespace std;int main(){float kecepatan, waktu, jarak;int pilih;cout<<" PROGRAM RUMUS KECEPATAN DALAM FISIKA "<<endl;cout<<"==============================================="<<endl;cout<<" Keterangan "<<endl;cout<<"1. v = Kecepatan (m/s)"<<endl;cout<<"2. t = Waktu (s)"<<endl;cout<<"3. s = Jarak (m)"<<endl;cout<<"==============================================="<<endl;cout<<"Masukan Pilihan : ";cin>>pilih;if (pilih == 1) {int distance, time;cout<<"Anda ingin mencari Kecepatan"<<endl;cout<<"Rumus : v = s/t"<<endl;cout<<"============================================"<<endl;cout<<"Masukkan Jarak (m) : ";cin>>distance;cout<<"Masukkan Waktu (s) : ";cin>>time;kecepatan = distance/time;cout<<"v = "<<kecepatan<<" m/s"<<endl;}else if (pilih == 2) {int distance, velocity;cout<<"Anda ingin mencari Waktu"<<endl;cout<<"Rumus : t = s/v"<<endl;cout<<"============================================"<<endl;cout<<"Masukkan Jarak (m) : ";cin>>distance;cout<<"Masukkan Kecepatan (m/s) : ";cin>>velocity;waktu = distance/velocity;cout<<"t = "<<waktu<<" s"<<endl;}else if (pilih == 3) {int velocity, time;cout<<"Anda ingin mencari Jarak"<<endl;cout<<"Rumus : s = v*t"<<endl;cout<<"============================================"<<endl;cout<<"Masukkan Kecepatan (m/s) : ";cin>>velocity;cout<<"Masukkan Waktu (s) : ";cin>>time;jarak = velocity*time;cout<<"s = "<<jarak<<" m"<<endl;}else {cout<<"Invalid";}}
Kode Hamming
#include<iostream>using namespace std;int main() {int data[10];int dataatrec[10],c,c1,c2,c3,i;cout<<"Enter 4 bits of data one by one\n";cin>>data[0];cin>>data[1];cin>>data[2];cin>>data[4];//Calculation of even paritydata[6]=data[0]^data[2]^data[4];data[5]=data[0]^data[1]^data[4];data[3]=data[0]^data[1]^data[2];cout<<"\nEncoded data is\n";for(i=0;i<7;i++)cout<<data[i];cout<<"\n\nEnter received data bits one by one\n";for(i=0;i<7;i++)cin>>dataatrec[i];c1=dataatrec[6]^dataatrec[4]^dataatrec[2]^dataatrec[0];c2=dataatrec[5]^dataatrec[4]^dataatrec[1]^dataatrec[0];c3=dataatrec[3]^dataatrec[2]^dataatrec[1]^dataatrec[0];c=c3*4+c2*2+c1;if(c==0) {cout<<"\nNo error while transmission of data\n";}else {cout<<"\nError on position "<<c;cout<<"\nData sent : ";for(i=0;i<7;i++)cout<<data[i];cout<<"\nData received : ";for(i=0;i<7;i++)cout<<dataatrec[i];cout<<"\nCorrect message is\n";//if errorneous bit is 0 we complement it else vice versaif(dataatrec[7-c]==0)dataatrec[7-c]=1;elsedataatrec[7-c]=0;for (i=0;i<7;i++) {cout<<dataatrec[i];}}return 0;}
Memeriksa Tahun Kabisat
#include <iostream>using namespace std;int main(){cout<<"Program Cek Tahun Kabisat (Masehi/Gregorian)"<<endl;cout<<"============================================"<<endl;cout<<endl;int day, year;cout<<"Input Tahun : ";cin>>year;if (year%400==0){day=366;cout<<year<<" adalah Tahun Kabisat"<<endl;cout<<"Jumlah Hari : "<<day<<endl;}else if (year%100==0){day=365;cout<<year<<" bukan Tahun Kabisat"<<endl;cout<<"Jumlah Hari : "<<day<<endl;}else if (year%4==0){day=366;cout<<year<<" adalah Tahun Kabisat"<<endl;cout<<"Jumlah Hari : "<<day<<endl;}else{day=365;cout<<year<<" bukan Tahun Kabisat"<<endl;cout<<"Jumlah Hari : "<<day<<endl;}return 0;}
Program Mencetak Tanda Bintang
#include <iostream>using namespace std;int main(){cout<<" Program Mencetak Tanda Bintang "<<endl;cout<<"====================================="<<endl;cout<<" Opsi Menu "<<endl;cout<<"1. Persegi Bintang "<<endl;cout<<"2. Persegi Panjang Bintang "<<endl;cout<<"3. Segitiga Bintang "<<endl;cout<<"4. Segitiga Bintang Terbalik "<<endl;cout<<"5. Piramida Bintang "<<endl;cout<<"6. Piramida Bintang Terbalik "<<endl;cout<<"====================================="<<endl;cout<<endl;int opsi, n, m, i, j, k;cout<<"Pilih Opsi : ";cin>>opsi;if (opsi==1){cout<<"\n1. Persegi Bintang"<<endl;cout<<"Masukkan Jumlah Persegi : ";cin>>n;cout<<endl;for(i=1; i<=n; i++){for(j=1; j<=n; j++){cout<<" *";}cout<<endl;}}else if (opsi==2){cout<<"\n2. Persegi Panjang Bintang"<<endl;cout<<"Input Tinggi Persegi : ";cin>>n;cout<<"Input Lebar Persegi : ";cin>>m;cout<<endl;for(i=1; i<=n; i++) {for(j=1; j<=m; j++) {cout << " *";}cout<<endl;}}else if (opsi==3){cout<<"\n3. Segitiga Bintang"<<endl;cout<<"Masukkan Tinggi Segitiga : ";cin>>n;cout << endl;for(i=1; i<=n; i++) {for(j=1; j<=i; j++) {cout << " *";}cout<<endl;}}else if (opsi==4){cout<<"\n4. Segitiga Bintang Terbalik"<<endl;cout<<"Masukkan Tinggi Segitiga : ";cin>>n;cout << endl;for(i = 0; i<n; i++) {for(j = 1; j<=n-i; j++) {cout << " *";}cout<<endl;}}else if (opsi==5){cout<<"\n5. Piramida Bintang"<<endl;cout<<"Masukkan Tinggi Piramida : ";cin>>n;cout << endl;for(i=1; i<=n; i++) {for(j=1; j<=n-i; j++) {cout << " ";}for(k=1; k<=i; k++) {cout << " *";}cout << endl;}}else if (opsi==6){cout<<"\n6. Piramida Bintang Terbalik"<<endl;cout<<"Masukkan Tinggi Piramida : ";cin>>n;cout << endl;for(i=0; i<n; i++) {for(j=1; j<=i; j++) {cout << " ";}for(k=1; k<=n-i; k++) {cout << " *";}cout << endl;}}else{cout<<"Invalid"<<endl;}return 0;}
Faktorial Iteratif
#include <iostream>using namespace std;int factorial(int);int main(){int i;cout<<"Masukkan Nilai : ";cin>>i;if (i<0)cout<<"Bukan Bilangan Asli";elsecout<<i<<"! = "<<factorial(i)<<endl;return 0;}int factorial(int i){int result=1;for (int n=1; n<=i; n++){result *= n;}return result;}
Faktorial Rekursif
#include <iostreamusing namespace std;int hitungFactorial(int input) {if(input > 1)return input * hitungFactorial(input - 1);elsereturn 1;}int main(){cout << "Program C++ Hitung Faktorial" << endl;cout << "============================" << endl;cout << endl;int angka;cout << "Input Angka : ";cin >> angka;cout << angka << "! = " << hitungFactorial(angka);cout << endl;return 0;}
Perpangkatan Iteratif (Iterative Exponentiation)
#include <iostream>using namespace std;int main () {cout<<"--------------------------------"<<endl;cout<<" Program Pangkat Bilangan "<<endl;cout<<"--------------------------------"<<endl;int hasil = 1;int angka, pangkat;cout<<"Angka : ";cin>>angka;cout<<"Pangkat : ";cin>>pangkat;for(int i=1;i<=pangkat;i++){hasil=hasil*angka;}cout<<"Hasil : "<<hasil<<endl;}
Perpangkatan Rekursif (Recursive Exponentiation)
#include <iostream>using namespace::std;int pangkatRekursif(int angka, int pangkat){if(pangkat==0)return 1;elsereturn angka*pangkatRekursif(angka,(pangkat-1));}int main(){int angka,pangkat;cout<<"----------------\n";cout<<"| Pangkat |\n";cout<<"----------------\n";cout<<"Angka : ";cin>>angka;cout<<"Pangkat : ";cin>>pangkat;cout<<"--------------- \n";cout<<"Hasil : "<<pangkatRekursif(angka,pangkat);cout<<endl;}
Tetrasi (Tetration)
#include <conio.h>#include <iostream>#include <math.h>using namespace std;int tetrasi(float angka, double tetra){if(tetra==0)return 1;elsereturn pow(angka, tetrasi(angka, tetra-1));}int main(){long angka,tetra;cout<<"----------------\n";cout<<"| Tetrasi |\n";cout<<"----------------\n";cout<<"Angka : ";cin>>angka;cout<<"Tetrasi : ";cin>>tetra;cout<<"--------------- \n";cout<<"Hasil : "<<tetrasi(angka,tetra);cout<<endl;}
Fungsi Ackermann (Ackermann Function)
#include <iostream>using namespace std;int ack(int m, int n){if (m == 0){return n + 1;}else if((m > 0) && (n == 0)){return ack(m - 1, 1);}else if((m > 0) && (n > 0)){return ack(m - 1, ack(m, n - 1));}}int main(){int x, y, A;cout<<"Ackermann Function A(x, y)"<<endl;cout<<"Insert value of x : ";cin>>x;cout<<"Insert value of y : ";cin>>y;A = ack(x, y);cout<<"A("<<x<<", "<<y<<") = "<<A<<endl;}
Deret Bilangan Ganjil
#include <iostream>using namespace std;int main(){int batas;cout<<"-----------------------------------"<<endl;cout<<"Program Deret Bilangan Ganjil "<<endl;cout<<"-----------------------------------"<<endl;cout<<"Masukan Batas : ";cin>>batas;cout<<endl;for(int i=1;i<=batas;i++){if (i%2!=0)cout<<i<<" ";}}
Deret Bilangan Genap
#include <iostream>using namespace std;int main(){int batas;cout<<"-----------------------------------"<<endl;cout<<"Program Deret Bilangan Genap "<<endl;cout<<"-----------------------------------"<<endl;cout<<"Masukan Batas : ";cin>>batas;cout<<endl;for(int i=1;i<=batas;i++){if (i%2==0)cout<<i<<" ";}}
Deret Bilangan Ganjil-Genap
#include <iostream>using namespace std;int main(){int pil,batas;cout<<"-----------------------------------"<<endl;cout<<"Program Deret Bilangan Ganjil Genap"<<endl;cout<<"-----------------------------------"<<endl;cout<<"Pilihan : "<<endl;cout<<"1. Ganjil "<<endl;cout<<"2. Genap "<<endl;cout<<"-----------------------------------"<<endl;cout<<"Masukan Pilihan : ";cin>>pil;cout<<"Masukan Batas : ";cin>>batas;cout<<endl;if (pil == 1){cout<<"Deret Bilangan Ganjil"<<endl;for(int i=1;i<=batas;i++){if (i%2!=0)cout<<i<<" ";}}else if (pil == 2){cout<<"Deret Bilangan Genap"<<endl;for(int i=1;i<=batas;i++){if (i%2==0)cout<<i<<" ";}}else {cout<<"Invalid"<<endl;}}
Deret Bilangan Prima
#include <iostream>using namespace std;int main(){int bil, awal, akhir;cout<<"Program Deret Bilangan Prima"<<endl;cout<<"Mulai dari : ";cin>>awal;cout<<"Sampai : ";cin>>akhir;cout<<"-----------------------------"<<endl;cout<<endl;for (int i=awal; i<=akhir; i++){bil=0;for (int j=1;j<=i;j++){if (i%j==0){bil=bil+1;}}if (bil==2){cout<<i<<" ";}}}
Menentukan Deret Bilangan Prima
#include <iostream>using namespace std;int ambil(int bil, int i){if (i == 1) {return 1;}else if (bil % i == 0) {return 1 + ambil(bil, --i);} else {return 0 + ambil(bil, --i);}}int cek(int bil){if (bil > 1) {return (ambil(bil, bil) == 2);}elsereturn false;}int main(){int bil;cout<<"PROGRAM MENENTUKAN BILANGAN PRIMA ATAU BUKAN"<<endl;cout<<"Masukan Bilangan : ";cin>>bil;if (cek(bil)){cout<<"Bilangan Prima"<<endl;}else {cout<<"Bukan Bilangan Prima"<<endl;}return 0;}
Deret Fibonacci
#include <iostream>using namespace std;int main(){int n, f1 = 0, f2 = 1, next = 0;cout<< "PROGRAM DERET BILANGAN FIBONACCI"<<endl;cout <<"Masukan Batas Deret Bilangan Fibonacci : ";cin >> n;cout << "Deret Fibonacci : ";for (int i = 1; i <= n; ++i){if(i == 1){cout << " " << f1 << " ";continue;}if(i == 2){cout << f2 << " ";continue;}next = f1 + f2;f1 = f2;f2 = next;cout << next << " ";}return 0;}
Deret Lucas
#include <iostream>using namespace std;int main(){int n, l1 = 1, l2 = 3, next = 0;cout<< "PROGRAM DERET BILANGAN LUCAS"<<endl;cout <<"Masukan Batas Deret Bilangan Lucas : ";cin >> n;cout << "Deret Lucas : ";for (int i = 1; i <= n; ++i){if(i == 1){cout << " " << l1 << " ";continue;}if(i == 2){cout << l2 << " ";continue;}next = l1 + l2;l1 = l2;l2 = next;cout << next << " ";}return 0;}
Barisan dan Deret Bilangan Aritmatika
#include <iostream>using namespace std;int main(){cout<<"Program Barisan Deret Aritmatika"<<endl;cout<<"================================"<<endl;cout<<endl;int a,b,n,i,hasil;cout<<"Masukan Suku Awal : ";cin>>a;cout<<"Masukan Banyak Suku : ";cin>>n;cout<<"Masukan Beda : ";cin>>b;cout<<endl;cout<<"Barisan Aritmatika : "<<endl;for(i=0;i<n;i++){cout<<a+(i*b)<<" ";}cout<<"\nDeret Aritmatika : "<<(2*a+(n-1)*b)*n/2;return 0;}
Menghitung Nilai Rata-rata dengan Array
#include <iostream>#include <conio.h>using namespace std;int main(){int i, n, data[100];float rata,jum;cout<<"Banyaknya Data : ";cin>>n;cout<<endl;for (i=0; i<n; i++){cout<<"Data ke-"<<i+1<<" : ";cin>>data[i];jum += data[i];}rata=jum/n;cout<<endl;cout<<"Nilai Total : "<<jum<<endl;cout<<"Nilai Rata-rata : "<<rata<<endl;getch();}
Konversi Suhu (Dari Celsius)
#include <iostream>using namespace std;int main(){cout<<"Program Konversi Suhu Celsius"<<endl;cout<<"============================="<<endl;cout<<endl;float cels, fahr, ream, rnke, kelv;cout<<"Input Suhu Celsius : ";cin>>cels;cout<<endl;fahr = (9/5 * cels) + 32;ream = cels * (4/5);rnke = (cels + 273.15) * 9/5;kelv = cels + 273.15;cout << cels << " Derajat Celsius = " << fahr << " Derajat Fahrenheit" << endl;cout << cels << " Derajat Celsius = " << ream << " Derajat Reamur" << endl;cout << cels << " Derajat Celsius = " << rnke << " Derajat Rankine" << endl;cout << cels << " Derajat Celsius = " << kelv << " Kelvin" << endl;return 0;}
Konversi Suhu (Dari Fahrenheit)
#include <iostream>using namespace std;int main(){cout<<"Program Konversi Suhu Fahrenheit"<<endl;cout<<"================================"<<endl;cout<<endl;float cels, fahr, ream, rnke, kelv;cout<<"Input Suhu Fahrenheit : ";cin>>fahr;cout<<endl;cels = (fahr - 32) * 5/9;ream = 4/9 * (fahr-32);rnke = fahr + 459.67;kelv = (fahr + 459.67) * 5/9;cout << fahr << " Derajat Fahrenheit = " << cels << " Derajat Celsius" << endl;cout << fahr << " Derajat Fahrenheit = " << ream << " Derajat Reamur" << endl;cout << fahr << " Derajat Fahrenheit = " << rnke << " Derajat Rankine" << endl;cout << fahr << " Derajat Fahrenheit = " << kelv << " Kelvin" << endl;return 0;}
Konversi Suhu (Dari Reamur)
#include <iostream>using namespace std;int main(){cout<<"Program Konversi Suhu Reamur"<<endl;cout<<"============================"<<endl;cout<<endl;float cels, fahr, ream, rnke, kelv;cout<<"Input Suhu Reamur : ";cin>>ream;cout<<endl;cels = ream / 0.8;fahr = (ream * 2.25) + 32;rnke = (ream * 2.25) + 491.67;kelv = (ream / 0.8) + 273.15;cout << ream << " Derajat Reamur = " << cels << " Derajat Celsius" << endl;cout << ream << " Derajat Reamur = " << fahr << " Derajat Fahrenheit" << endl;cout << ream << " Derajat Reamur = " << rnke << " Derajat Rankine" << endl;cout << ream << " Derajat Reamur = " << kelv << " Kelvin" << endl;return 0;}
Konversi Suhu (Dari Rankine)
#include <iostream>using namespace std;int main(){cout<<"Program Konversi Suhu Rankine"<<endl;cout<<"============================="<<endl;cout<<endl;float cels, fahr, ream, rnke, kelv;cout<<"Input Suhu Rankine : ";cin>>rnke;cout<<endl;cels = (rnke - 491.67) * 5/9;fahr = rnke - 459.67;ream = (rnke / 1.8 + 273.15) * 0.8;kelv = rnke * 5/9;cout << rnke << " Derajat Rankine = " << cels << " Derajat Celsius" << endl;cout << rnke << " Derajat Rankine = " << fahr << " Derajat Fahrenheit" << endl;cout << rnke << " Derajat Rankine = " << ream << " Derajat Reamur" << endl;cout << rnke << " Derajat Rankine = " << kelv << " Kelvin" << endl;return 0;}
Konversi Suhu (Dari Kelvin)
#include <iostream>using namespace std;int main(){cout<<"Program Konversi Suhu Kelvin"<<endl;cout<<"============================"<<endl;cout<<endl;float cels, fahr, ream, rnke, kelv;cout<<"Input Suhu Kelvin : ";cin>>kelv;cout<<endl;cels = kelv - 273.15;fahr = (kelv * 9/5) - 459.67;ream = 4/5 * (kelv - 273);rnke = kelv * 9/5;cout << kelv << " Kelvin = " << cels << " Derajat Celsius" << endl;cout << kelv << " Kelvin = " << fahr << " Derajat Fahrenheit" << endl;cout << kelv << " Kelvin = " << ream << " Derajat Reamur" << endl;cout << kelv << " Kelvin = " << rnke << " Derajat Rankine" << endl;return 0;}
Menghitung Data Kasus COVID-19
#include <iostream>#include <conio.h>using namespace std;int main() {int ptv, death, recov, act, out;cout<<"Program menghitung Data Kasus COVID-19"<<endl;cout<<"Kasus Terkonfirmasi Positif : ";cin>>ptv;cout<<"Kasus Kematian : ";cin>>death;cout<<"Kasus Kesembuhan : ";cin>>recov;cout<<endl;out=death+recov;act=ptv-out;cout<<"==== Data Kasus COVID-19 ===="<<endl;cout<<"Kasus Positif : "<<ptv<<endl;cout<<"Kasus Kematian : "<<death<<endl;cout<<"Kasus Pulih : "<<recov<<endl;cout<<"Kasus Aktif : "<<act<<endl;cout<<"Kasus Pasif : "<<out<<endl;cout<<"============================="<<endl;return 0;}
Konversi Bilangan Desimal ke Biner
#include <iostream>using namespace std;int main(){cout << "## Program Konversi Desimal ke Biner ##" << endl;cout << "=============================================" << endl;cout << endl;int a[10], n, i;cout << "Input Bilangan Desimal : ";cin >> n;for(i=0; n>0; i++){a[i] = n%2;n = n/2;}cout << "Bilangan Biner adalah : ";for(i=i-1 ;i>=0 ;i--) {cout << a[i];}cout << endl;return 0;}
Konversi Bilangan Desimal ke Kuartener
#include <iostream>using namespace std;int main(){cout << "## Program Konversi Desimal ke Kuartener ##" << endl;cout << "==============================================" << endl;cout << endl;int a[10], n, i;cout << "Input Bilangan Desimal : ";cin >> n;for(i=0; n>0; i++){a[i] = n%4;n = n/4;}cout << "Bilangan Kuartener adalah : ";for(i=i-1 ;i>=0 ;i--) {cout << a[i];}cout << endl;return 0;}
Konversi Bilangan Desimal ke Oktal
#include <iostream>using namespace std;int main(){cout << "## Program Konversi Desimal ke Oktal ##" << endl;cout << "=============================================" << endl;cout << endl;int a[10], n, i;cout << "Input Bilangan Desimal : ";cin >> n;for(i=0; n>0; i++){a[i] = n%8;n = n/8;}cout << "Bilangan Oktal adalah : ";for(i=i-1 ;i>=0 ;i--) {cout << a[i];}cout << endl;return 0;}
Konversi Bilangan Desimal ke Heksadesimal
#include<iostream>using namespace std;void decToHex(int n){int i = 0;char hexaDeciNum[100];while(n!=0){int temp = 0;temp = n % 16;if(temp < 10){hexaDeciNum[i] = temp + 48;i++;}else{hexaDeciNum[i] = temp + 55;i++;}n = n/16;}for(int j=i-1; j>=0; j--){cout << hexaDeciNum[j];}}int main(){int n;cout << "## Program Konversi Desimal ke Heksadesimal ##" << endl;cout << "====================================================" << endl;cout << endl;cout<<" Masukkan Angka Decimal : ";cin>>n;cout<<" Dalam Bilangan Heksadesimal : ";decToHex(n);return 0;}
Bubble Sort
#include <iostream>#include <conio.h>using namespace std;void prosesPerpindahan(int data[],int y){int x;for(x=0;x<y;x++){cout<<data[x]<<" ";}cout<<endl;}void prosesSorting(int data[],int y){int proses,x,tampung;for(proses=1;proses<y;proses++){for(x=0;x<y-proses;x++) {if(data[x]>data[x+1]){tampung=data[x];data[x]=data[x+1];data[x+1]=tampung;}}cout<<"Tahap Ke-"<<proses<<" : ";prosesPerpindahan(data,y);}}int main(){int Nilai[20];int i, N;cout<<"Masukkan Banyak Bilangan : ";cin>>N;for(i=0; i<N; i++){cout<<"Elemen ke-"<<i+1<<" : ";cin>>Nilai[i];}cout<<"\nProses Sorting dengan metode Bubble Sort : "<<endl;prosesSorting(Nilai,N);cout<<endl;cout<<"Setelah Di Urutkan dengan Bubble Sort : "<<endl;prosesPerpindahan(Nilai,N);}
Selection Sort
#include <iostream>using namespace std;int main(){int Nilai[20];int i,j,x,N,posisi,tampung;cout<<"Masukkan Banyak Bilangan : ";cin>>N;for(i=0; i<N; i++){cout<<"Elemen ke-"<<i<<" : ";cin>>Nilai[i];}cout<<"Sebelum Di Urutkan : ";for (int i=0; i<N; i++){cout<<Nilai[i]<<" ";}cout<<endl;cout<<endl;for (int i=0;i<N-1;++i){posisi=i;for (int j=i+1;j<N;++j){if (Nilai[j]<Nilai[posisi]){posisi=j;}}if (posisi!=i){tampung=Nilai[posisi];Nilai[posisi]=Nilai[i];Nilai[i]=tampung;}cout<<"Tahap Ke-"<<i+1<<" : ";for (int x=0;x<N;++x){cout<<Nilai[x]<<" ";}cout<<endl;}cout<<endl;cout<<"Setelah Di Urutkan Menggunakan Metode Selection Sort : ";for (int i=0;i<N;++i){cout<<Nilai[i]<<" ";}}
Insertion Sort
#include <iostream>using namespace std;int main(){int Nilai[20];int i, j, k, tampung, N;cout<<"Masukkan Banyak Bilangan : ";cin>>N;for(i=0; i<N; i++){cout<<"Elemen ke-"<<i+1<<" : ";cin>>Nilai[i];}cout<<endl;cout<<"Data Sebelum Di Urutkan :";cout<<"\nTahap Ke-1 : ";for(i=0;i<N;i++){cout<<" "<<Nilai[i];}cout<<endl;for(int i=1; i<N; i++){tampung = Nilai[i];j = i-1;while(j>=0 && Nilai[j] > tampung){Nilai[j+1] = Nilai[j];j--;}Nilai[j+1]=tampung;cout<<"Tahap Ke-"<<i+1<<" : ";for(k=0; k<N; k++){cout<<" "<<Nilai[k];}cout<<endl;}cout<<"\nSetelah Di Urutkan dengan Insertion Sort : ";for(i=0;i<N;i++){cout<<" "<<Nilai[i];}}
Sequential Search
#include <iostream>#include <conio.h>using namespace std;int main(){int Nilai[20];int i, N, Bilangan;bool ketemu;cout<<"Program Sequential Search "<<endl;cout<<" "<<endl;cout<<"Masukkan Banyaknya Bilangan : ";cin>>N;for(i=0; i<N; i++){cout<<"Masukkan Elemen ke-"<<i<<" : ";cin>>Nilai[i];}cout<<"Deretan Bilangan : ";for(i=0; i<N; i++)cout<<Nilai[i]<<" ";cout<<" "<<endl;cout<<"Masukkan Bilangan yang akan Dicari : ";cin>>Bilangan;i=0;do{if(Nilai[i]==Bilangan)ketemu = true;i++;}while(!(ketemu));if(ketemu)cout<<"Bilangan "<<Bilangan<<" ditemukan";elsecout<<"Bilangan "<<Bilangan<<" tidak ditemukan";getch();}
Binary Search
#include <stdio.h>#include <iostream>#include <conio.h>#include <iomanip>using namespace std;int main() {int Nilai[20];int i, j, N;int temp, awal, akhir, tengah, Bilangan;cout<<"Program Binary Search"<<endl;cout<<"Banyak Bilangan : ";cin>>N;for(i=0; i<N; i++) {cout<<"Elemen ke-"<<i<<" : ";cin>>Nilai[i];}cout<<"Elemen Sebelum diurut : ";for(i=0; i<N; i++)cout<<setw(3)<<Nilai[i];for(i=0; i<N-1; i++) {for(j=i+1; j<N; i++) {if (Nilai[i] > Nilai[j]){temp = Nilai[i];Nilai[i] = Nilai[j];Nilai[j] = temp;}}}cout<<"Elemen Setelah diurut : ";for(i=0; i<N; i++)cout<<setw(3)<<Nilai[i];cout<<"indeks Elemen : ";for(i=0; i<N; i++)cout<<setw(3)<<i;cout<<"Masukkan data yang akan anda cari : ";cin>>Bilangan;awal = 0;akhir = N-1;do {tengah = (akhir + awal)/2;if(Bilangan < Nilai[tengah])akhir = tengah - 1;elseawal = tengah + 1;}while((akhir >= awal) && (Nilai[tengah] !=Bilangan));if(Nilai[tengah] == Bilangan) {cout<<"Data "<<Bilangan<<" ada dalam array";cout<<" pada posisi "<<tengah;}elsecout<<"Data "<<Bilangan<<" tidak ada dalam array";getch();}
Program Kasir Sederhana
#include <iostream>#include <string>#include <iomanip>using namespace std;int main(){//Inisialisasi atau deklarasi variabelint jum_beli, bayar,diskon,jumlah[50], harga[50], sub_tot[50];string nama_barang[50];float tot;cout<<"PROGRAM KASIR SEDERHANA"<<endl;cout<<"---------------------------"<<endl;cout<<endl;cout<<"Masukan Jumlah Beli : ";cin>>jum_beli; //Pengguna memasukan jumlah belifor (int i=0; i<jum_beli;i++){cout<<endl;cout<<"Masukan Barang Ke-"<<i+1<<endl;cout<<endl;cout<<"Nama Barang : ";cin>>nama_barang[i]; //Pengguna input nama barang disimpan pada array nama_barangcout<<"Jumlah : ";cin>>jumlah[i]; //Pengguna input jumlah disimpan pada array jumlahcout<<"Harga : ";cin>>harga[i]; //Pengguna input harga disimpan pada array hargasub_tot[i]=jumlah[i]*harga[i]; // Menjumlahkan Harga sub total barangtot+=sub_tot[i]; //Menjumlahkan seluruh sub total barang}cout<<endl;cout<<"STRUK BELANJA MINI MARKET ABC"<<endl;cout<<"---------------------------------------------------------"<<endl;cout<<"No Barang Jumlah Harga Sub Total"<<endl;for (int i=0;i<jum_beli;i++){cout<<i+1<<setw(8)<<nama_barang[i]<<setw(10)<<jumlah[i]<<setw(12)<<harga[i]<<setw(12)<<sub_tot[i]<<endl; //Menampilkan semua nilai array}cout<<"---------------------------------------------------------"<<endl;//Kondisi untuk menentukan diskon yang didapatkan berdasarkan total belanjaif (tot>=100000){diskon=0.06*tot;} else if (tot>=50000){diskon=0.04;}else if (tot>=25000){diskon=0.02;}else {diskon=0;}//Menampilkan Keterangancout<<"Jumlah Bayar : Rp."<<tot<<endl;//Menampilkan jumlah bayar (belum termasuk diskon)cout<<"Dikon : Rp."<<diskon<<endl; //Menampilkan diskoncout<<"Total Bayar : Rp."<<tot-diskon<<endl;//Menampilkan total harga yang harus dibayarcout<<"Bayar : Rp.";cin>>bayar; // Input dari user untuk jumlah yang dibayarcout<<"Kembali : Rp."<<(bayar-(tot-diskon))<<endl; // Menampilkan uang kembali}
Dan masih banyak lagi Program lainnya dalam Bahasa C++.
Semoga saja Artikel ini sangat bermanfaat bagi para IT Pemula dan juga mohon maaf apabila ada kesalahan dalam penulisan Kode. Terima Kasih šššš :)
Wassalamu‘alaikum wr. wb.