Contoh Program C++ Sederhana Beserta Penjelasannya

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 JugaRekomendasi Aplikasi Perekam Layar Laptop Terbaik 2021

1. Text Editor
Untuk 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 &lt;&lt; “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();
}

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);
}

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();
}

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;
}

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;
}

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.


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

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

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

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"

close