Contoh Program C++ Sederhana Beserta Penjelasannya
Dalam sebuah software atau aplikasi ada banyak sekali bahasa pemrograman yang digunakan. Bahasa pemrograman inilah yang membangun sebuah software menjadi utuh dan bisa digunakan oleh user. Bahasa pemrograman ini terlihat sangat rumit dan membingungkan untuk dipelajari. Salah satunya program C++, untuk contoh program C++ bisa ada banyak sekali tergantung fungsinya saja. Tapi sebelum melihat contoh program yang dibuat dengan c++, sebaiknya Anda mengenal dulu ap aitu bahasa pemrograman C++.
Apa Itu Program C++
Mungkin bagi Anda yang masih sangat awam dengan pemrograman, Anda tidak mengenal sama sekali dengan bahasa pemrograman c++ ini. Jika dilihat dari sejarahnya, bahasa C++ ini muncul di tahun 1970an. Bahasa ini dikembangkan oleh seseorang bernama Bjarne Stroustrup.
C++ adalah bahasa pemrograman turunan dari bahasa pemrograman C. Kalau Bahasa C adalah bahasa yang sifatnya prosedural, C++ adalah bahasa yang berorientasi objek. Atau dalam bahasa pemrograman disebut Object Oriented Programming.
C++ muncul karena ketika membuat sebuah software yang berskala besar, C tidak cocok untuk dipakai karena tidak efisien. C terlalu banyak menggunakan percabangan, kode yang harus diketikkan, dan juga perulangan. Karena itulah kemudian lahir bahasa pemrograman baru yaitu bahasa C++.
Aplikasi yang Dipakai Bahasa C++
Baca Juga: Rekomendasi Aplikasi Perekam Layar Laptop Terbaik 2021
1. Text EditorUntuk membuat sebuah bahasa pemrograman, Anda bisa memakai banyak aplikasi. Salah satu yang paling sederhana adalah dengan menggunakan aplikasi Text editor seperti misalnya notepad atau notepad++. Langkah berikutnya Anda bisa menggunakan aplikasi compiler yang bisa Anda dapatkan di internet.
2. DEV C++
Beberapa orang, terutama yang belajar bahasa pemrograman di kuliah atau sekolah, biasanya menggunakan aplikasi DEV C++ 5.11 atau seri di atasnya. Tapi ada juga perusahaan gaming atau software yang menggunakan aplikasi IDE Visual Studio 2015 dan update-an ke atasnya.
3. Code Blocks
Selain menggunakan Dev C++ ada juga yang menggunakan Code Blocks pada dasarnya Dev C++ dan Code Blocks ini mempunyai kesamaan. Untuk Code Blocks sendiri sekarang versi terbarunya adalah versi 20.03.
3. Atom
Atom adalah aplikasi text editor yang sifatnya open source. Aplikasi ini bisa Anda pakai untuk Linux, Windows, dan OS X. Aplikasi yang dibuat oleh Github ini cukup nyaman untuk digunakan, apalagi oleh seorang pemula. Kekurangan aplikasi ini adalah ukuran yang besar dan memberatkan komputer. Kalau komputer Anda spesifikasinya rendah, disarankan tidak menggunakan aplikasi ini.
4. Sublime Text
Aplikasi yang satu ini memiliki banyak fitur yang membantu Anda ketika menulis listing. Bahkan sublime text bisa memprediksi kode yang Anda tulis. Jadi akan mempercepat waktu pengerjaan. Tapi, kelemahannya adalah tidak adanya fitur run jadi Anda tidak bisa melihat hasil tulisan Anda kecuali menggunakan program lain.
5. Borland C++
Jika bicara aplikasi yang banyak digunakan, Borland C++ adalah yang paling sering dipakai untuk tipe data C++. Tampilannya terlihat sangat sederhana. Borland C++ juga punya fitur run, jadi Anda bisa melihat hasil pekerjaan Anda secara langsung.
Struktur C++
Ketika Anda membuat bahasa pemrograman C++, Anda harus memperhatikan struktur dari bahasa pemrograman ini. Biasanya ketika Anda memulai membuat bahasa pemrograman C++ Anda harus
mengetikan kode berikut ini.
#include <iostream>
Using namespace std;
int main()
{
std::cout << “Belajar C++”;
return 0;
}
Contoh kode yang dituliskan di atas itu adalah kode dasar. Jadi dalam bahasa pemrograman C++ ini ada kode dasar dan juga struktur dasar yang harus Anda ikuti. Jika tidak, maka akan ada kemungkinan apa yang Anda tulis tidak bisa bekerja dengan baik sesuai yang anda inginkan.
Contoh Program C++
Ada banyak contoh program C++ yang menarik. Berikut ini beberapa contoh program C++ yang bisa Anda tulis ulang untuk melatih kemampuan menulis bahasa C++.
1. Contoh Program C++ Fungsi Dan Prosedur
Fungsi merupakan suatu bagian dari program c++ yang di maksudkan untuk mengerjakan suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya. Fungsi merupakan elemen utama dalam c++ karena bahasa c++ sendiri terbentuk dari kumpulan fungsi-fungsi. Dalam setiap program, setidaknya terdapat satu fungsi utama yang merupakan fungsi awal pemanggilan program yaitu fungsi main().
Prosedur adalah jenis fungsi yang berbeda lainnya dalam hal ini void. Prosedur dan fungsi biasa adalah 2 jenis instruksi yang berbeda. Dalam prosedur tidak ada pengembalian nilai seperti fungsi biasa. Namun prosedur dan fungsi sama sama terpisah dari program utama. Cara penulisan prosedur :
Di berikan suatu nama yang berfungsi untuk penamaan saja. Merupakan nama suatu variabel.
Parameter formal (jika ada), yaitu di berikan parameternya.
a. Fungsi Untuk Menampilkan Nama
#include <iostream>
using namespace std;
//membuat fungsi nama
void nama(){
cout<<"Syarif Soden";
}
//fungsi utama dalam C++
main(){
//memanggil fungsi nama di dalam fungsi utama
nama();
}
b. Fungsi Dengan Perulangan
#include <iostream>
using namespace std;
//membuat cetak
void cetak(){
for(int i=0;i<10;i++){
cout<<"Syarif Soden"<<endl;
}
}
//fungsi utama
main(){
//pangil fungsi cetak
cetak();
}
using namespace std;
//membuat cetak
void cetak(){
for(int i=0;i<10;i++){
cout<<"Syarif Soden"<<endl;
}
}
//fungsi utama
main(){
//pangil fungsi cetak
cetak();
}
c. Fungsi Dengan Nilai Balik
#include <iostream>
using namespace std;
//fungsi nilai balik
//Membuat fungsi kuadrat
int kuadrat(int x){
int y;
y=x+x;
return y;//fungsi ini menegembalikan nilai Y
}
//fungsi utama
main(){
cout<<"Y : "<<kuadrat(20);
}
using namespace std;
//fungsi nilai balik
//Membuat fungsi kuadrat
int kuadrat(int x){
int y;
y=x+x;
return y;//fungsi ini menegembalikan nilai Y
}
//fungsi utama
main(){
cout<<"Y : "<<kuadrat(20);
}
d. Fungsi Nilai Balik Dengan Tipe Bilangan
#include <iostream>
using namespace std;
//Membuat fungsi yang
//mengembalikan tipe bilangan
int angka1(){
return (4);
}
int angka2(){
return (10);
}
//fungsi utama
main(){
cout<<"Pertama : "<<angka1()<<endl;
cout<<"kedua : "<<angka2();
}
using namespace std;
//Membuat fungsi yang
//mengembalikan tipe bilangan
int angka1(){
return (4);
}
int angka2(){
return (10);
}
//fungsi utama
main(){
cout<<"Pertama : "<<angka1()<<endl;
cout<<"kedua : "<<angka2();
}
e. Fungsi Nilai Balik Sebagai Pengkali
#include <iostream>
using namespace std;
//Membuat fungsi yang mengembalikan tipe bilangan
int pengkali(){
return (10);
}
//fungsi utama
main(){
int a;
cout<<"Masukan sebuah angka : ";
cin>>a;
int hasil = a*pengkali();
cout<<"Hasil kali "<<a<<" dan "<<pengkali()<<" = "<<hasil;
}
using namespace std;
//Membuat fungsi yang mengembalikan tipe bilangan
int pengkali(){
return (10);
}
//fungsi utama
main(){
int a;
cout<<"Masukan sebuah angka : ";
cin>>a;
int hasil = a*pengkali();
cout<<"Hasil kali "<<a<<" dan "<<pengkali()<<" = "<<hasil;
}
f. Fungsi Dengan Parameter Masukkan
#include <iostream>
using namespace std;
void BertambahSatu(int X, int *hasil) {
*hasil = X + 1;
}
int main () {
int Bilangan, a;
cout<<"Masukkan Bilangan Bulat :"<<endl;
cin>>Bilangan;
BertambahSatu(Bilangan, &a);
cout<<"Nilai keluaran : "<<a;
return 0;
}
using namespace std;
void BertambahSatu(int X, int *hasil) {
*hasil = X + 1;
}
int main () {
int Bilangan, a;
cout<<"Masukkan Bilangan Bulat :"<<endl;
cin>>Bilangan;
BertambahSatu(Bilangan, &a);
cout<<"Nilai keluaran : "<<a;
return 0;
}
g. Parameter Masukkan Menjadi Keluaran
#include <iostream>
using namespace std;
// Parameter X sebagai masukan dan juga sebagai keluaran
void TambahSatu(int *X) {
*X= *X + 1;
}
// Fungsi utama
int main() {
int Bilangan;
cout<<"Masukkan sebuah bilangan bulat: ";
cin>>Bilangan;
// Memanggil fungsi TambahSatu()
TambahSatu(&Bilangan);
// Menampilkan nilai setelah diproses di dalam fungsi
cout<<"Nilai akhir: "<<Bilangan;
return 0;
}
h. Fungsi Pass By Value
#include <iostream>
using namespace std; //membuat fungsi Tukar
void Tukar(int a, int b){
int c;
c=a;
a=b;
b=c;
cout<<"nnKeadaan di dalam fungsi"<<endl;
cout<<"Angka Pertama = "<<a<<" Angka Kedua = "<<b<<endl;
}
//fungsi utama
main(){
int x,y;
cout<<"Masukkan angka pertama : "; cin>>x;
cout<<"Masukkan angka kedua : "; cin>>y;
cout<<"nKeadaan Awal"; cout<<"nAngka Pertama = "<<x<<" Angka kedua = "<<y;
Tukar(x,y);
cout<<"nkeadaan Akhir"<<endl; cout<<"Angka Pertama = "<<x<<" Angka kedua = "<<y;
}
i. Fungsi Pass By Reference
#include <iostream>
using namespace std;
//membuat fungsi Pangkat2
void Pangkat2(int& X){
X = X*X;
cout<<"Nilai didalam Fungsi : "<<X<<endl;
}
//Fungsi utama
main(){
int bilangan;
cout<<"Masukan Sebuah bilanganbulat : ";cin>>bilangan;
cout<<endl;
cout<<"Nilai awal : "<<bilangan<<endl;
Pangkat2(bilangan);
cout<<"Nilai akhir : "<<bilangan<<endl;
}
j. Fungsi Untuk Menghitung Volume Tabung
#include <stdio.h>
#define PHI 3.14
float hit_volume(float r, float t);
int main(){
float jari_jari,tinggi,volume;
printf("\t========Menghitung Volume Tabung========\n");
printf("Masukkan jari-jari tabung : "); scanf("%f",&jari_jari);
printf("Masukkan tinggi tabung : "); scanf("%f",&tinggi);
volume = hit_volume(jari_jari,tinggi);
printf("Volume Tabung adalah : %.2f",volume);
}
float hit_volume(float r, float t){
float v;
v = PHI*r*r*t;
return v;
}
Contoh Program Percabangan C++
Percabangan Adalah perintah yang memungkinkan pemilihan atas perintah yang akan dijalankan sesuai dengan kondisi tertentu.
Baca Juga: Tutorial Belajar Javascript Untuk Pemula
Percabangan (branching) di dalam pemrograman digunakan oleh komputer untuk menentukan langkah kerja instruksi.
Percabangan menggunakan operator kondisional (Conditional) yang akan menghasilkan nilai boolean (benar/true atau salah/false) jika nilai yang dihasilkan benar, maka perintah akan dilaksanakan, sedangkan jika salah, maka instruksi tidak akan dilaksanakan
1. Program Warung Makan
#include <iostream>
using namespace std;
int main()
{
int uangSaya = 10000;
int pilihannya;
cout << "Mau Makan, Pas Keluar Beli Makanan Hanya ada : " << endl;
cout << "1. Pecel Lontong" << endl;
cout << "2. Bakmi Pecel" << endl;
cout << "Dengan uang segitu Saya bisa beli : ";
if(uangSaya <= 6000) {
cout << "Tidak beli apa apa" << endl;
}
else if(uangSaya >= 7000 && uangSaya <= 14000){
cout << "Pecel Lontong aja " << endl;
}
else if(uangSaya >= 15000 && uangSaya <= 22000){
cout << " Pecel Lontong ATAUBakmi Pecel?? " << endl;
}
else{
cout << "Pecel Lontong DAN Bakmi Pecel" << endl;
}
}
2. Program Daftar Kuliah
#include <iostream>
using namespace std;
int main()
{
string nama;
int jurusan;
cout << "Masukan Nama : ";
cin >> nama;
cout << "1. Teknik Komputer" << endl;
cout << "2. Teknik Informatika " << endl;
cout << "3. Perhotelan " << endl;
cout << "4. Sistem Informasi " << endl;
cout << "5. Akuntansi " << endl;
cout << "Masukan Jurusan yang di inginkan :";
cin >> jurusan;
cout << "=================================================" << endl;
cout << "Nama : " << nama << endl;
cout << "Jurusan : ";
if(jurusan == 1){
cout << "Teknik Komputer" << endl;
}
else if(jurusan == 2){
cout << "Teknik Informatika " << endl;
}
else if(jurusan == 3){
cout << "Perhotelan " << endl;
}
else if(jurusan == 4){
cout << "Sistem Informasi " << endl;
}
else if(jurusan == 5){
cout << "Akuntansi " << endl;
}
else{
cout << "Pilihan salah, silahkan ulangi" << endl;
}
}
3. Program Nilai IP
#include <iostream>
using namespace std;
int main()
{
string nama;
int nilaiIP;
cout << "Masukan nama : ";
cin >> nama;
cout << "Masukan nilai IP : ";
cin >> nilaiIP;
if (nilaiIP >= 0 && nilaiIP <= 9){
cout << "F Jangan Sedih" << endl;
}
else if(nilaiIP >=10 && nilaiIP <= 29){
cout << "E Yah, Belajar terus donk" << endl;
}
else if(nilaiIP >=20 && nilaiIP <= 39){
cout << "D Ayo donk Jangan Nyerah" << endl;
}
else if(nilaiIP >=40 && nilaiIP <= 59){
cout << "C Ayo Semangat" << endl;
}
else if(nilaiIP >=60 && nilaiIP <= 79){
cout << "B Nilai yang Bagus" << endl;
}
else if(nilaiIP >= 80 && nilaiIP <= 100){
cout << "A Nilai Sempurna" << endl;
}
else{
cout << "Nilai yang anda masukan melebihi batas, ulangi !!" << endl;
}
}
Bonus Contoh Program Keren C++
1. Program Aplikasi C++ Kuis Keren
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
cout<<"\t\t===========================================\t\t\n";
cout<<"\t\tAPLIKASI KUIS \t\t\n";
cout<<"\t\tSyarif Soden\t\t\n";
cout<<"\t\t===========================================\t\t\n";
string siluman, kuchiose, karakter;
while(1)
{
cout<<"1. Siapa nama asli ekor 9 dalam film naruto ?\n";
cin>>siluman;
if(siluman=="Kurama"){
cout<<"Jawaban anda benar\n";
break;
}
else{
cout<<"Jawaban anda salah\n";
}
}
while(2)
{
cout<<"\n2. Siapa nama asli ekor 1 dalam film naruto ?\n";
cin>>siluman;
if(siluman=="Shukaku"){
cout<<"Jawaban anda benar\n";
break;
}
else{
cout<<"Jawaban anda salah\n";
}
}
while(3)
{
cout<<"\n3. Dalam perang dunia shinobi siapa yang menyelamtakan naruto dari serangan juubi ?\n";
cin>>karakter;
if(karakter=="Neiji"){
cout<<"Jawaban anda benar\n";
break;
}
else{
cout<<"Jawaban anda salah\n";
}
}
while(4)
{
cout<<"\n4. Siapa tokoh penemu rasengan ?\n";
cin>>karakter;
if(karakter=="Minato"){
cout<<"Jawaban anda benar\n";
break;
}
else{
cout<<"Jawaban anda salah\n";
}
}
while(5)
{
cout<<"\n5. siapa nama kuchiose dewa kera milik Hiruzen ? \n";
cin>>kuchiose;
if(kuchiose=="Enma"){
cout<<"Jawaban anda benar\n";
break;
}
else{
cout<<"Jawaban anda salah\n";
}
}
getch();
}
2. Game C++ ular
#include <iostream>
#include <windows.h> //menggunakan gotoxy, GetAsyncKeyState,
//Awal pendeklarasian beberapa konstanta
#define batas_atas 2 //batas_atas game
#define batas_bawah 23 //batas_bawah_game
#define batas_samping 2 // batas samping kiri game
#define batas_samping_k 78 //batas samping kanan game
//Akhir pendeklarasian konstanta
using namespace std;
//pendeklarasian variabel
int iX(5), iY(5), x1 (4), y1 (4), xHapus(3), yHapus(3), veloX(1), veloY(0)
,ekorsX[200], ekorsY[200], nEkor = 5, start = 0, makX, makY;
void gotoxy(int x, int y) //Void untuk gotoxy, memindahkan kursor pada console
{
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
void naik() //untuk gerak Snake ke atas
{
veloY = -1; //Kecepatan Y menjadi ke atas
veloX = 0; //kecepatan X dinolkan
}
void turun()
{
veloY = 1; //sda
veloX = 0; //sda
}
void samping()
{
veloX = -1; //sda
veloY = 0; //sda
}
void samping_k()
{
veloX = 1; //sda
veloY = 0; //sda
}
void hapus()
{
gotoxy(xHapus, yHapus); //untuk menghapus bagian yang sudah dilewati
cout << " ";
}
void ekor()
{
for(int j = 0; j <= 2; j++)
{
gotoxy(ekorsX[j], ekorsY[j]);
cout << "+";
}
}
void tampil()
{
gotoxy(iX, iY); //iX dan iY adalah posisi gambar kepala
cout << char(2); //untuk menggambar gambar kepala
//karena ascii dari smiley tsb adalh 2
gotoxy(makX, makY);
//nilai makX dan makY adalah random
//digunakan untuk posisi makanan, jadi posisi makanan random
cout << "*"; //gambar makanan
}
void ganti_posisi() //mengganti posisi dari ekor ekor snake
{
xHapus = ekorsX[nEkor - 1];
yHapus = ekorsY[nEkor - 1];
for(int j = nEkor - 1; j >= 1; j--)
{
ekorsX[j] = ekorsX[j-1];
ekorsY[j] = ekorsY[j-1];
}
ekorsX[0] = iX;
ekorsY[0] = iY;
}
void velo() //fungsi untuk melakukan update posisi snake sesuai tombol
//yang ditekan
{
ganti_posisi();
hapus();
iX += veloX;
iY += veloY;
tampil();
ekor();
}
/*void trace()
{
for(int j = 0; j <= nEkor -1; j++)
{
cout << "x" << j << " y"<< j<< " = " << ekorsX[j] << "," << ekorsY[j];
cout << " // " << iX << "," << iY << endl;
}
system("pause");
system("cls");
}*/
bool isDestroy()
{
//selain untuk mencek apakah snake sudah kalah
//fungsi ini juga menghapus kepala snake yang tersisa jika membentur dinding
if(iX == batas_samping_k) { iX = 3; gotoxy(78, iY); cout << " "; }
if(iX == batas_samping) { iX = 77; gotoxy(2, iY); cout << " "; }
if(iY == batas_atas) { iY = 22; gotoxy(iX, 2); cout << " "; }
if(iY == batas_bawah) { iY = 3; gotoxy(iX, 23); cout << " "; }
//trace();
for(int j = 0; j <= nEkor - 1; j++)
if(ekorsX[j] == iX && ekorsY[j] == iY) return true;
return false;
}
char getkey()//fungsi untuk mendapatkan tombol yang ditekan
{
for(int i = 8; i <= 222; i++)
{
if(GetAsyncKeyState(i) == -32767)
{
switch(i)
{
case 38 : if(veloY != 1)naik();
break;//jika tombol yang ditekan adalah atas
case 40 : if(veloY != -1)turun();
break; //jika tombol yang ditekan adalah bawah
case 37 : if(veloX != 1)samping();
break; //jika tombol yang ditekan adalah kiri
case 39 : if(veloX != -1)samping_k();
break; //jika tombol yang ditekan adalah kanan
}
}
}
}
void random_makanan()
{
makX = rand()%(batas_samping_k - 1);
if(makX < 4) makX += 3 + (4-makX); //mencegah agar makanan tidak diluar batas
makY = rand()%(batas_bawah - 1);
if(makY < 4) makY += 3 + (4-makY);
gotoxy(makX, makY);
cout << "*";
}
bool isEaten()
{
if(iX == makX && iY == makY) return true; else return false;
}
void cBorder() //Fungsi untuk membuat garis tepi game
{
for(int i = 1; i <= 78; i++)
{
for(int j = 1; j <= 24; j += 23)
{
if(j > 1 || i >= 32)
{
gotoxy(i, j);cout << char(219);
}
}
}
for(int i = 1; i <= 24; i++)
{
for(int k = 1; k <= 80; k += 78)
{
gotoxy(k, i); cout << char(219);
}
}
}
//akhir pembuatan garis tepi
//Penulisan Skor
void skor()
{
gotoxy(3,1); cout << "Skor : ";
gotoxy(18,1); cout << "Panjang : ";
}
//Untuk menulis skor terbaru dan panjang dari snake
void tulis_skor()
{
gotoxy(11,1); cout << (nEkor - 5) * 10;
gotoxy(28,1); cout << nEkor;
}
//Fungsi yang menjalankan beberapa fungsi yang berjalan
//pada awal program, hanya sekali
void inisialisasi()
{
cBorder(); //buat pinggiran game
random_makanan(); //letakkan makanan secara random
skor(); //tulis tulisan skor di tepi atas
tulis_skor(); //menulis skor
}
int main() //fungsi Utama
{
system("cls"); //membersihkan layar
inisialisasi(); //menjalankan fungsi inisialisasi
while(!(isDestroy())) //selama snake belum rusak atau kalah
{
velo(); //merubah posisi snake berdasarkan kecepatan X atau Y
getkey(); //untuk mendapatkan tombol apa yang ditekan user dan
//menjalankan beberapa fungsi yang diperlukan
if(isEaten())//mencek apakah makanan telah dilalap oleh snake
{
nEkor += 2; //panjang ekor ditambah 2
random_makanan(); //makanan diletakkan lagi
tulis_skor();//skor di update
}
Sleep(40 - (nEkor / 10)); //delay yang semakin cepat dengan penambahan ekor
}
system("cls"); //layar dibersihkan
gotoxy(32,12); cout << "Skor : " << (nEkor - 5) * 10; //ditampilkan skor
gotoxy(25,13);
system("pause"); //selesai
}
3. Program Game C++ Keren
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#define KOTAK char(178)
#define BATAS_KIRI 16
#define BATAS_KANAN 59
#define BATANG char(219)
using namespace std;
void gotoxy(int x, int y)
{
COORD koord = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), koord);
}
void Credit()
{
gotoxy(BATAS_KANAN + 5, 15); cout << "CONTROL";
gotoxy(BATAS_KANAN + 5, 16); cout << "W : ATAS ";
gotoxy(BATAS_KANAN + 5, 17); cout << "S : BAWAH";
gotoxy(BATAS_KANAN + 5, 18); cout << "D : KANAN";
gotoxy(BATAS_KANAN + 5, 19); cout << "A : KIRI";
gotoxy(BATAS_KANAN + 5, 22); cout << "";
gotoxy(BATAS_KANAN + 5, 23); cout << "";
}
void gambarLatar()
{
for(int i = 0; i <= 24; i++)
{
gotoxy(BATAS_KIRI + 3, i); cout << BATANG;
gotoxy(BATAS_KANAN - 2, i); cout << BATANG;
gotoxy(BATAS_KIRI, i); cout << KOTAK << KOTAK;
gotoxy(BATAS_KANAN, i); cout << KOTAK << KOTAK;
}
}
void gambarJalan(int spasi, int awal)
{
for(int i = awal + 1; i <= 24; i += spasi)
{
gotoxy(BATAS_KIRI, i - 1); cout << KOTAK << KOTAK;
gotoxy(BATAS_KANAN, i - 1); cout << KOTAK << KOTAK;
gotoxy(BATAS_KIRI, i); cout << " ";
gotoxy(BATAS_KANAN, i); cout << " ";
}
}
int abs(int a)
{
if(a < 0) return -a;
}
void batangDarah(int a)
{
gotoxy(1, 4);
cout << "HEALTH : ";
gotoxy(1, 5);
for(int i = 1; i <= a / 10; i++)
{
cout << BATANG;
}
for(int i = 1; i <= 10 - (a / 10); i++)
{
cout << KOTAK;
}
}
void jarak(int iJarak)
{
gotoxy(1, 7);
cout << "JARAK :";
gotoxy(1, 8);
cout << iJarak;
}
void Speed(int speed)
{
gotoxy(1, 10);
cout << "KECEPATAN :";
gotoxy(1, 11);
cout << " ";
gotoxy(1, 11);
cout << speed;
}
class car {
public :
int x,y,darah, kebal;
bool exis;
string gambar[5];
car()
{
x = 25;
y = 20;
exis = false;
darah = 100;
kebal = 0;
gambar[0] = " - ";
gambar[1] = "0+1";
gambar[2] = " + ";
gambar[3] = "0+1";
}
void setPos(int a, int b)
{
x = a;
y = b;
}
void keKiri()
{
if(x > 20)
{
hapus();
x -= 1;
}
}
void keKanan()
{
if(x + 2 < 56)
{
hapus();
x += 1;
}
}
void keBawah()
{
if(y + 3 <= 23)
{
hapus();
y += 1;
}
}
void keAtas()
{
if(y + 3 > 3)
{
hapus();
y -= 1;
}
}
void hapus()
{
gotoxy(x+1, y); cout << " ";
gotoxy(x, y+1); cout << " ";
gotoxy(x+1, y+2); cout << " ";
gotoxy(x, y+3); cout << " ";
}
bool cekTabrakan(car a)
{
if((a.y >= y && a.y <= y+3) && (abs(a.x - x) < 3))
{system ("color e");
return true;
} else
{
return false;
}
}
void gores()
{
for(int i = y; i <= (y + 3); i++)
{
gotoxy(x, i);
for(int j = 0; j < gambar[i - y].length(); j++)
{
if(gambar[i - y][j] == '0') cout << char(221); else
if(gambar[i - y][j] == '1') cout << char(222); else
if(gambar[i - y][j] == '+') cout << BATANG; else
if(gambar[i - y][j] == '-') cout << char(220); else
cout << " ";
}
}
}
void buatGambar()
{
if(kebal == 0)
{
gores();
} else
{
if(kebal % 2 == 0)
{
gores();
}
else {
hapus();
}
}
}
};
void tulisTengah(string s, int y)
{
gotoxy(40 - (s.length() / 2), y);
cout << s;
}
void tidur(int a)
{
time_t now = clock();
while((clock() - now) < a) {};
}
void opening()
{
tulisTengah("Bersedia", 10);
tidur(1000);
tulisTengah(" ", 10);
tulisTengah("3", 10);
tidur(1000);
tulisTengah("2", 10);
tidur(1000);
tulisTengah("1", 10);
tidur(1000);
tulisTengah(" ", 10);
}
int main()
{
int spk = 0;
float fSpk = 0;
while(spk <= 0)
{
system("cls");
tulisTengah(" Balap Mobil ", 10);
tulisTengah("==============================", 11);
tulisTengah("Masukkan Tingkat Kesulitan Berupa Angka", 13);
tulisTengah("Semakin besar nilai angka-nya semakin mudah permainan", 14);
tulisTengah("-- SYARIF SODEN --", 20);
tulisTengah("Masukkan angka [ pilih angka dari 0 ]: ", 15);
cin >> fSpk;
spk = (int) fSpk;
}
system("cls");
srand(clock());
car pemainUtama;
car enemy[4];
char control = ' ';
enemy[0].setPos(20 + rand()%34, 0);
enemy[1].setPos(20 + rand()%34, 0);
enemy[2].setPos(20 + rand()%34, 0);
enemy[0].exis = true;
bool mulai = false;
int spasi = 8, awal = 0, nMusuh = 0, iJarak = 0;
batangDarah(pemainUtama.darah);
float before = clock();
gambarLatar();
Credit();
while(pemainUtama.darah > 0 && (spk - iJarak / 200) > 0)
{
Speed(spk - iJarak / 200);
iJarak++;
if(awal > 8) awal = 0;
gambarJalan(spasi, awal);
awal++;
if(kbhit())
{
control = getch();
control = toupper(control);
}
switch (control)
{
case 'W' : pemainUtama.keAtas(); break;
case 'S' : pemainUtama.keBawah(); break;
case 'D' : pemainUtama.keKanan(); break;
case 'A' : pemainUtama.keKiri(); break;
}
pemainUtama.buatGambar();
//generate musuh
for(int i = 0; i <= 2; i++)
{system ("color a");
if(enemy[i].exis == true)
{
enemy[i].keBawah();
enemy[i].buatGambar();
if(enemy[i].y > 20)
{
enemy[i].hapus();
enemy[i].y = 0;
enemy[i].x = 20 + rand()%34;
enemy[i].exis = false;
nMusuh++;
}
if(enemy[i].cekTabrakan(pemainUtama))
{
if(pemainUtama.kebal == 0)
{
pemainUtama.darah -= 10;
pemainUtama.kebal = 45;
batangDarah(pemainUtama.darah);
}
}
} else
{
nMusuh = i - 1;
if(nMusuh < 0) nMusuh = 3;
if(enemy[nMusuh].y >= 7)
{
enemy[i].exis = true;
}
}
if(pemainUtama.kebal > 0)
{
pemainUtama.kebal--;
}
jarak(iJarak);
}
if(mulai == false)
{
opening();
mulai = true;
}
control = ' ';
tidur(spk - iJarak / 200);
}
spk -= iJarak / 200;
system("cls");
gotoxy(20, 12); cout << "Game End - Your Score : " << (iJarak / spk) + pemainUtama.darah * 100;
gotoxy(20, 13); cout << "Total Waktu Bermain : " << (clock() - before) / 1000 << " Detik";
tulisTengah("=========================================", 16);
tulisTengah("Thank You for Play AND Join Our Game. ", 17);
tulisTengah("=========================================", 18);
tidur(5000);
getch();
}
Ketika Anda sudah mengenal bahasa pemrograman C++, Anda bisa membuat berbagai jenis program. Contoh program C++ yang disebutkan di atas bisa dijadikan referensi anda untuk Latihan pemrograman c++.
Posting Komentar untuk "Contoh Program C++ Sederhana Beserta Penjelasannya"
Dilarang Berkomentar Menggunakan Kata-Kata Kasar, Link Aktif, Pornografi, Perjudian dan Sejenisnya!!!