Social Items


Tugas C++ kali ini adalah membuat program Array dan Struct dengan 4 soal yang berbeda.

1. Program penghapusan data dengan inputan berupa angka yang ingin dihapus oleh user.
Ketentuan :

  • Semua data yang sesuai dengan inputan user akan terhapus.
  • Bonus jika terdapat counter untuk menghitung berapa data yang terhapus.

Code :

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int a[8]={2,12,6,12,12,7,6,12};
    cout<<"  PENGHAPUSAN DATA PADA ARRAY"<<endl;
    cout<<"==============================="<<endl;
    for(int i=0;i<=7;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<"\nData yang akan dihapus : ";
    int hapus;
    cin>>hapus;
    int total=0;

    for(int i=0;i<=7;i++)
    {
        if(a[i]==hapus)
        {
            a[i]=0;
            total=total+1;
        }
    }
    cout<<"\nData "<<hapus<<" berhasil dihapus!\n";
    cout<<"\nData yang dihapus sebanyak : "<<total<<" data\n";
    cout<<"\nData sekarang : \n";
    for(int i=0;i<=7;i++)
    {
        if(a[i]!=0)
        {
        cout<<a[i]<<" ";
        }
    }
}


Hasil :


Penjelasan :
Program ini akan menghapus data pada array sesuai dengan inputan user. Jika data yang di inputkan sesuai dengan data yang ada pada array, maka data tersebut akan dihapus. Misal yang di inputkan adalah 6, maka semua nilai 6 pada array tersebut akan terhapus dan jumlah data yang terhapus akan dihitung. Tapi jika yang di inputkan tidak ada pada array, maka tidak ada data yang akan terhapus.

===================================================

2. Program untuk melakukan update data.
Ketentuan :

  • Terdapat dua inputan, yaitu inputan data yang akan diubah dan data baru (data pengganti)  
  • Semua data yang sesuai dengan inputan user akan diupdate nilainya.
Code :

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int a[8]={2,12,6,12,12,7,6,12};
    cout<<"   MENGGANTI DATA PADA ARRAY\n";
    cout<<"===============================\n";
    for(int i=0;i<=7;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<"\nData yang akan diganti  : ";
    int hapus,ganti;
    cin>>hapus;

    cout<<"\nMasukkan data pengganti : ";
    cin>>ganti;
    int jml=0;
    for(int i=0;i<=7;i++)
    {
        if(a[i]==hapus)
        {
            a[i]=ganti;
            jml=jml+1;
        }
    }
     cout<<"-------------------------------\n";
     if(jml>0){
        cout<<"Data "<<hapus<<" berhasil diganti dengan data "<<ganti<<"!\n";
     }
     else{
        cout<<"Data yang ingin anda ganti tidak ditemukan!!!";
     }
    cout<<"\nData sekarang : \n";
    for(int i=0;i<=7;i++)
    {
        cout<<a[i]<<" ";
    }
    getch();
}
 

Hasil :




Penjelasan :
Pada program ini akan menggganti data yang ingin diganti oleh user dengan cara memilih data yang ingin dihapus oleh user pada array tersebut. Kemudian user memasukkan data yang diinginkan untuk mengganti data sebelumnya. Jika data yang ingin diganti tidak ada pada array, maka tidak akan ada data yang berubah.

===================================================

3. Program untuk melakukan penambahan data.
Ketentuan :

  • Penambahan data dapat dilakukan di mana saja. 
  • Inputan dari user berupa : Nilai yang akan ditambahkan - Indeks ke berapa yang dituju  
  • Setelah penambahan, maka jumlah data akan bertambah dan posisi data akan bergeser sesuai dengan penambahan yang telah dilakukan. 
Code :

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int a[8]={2,12,6,12,12,7,6,12};
    for(int i=0;i<=7;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<"\n\nData yang akan ditambah : ";
    int tambah,indeks;
    cin>>tambah;
    cout<<"Indeks data yang dituju : ";
    cin>>indeks;
    int batas=indeks-1;
    int jml=0;

    for(int i=0;i<=7;i++)
    {
        if(i==batas){
            jml=jml+1;
        }
    }

    if(jml==1){
    for(int i=8;i>=batas;i--)
    {
        if(i==batas){
            a[i]=tambah;
        }
        else{
            a[i]=a[i-1];
        }
    }
    }

    else{
        cout<<"\nIndeks yang anda masukkan tidak ditemukan!!!";
        getch();
        return 0;
    }

    cout<<"\n";
    for(int x=0;x<=8;x++)
    {
        cout<<a[x]<<" ";
    }

}
 

Hasil :



Penjelasan :
Program ini akan menambahkan data baru pada indeks array. Jika user menginput data 555 kemudian ingin menempatkannnya pada indeks array ke-4, maka data angka 555 akan menggantikan data yang berada pada indeks array ke-4, kemudian data sebelumnya yang berada pada indeks ke-4 akan bergeser ke indeks ke-5 dan seterusnya. sehingga jumlah indeks array akan bertambah satu.
Tapi jika indeks array yang dituju oleh user tidak ada, maka data tidak akan berubah.

===================================================

4. Buatlah struct untuk data lagu yang berisi tentang judul lagu, penyanyi, tahun produksi,
nomor track dan kode album.
Ketentuan : 

  • Program ini akan memiliki dua buah struct, yaitu struct lagu dan struct kodeRBT.  
  • Jumlah data yang diinputkan dinamis (maks. 20 lagu)
Code :

#include <iostream>
#include <conio.h>
#include <stdio.h>


using namespace std;

struct rbt{
    char kodeRBT[10];
};

struct musik{
    char penyanyi[50],judul[50],kodeALBM[10];
    int tahun,nomor;
    rbt kRBT;
};



int main()
{
    musik lagu[20];
    char para='y';
    int jml=1,i=0;
    cout<<"PROGRAM INPUT LAGU\n";
    cout<<"===================================================\n";
    do{
        cout<<"Judul Lagu ke-"<<jml<<"         : ";fflush(stdin); gets(lagu[i].judul);
        cout<<"Penyanyi                : ";fflush(stdin); gets(lagu[i].penyanyi);
        cout<<"Tahun Produksi          : ";cin>>lagu[i].tahun;
        cout<<"Nomor Track             : ";cin>>lagu[i].nomor;
        cout<<"Kode Album              : ";fflush(stdin); gets(lagu[i].kodeALBM);
        cout<<"Kode RBT                : ";fflush(stdin); gets(lagu[i].kRBT.kodeRBT);
              cout<<endl;
        cout<<"Lagu Ke-"<<jml;
        cout<<"\n---------------------------------------------------------\n";
        cout<<"Judul Lagu     : "<<lagu[i].judul<<endl;
        cout<<"Penyanyi       : "<<lagu[i].penyanyi<<endl;
        cout<<"Tahun Produksi : "<<lagu[i].tahun<<endl;
        cout<<"Nomor Track    : "<<lagu[i].nomor<<endl;
        cout<<"Kode Album     : "<<lagu[i].kodeALBM<<endl;
        cout<<"Kode RBT       : "<<lagu[i].kRBT.kodeRBT<<endl;
        cout<<"=========================================================\n\n";
        cout<<"Input Lagi?(y/n) : ";cin>>para;cout<<endl;
        jml=jml+1;
        i=i+1;
        if(jml>20){
            cout<<"Data Penuh!!!";
        }
    }while(para=='y' && jml<=20);

    getch();

    return 0;
}


Hasil :

 
Penjelasan :
Pada program tersebut user dapat menginput data berupa judul lagu, penyanyi, tahun dan seterusnya yang kemudian akan disimpan pada Struct musik yang memiliki panjang array 20. User dapat memilih apakah akan menginput sampai data penuh atau hanya menginput beberapa data saja sesuai kebutuhan.


Jika ada yang ingin ditanyakan.
Silahkan berkomentar.. 

Tugas C++ : Array Dan Struct




ARRAY
Array adalah kumpulan data yang terstruktur dengan nama variable yang sama dan tipe data yang  sama tetapi mempunyai indeks/alamat yang berbeda-beda. Pada setiap variable dapat berisi data  yang sama atau berbeda tetapi tipe data harus sama. Urutan indeks array dimulai dari hitungan 0,1,2 dan seterusnya. Tipe data variable array pada umumnya adalah char , string, int , float , dan double.

Deklarasi :

Contoh : 

Int nilai[5]; artinya variable array dengan nama nilai bertipe integer dan banyaknya data ada 6 karena indeks dimulai dari 0 hingga 5.

Variabel nilai dapat di gambarkan sebagai berikut :



Menurut dimensinya, Array dapat dibedakan menjadi :
 

1. Array satu dimensi

Setiap elemen array dapat diakses melalui index
Index array secara default dimulai dari 0
Deklarasi array :
 
Tipe_array nama_array[ukuran];

2. Array dua dimensi

Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom, bentuknya dapat berupa matriks atau tabel.
Deklarasi array :
 
Tipe_array nama_array[baris][kolom];

3. Array multidimensi

Array multidimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array dimensi satu maupun dimensi dua.
Deklarasi array :
 
Tipe_array nama_array[ukuran 1][ukuran 2] . . . [ukuran N];

LATIHAN ARRAY 

1. Program untuk menghapusan data yang berada pada indeks tertentu pada array.

Code :

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{ int A [5]={20,9,1986,200,13},n,hapus;
    cout<<"  PENGHAPUSAN DATA PADA INDEKS ARRAY"<<endl;
    cout<<"======================================"<<endl;
  cout<<"Data yang lama\n";

  for (n=0;n<5;n++)
  {
    cout<<A[n]<<" ";
  }
  cout<<"\n\nIndeks data yang ingin dihapus : ";
  cin>>hapus;
  cout<<"\nData yang berada pada indeks ke-"<<hapus<<" berhasil dihapus"<<endl;
  cout<<"\nData yang baru\n";
  for (n=hapus-1;n<5-1;n++)
  {
    A[n]=A[n+1];
  }
  for (n=0;n<4;n++)
  {
    cout<<A[n]<<" ";
  }
  getch();
  return 0;
}
 

Hasil :
 

Penjelasan :
Pada program tersebut kita akan mencoba untuk menghapus nilai yang berada pada indeks/alamat array yang kita inginkan. Jika kita memasukkan angka 3, maka nilai yang berada pada indeks ke-3 yaitu 1986 akan hilang. Sehingga hanya tersisa angka 20 9 200 13.



2. Pada program yang ke-dua kita akan mencoba untuk menghapus data yang berada pada indesk pertama (0) pada array hingga data pada array kosong. Kemudian kita akan membaliknya, sehingga data yang berada pada indeks terakhir akan terhapus sampai nilai pada array kosong.

Code :

 #include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int data[8]={1,6,2,9,12,87,43,11};
    int n=8;

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

        for(int i=0;i<n-1;i++)
        {
            data[i]=data[i+1];
        }


        n=n-1;
        cout<<endl;
        if(n==0)
        {
            cout<<"Data kosong!!!";
        }
    }while(n!=-1);
}




Hasil :
 REVERS
Penjelasan :
Pada setiap kali kita menekan tombol, maka semua nilai yang berada pada indeks array pertama di setiap baris akan terhapus. 
Dan untuk membaliknya kita tinggal menghapus semua kode diatas yang telah saya beri warna merah. Sehingga semua nilai yang berada pada indeks array terakhir disetiap baris akan terhapus.

=========================================================================

STRUCT
Struct atau Struktur adalah kumpulan data yang memiliki tipe data yang berbeda. Secara pendeklarasian, struct sangat berbeda dengan array yang hanya memiliki satu buah tipe data untuk setiap kumpulannya. Struct digunakan apabila data yang ingin dikelompokkan memiliki tipe data yang berbeda. Pendeklarasian struct sebagai berikut :

struct data_mahasiswa{
   int nim;
   char nama[100];
   char fakultas[100];
};

data_mahasiswa mahasiswa1, mahasiswa2;

 
Deklarasi di atas merupakan suatu tipe data yang bernama data_mahasiswa di mana setiap data yang akan dideklarasikan menggunakan tipe data yang ada pada struct data_mahasiswa akan mempunyai field nim, nama, dan fakultas. Untuk dapat menggunakan tipe data tersebut sebuah variabel harus dideklarasikan lagi menggunakan nama struct nya. Bentuk umum pendeklarasian variabel struct nya adalah sebagai berikut :



data_mahasiswa mahasiswa1, mahasiswa2; 

Deklarasi dua variabel di atas mendeskripsikan dua variabel bernama Mahasiswa1 dan Mahasiswa2, setiap variabel tersebut mempunyai field sesuai dengan apa yang ada pada struct data_mahasiswa.
Selain dekalrasi variabel ada hal yang harus diperhatikan yaitu cara untuk mengisi dan memanggil nilai yang ada di dalam sebuah struct, yaitu sebagai berikut :

//Untuk mengisi nilai struct
cin>>mahasiswa1.nim;

//Untuk memanggil nilai struct
cout<<mahasiswa1.nim<<endl;


LATIHAN STRUCT

1. Membuat program struct untuk buku dengan deklarasi manual, dengan menyimpan judul buku, tahun terbit dan harga buku.

Code :

#include <iostream>
#include <conio.h>

using namespace std;

struct buku{
    char judul[15];
    int tahun_terbit;
    int harga;
};

int main()
{
    buku book;
        cout<<"Judul buku   : "; cin>>book.judul;
        cout<<"Tahun terbit : "; cin>>book.tahun_terbit;
        cout<<"Harga        : "; cin>>book.harga;

        cout<<"\nJudul buku \t: "<<book.judul;
        cout<<"\nTahun terbit \t: "<<book.tahun_terbit;
        cout<<"\nHarga \t\t: "<<book.harga;
        getch();
}



Penjelasan :

Setiap kali user menginputkan data berupa judul buku, tahun terbit, dan harga, maka data-data tersebut akan tersimpan dengan perintah (cin>>book.judul;dst) pada struct buku.
Kemudian dipanggil kembali dengan perintah (cout<<"\nJudul buku \t: "<<book.judul;).

2. Membuat program struct untuk memasukkan 3 user lalu menyimpan data loginnya. Yang harus disimpan adalah waktu login (tanggal, bulan, tahun, jam, menit dan detik).

Code :

#include <iostream>
#include <conio.h>

using namespace std;
struct Date{
          int dd;
          int mm;
          int yyyy;
        };
struct Time{
          int h;
          int m;
          int s;
        };
struct Login{
          int ID;
          Date tglLogin;
          Time waktuLogin;
        };

int main()
{
    Login user[3];

    for(int i=0;i<3;i++)
    {
    cout<<"\nUser ke-"<<i+1<<endl;
    cout<<"ID : ";cin>>user[i].ID;
    cout<<"\nTanggal login\n";
    cout<<"Hari  : ";cin>>user[i].tglLogin.dd;
    cout<<"Bulan : ";cin>>user[i].tglLogin.mm;
    cout<<"Tahun : ";cin>>user[i].tglLogin.yyyy;
    cout<<"\nWaktu Login\n";
    cout<<"Jam   : ";cin>>user[i].waktuLogin.h;
    cout<<"Menit : ";cin>>user[i].waktuLogin.m;
    cout<<"Detik : ";cin>>user[i].waktuLogin.s;
    cout<<"\nTerimakasih Atas Pengisiannya\n";

    cout<<"\nData User ke-"<<i+1<<endl;
    cout<<"Login ID   : "<<user[i].ID<<endl;
    cout<<"Login Date : "<<user[i].tglLogin.dd<<"-"<<user[i].tglLogin.mm<<"-"<<user[i].tglLogin.yyyy<<endl;
    cout<<"Login Time : "<<user[i].waktuLogin.h<<"-"<<user[i].waktuLogin.m<<"-"<<user[i].waktuLogin.s<<endl;

     }
     getch();
    return 0;
}

 

Hasil :
 
Penjelasan :
Pada program tersebut data yang kita inputkan akan disimpan pada struct Login yang sudah terhubung dengan struct Date dan Time. 
Masing-masing dari struct tersebut akan digunakan untuk menyimpan 3 data login yang berbeda karena variabel user dengan struct Login dideklarasikan dengan panjang array sebanyak 3.
Login user[3]; 

Materi C++ : Array Dan Struct



SEDIKIT PENGANTAR

STACK

Stack disebut juga tumpukan dimana data hanya dapat dimasukkan dan diambil dari satu
sisi. Karena itu, stack bersifat LIFO (Last In First Out). Artinya data yang terakhir masuk akan keluar lebih dulu.

QUEUE

Queue disebut juga antrian dimana data akan masuk dari satu sisi dan keluar di sisi yang lain.
Karena itu, queue bersifat FIFO (First In First Out). Artinya data yang pertama kali masuk akan keluar lebih dulu.


Tugas 1
Membuat program STACK dengan ketentuan:
a. Memiliki fungsi PUSH (input data).
b. Memiliki fungsi POP (ambil satu data).
c. Memiliki fungsi CLEAR (delete all data).
d. Memiliki fungsi PRINT (cetak data pada layar).
e. (opsional) jika user ingin menampilkan data yang diinputkan, maka data tersebut telah terurut secara ascending (menggunakan metode sorting). 


Code :

#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>


using namespace std;

#define max_stak 15

struct stak{
    int top,data[15],urut[15];
}tumpuk;



void push(int d){
    tumpuk.top++;
    tumpuk.data[tumpuk.top]=d;
    cout<<"Data berhasil dimasukkan \n";
    getch();
}

void pop(){
    cout<<"Data "<<tumpuk.data[tumpuk.top]<<" terambil \n";
    tumpuk.top--;
    getch();
}

int isFull(){
    if(tumpuk.top==max_stak-1){
        return 1;
    }
    else{
        return 0;
    }
}

int isEmpty(){
    if(tumpuk.top==-1){
        return 1;
    }
    else{
        return 0;
    }
}

void clear(){
    tumpuk.top=-1;
    cout<<"Semua data terhapus. ";
}

void tukar(int a,int b)
{
    int t;
    t=tumpuk.urut[b];
    tumpuk.urut[b]=tumpuk.urut[a];
    tumpuk.urut[a]=t;
}

void print(){

    for(int i=0;i<=tumpuk.top;i++){
        tumpuk.urut[i]=tumpuk.data[i];
    }



    for(int i=0;i<=tumpuk.top;i++){
        for(int j=i+1;j<=tumpuk.top;j++){//mencari data terkecil
            if(tumpuk.urut[i]<tumpuk.urut[j]){
                tukar(i,j);
            }
        }
    }

        for (int i=tumpuk.top;i>=0;i--)
        cout<<tumpuk.urut[i]<<endl;
    getch();
}

int main()
{
    int a;
    int input;
    tumpuk.top=-1;
    do{
        system("cls");
        cout<<"            Menu Stack \n================================== \n1. PUSH (Input Data) \n2. POP (Ambil satu data) \n3. CLEAR (Hapus semua data) \n4. PRINT (Cetak data pada layar) \n5. TERMINATE (Keluar) \nPilihan anda  : ";
        cin>>a;

        cout<<"----------------------------------\n";
        switch(a)
        {
        case 1:
            if(isFull()==1){
                cout<<"Stack penuh. \n";
                getch();
            }
            else{
                cout<<"Masukkan data : ";
                //fflush(stdin);
                cin>>input;
                push(input);
            }
            break;
        case 2:
            if(isEmpty()==1){
                cout<<"Stack kosong.";
                getch();
            }
            else{
                pop();
            }
            break;
        case 3:
            clear();
            cout<<"Stack kosong. \n";
            getch();
            break;
        case 4:
            if(isEmpty()==1){
                cout<<"Stack kosong";
                getch();
            }
            else{
                print();
            }
        }
    }while(a!=5);

}

Hasil :







Tugas 2
Buatlah program untuk mengkonversi inputan infix menjadi postfix,
program tersebut akan menghasilkan output berupa hasil konversi ke postfix 


Code :

#include <iostream>
#include <sstream>
#include <stack>
#include <limits>
#include <string>
#include <conio.h>

using namespace std;

int priority(char a) {
    int temp;
    if (a == '^')
        temp = 1;
    else if (a == '*' || a == '/')
        temp = 2;
    else if (a == '+' || a == '-')
        temp = 3;
    return temp;
}

bool isOperator(char ch)
{
    if (ch=='+' || ch=='-' || ch=='*' || ch=='/')
        return true;
    else
        return false;
}

int main() {
    string infix;
    cout<<"\t INFIX to POSTFIX\n";
    cout<<"===================================\n";
    cout << "Masukan Infix   : ";
    getline(cin, infix);

    stack<char> opr_stack;

    stringstream postfix;

    for (unsigned i = 0; i < infix.length(); i++) {

        if (infix[i] == '+' || infix[i] == '-' || infix[i] == '*' || infix[i] == '/' || infix[i] == '^') {

            while (!opr_stack.empty() && priority(opr_stack.top())<=priority(infix[i])) {
                postfix << opr_stack.top();
                opr_stack.pop();
            }
            opr_stack.push(infix[i]);
        }

        else {
            postfix << infix[i];
        }
    }

    while(!opr_stack.empty()) {
        postfix << opr_stack.top();
        opr_stack.pop();
    }

    cout << "Postfix \t: " << postfix.str() << endl;//cetak postfix
    getch();
    return 0;
}


Hasil :



 

Tugas C++ : Stack Dan Queue


Praktikum struktur data yang pertama yaitu menyegarkan kembali ingatan tentang mantan, Eh.. tentang bahasa C++ yang sebelumnya telah dipelajari pada semester 2.

Berikut ini merupakan program untuk menghitung nilai akhir mahasiswa dengan ketentuan :
  1. User memasukkan nilai tugas.
  2. User memasukkan nilai UTS (Ujian Tengah Semester).
  3. User memasukkan nilai UAS (Ujian Akhir Semester).
  4. User memasukkan nilai kerapian (Baik/Buruk).
  5. Jika baik maka nilai A=1; Jika buruk maka nilai A=0;
  6. Hitung nilai akhir menggunakan persamaan "NA = A * (20%Tugas + 30%UTS + 50%UAS)".
  7. User melihat hasil berupa nilai akhir(NA).

Berikut kodingnya :


#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    float tgs,uas,uts;
    string sikap;
    cout<<"\t\tProgram Untuk\n\tMenghitung Nilai Akhir Mahasiswa"<<endl;
    cout<<"==============================================="<<endl;
    cout<<"Masukkan Nilai Tugas \t\t\t: ";cin>>tgs;
    cout<<"Masukkan Nilai UTS \t\t\t: ";cin>>uts;
    cout<<"Masukkan Nilai UAS \t\t\t: ";cin>>uas;
    cout<<"-----------------------------------------------"<<endl;
    cout<<"Masukkan Penilaian Kerapian(baik/buruk) : ";cin>>sikap;

    float na,a;
    if (sikap=="BURUK" || sikap=="buruk" || sikap=="Buruk")
    {
        a=0;
    }
    else if(sikap=="BAIK" || sikap=="baik" || sikap=="Baik")
    {
        a=1;
    }
    else
    {
    cout<<"==============================================="<<endl;
        cout<<"Nilai Kerapian Yang Anda Masukkan Salah\n";
        return 0;
    }

    na=a*((tgs*20/100)+(uts*30/100)+(uas*50/100));

    cout<<"==============================================="<<endl;
    cout<<"Nilai Akhir  = "<<na;
    char g;
    if(na<=20)
    {
        g='E';
    }
    else if(na<=40)
    {
        g='D';
    }
    else if(na<=60)
    {
        g='C';
    }
    else if(na<=80)
    {
        g='B';
    }
    else if(na<=100)
    {
        g='A';
    }
    cout<<"\nDengan Grade = "<<g;

    getch();
}


OK. itulah pembahasan singkat mengenai Refresh C++ : Program Untuk Menghitung Nilai Akhir Mahasiswa. 
Untuk selanjutnya It's time for DOTA.... 

Refresh C++ : Program Untuk Menghitung Nilai Akhir Mahasiswa

 
 
Berbicara tentang C++ dan C sebagai bahasa pendahulunya, C merupakan termasuk bahasa pemrograman tingkat menengah. Pencipta C adalah  Brian  W.  Kernighan dan Dennis  M.  Ritchie pada  tahun  1972.  C  merupakan  bahasa  pemrograman terstruktur  yang  membagi  program ke  dalam sejumlah  blok (sub program).  Tujuannya adalah  untuk  memudahkan dalam
pembuatan dan pengembangan program. Program yang ditulis dengan C mudah sekali dipindahkan dari satu jenis mesin ke mesin lain. Hal ini karena adanya standarisasi C yaitu ANSI (American National Standards Institute) yang menjadi acuan para pembuat compiler C. C++ diciptakan satu dekade setelah C. C++ diciptakan oleh Bjarne Stroustroup dari  Laboratorium Bell, AT&T pada tahun 1983. Pada awalnya C++ diberi  nama “A better C”. Nama C++ sendiri diberinama oleh Rick Mascitti. Adapun tanda ++ berasal dari operator increment pada bahasa C.
 

Kelebihan bahasa pemrograman C++:

  1. Kode bahasa C++ dengan portabilitas dan fleksibilitas yang tinggi untuk semua jenis komputer. 
  2. bahasa Standard-nya ANSI bisa dipakai diberbagai platform. 
  3. kecepatan program jika dibanding dengan program yang sama buatan bahasa lain, relatif lebih cepat.
  4. Bahasa C++ tersedia hampir di semua jenis komputer.
  5. Bahasa C++ hanya menyediakan sedikit kata-kata kunci (hanya terdapat 48 kata kunci).
  6. Dukungan pustaka fungsi dan kelas yang banyak sehingga memungkinkan pembuatan aplikasi makro.
  7. C++ adalah bahasa yang terstruktur, dengan demikian akan lebih mendukung OOP.
  8. Bahasa C++ termasuk bahasa tingkat menengah dan lebih dekat dengan bahasa mesin.
  9. Kode program bersifat reuseable, sehingga dapat digunakan kembali pada project lain dengan hanya menggunakan library dan  file header.
  10.  C++ dapat membuat aplikasi graphic processor berkualitas tinggi.

 

Kekurangan bahasa pemrograman C++: 

  1. C++ tidak murni OOP sehingga kurang cocok untuk mengajarkan Konsep OOP karena kaidah-kaidah OOP dapat dilanggar.
  2. Implementasi C++ dalam teknologi IT pada saat sekarang sudah sangat sedikit sekali. 
 
Dan untuk mempelajari bahasa C++, kita dapat menggunakan aplikasi CodeBlock.
 

Pengenalan Bahasa Pemrograman C++

1. Program untuk mencari data pada array 2 dimensi menggunakan bahasa c++ dengan tambahan kode program untuk memberi inputan data dan ukuran array sesuai keinginan. Dengan metode Sequential Search.

#Code :

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    cout<<"  Pencarian Data Pada Array 2 Dimensi (MATRIX)\n";
    cout<<"=================================================\n";
    int a,b;
    cout<<"Masukkan jumlah baris : ";cin>>a;
    cout<<"Masukkan jumlah kolom : ";cin>>b;
    int ar[a][b];

    cout<<"Anda akan menggunakan Matrix "<<a<<"x"<<b<<endl;
    cout<<"-----------------------------------------\n";
    for(int i=0;i<=a-1;i++){
        for(int j=0;j<=b-1;j++){
            cout<<"Masukkan data baris ke-"<<i<<" kolom ke-"<<j<<" : ";cin>>ar[i][j];
        }
        if(i==a-1){
            cout<<"=========================================\n";
        }
        else{
            cout<<"-----------------------------------------\n";
        }
    }
    cout<<"Model Matrix\n";
    for(int i=0;i<=a-1;i++){
        for(int j=0;j<=b-1;j++){
            cout<<ar[i][j]<<"\t";
        }
        cout<<endl;
    }
    int cari,tot=0;
    cout<<"Masukkan data yang ingin dicari : ";cin>>cari;
    cout<<"-----------------------------------------\n";
    for(int i=0;i<=a-1;i++){
        for(int j=0;j<=b-1;j++){
            if(ar[i][j]==cari){
                cout<<"Data "<<cari<<" ditemukan pada posisi ["<<i<<"]["<<j<<"]"<<endl;
                tot+=1;
            }
        }
    }
    cout<<"=========================================\n";
    if(tot!=0){
        cout<<"Data "<<cari<<" berjumlah "<<tot;
    }
    else{
        cout<<"Data "<<cari<<" tidak ditemukan!!!";
    }
    getch();
}


#Hasil :



2. Program untuk mencari data berupa huruf pada inputan yang
berupa kalimat dengan menghitung jumlah huruf konsonan, dan huruf vokal.

#Code :

#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>

using namespace std;

int main()
{
    cout<<"    Program Mencari Data Pada Kalimat\n";
    cout<<"============================================\n";
    char kata[100];
    cout<<"Masukkan Kalimat : ";gets(kata);
    cout<<"--------------------------------------------\n";

    int a=strlen(kata),vokal=0,konso=0,tot=0;

    cout<<"Vokal    : ";
    for(int i=0;i<a;i++){
        if(kata[i]=='a' || kata[i]=='A' || kata[i]=='i' || kata[i]=='I' || kata[i]=='u' || kata[i]=='U' || kata[i]=='e' || kata[i]=='E' || kata[i]=='o' || kata[i]=='O')
        {
           cout<<kata[i]<<" ";
           vokal+=1;
        }
    }cout<<" = "<<vokal<<endl;

    cout<<"Konsonan : ";
    for(int i=0;i<a;i++){
        if(kata[i]==' '){
            //kosongkan untuk spasi
        }

        else if(kata[i]!='a' && kata[i]!='A' && kata[i]!='i' && kata[i]!='I' && kata[i]!='u' && kata[i]!='U' && kata[i]!='e' && kata[i]!='E' && kata[i]!='o' && kata[i]!='O')
        {
           cout<<kata[i]<<" ";
           konso+=1;
        }
    }cout<<" = "<<konso<<endl;
    char cari;
    cout<<"\nMasukkan data yang ingin anda cari : ";cin>>cari;
    cout<<"--------------------------------------------\n";

    for(int i=0;i<a;i++){
        if(kata[i]==cari){
            cout<<"Data "<<cari<<" ditemukan pada urutan ke-"<<i+1<<endl;
            tot+=1;
        }
    }
    cout<<"============================================\n";
    if(tot!=0){
        cout<<"Data "<<cari<<" berjumlah "<<tot;
    }
    else{
        cout<<"Data tidak ditemukan!!!";
    }
    getch();
}

#Hasil :


3. Program untuk mencari bilangan ganjil dan bilangan genap dari data angka yang diinputkan oleh user dengan memberikan indeks untuk setiap data yang ditemukan.  

#Code : 

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    cout<<"  Program Mencari Data Ganjil Genap\n";
    cout<<"=======================================\n";
    int jml;
    string cari;
    cout<<"Masukkan jumlah data : ";cin>>jml;
    int ar[jml];
    cout<<"Anda akan memasukkan "<<jml<<" data\n";
    cout<<"---------------------------------------\n";

    for(int i=0;i<jml;i++){
        cout<<"Input data ke-"<<i+1<<" : ";cin>>ar[i];
    }
    int tot=0;
    cout<<"\nCari data ganjil atau genap";
    cout<<"\nInput (ganjil/genap) : ";cin>>cari;
    cout<<"---------------------------------------\n";
    if(cari=="ganjil" || cari=="Ganjil" || cari=="GANJIL"){

        cout<<"Data Ganjil\n\n";

        for(int i=0;i<jml;i++){
            if(ar[i]%2!=0){
                cout<<ar[i]<<" Pada indeks ke-"<<i+1<<endl;
                tot+=1;
            }
        }
        cout<<"=======================================\n";
        cout<<"Data ganjil berjumlah "<<tot;
    }

    else{

        cout<<"Data Genap\n\n";

        for(int i=0;i<jml;i++){
            if(ar[i]%2==0){
                cout<<ar[i]<<" Pada indeks ke-"<<i+1<<endl;
                tot+=1;
            }
        }
        cout<<"=======================================\n";
        cout<<"Data genap berjumlah "<<tot;
    }
getch();
}
 

#Hasil :



Tugas C++ : Searching Array

Subscribe Our Newsletter