Jumat, 26 Juni 2020

Algoritma Pengurutan ( Sorting)

Algoritma Pengurutan ( Sorting)

Adanya kebutuhan terhadap proses pengurutan memunculkan bermacam-macam algoritma pengurutan. Ada banyak algoritma pengurutan yang telah ditemukan. Hal ini menunjukan bahwa persoalan pengurutan adalah persoalan yang kaya dengan solusi algoritma. Beberapa Algoritma pengurutan yang sudah dikenal antara lain Bubble Sort, Selection Sort, Insertion Sort, Heap Sort, Shell Sort, Quick Sort, Merge Sort, Radix Sort, Tree Sort, Dan Lain sebagainya.

Tidak semua algoritma pengurutan akan saya bahas di artikel kali ini, tetapi cukup beberapa algoritma pengurutan yang sederhana yang perlu diketahui saja oleh orang yang belajar pemrograman dasar.

Di artikel kali ini saya akan membahas beberapa algoritma pengurutan saja, yaitu:

  1. algoritma pengurutan apung ( Bubble Sort).
  2. algoritma pengurutan seleksi ( Selection Sort).
  3. algoritma pengurutan sisip ( Insertion Sort).
Dua algoritma pengurutan pertama yaitu; bubble sort dan selection sort melakukan prinsip pertukaran elemen dalam proses pengurutannya sehingga keduanya dinamakan pengurutan dengan pertukaran ( exchange sorts), sedangkan algoritma  Insertion Sort melakukan prinsip geser dan sisip elemen didalam proses pengurutannya ( shift and insert sorts). Semua algoritma pengurutan selalu melakukan operasi perbandingan elemen untuk menemukan posisi urutan yang tepat.


  1. Algoritma Pengurutan Apung ( Bubble Sort)
Algoritma pengurutan apung ( Bubble Sort) diinspirasikan oleh gelembung sabun yang berada diatas permukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka dari itu gelembung sabun selalu terapung diatas air. Secara umum, benda-banda yang berat akan terbenam dan benda-benda yang ringan akan terapung keatas permukaan air.

Mekanisme kerja Algoritma Bubble Sort adalah sebagai berikut:

  1. membandingka data ke-1 dengan data ke-2, jika ke-1 lebih besar, maka kedua data ditukar.
  2. kemudian membandingkan data ke-2 dengan data ke-3, jika data ke-2 lebih besar, kedua data ditukar.
  3. demikian seterusnya sampai data terakhir, sehingga data kedudukannya akan bergeser-geser.
Contoh Program Bubble Sort C++ :

Contoh Program Bubble Sort

#include <iostream>
#include <conio.h>
using namespace std;
    int data[8], data2[8];
    int n;

int tukar (int a,int b){
    int t;
    t=data[b];
    data[b]=data[a];
    data[a]=t;
}

int input(){
    cout<<"Masukan Jumlah Data = ";
cin>>n;

cout<<endl;

    for (int i=0;i<n;i++){
    cout<<"Masukan Data Ke-"<<i+1<<" = ";
    cin>>data[i];

    data2[i]=data[i];
}
cout<<endl;
}

int tampil(){
for (int i=0;i<n;i++){
     cout<<"["<<data[i]<<"] ";
}
cout<<endl;
}

int bubble_sort(){
for (int i=1; i<n;i++){
for (int j=n-1; j>=i;j--){
if (data[j]<data[j-1]){
tukar(j,j-1);
}
}
tampil();
}
cout<<endl;
}


int main()
  {
  cout<<"ALGORITMA BUBBLE SORT"<<endl;
  cout<<"----------------------"<<endl;
input();
cout<<"Proses Bubble Sort"<<endl;
tampil();
bubble_sort();
  getch();
  }
 
Hasil Output Program Bubble Sort:

Contoh Program Bubble Sort C++


      2. Algoritma Pengurutan Seleksi ( Selction Sort )

Algoritma ini disebut pengurutan seleksi ( Selection Sort ) karena gagasan dasarnya adalah memilih elemen maksimum atau minimum dari larik, lalu menempatkan elemen tersebut pada awal atau akhir larik. Selanjutnya elemen terujung tersebut diisolasi dan tidak disertakan pada proses selanjutnya. Proses yang sama diulang untuk elemen-elemen larik yang tersisa.

Mekanisme kerja Algoritma Selection Sort:

  1. Variabel index diberinilai 1 kemudian data index dibandingkan dengan data ke-2. Jika data index lebih besar maka nilai indexnya diganti dengan 2, jika tidak nilai indexnya tetap. Kemudian data index dibandingkan lagi dengan data yang ada seterusnya.
  2. Variabel index diberi nilai 2 kemudian data index dibandingkan dengan data ke-3. Jika data index lebih besar maka nilai indexnya diganti dengan data 3. Kemudian data index dibandingkan lagi dengan data ke-4.
  3. Demikian untuk proses selanjutnya dimana banyak prosesnya adalah jumlah elemen array dikurangi 1.
Contoh Program Selection Sort C++:

Contoh Program Selection Sort C++

#include<iostream>
using namespace std;

int main()
{   int a,b,c,d,e;
    b=6;
    int f[6];
    cout<<"SELECTION SORT BY Syarifsoden.BLOGSPOT.COM"<<endl;
    cout<<"mengurutkan nilai dari besar ke kecil"<<endl<<endl;
    for(a=0;a<b;a++)
    {
        cout<<"Masukkan nilai: "<<a+1<<" : ";cin>>f[a];
    }
    for(a=0;a<b-1;a++)
    {
    c=a;
        for(d=a+1;d<b;d++)
        {
            if(f[c]<f[d])
            {
                c=d;
            }
        }
        e=f[c];
        f[c]=f[a];
        f[a]=e;
    }
    cout<<"\n setelah diurutkan akan menjadi: \n";
    for(a=0;a<b;a++)
    {
        cout<<f[a]<<" \n";
    }
}

Hasil Output Program Selection Sort:

Program Selection Sort


      3. Algoritma Pengurutan Sisip (Insertion Sort)

Pengurutan sisip ( Insertion Sort ) adalah algoritma pengurutan dengan cara menyisipkan elemen larik pada posisi yang tepat. Pencarian posisi yang tepat dilakukan dengan cara menyisir larik. Selama penyisiran dilakukan pergeseran elemen larik. Algoritma pengurutan sisip cocok untuk persoalan menyisipkan elemen baru ke dalam sekumpulan elemen yang sudah terurut.


Cara kerja algoritma pengurutan sisip ( Insertion Sort)
  1. Pengurutan dimulai dari data ke-2 sampai data terakhir.
  2. Jika ditemukan data yang lebih kecil atau lebih besar, maka akan ditempatkan ( diinsert) diposisi yang seharusnya.
Contoh program Insertion Sort C++:

program Insertion Sort C++


#include <iostream>
using namespace std;

int main(){
int z;
cout<<"masukan banyak array: ";
cin>>z;
int y[z];
for(int i=0; i<z; i++){
cout<<"masukan angka ke "<<i<<" :";
cin>>y[i];
cout<<endl;
}
for(int i=1; i<z; i++){
int key = y[i];
int j = i-1;
while(j>=0 && y[j] > key){
y[j+1] = y[j];
j--;
}
y[j+1] = key;
cout<<"proses sorting"<<endl;
for(int m=0;m<z;m++){
cout<<y[m]<<" ";
    }
    cout<<endl;
}
cout<<"hasil akhir"<<endl;
for(int m=0;m<z;m++){
cout<<y[m]<<" ";
}
}

Hasil Output Program Insertion Sort C++:
 
Program Insertion Sort C++

Program Insertion Sort C++



Kamis, 25 Juni 2020

Tutorial Belajar C++ Di Windows Untuk Pemula

Tutorial Belajar C++ Di Windows Untuk Pemula

Sebelum kita ke Tutorial Belajar C++ Di Windows Untuk Pemula, kita haru mengenal dulu apa itu Bahasa pemrograman C++, Fungsi dari C++ dan juga aplikasi apa saja yang sudah dibuat dengan bahsa pemrograman C++ ini.

Pengertian Bahasa Pemrograman C++

C++ adalah bahasa pemrograman yang berorientasi objek, dimana untuk menyelesaikan sebuah masalah C++ melakukannya dengan menjelaskan class-class yang merupakan anak class sebagai abstraksi dari objek-objek fisik.

Class-class pada C++ berisi keadaan objek, anggota objek, dan kemampuan objek. Bahasa C++ juga merupakan bahasa turunan dari bahasa C.

Adapun bahasa C merupakan bahasa yang prosedural yaitu untuk membuat prosedur dalam menyelesaikan sebuah masalah. Jadi apa itu C++?

Jadi jika disimpulkan Bahasa pemrograman C++ memiliki dua konsep yaitu Data dan Algoritma. Data pada C++ merupakan bahan yang akan diolah sedangkan Algoritma merupakan metode dalam pengolahannya.

Bahasa Pemrograman C++ adalah bahasa pemrograman yang berorientasi pada objek, dengan konsep data, algoritma dan type data.

Apa Fungsi Dari C++
Jika anda bertanya kegunaan sebenarnya dari C++, tentu sangat banyak. Berikut beberapa contoh dari sekian banyak yang ada

Pengembangan Game, dengan kemampuan C++ dalam mengoptimisasi memory dan manajemen jaringan komputer. C++ memberikan kemampuan penuh untuk dapat mengembangkan permainan yang sangat bermacam-macam. Contohnya Doom 3, Starcraft, Batman Arkham City, Gears of wars 3 dll.

Aplikasi Desktop, dengan adanya pengembangan yang sangat pesat dibandingkan bahasa C, dimana bahasa C++ mendukung pemrograman berbasis objek, selain itu C++ juga dilengkapi berbagai pustaka GUI yang sangat kuat. Beberapa contoh aplikasi yang dikembangkan C++ yaitu Image Ready, Adobe Premiere, Photoshop, dan masih banyak lagi.

Aplikasi Web, C++ memang sangat jarang digunakan pada platform website karena memang sudah sangat banyak bahasa pemrograman lainnya yang lebih mudah dan lebih cepat untuk pengembangan web. Namun masih ada beberapa framework web dengan bahasa C++ seperti TreeFrog dan Cutelyst untuk pengembangan web yang lebih mudah. Tak lupa juga Mozilla Firefox dan Thunderbird dibangun menggunakan bahasa pemrograman ini juga.

Aplikasi Grafik dan Visualisasi, setelah beberapa yang saya sebutkan diatas, C++ juga sangat kuat dalam pengembangan aplikasi pemodelan ataupun simulasi seperti Maya3D.

Aplikasi Database, dengan kemampuan yang sangat luas dalam manajemen memori dan sumber daya tentunya C++ juga banyak digunakan dalam pengembangan aplikasi database. Contohnya MySQL, MemSQL, MongoDB, dan SQL Server.

Sistem Operasi, pastinya C++ juga digunakan dalam pengembangan OS X milik Apple, Microsoft Windows, dan bahkan Symbian

Compiler, tentunya disinilah berbagai bahasa pemrograman pada akhirnya dapat diubah menjadi aplikasi yang dapat digunakan.

Mengapa C++ sangat banyak digunakan ? Beberapa alasan yang kuat adalah bahasa ini mendukung Manajemen Memory secara langsung dan juga telah mendukung Pemrograman Berbasis Objek dimana bahasa C belum bisa lakukan.

Tapi memang seperti yang sudah banyak orang ketahui kalau bahasa C++ tidak cukup mudah dipelajari karena bahasa c++ ini termasuk ke dalam bahasa pemrograman tingkat tinggi. Dimana kita harus memanajemen memori dan proses yang kita gunakan dengan benar dan hati-hati. Namun, dengan begini bahasa ini sangat cocok dipelajari oleh siswa/mahasiswa sebagai pondasi belajar ilmu pemrograman. Dengan begitu anda dapat membuat program dengan lebih optimal.

Aplikasi Yang Sudah Dibuat Menggunakan C++
Ada banyak sekali aplikasi yang dibuat dengan C++, dibawah ini saya sebutkan beberapa aplikasi yang saya tahu saja.

Winamp Media Player.
MySQL Server.
Mozilla Firefox.
Thunderbird.
Google Chrome.
Microsoft Office.
Adobe Photoshop.
Adobe Illustrator.
Java Virtual Machine (JVM).
Desktop Environment: KDE.
Desktop Environment: Apple MacOS UI (Aqua).
dan masih banyak lagi

oke selanjutnya kita masuk ke pembahasan utama. Yaitu, Tutorial Belajar C++ Di Windows Untuk Pemula.

Untuk bisa mempraktikan pembuatan program sederhana menggunakan bahasa pemrograman c++ ini kalian wajib mempunyai software IDE sekaligus compilator C++ dan juga teks editor.

Kalian bisa menggunakan Code Block atau Dev C++ untuk mempraktikan kode kode yang akan saya berikan nanti.

Tapi, sebelum kita ke koding nya kita harus tahu perintah dasar C++ dulu, berikut adalah perintah dasar c++ yang wajib kalian ketahui.

Struktur Dasar Program C++
Bentuk atau struktur dasar program yang dibaut dengan C++ terdiri dari tiga bagian yaitu:

Bagian include
Bagian namespace
Bagian fungsi

1. Bagian Deklarasi Include
Pada bagian ini, kita mendefinisikan library (pustaka) apa saja yang akan kita gunakan di dalam program.

Library bisa kita anggap sebagai program lain yang ingin kita gunakan di dalam program kita. Library ini berisi fungsi-fungsi untuk melakukan input dan output.

Kadang kita juga akan menemukan library yang di-include dengan ekstensi .h, .cpp, .hpp, .cc, .c, dsb.
Contoh:

#include <math.h>
#include <signal.h>
#include <time.h>
#include "hello.h"

Semua memiliki arti yang sama, yaitu: gunakan library yang lain ke dalam program ini.
Perbedaanya pada jenis file yang akan diimpor:

.h artinya header file dari C atau C++.
.cpp artinya source code dari C++.
.hpp artinya header file dari C++.
.cc dan .c artinya header file dari C.
Lalu perbedaan yang lain tedapat pada simbol yang digunakan untuk include.

Jika menggunakan tanda kurung siku <...> maka program akan mencari library ke dalam sistem komputer kita.

Sedangkan yang menggunakan tanda petik, akan mencari ke lokasi yang ditentukan di sana.
Contoh:
#include "/home/soden/hello.h"
Maka program akan mencari library ke dalam direktori /home/ssoden/.

2. Bagian Deklarasi Namespace
Bagian ini sebenarnya bersifat opsional, bisa ditulis dan bisa tidak.
Apabila kita tidak menggunakan namespace std, maka untuk menggunakan fungsi cin dan cout yang ada pada library iostream harus diawali dengan std::.
Seperti ini:

std::cout << "Hello World!" << endl;
std::cout << "Belajar C++!" << endl;
Jika tidak ingin menulis std:: terus-menerus, maka gunakanlah namespace std.

3. Bagian Fungsi
Bagian ini adalah baigan terpenting dalam pemrograman C++, di sinilah kita akan banyak menulis kode program.

Misalnya Fungsi main() adalah fungsi yang akan dieksekusi pertamakali saat program dibuka.
Fungsi ini wajib ada di setiap program yang dibuat untuk dieksekusi.

Tapi Jika hanya membuat program yang berfungsi sebagai library saja, fungsi main() boleh tidak dibuat.

Selain fungsi main() kita juga bisa membuat fungsi yang lain pada bagian ini.
Contoh:
#include <iostream>
using namespace std;

int main(){
   cout << "Hello world!" << endl;
   return 0;
}

void hello(){
   cout << "Hello apa kabar?" << endl;
}

Pada contoh di atas kita membuat fungsi hello() di bawah fungsi main().
Tapi kita tidak boleh menuliskannya di dalam fungsi main seperti ini:

#include <iostream>
using namespace std;

int main(){
   cout << "Hello world!" << endl;
   void hello(){
      cout << "Hello apa kabar?" << endl;
   }
   return 0;
}

2. Penulisan Statement dan Ekspresi
Statemen dan ekspresi adalah perintah-perintah yang ditulis di dalam fungsi.
Contoh:

#include <iostream>
using namespace std;

int main(){
   cout << "Hello world!" << endl;
   cout << "Saya belajar c++" << endl;
   cout << "Belajar C++ itu mudah";
   return 0;
}
Perhatikan baris-baris ini:
cout << "Hello world!" << endl;
cout << "Saya belajar c++" << endl;
cout << "Belajar C++ itu mudah";
return 0;

Ini adalah statement dan ekspresi. Penulisan statement dan ekspresi wajib diakhiri dengan titik-koma (;).
Apabila tidak ada titik-koma, maka program akan error.

Setelah kalian tahu perintah dasar c++ berikut saya sudah menyiapkan beberapa contoh program c++ dan penjelasannya.


  1. Program C++ Konversi Angka Menjadi Bilangan

Program C++ Konversi Angka Menjadi Bilangan
Syntax C++:

#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
void satuan (int a)
{
if (a==1) {cout<<" Satu ";}
else if (a==2) {cout<<" Dua ";}
else if (a==3) {cout<<" Tiga ";}
else if (a==4) {cout<<" Empat ";}
else if (a==5) {cout<<" Lima ";}
else if (a==6) {cout<<" Enam ";}
else if (a==7) {cout<<" Tujuh ";}
else if (a==8) {cout<<" Delapan ";}
else if (a==9) {cout<<" Sembilan ";}
else if (a==10) {cout<<" Sepuluh ";}
else if (a==11) {cout<<" Sebelas ";}
}
void terbilang (long long b)

{if (b<=11) {satuan(b);} else if ((b>11) && (b<=19))
{terbilang(b%10); cout<<"Belas ";}   else if ((b>=20)&&(b<=99))
{terbilang(b/10); cout<<"Puluh "; terbilang(b%10);} else if ((b>=100)&&(b<=199))
{cout<<"Seratus "; terbilang(b%100);} else if ((b>=200)&&(b<=999))
{terbilang(b/100); cout<<"Ratus "; terbilang(b%100);}   else if ((b>=1000)&&(b<=1999))
{cout<<"Seribu "; terbilang(b%1000);} else if ((b>=2000)&&(b<=9999))
{terbilang(b/1000); cout<<"Ribu "; terbilang(b%1000);} else if ((b>=10000)&&(b<=99999))
{terbilang(b/1000); cout<<"Ribu "; terbilang(b%1000);} else if ((b>=100000)&&(b<=999999))
{ terbilang(b/1000); cout<<"Ribu "; terbilang(b%1000);} else if ((b>=1000000)&&(b<=999999999))
{ terbilang (b/1000000); cout<<"Juta "; terbilang (b%1000000);} else if ((b>=1000000000)&&(b<=999999999999))
{ terbilang (b/1000000000); cout<<"Milyar "; terbilang (b%1000000000);} else if ((b>=1000000000000))
cout<<"Maaf ! Angka Yang Anda Masukan Salah!\n\n";
}

int main()
{
long double nilai;
cout<<"\t\t\t=====PROGRAM KONVERSI ANGKA KE HURUF=====\n";
cout<<"\n\n Input Angka: ";cin>>nilai;
cout<<"\n\n Hasil Konversi Bilangan: ";
terbilang(nilai);
}

Hasil Output Program Konversi Angka C++:

Program Konversi Angka C++


     2. Program Kalkulator Sederhana C++


Tutorial Belajar C++ Di Windows Untuk Pemula

Syntax C++:

#include <iostream>

#include <cstdlib>


using namespace std;


int main()

{


    float a,b;

    int kode;


    menu :

    cout << "Kalkulator Sederhana C++ \n";

    cout << "Pilihan Operator : \n";

    cout << "1.Operator (+)\n";

    cout << "2.Operator (-)\n";

    cout << "3.Operator (*)\n";

    cout << "Masukkan Kode Operator : ";cin >> kode;

    if (kode > 3 || kode < 1){

        cout << "\nKode yang anda masukkan tidak ada \nSilahkan masukkan ulang kode .";

        system("pause");

        system("cls");

        goto menu;

    }

    else {

        cout << "Operan 1 : ";cin >> a;

        cout << "Operan 2   : ";cin >> b;

        if (kode == 1){

cout << "\nHasil penjumlahan dari "<<a<<" + "<<b<<" adalah : "<<a+b<<endl;

        }

        else if (kode == 2){

            cout << "\nHasil pengurangan dari "<<a<<" - "<<b<<" adalah : "<<a-b<<endl;

        }

        else if (kode == 3){

            cout << "\nHasil perkalian dari "<<a<<" * "<<b<<" adalah : "<<a*b<<endl;

        }

    }

    return 0;

}


Hasil Output Program Kalkulator Sederhana C++:

Program Kalkulator Sederhana C++



Selasa, 23 Juni 2020

Download Dev C++ Versi 5.11 || Download Compiler C++

Download DevC++


Dev C++ merupakan sebuah IDE (Integrated Development Environment) C / C++ yang sudah dilengkapi dengan TDM-GCC Compiler (bagian dari GNU Compiler Collection / GCC). Dibawah ini kalian bisa men download Dev C++ Terbaru. Dev-C++ merupakan Compiler C++ gratis dan full featur yang didistribusikan dibawah lisensi GNU General Public License untuk pemrograman C dan C++. seperti yang sudah disebutkan diatas IDE merupakan Lembar kerja terpadu untuk pengembangan program.

Daftar fitur Di DevC++
  1. Lain dev-C + + screenshot
  2. Mendukung kompiler berbasis GCC
  3. Debugging terintegrasi (menggunakan GDB)
  4. Dukungan untuk beberapa bahasa (lokalisasi)
  5. Kelas browser
  6. Penyelesaian kode
  7. Debug variabel browser
  8. Manajer Proyek
  9. Customizable sintaks menyoroti editor
  10. Cepat membuat Windows, konsol, statis Perpustakaan dan dll
  11. Dukungan template untuk membuat jenis proyek Anda sendiri
  12. Pembuatan Makefile
  13. Mengedit dan mengkompilasi file sumber daya
  14. Manajer alat
  15. Dukungan cetak
  16. Cari dan ganti Fasilitas
  17. Manajer paket, untuk memudahkan pemasangan pustaka add-on
  18. Dukungan CVS
  19. Daftar to-do
  20. Jendela CPU

Persyaratan Penggunaan Dev C++
  1. Windows 95 atau yang lebih baru.
  2. 32 MB RAM.
  3. Executable dikompilasi oleh dev-C + + akan membutuhkan msvcrt. DLL (dilengkapi dengan Windows 95 OSR 2 atau lebih tinggi).
Screen Shoot Program DevC++:

Download Compiler C++

Link Downoad DevC++ Terbaru Gratis:

Lisensi Dev C++
Dev-C + + adalah perangkat lunak bebas yang didistribusikan di bawah Lisensi Publik Umum GNU.
Ini berarti Anda bebas untuk mendistribusikan dan memodifikasi dev-C + +, tidak seperti kebanyakan perangkat lunak Windows! Pastikan membaca lisensi.
Pengarang: Colin Laplace: IDE utama pembangunan; Hongli Lai: IDE update, Splash Screen dan ikon

MinGW: Mumit Khan, Jan Jaap Van der Heidjen, Colin Hendrix dan GNU coders.
Sistem Operasi: Windows 95/98/NT/2000 dan atasnya
Status: perangkat lunak bebas (di bawah Lisensi Publik Umum GNU)
Ukuran: 48 MB


Nah itulah tadi artikel mengenai Download DevC++ Terbaru secara gratis, jika ada link yang rusak atau tidak dapat diakses silahkan laporkan di kolom komentar, semogan artikel ini bermanfaat untuk kalian. Jangan lupa share artikel ini agar lebih banyak lagi orang yang tahu.

Jika ada yang mau request compiler atau IDE lain bisa tulikan di kolom komentar.


Download Code Blocks Compiler C++ || Download Compiler C++

Compiler C++

Code Blocks adalah adalah suatu program lingkungan pengembangan terpadu bebas, nirlaba, bersumber terbuka dan lintas platform. Program yang ditulis dalam C++ beserta Widgets untuk GUI-nya ini bisa digunakan bersama dengan berbagai macam kompilator, contohnya GCC dan Visual C++. Peralatannya yang tersedia tergantung dari "plugin" yang dipasang. Sekarang ini, Code::Blocks lebih tersedia sebagai perangkat pengembangan dalam bahasa C dan C++, walaupun program ini juga bisa disesuaikan, dan mungkin akan membutuhkan pemasangan tambahan, untuk pengembangan perangkat lunak ARM, AVR, DirectX, FLTK, Fortran, GLFW, GLUT, GTK+,Irrlicht, Lightfeather, MATLAB, dll. Code::Blocks tersedia di sistim operasi Windows 98 keatas, Linux, Mac OS X dan FreeBSD.

Code::Blocks bisa digunakan bersama dengan banyak kompilator lain, contohnya MinGW (GCC untuk Windows), Digital Mars, Visual C++, Borland C++, LLVM Clang, Watcom, LCC, dan Intel C++ Compiler. Walau sebenarnya lebih untuk C++, masih terdapat juga kompilator untuk bahasa pemrograman selain C++, contohnya GNU Fortran, Digital Mars D, dan GNU GDC. Dengan sistem "plugin"-nya Code::Blocks, penggunaan untuk bahasa-bahasa pemrograman lainnya juga bisa turut dipasang.

Integrated Development Environtment (IDE) adalah suatu aplikasi komputer yang digunakan untuk mengembangkan aplikasi berdasarkan bahasa pemrograman tertentu. IDE biasanya terdiri dari Graphical User Interface builder, text atau code editor, compiler atau interpreter, serta debugger.

Melalui bantuan compiler, program yang ditulis dalam bahasa pemrograman (seperti C++) diterjemahkan menjadi kode mesin sehingga bisa dijalankan oleh komputer. Sebelum me-release program yang dibuat, diperlukan proses debugging, yaitu melacak lokasi kesalahan (bug) pada program kemudian memperbaikinya. Alat untuk melakukan debugging dinamakan debugger. Dengan debugger memungkinkan programmer untuk menghentikan program yang sedang berjalan di titik-titik tertentu (breakpoint).

Contoh IDE untuk bahasa pemrograman C/C++ adalah Code::Blocks, Dev C++, Borland C++, Visual Studio, dan lain sebagainya.

Fitur Di Code Blocks

Highlights:

  1. Open Source! GPLv3, no hidden costs. 
  2. Cross-platform. Runs on Linux, Mac, Windows (uses wxWidgets). 
  3. Written in C++. No interpreted languages or proprietary libs needed. 
  4. Extensible through plugins 

Compiler Di Code Blok:

  1. Multiple compiler support: 
  2. GCC (MingW / GNU GCC) 
  3. MSVC++ 
  4. clang 
  5. Digital Mars 
  6. Borland C++ 5.5 
  7. Open Watcom and more 
  8. Very fast custom build system (no makefiles needed) Support for parallel builds (utilizing your CPU's extra cores) 
  9. Multi-target projects 
  10. Workspaces to combine multiple projects 
  11. Inter-project dependencies inside workspace Imports MSVC projects and workspaces (NOTE: assembly code not supported yet) 
  12. Imports Dev-C++ projects 

Debugger Di Code Block:

  1. Interfaces GNU GDB 
  2. Also supports MS CDB (not fully featured) 
  3. Full breakpoints support: 
  4. Code breakpoints 
  5. Data breakpoints (read, write and read/write) 
  6. Breakpoint conditions (break only when an expression is true) 
  7. Breakpoint ignore counts (break only after certain number of hits) 
  8. Display local function symbols and arguments 
  9. User-defined watches (support for watching user-defined types through scripting) 
  10. Call stack 
  11. Disassembly 
  12. Custom memory dump 
  13. Switch between threads 
  14. View CPU registers 

Interface Di Code Block: 
  1. Syntax highlighting, customizable and extensible 
  2. Code folding for C, C++, Fortran, XML and many more files. 
  3. Tabbed interface 
  4. Code completion 
  5. Class Browser 
  6. Smart indent 
  7. One-key swap between .h and .c/.cpp files 
  8. Open files list for quick switching between files (optional) 
  9. External customizable "Tools" 
  10. To-do list management with different users 
Tampilan CODE BLOCKS

Code Blocks

Plugin
Code :: Block dirancang di sekitar kerangka kerja plugin untuk memudahkan pengguna memperluas / memperbaikinya tanpa harus menyentuh satu baris Kode sumber Code :: Blocks.

untuk kalian yang ingin men-Download Compiler C++ Code Blocks ini silahkan klik toblol dibawah ini:

License
Code :: Blocks didistribusikan di bawah Lisensi Publik Umum GNU, versi 3, yang artinya dapat digunakan secara bebas oleh siapa saja! Satu-satunya pengecualian adalah SDK, didistribusikan di bawah GNU Lesser General Public License, versi 3, yang diizinkan untuk ditautkan oleh plugin sumber tertutup.

itulah tadi compiler c++ Code::Blocks. Untuk kalian yang ingin menggunakannya silahkan klik link diatas, sekian artikel kali ini semoga bermanfaat. Jika ada link yang rusak silahkan laporkan lewat kolom komtar ya guys. Jangan lupa share jika artikel ini bermanfaat.

Senin, 22 Juni 2020

Algoritma Rekursif C++

Definisi Rekursi C++, apa itu rekursi

Oke sahabat setia syarif soden, ketemu lagi di blog kesayangan kalian. Pada kesempatan kali ini Mimin akan membahas tentang Algoritma Rekursif pada bahasa pemrograman C++.

Untuk para programmer pemula kalian wajib menguasai materi ini agar bisa membuat program yang utuh dan bagus.

Oke kita langsung ke materi pembahasan.

         Definisi Rekursif C++
Sebuah objek dikatakan rekursif jika ia didefinisikan menjadi lebih sederhana dalam terminology dirinya sendiri. Nicklaus Wirth mendefinisikan rekursif  sebagai “sebuah objek dikatakan rekursif jika sebagian terdiri atau didefinisikan dalam hal itu sendiri” (diartikan menggunakan google translate).

Dalam kehidupan sehari-hari banyak terdapat objek yang rekursif di alam.

Daya guna rekursif terletak pada kemampuannya mendefinisikan sekumpulan objek yang tidak terbatas dengan sebuah pernyataan terbatas. Sebuah perhitungan yang tidak terhingga misalnya, dapat digambarkan dengan algoritma rekurif, seolah-olah algoritma tersebut mengandung perulangan yang tidak terlihat secara eksplisit.

Algoritma rekursif untuk menghitung n! sebagai berikut:

Function Fak(n : integer) =>integer
{mengembalikan nilai n! Algoritma rekursif.
Basis : jika n = 0, maka 0! = 1
Rekurens : jika n > 0, maka n! = n x (n-1)!
}
DEKLARASI
-
ALGORITMA
If n = 0 then
Return 1
Else
Return n*Fak(n-1)
End if

Proses Rekursif C++
Banyak objek di dalam matematika yang didefinisikan dengan cara  menyatakan suatu proses yang menghasilkan objek tersebut. Yang pasti, proses tersebut harus berhenti dengan memberikan hasil yang didefinisikan. Sebagai contoh, π diperoleh dengan membagi keliling lingkaran (K) dengan diameternya (D). Algoritmanya sebagai berikut:

  1. Baca keliling lingkaran, K
  2. Baca diameter  lingkaran, D
  3. Hitung π = K/D

Contoh objek lain yang diperoleh dari suatu proses adalah factorial. Factorial dari bilangan bulat tak-negatif n didefinisikan sebagai berikut:

Rekursi, Rekursi C++, Rekursif


Sebagai contoh,
0! = 1
1! = 1
2! = 1x2
3! = 1x2x3
4! = 1x2x3x4

Algoritma menghitung factorial

Function Faktorial(n : integer =>integer
{mengembalikan nilai n!}
DEKLARASI
I, F : integer
Algoritma
F <= 1
I <= 1
While I ≤ n do
F <= F*I
I < = I + 1
End while
{I > n}
Return F

Skema Umum Prosedur Dan Fungsi Rekursif C++
Algoritma rekursif adalah algoritma yang memanggil dirinya sendiri. Oleh karena itu, algoritma rekursif harus dinyatakan dalam prosedur atau fungsi, karena hanya prosedur dan fungsi yang dapat dipanggil di dalam sebuah program.

Secara umum, skema dasar fungsi rekursif adalah sebagai berikut:

Function F(x : x_type)=> function_type
{mengembalikan nilai F}
DEKLARASI
Y : y_type
ALGORITMA
If T(x) then
Return N(x) {basis}
Else
R1(x)
Return F(g(x))
R2(x)
End if

Peubah x adalah parameter pemanggil prosedur ( dapat berupa parameter by value atau parameter by reference), R1 dan R2 masing-masing adalah prosedur ( atau sekumpulan instruksi) yang dipanggil sebelum dan sesudah pemanggilan rekursif, g adalah fungsi yang mengubah nilai parameter x, T adalah fungsi untuk kasus basis, dan N adalah fungsi jika kasus basis tercapai. Perhatikanlah bahwa R1 dan R2 tidak selalu harus ada.

Bagaiman Program Rekursif C++ Bekerja?
Program dalam suatu bahasa pemrograman tertentu dikompilasi dan ditranslasi ke dalam bahasa mesin oleh program compiler. Memahami cara compiler menangani program rekursif dapat membantu kita untuk:


  1. Meminimalkan jumlah parameter yang dilewatkan pada waktu pemanggilan.
  2. Mengubah algoritma rekursif menjadi program iterative dengan cara meniru (simulasi) mekanisme pelaksanaan program rekursif.

Pertama-tama kita harus mengetahui mekanisme pemanggilan prosedur  atau fungsi yang ditangani oleh compiler c++. Ketika sebuah prosedur atau fungsi dipanggil, area data di memori dialokasikan untuk pemanggilan tersebut.

Area data ini akan menyimpan:

  1. Parameter yang dilewatkan waktu pemanggilan.
  2. Semua peubah local di dalam prosedur atau fungsi.
  3. Alamat Kembali ( return address ), yaitu alamat instruksi berikutnya di dalam program pemanggil c++ setelah prosedur atau fungsi selesai dilaksanakan.


Setelah mengisi data area, kendali program c++ dipindahkan ke prosedur atau fungsi.
Semua acuan terhadap nilai parameter dan peubah local adalah nilai yang terdapat didalam data area. Bila prosedur atau fungsi selesai dilaksanakan, alamat kembalinya diambil dari area data, kendali program bercabang ke alamat tersebut, dan alokasi memori untuk area data dibebaskan.

Tiap compiler c++ berbeda-beda dalam mengimplementasikan area data, tetapi pada umumnya area data diimplementasikan dalam bentuk tumpukan (stack). Tumpukan (stack) adalah sekumpulan elemen di mana semua penambahan (insert) elemen atau penghapusan (delete) elemen hanya dapat dilakukan pada sebuah sisi yang disebut top.

Dengan menggunakan tumpukan, suatu prosedur atau fungsi tidak kehilangan kendali Ketika memanggil prosedur atau fungsi lainnya. Pada setiap kali pemanggilan, akan dialokasikan memori ( area data ) untuk elemen baru tumpukan, kemudian elemen ini di-push ke dalam tumpukan. Ketika prosedur atau fungsi selesai dilaksanakan, elemen di puncak tumpukan di-pop, alamat kembalinya diambil, dan alokasi memori untuk elemen tersebut dibebaskan.

Kapan Tidak Menggunakan Fungsi Rekursif C++?
Secara intuitif, algoritma rekursif sangat tepat diterapkan untuk persoalan yang alaminya memang rekursif, misalnya persoalan yang menggunakan struktur data rekursif seperti list dan pohon, aplikasi games, dan lain-lain. Persoalan seperti itu didefinisikan dalam hubungan rekursif, dan di sini Teknik pemrograman rekursif menunjukan kedayagunaannya.

Terdapat dua alasan mengapa kita harus mengubah algoritma rekursif menjadi algortma iterative. Pertama, bahasa pemrograman yang akan digunakan tidak mendukung pemanggilan rekursif. Hal ini terjadi pada bahasa pemrograman FORTRAN yang tidak memungkinkan menggunakan rekursifitas, sehingga menghalangi penyelesaian rekursif meskipun cara ini cocok untuk persoalan tertentu.
Kedua, dapat terjadi bentuk rekursif tidak mangkus, memiliki kerumitan yang tidak diperlukan, atau terlalu lambat.

Alas an kedua ditunjukan pada persoalan menentukan deret Fibonacci berikut:

0,1,1,2,3,5,8,13,16,18, …

     Rekursif Dalam Bahasa Pascal, Bahasa C Dan Bahasa C++
Tidak ada perbedaan antara pemanggilan prosedur rekursif dengan prosedur biasa ( tanpa rekursif ) didalam bahasa pascal, bahasa C, maupun bahasa C++. Ketiga bahasa pemrograman ini mendukung rekursifitas.

Contoh program C++ Rekursif

Program rekursif c++ dengan batas akhir

Algoritma pemanggilan fungsi hitungDeret

  1. Mulai
  2. Inisialisasi x = 3
  3. Panggil rekursi (x)
  4. Selesai

Kode Program C++ Rekursif
#include <iostream>
#include <stdio.h>
void Rekursif (int n);
int main ()
{
int x=3;
Rekursif(x);
}
void Rekursif (int n)
{
static int j=0;
if (n<=0) return;
printf("rekursif Ke-D\n", ++j);
Rekursif(n-1);
}

Program Faktorial Rekursif C++
Kode Program
#include <iostream>
using namespace std;

long Rekursif_Faktorial(int b)
{
    if (b == 0)
        return 1;
    else
        cout<<"faktorial"<<endl;
        return b * Rekursif_Faktorial(b-1);

}
int main()
{
    int x;

    cout<<"Masukan Angka yang akan difaktorialkan : ";
    cin>>x;
    cout << x <<"! = " << Rekursif_Faktorial(x) <<endl;
    return 0;
}

Hasil Output
Program Faktorial Rekursif C++


Program Rekursif C++ Menulis Angka Dari 0 Ke n
Kode program
#include<iostream>
using namespace std;
int i;
int angka(int n )
{
    cout<<"MASUKKAN ANGKA :";
    cin>>n;
     for (i=0; i<n; i++)
    {
        cout<<"Rekursi Dari 0 Ke N : "<<i;
        cout<<endl;
    }
    return n;
}

int main ()
{
    int n;
    int i;
    cout<<angka(i);
}

Hasil output
Program Rekursif C++ Menulis Angka Dari 0 Ke n


Program Rekursif C++ Untuk Membalikkan Kalimat
Kode program
#include<iostream>
#include<string.h>
#include<iomanip>
using namespace std;
char rubah[1000];
void rubah_kalimat( ){
int i,n,p;
cout<<"KATA SETELAH DIBALIK : ";
n=strlen(rubah);
for(i=n-1; i>=0; i--)
{
cout<<rubah[i];
}
}
int main(){
cout<<"MASUKKAN KATA     : "; cin>>rubah;
rubah_kalimat();
}

Hasil output
Program Rekursif C++ Untuk Membalikkan Kalimat


Macam-macam struktur percabangan pada c++ dan struktur perulangan pada c++

percabangan pada c++,  perulangan pada c++, Percabangan, Perulangan

Dalam Pemrograman C++ kita harus mengetahui bermacam-macam blok percabangan dan perulangan, karena ini nantinya akan kita pakai dalam suatu kondisi. Dimana kondisi tersebut tidak memungkinkan kita untuk memakai kode c++ yang biasa. nah pada kesempatan kali ini mimin akan membahas tentang, Macam-macam struktur percabangan pada c++ dan struktur perulangan pada c++.

Macam-macam Bentuk Blok Percabangan pada C++

1. Percabangan if Dalam C++

Percabangan if Dalam C++

Percabangan if merupakan percabangan yang hanya memiliki satu blok pilihan saat kondisi bernilai benar.

Buatlah file bernama if.cpp, kemudian isi dengan kode berikut.

#include <iostream>
using namespace std;

int main(){

    cout << "=== Program Pembayaran ===" << endl;
    unsigned int total_belanja;

    cout << "Masukan total belanja: ";
    cin >> total_belanja;

    // menggunakan percabangan if
    if(total_belanja > 100000){
        cout << "Selamat! anda dapat hadiah" << endl;
    }

    cout << "Terimakasih sudah berbelanja di toko kami" << endl;

    return 0;
}

Baca Juga: Struktur Percabangan If Dalam C++

Kompilasi kode tersebut dengan perintah:
g++ if.cpp -o if
Lalu eksekusi dengan perintah:
./if
Perhatikan pada bagian ini:
// menggunakan percabangan if
if(total_belanja > 100000){
    cout << "Selamat! anda dapat hadiah" << endl;
}
Inilah yang disebut blok program.

Blok program berisi sekumpulan ekpresi dan statement untuk dikerjakan oleh komputer.
Blok program pada C++, selalu diawali dengan tanda buka kurung kurawal {dan akan diakhiri dengan tutup kurung kurawal }.

Apabila di dalam blok hanya terdapat satu baris ekspresi atau statement, maka boleh tidak ditulis tanda kurungnya.

if (total_belanja > 100000)
    cout << "Selamat! anda dapat hadiah" << endl;

2. Percabangan if/else Dalam C++

Percabangan if/else Dalam C++

Percabangan if/else merupakan percabangan yang memiliki dua blok pilihan.
Blok pilihan pertama untuk kondisi benar, dan pilihan kedua untuk kondisi salah (else).
Buatlah file beru bernama if_else.cpp, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;

int main(){

    string password;

    cout << "========= Login =========" << endl;
    cout << "Masukan password: ";
    cin >> password;

    // percabangan if/else
    if (password == "sayangkamu"){
        cout << "Selamat datang bro!" << endl;
    } else {
        cout << "Password salah, coba lagi!"  << endl;
    }

    cout << "Terimakasih sudah menggunakan aplikasi ini!" << endl;

    return 0;
}

3. Percabangan if/else/if Dalam C++

Percabangan if/else/if Dalam C++

Percabangan if/else/if merupakan percabangan yang memiliki lebih dari dua blok pilihan.
Contoh Program:

#include <iostream>
using namespace std;

int main(){

    int nilai;
    string grade;
   
    cout << "=== Program Grade Nilai ===" << endl;
    cout << "Inputkan nilai akhir: ";
    cin >> nilai;

    // menggunakan percabangan if/esle/if
    if (nilai >= 90) {
        grade = "A";
    } else if (nilai >= 80) {
        grade = "B";
    } else if (nilai >= 70) {
        grade = "C";
    } else if (nilai >= 60) {
        grade = "D";
    } else if (nilai >= 55) {
        grade = "E";
    } else if (nilai >= 40) {
        grade = "F";
    } else if (nilai >= 30) {
        grade = "G";
    } else {
        grade = "H";
    }

    cout << "Grade anda: " << grade << endl;

    return 0;
}

Baca Juga: Pengenalan Bahasa Pemrograman C++

4. Percabangan Switch/Case Dalam C++

Percabangan Switch/Case Dalam C++

Percabangan switch/case adalah bentuk lain dari percabangan if/else/if.
Strukturnya seperti ini:

switch(variabel)
{
    case <value>:
        // blok kode
        break;
    case <value>:
        // blok kode
        break;
    default:
        // blok kode
}

Kita dapat mermbuat blok kode (case) sebanyak yang diinginkan di dalam blok switch.
Pada <value>, kita bisa isi dengan nilai yang nanti akan dibandingkan dengan varabel.

Setiap case harus diakhiri dengan break. Khusus untuk default, tidak perlu diakhiri dengan break karena dia terletak di bagian akhir.

Baca Juga: Program Gaji Karyawan C++

Pemberian break bertujuan agar program berhenti mengecek case berikutnya saat sebuah case terpenuhi.

Contoh:
#include <iostream>
using namespace std;

int main(){

    char grade;

    cout << "Inputkan grade: ";
    cin >> grade;

    switch (toupper(grade)){
        case 'A':
            cout << "Luar biasa!" << endl;
            break;
        case 'B':
        case 'C':
            cout << "Bagus!" << endl;
            break;
        case 'D':
            cout << "Anda lulus" << endl;
            break;
        case 'E':
        case 'F':
            cout << "Anda remidi" << endl;
            break;
        default:
            cout << "Grade Salah!" << endl;
    }

    return 0;
}

Perhatikan program di atas.

Kita menggunakan fungsi toupper() untuk mengubah huruf kecil menjadi huruf kapital atau huruf besar.

switch (toupper(grade))
{
    ...
}

Mengapa menggunakan toupper()?
Ini karena agar kita dapat menginputkan huruf kecil dan huruf besar untuk mengecek grade.
Berikutnya coba perhatikan case 'B' dan case 'E'.

Kedua case ini tidak memiliki isi.
Ini artinya dia akan mengikut pada case berikutnya.
Sebagai contoh, apabila kita inputkan B maka case C yang akan terpilih.
Begitu juga saat kita inputkan E, maka case F yang akan terpilih.

5. Percabangan dengan Opertor Ternary
Percabangan menggunakan opreator ternary merupakan bentuk lain dari percabangan if/else.
Bisa dibilang:

Bentuk singkatnya dari if/else.
Operator ternary juga dikenal dengan sebutan operator kondisi (conditional operator).
Bentuk strukturnya seperti ini:

(kondisi) ? true : false
Bagian kondisi dapat kita isi dengan ekspresi yang menghasilkan nilai truedan false.
Lalu setlah tanda tanya ? adalah bagian pilihan.
Jika kondisi bernilai benar, maka true yang akan dipilih. Tapi kalau salah, maka false yang akan dipilih.

Untuk lebih jelasnya, mari kita coba.
Buatlah file baru bernama ternary.cpp, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;

int main(){

    int jawaban;

    cout << "Berapakah hasil 3+4?" << endl;
    cout << "jawab> ";
    cin >> jawaban;

    string hasil = (jawaban == 7) ? "Benar" : "Salah";
   
    cout << "Jawaban anda: " << hasil << endl;

    return 0;
}

6. Percabangan Bersarang (Nested)
Kita juga dapat membuat blok percabangan di dalam percabangan. Ini disebut percabangan bersarng atau nested if.

Contoh:   nested.cpp
#include <iostream>
using namespace std;

int main(){
   
    string username, password;

    cout << "=== Welcome ===" << endl;
    cout << "Username: ";
    cin >> username;
    cout << "Password: ";
    cin >> password;

    if (username == "syarifsoden"){
        if (password == "diadankamu"){
            cout << "Selamat datang bos!" << endl;
        } else {
            cout << "Password salah, coba lagi!" << endl;
        }
    } else {
        cout << "Anda tidak terdaftar" << endl;
    }

    return 0;
}

Macam-macam Blok Perulangan di C++

1. Blok Perulangan For pada C++

Blok Perulangan For pada C++

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

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(){
    for(int i = 0; i < 10; i++){
        printf("Perulangan ke-%i\n", i);
    }

    return 0;
}

Apakah nama variabelnya harus selalu i?
Tidak.
Kita juga bisa menggunakan nama lain.
Misalnya:

#include <iostream>
using namespace std;

int main(){
    for(int counter = 0; counter < 10; counter += 2){
        printf("Perulangan ke-%i\n", counter);
    }

    return 0;
}

Pada contoh tersebut, kita melakukan perulangan dimulai dari nol 0. Lalu di setiap perulangan nilai variabel couter akan ditambah 2 (counter+=2).

Bagaimana kalau counter perulangannya dimulai dari akanga yang lebih besar sampai yang ke paling kecil?
Ini biasanya kita buat saat ingin menghitung mundur.
Caranya gampang.

Kita tinggal isi nilai counter dengan nilai terbesarnya.
Misalnya kita akan mulai hitungan dari 10 sampai ke 0.
Maka nilai counter, kita isi awalnya dengan 10.

Lalu di kondisi perbandingannya, kita berikan counter > 0. Artinya perulangan akan dilakukan selama nilai counter lebih besar dari 0.

Lalu kita kurangi (-1) nilai counter di setiap perulangan (counter--).
for(int counter = 10; counter > 0; counter--)
{
    printf("Perulangan ke-%i\n", counter);
}

Mengapa tidak sampai nol (0)?
Karena kondisi yang kita berikan counter > 0. Apabila counter bernilai 0, maka kondisi ini akan menjadi false.

Kecuali kita menggunakan operator lebih besar sama dengan (>=), maka jika counter bernilai 0, kondisi akan menjadi true.

2. Perulangan While pada C++

Perulangan While pada C++

Perulangan while merupakan perulangan yang termasuk dalam perulangan uncounted loop.
Perulangan while juga dapat menjadi perulangan yang counted loop dengan memberikan counter di dalamnya.

Untuk memahami perulangan ini mari kita coba lihat contohnya:

#include <iostream>
using namespace std;

int main(){
    char ulangi = 'y';
    int counter = 0;

    // perulangan while
    while(ulangi == 'y'){
        printf("Apakah kamu mau mengulang?\n");
        printf("Jawab (y/t): ");
        cin >> ulangi;

        // increment counter
        counter++;
    }

    printf("\n\n----------\n");
    printf("Perulangan Selesai!\n");
    printf("Kamu mengulang sebanyak %i kali.\n", counter);

    return 0;
}

Coba perhatikan blok kode while:
// perulangan while
while(ulangi == 'y')
{
    printf("Apakah kamu mau mengulang?\n");
    printf("Jawab (y/t): ");
    cin >> ulangi;
    // increment counter
    counter++;
}

Di sana Perulangan akan terjadi selama variabel ulangi brenilai y.
Lalu kita menggunakan fungsi scanf() untuk mengambil input.

Selama kita menjawab y pada input, maka perulangan akan terus dilakukan.
Tapi kalau kita jawab yang lain, maka perulangan akan dihentikan.
Karena kondisi perulangannya tidak terpenuhi.

3. Perulangan Do/While pada C++

Perulangan Do/While pada C++

Perulangan do/while sama seperti perulangan while.
Perbedaanya:

Perulangan do/while akan melakukan perulangan sebanyak 1 kali terlebih dahulu, lalu mengecek kondisi yang ada di dalam kurung while.

Bentuk kodenya seperti ini:
Do
 {
    // blok kode yang akan diulang
} while (<kondisi>);
Jadi perbedaanya:
Perulangan do/while akan mengecek kondisi di belakang (sesudah mengulang), sedangkan while akan mencek kondisi di depan atau awal (sbelum mengulang).
Mari kita coba lihat contohnya:

#include <iostream>
using namespace std;

int main(){
    char ulangi = 'y';
    int counter = 0;

    do {
        printf("Apakah kamu mau mengulang?\n");
        printf("Jawab (y/t): ");
        cin >> ulangi;

        // increment counter
        counter++;
    } while(ulangi == 'y');

    printf("\n\n----------\n");
    printf("Perulangan Selesai!\n");
    printf("Kamu mengulang sebanyak %i kali.\n", counter);

    return 0;
}
Contoh tersebut sama seperti contoh pada perulangan while.
Saat perulangan pertama, cobalah untuk membatalkan perulangannya dengan menjawab t.

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.
Mari kita coba lihat contohnya:

#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 dua perulangan for.
Perulangan pertama menggunakan variabel i sebagai counter, sedangkan perultangan kedua menggunakan variabel j sebagai counter.

Nah itulah tadi struktur percabangan pada c++ dan struktur perulangan pada c++, sesuaikan struktur mana yang akan sobat pakai berdasarkan konsidi yang sedang sobat alami.

Minggu, 21 Juni 2020

Pengenalan Bahasa Pemrograman C++

Pengenalan Bahasa Pemrograman C++

Bahasa Pemrograman C++ adalah bahasa Pemrograman Komputer Tingkat Tinggi (High Level Language), tapi C++ juga dimungkinkan untuk menulis Bahasa Pemrograman Tinggkat Rendah (Low Level Language) di dalam pengkodean.

karena C++ merupakan perluasan dari Bahasa Pemrograman C yang tergolong dalam Bahasa Pemrograman Tingat Menengah (Middle Level Language), yang berarti Bahasa Pemrograman C++ memiliki semua fitur dan kelebihan yang bahasa pemrograman C miliki, termasuk kelebihan Bahasa C yaitu kita dimungkinkan untuk menggunakan Bahasa Pemrograman Assembly di dalam pengkodingan C, dan juga menyediakan fasilitas untuk memanipulasi memori tingkat rendah.

C++ adalah bahasa pemrograman komputer yang di buat oleh Bjarne Stroustrup, yang merupakan perkembangan dari bahasa C dikembangkan di Bell Labs (Dennis Ritchie) pada awal tahun 1970-an, bahasa itu diturunkan dari bahasa sebelumnya, yaitu Bahasa B. Pada awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix. Pada perkembangannya, versi ANSI (American National Standards Institute).

Pada bahasa pemrograman C menjadi versi dominan, meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded. Bjarne Stroustrup pada Bell Labs pertama kali mengembangkan C++ pada awal 1980-an. Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low level coding).

Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti inheritance dan overloading. Salah satu perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (object-oriented programming).

Standardisasi C++


Year
C++ Standard
Informal name
2011
ISO/IEC 14882:2011
2007
ISO/IEC TR 19768:2007
2003
ISO/IEC 14882:2003
C++03
1998
ISO/IEC 14882:1998
C++98

Pada tahun 1998, C++ Standar Komite (ISO/IEC JTC1/SC22/WG21 Working Group) mengeluarkan Standar Internasional ISO/IEC 14882:1998 yang digunakan selama beberapa tahun. Pada tahun 2003 dirilis versi yang telah dikoreksi, ISO/IEC 14882:2003. Pada tahun 2005, Laporan Teknis yang disebut "Laporan Teknis Perpustakaan 1" (sering dikenal sebagai TR1) dirilis. Revisi terbaru dari standar C++ adalah C+11 (sebelumnya dikenal C++0x) telah disetujui oleh ISO/IEC pada tanggal 12 Agustus 2011 dan telah diterbitkan sebagai 14882:11.

Fitur-fitur C ++

Merupakan salah satu bahasa pemrograman yang paling banyak digunakan di dunia dan hampir semua program di dunia dibuat dengan menggunakan C/C++.
Portable. Karena memiliki banyak kompiler yang berjalan di berbagai platform dan secara eksklusif menggunakan Standar Library C++ yang akan berjalan pada banyak platform dengan tidak adanya perubahan fungsi-fungsi pada Library C++.

Mendukung Manifest dan Inferred Typing. Fitur tersebut sudah ada semenjak kelahiran C++ pertama hingga C++ Modern saat ini, C ++ memungkinkan fleksibilitas dan juga menyediakan kesederhanaan dalam menulis program.

C++ Menawarkan banyak pilihan paradigma. Beberapa adalah paradigm yang sangat terkenal dalam C++ adalah menawarkan dukungan luar biasa untuk Pemrograman Prosedural, Generik, Berorientasi Objek (OOP) dan masih banyak paradigm yang memberikan kemudahan untuk programmer C++.
Memiliki dukungan Library yang luar biasa. C++ memiliki Standar Library C++ yang memiliki banyak sekali fungsi dan tidak hanya itu, banyak juga programmer lain yang mengembangkan C++ dan membuat Library tambahan yang sangat berguna.

Bahasa yang dikompilasi. C ++ mengkompilasi langsung ke bahasa mesin, yang menjadikanya menjadi salah satu bahasa pemrograman tercepat di dunia.
Sekali lagi menawarkan Fleksibilitas dalam mendukung kedua statis dan dinamis type checking. C++ memungkinkan tipe conversions untuk diperiksa disaat mengkompilasi program atau saat jalanya program (run-time).

C++ merupakan bahasa turunan dari bahasa pemrograman C, dan C++ dapat menggunakan dan mempunyai semua fasilitas yang ada dalam bahasa pemrograman C tanpa perubahan sedikitpun dalam fungsi-fungsi C. dan juga C++ dapat melakukan pemrograman Assembly langsung di dalam program yang merupakan fitur turunan dari C.
Dan masih banyak lagi, kalian akan menyadarinya jika sudah merasakan dan menjadi programmer C++.

Contoh Program C++

Program c++ selisih waktu dan konversi bilangan
struktur percabangan IF dalam c++
Fungsi Rekursif
Fungsi Overloading
Program Booking Kamar Hotel
Program Fungsi Dengan Nilai Balik
Program Kalkulator Sederhana C++
Program Gaji Karyawan

Kata yang dipesan

Kelompok pertama

C++ mempunyai 32 buah kata yang dipesan (reserved words). Kata kunci kelompok pertama merupakan turunan dari bahasa C, di antaranya:


auto
const
double
int
short
struct
unsigned
break
continue
else
for
long
signed
switch
void
case
default
enum
goto
register
sizeof
typedef
volatile
char
do
extern
if
return
static
union
while

Kelompok kedua

Kata yang dipesan kelompok kedua berjumlah 30. Kata-kata ini adalah baru dan hanya ada di bahasa C++.


asm
dynamic_cast
namespace
reinterpret_cast
try
bool
explicit
new
static_cast
typeid
catch
false
operator
template
typename
class
friend
private
this
using
const_cast
inline
public
throw
virtual
delete
mutable
protected
true
wchar_t

Kata-kata yang dipesan tersebut di atas tidak boleh dipakai sebagai nama variable, class, enum, macro, dan struct.

# include <stdio.h>

int maksimum (int,int);
void tulis (int);

main()
int nilai 1,nilai 2,nilai maks;
printf (*\n ketikkan dua bilangan bulat:);
scanf("%d%d",& nilai 1,nilai 2);

nilai maks=maksimum (nilai 1,nilai 2);
tulis(nilai maks);
returns 0;

int maksimum(int x1,int x2)
if (x1>x2)
return x1;
else
return x2;

void tulis(int x)
printf("\n hasilnya adalah:%d",x);

Tipe data dasar 
Untuk menyimpan suatu variabel diperlukan tempat khusus di dalam memori komputer. Besar dan tipe dari variabel-variabel di dalam standar program C++ dispesifikasikan sebagai berikut.

Nama
Keterangan
Ukuran
Jangkauan
char
Abjad/karakter atau untuk bilangan bulat kecil
1 byte
signed: -128 to 127
unsigned: 0 to 255
short int (short)
Bilangan bulat dengan jangkauan pendek
2 byte
signed: -32768 to 32767
unsigned: 0 to 65535
int
Bilangan bulat
4 byte
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
long int (long)
Integer dengan jangkauan panjang
4 byte
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
bool
Boolean, dapat bernilai benar atau salah (true or false)
i byte
true or false
float
Angka dengan titik mengambang (bilangan cacah)
4 byte
3.4e +/- 38 (7 digit)
double
Bilangan cacah dengan ketelitian ganda
8 byte
1.7e +/- 308 (15 digits)
long double
Bilangan cacah dengan ketelitian ganda panjang
8 byte
1.7e +/- 308 (15 digits)
wchar_t
Karakter lebar, biasa dipakai untuk Unicode karakter
2 byte
1 karakter lebar

Beberapa contoh operator dalam C++

Pada dasarnya, ada tiga jenis operator dalam pemrograman C++:
Operator Unary - operator yang dikenakan untuk satu buah nilai (operand).
Operator Binary - operator yang dikenakan untuk dua buah nilai (operand).
Operator Ternary - operator yang dikenakan untuk tiga buah nilai (operand)

Dengan catatan jika kita hanya melihat dari jumlah operand.
Berikut ini adalah contohnya:

- c //Binary
a + b //Unary
(a ? b : c) //Ternary

Namun yang akan kita bahas kali ini bukan itu, kita akan mempelajari macam-macam operator yang ada dalam pemrograman C++ berserta fungsi dan contoh programnya.
Berikut adalah daftar operator yang dapat anda jadikan acuan pembuatan program.

#1 Assignment Operators

Yang pertama kita akan mengenal Assignment Operator.
Sesuai namanya, operator ini berfungsi untuk memberikan nilai kepada variabel. Kita akan menggunakan = ( tanda sama dengan ) untuk memberi nilai.

Berikut cara penggunaanya:
nama = "Soden";
umur = 21;

Berikut contoh program sederha penggunaan assignment operator pada C++:
#include <iostream>
using namespace std;

int main ()
{
  int a, b;         // a:?,  b:?
  a = 10;           // a:10, b:?
  b = 4;            // a:10, b:4
  a = b;            // a:4,  b:4
  b = 7;            // a:4,  b:7

  cout << "a:";
  cout << a;
  cout << " b:";
  cout << b;
}

Lalu outputnya adalah:
a:4 b:7

Mengapa hal itu bisa terjadi demikian?

Jika kita perhatkan, kita mendeklarasikan variabel a dan b. Lalu kita memberikan nilai 10 untuk a dan 4 untuk b pada awalnya. Lalu kita memberikan nilai b terhadap variabel a.
Perhatikan bagaimana sebuah variabel tidak terpengaruh oleh modifikasi akhir dari b, meskipun kita menyatakan a = b sebelumnya, anda pasti paham maksud saya.

Karena sebuah operasi akan selalu berlangsung dari kanan ke kiri.
Dan variabel hanya akan menyimpan data atau nilai terakhir yang diberikan.

#2 Arithmetic Operators

Yang kedua adalah operator aritmetika.
Operator ini digunakan untuk melakukan sebuah opearasi penghitungan atau aritmatika dalam bahasa pemrograman. Tugasnya untuk memecahkan masalah matematika.
Operator aritmatika yang sering digunakan dalam C++ adalah:

+ untuk penjumlahan
- untuk pengurangan
* untuk perkalian
/ untuk pembagian
% untuk sisa bagi (modulo)
Berikut adalah contoh penggunaanya:
x = 11 % 3;

Dan tentunya hasil opeasi diatas dapat ditebak, ya hasilnya adalah 2, karena disini kita mencari sisa bagi dimana hasil bagi 11 dan 3 = 3, sedangkan sisa baginya adalah 2.

#3 Compound Assignment

Operator ini memodifikasi nilai variabel saat ini dengan melakukan operasi di atasnya.

Operator
Keterangan
Contoh Penggunaanya
+=
Penjumlahan
z += x sama dengan, z = z + x
-=
Pengurangan
z -= x sama dengan, z = z - x
*=
Perkalian
z = x sama dengan, z = z x
/=
Pembagian
z /= x sama dengan, z = z / x
>>=
Right shift AND
z >>= 2 sama dengan, z = z >> 2
<<=
Left shift AND
z <<= 2 sama dengan, z = z << 2
&=
Bitwise AND
z &= 2 sama dengan, z = z & 2
^=
Bitwise exclusive OR
z ^= 2 sama dengan, z = z ^ 2

Berikut contoh program c++ menggunakan Compound Assignment.

#include <iostream>
using namespace std;

int main ()
{
  int a, b=3;
  a = b;
  a += 2;  // sama dengan a = a + 2
  cout << a;
}

Intinya: "menggunakan dua operand dan memberikan hasilnya ke operand kiri".

#4 Increment and Decrement Operators

Kedua operator ini sangatlah penting:
Operator Increment (++) dan operator decrement (--) digunakan untuk meningkatkan atau mengurangi satu nilai yang tersimpan dalam sebuah variabel.

Maksudnya seperti ini:
x = x + 1 ;
y = y - 1 ;

Jika sebelumnya anda menulis kode seperti datas..
..maka akan sama hasilnya dengan kode berikut:
++ x ;
-- y ;

//atau

x ++ ;
y -- ;
TIPS: Operator Increment adalah operator yang digunakan untuk menaikan nilai variabel sebesar 1, sedangkan decrement digunakan untuk menurunkan nilai sebesar 1.

Berikut contoh program Increment dalam C++:

#include <iostream>
using namespace std;

int main ()
{
   int a, b;
   a = 3;
   b = ++a;

   cout << "a:" << a;
   cout << " b:" << b;
}

Jika anda paham konsepnya anda pasti tahu hasil akhir dari variabel a akan bernilai 4, dan b bernilai 4 karena nilai dari b adalah nilai a yang telah ditingkatkan.

Kemudian nantinya anda akan mendengar istilah:
Pre Increment (++c)
dan Post Increment (c++).
Yang membedakannya adalah:
Jika Pre-increment akan menenambahkan nilai 1 sebelum operasi lain dijalankan, maka Post-increment akan menambahkan 1 nilai sesudah proses lain dijalankan.

Silahkan coba kode program berikut ini:
#include <iostream>

using namespace std;

int main(){
     // Mendeklarasikan Variabel j
     int j;

     // Mengisi nilai kedalam Variabel j
     // dengan nilai 10
     j = 10;

     // Melakukan Pre-Increment
     cout<<"Nilai j awal : "<<j<<endl;
     cout<<"Nilai ++j    : "<<++j<<endl;
     cout<<"Nilai Kj     : "<<j<<endl;

     // Mengubah nilai yang terdapat dalam variabel j
     // dengan nilai 20
     j = 20;

     // Melakukan Post-Increment
     cout<<"\nNilai j awal : "<<j<<endl;
     cout<<"Nilai j++    : "<<j++<<endl;
     cout<<"Nilai j      : "<<j<<endl;

     return 0;
}

Anda akan sering menemukannya operator tersebut dalam program looping.

#5 Relational and Comparison Operators

Operator selanjutnya adalah operator relasi - operator ini akan banyak kita gunakan dalam suatu statement bersyarat yang selalu menghasilkan nilai true atau false.
Nantinya kita akan sering menggunakan operator ini untuk menentukan kondisi.

Operator Keterangan
== Sama dengan
!= Tidak sama dengan
> Lebih dari
< Kurang dari
>= Lebih dari atau sama dengan
<= Kurang dari atau sama dengan

Operator ini digunakan untuk menguji hubungan antara nilai dan atau variabel.
Berikut contoh penggunaanya dalam program:

#include <iostream>
using namespace std;

void main() {
    bool nilai;
    nilai = 3 > 2 ; // hasil ungkapan : benar
    cout << "Nilai = " << nilai;
    nilai = 2 > 3 ; // hasil ungkapan : salah
    cout << "Nilai = " << nilai;
}

Dan berikut adalah hasil akhirnya:
Nilai = 1
Nilai = 0

#6 Logical Operators

Operator Logika adalah operator yang digunakan untuk membandingkan dua nilai variabel atau lebih. Hasil dari operasi ini adalah nilai boolean true atau false.



Operator
Keterangan
&&
AND - Jika semua operand bernilai benar (TRUE) maka kondisi bernilai benar.
||
OR - Jika salah satu operand bernilai benar (TRUE) maka kondisi bernilai benar.
!
NOT - Digunakan untuk membalik kondisi. Jika kondisi benar (TRUE) maka akan berubah menjadi salah (FALSE), begitu pula sebaliknya.

Berikut adalah contoh penggunaanya:

( (5 == 5) && (3 > 6) )  // Hasil = false, karena ( true && false )
( (5 == 5) || (3 > 6) )  // Hasil = true, karena ( true || false )

#7 Conditional Ternary Operator

Pada dasarnya, operator kondisi merupakan penyederhanaan dari bentuk if..else yang setiap blok dari if dan else hanya terdiri dari satu statement/perintah.

Struktur penulisan operator kondisi:

(ekspresi) ? (jika benar) : (jika salah);
Berikut contoh dalam program c++:
#include <iostream>
using namespace std;

int main ()
{
  int a,b,c;

  a=2;
  b=7;
  c = (a>b) ? a : b;

  cout << c;
}

#8 Comma Operator

Operator koma (,) memiliki beberapa fungsi, yaitu:
Untuk memisahkan deretan deklarasi variabel
Untuk memisahkan argumen fungsi
menyatukan dua ekspresi menjadi sebuah pernyataan, dan
memungkinkan pemberian lebih dari satu ekspresi pada inisialisasi nilai awal.

Berikut contoh program dengan operator koma:
#include <iostream>
using namespace std;

int main ()
{
   int a,b;
   a = (b=3, b+2);

   cout << a;
}

Agak rumit namun penjelasanya seperti ini: Pertama variabel b akan diberi nilai 3, kemudian nilai b (3) akan dijumlahkan dengan 2 sehingga variabel a bernilai 5.

#9 Bitwise Operators

Operator bitwise adalah operator yang digunakan untuk memanipulasi bit-bit nilai data yang ada di memori. Operator ini hanya dapat digunakan untuk tipe data:
char
int
long int
Untuk operator bitwise dalam bentuk bit, dilakukan dalam bit per bit (binary).

&  AND  Bitwise AND
|  OR  Bitwise inclusive OR
^  NOT  Unary complement (bit inversion)
<<  SHL  Shift bits left
>>  SHR  Shift bits right

Tabel kebenanaran:


p
q
p & q
p | q
p ^ q
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1

Jika kita asumsikan memiliki nilai A = 63 dan B = 13, mari kita ubah menjadi biner:
A = 0011 1100

B = 0000 1101

Sehingga akan menjadi:

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

#10 Operator Lainnya

Berikut adalah operator lainnya yang didukung oleh bahasa C++:


Operator
Keterangan
sizeof
Untuk mengembalikan nilai dari ukuran variabel. Contoh sizeof(a), dimana ‘a’ adalah integer maka akan mengembalikan nilai 4
. (dot) and -> (arrow)
Operator member yang digunakan untuk mereferensikan member class, structures, dll.
Cast
Untuk mengkonversi suatu data ke tipe data lain. Contohnya int(2.2000) akan menjadi 2
*
Digunakan sebagai operator pointer

Dan berikut adalah daftar operator berdasarkan kategorinya:


Category
Operator
Associativity
Postfix
() [] -> . ++ - -
Left to right
Unary
+ - ! ~ ++ - - (type)* & sizeof
Right to left
Multiplicative
* / %
Left to right
Additive
+ -
Left to right
Shift
<< >>
Left to right
Relational
< <= > >=
Left to right
Equality
== !=
Left to right
Bitwise AND
&
Left to right
Bitwise XOR
^
Left to right
Bitwise OR
|
Left to right
Logical AND
&&
Left to right
Logical OR
||
Left to right
Conditional
?:
Right to left
Assignment
= += -= *= /= %=>>= <<= &= ^= |=
Right to left
Comma
,
Left to right

Kompilator C++

Acorn C/C++
Borland C++
C++/CX
C++Builder
Cfront
Clang
CodeWarrior
Comeau C/C++
ConceptGCC
Digital Mars
GNU Compiler Collection
HP aC++
IBM XL C++
Intel C++ Compiler
MinGW
Norcroft C compiler
Open64
Oracle Solaris Studio
PathScale
The Portland Group
ROSE (compiler framework)
Shed Skin
Softune
TenDRA Compiler
THINK C
Turbo C++
Visual C++
IBM VisualAge
Watcom C/C++ compiler
Zortech
CodeBlocks
DevC++

Keluarga bahasa pemrograman C++ 

Algorithmic skeleton
C++/CLI
C++/CX
Charm++
Embedded C++
Felix (programming language)
Intel Array Building Blocks
Intel Parallel Studio
Managed Extensions for C++
R++
Sieve C++ Parallel Programming System
Threading Building Blocks
ΜC++

untuk mempelajari bahasa pemrograman c dan juga bahasa pemrograman c++ ini caranya cukup mudah kalian hanya harus menghafal prosedur, fungsi, dan elemen elemen pendukung lain.

dalam proses belajar c++ pemula kalian juga harus mempelajari bahasa inggris dahulu karena bahsa pemrograman mempunyai dasar bahasa inggris, mau itu bahsa pemrograman c/c++ atau bahsa pemrograman lain pasti menggunakan dasar bahsa inggris.