Senin, 21 Mei 2018

Mencari Data

program c++ mencari data yg terdapat pada indeks ke-, dengan metode aray linear.

#include<iostream>
#include<conio.h>
using namespace std;

main(){
    char cari, arr[10];
    int n, i;
    int awal, akhir, tengah;
   
    cout<<" Masukkan total element :";
    cin>>n;
    cout<<"Masukkan "<<n<<" huruf :";
        cout<<endl;
        for(i=0; i<n; i++){
            cout<<"\t\t ->";
            cin>>arr[i];
        }
        cout<<endl;
        cout<<"Masukkan huruf yang akan dicari :";
        cin>>cari;
       
        for(i=0; i<n; i++){
            if(cari==arr[i]){
                cout<<"terdapat pada indeks ke-"<<i;
            }
/*            else if(arr[tengah] ==  cari){
                cout<<cari<<"Ditemukan pada indeks ke-"<<tengah<<endl;
                break;
            }
            else{
                akhir=tengah-1;
            }
            tengah = (awal + akhir)/2;
        }
        if(awal>akhir){
            cout<<"Tidak di temukan"<<endl;
            cout<<cari<<" "<<"Tidak ada dalam data";
*/        }
       
           
        getch();
}

Mengurutkan Data

pada materi ini, kita dapat mengurutkan data menggunakan beberapa metode atau beberapa cara:
1. Bubble Sort
2. Selection Sort
3. Insertion Sort
4. Quick Sort

hasil akhir dari pengurutan di atas bakalan sama, hanya saja cara pemindahan angkanya yg berbed. Langsung saja kita ke programnya ya...

 #include<iostream>

using namespace std;

void bacaData(int arr[], int n){
    cout<<"\nBaca Data :"<<endl;
    for(int i=1; i<=n; i++){
        cout<<"Data Index ke-"<<i<<":";
        cin>>arr[i];
    }
    cout<<endl;
}
void tampilData(int arr[], int n){
    cout<<"Isi Array :";
    for(int i=1; i<=n; i++){
        cout<<arr[i];
    }
    cout<<endl;
}
void bubbleSort(int arr[], int n){
    int i, k, temp;
  
    for(k=n; k>=2; k--){
        for(i=1; i<=k-1; i++){
            if(arr[i]>arr[i+1]){
                temp=arr[i];
                arr[i]=arr[i+1];
                arr[i+1]=temp;
            }
        }
    }
}
void selectionSort(int arr[], int n){
    int i, j, iMin,temp;
  
    for(i=1; i<=n-1; i++){
        iMin=i;
      
        for(j=i+1; j<=n; j++){
            if(arr[j] < arr[iMin]){
                iMin = j;
            }
        }
        temp = arr[i];
        arr[i] = arr[iMin];
        arr[iMin] = temp;
    }
}
void insertionSort(int arr[], int n){
    int i, temp, blok;
  
    for(i=0; i<=n; i++){
        temp = arr[i];
        blok = i;
      
        while(blok>1 && arr[blok-1]>temp){
            arr[blok] = arr[blok-1];
            blok = blok-1;
        }
        arr[blok]= temp;
    }
}
void quickSort(int arr[], int L, int R){
    int i, j, p, temp;
  
    p = arr[(L+R)/2];
    i = L;
    j = R;
  
    while(i<=j){
        while(arr[i]<p){
            i++;
        }
        while(arr[j]>p){
            j--;
        }
      
        if(i<=j){
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
            i++;
            j--;
        }
    }


    if(L<j){
        quickSort(arr, L, j);
    }
    if(i<R){
        quickSort(arr, i, R);
    }
}

int main(){
    int arr[100], n;
  
    cout<<"Masukkan Banyak Data :";
    cin>>n;
  
    bacaData(arr, n);
  
    cout<<"Sebelum Diurutkan :"<<endl;
    tampilData(arr,n);
    cout<<endl;
  
    //cout<<"Setelah diturunkan dengan Bubble Sort :"<<endl;
    //bubbleSort(arr, n);
  
    //cout<<"Setelah diturunkan dengan Selection Sort :"<<endl;
    //selectionSort(arr, n);
  
    //cout<<"Setelah diturunkan dengan Insertion Sort :"<<endl;
    //insertionSort(arr, n);
  
    cout<<"Setelah di urutkan dengan Quick Sort :"<<endl;
    quickSort(arr, 1, n);
  
    tampilData(arr, n);
}

Membuat program Array Biner

pada aray biner, berbeda dengan array linear yg terdapat pada judul blog sebelumnya. Yang mana, pada array biner ini, pada saat kita ingin mencari data, dia bakalan mengurutkan data itu dahulu, baru kita dapat mencari data yg kita mau terdapat pada indeks ke berapa.

langsung saja ke program nya ya.....

#include <iostream>
using namespace std;
int pencarianbiner(int arr[],int kunci,int low, int high){
    bool ketemu;
    int middle;
    ketemu=false;
    while(low<=high && !ketemu){
        middle=(low+high)/2;
        if(kunci == arr[middle]){
            ketemu=true;
        }
        else if(kunci<arr[middle]){
            high=middle-1;
        }
        else{
            low=middle+1;
        }
    }
   
    if(ketemu){
        return middle;
    }
    else {
        return -1;
    }
   
}
void bubblesort(int l[], int n){
    int k=n;
    int temp;
    for(k-1;k>=1;k--){
        for(int i =0;i<=k-2;i++){
            if (l[i]>l[i+1]){
                temp=l[i];
            l[i]=l[i+1];
            l[i+1]=temp;
            }
           
           
        }
    }
   
}

void tampilsebelum(int i[],int n){
cout<<"isi Array Sebelum diurutkan = ";
    for(int a=0;a<n;a++){
        cout<<i[a]<<", ";
    }
    cout<<endl;
}
void tampilsesudah(int i[],int n){
cout<<"isi Array Sesudah diurutkan = ";
    for(int a=0;a<n;a++){
        cout<<i[a]<<", ";
    }
    cout<<endl;
}

main(){
    int arr[]={4,45,6,7},cari;
    tampilsebelum(arr,4);
    bubblesort(arr,4);
    tampilsesudah(arr,4);
    cout<<"Masukan Data yang ingin dicari = ";cin>>cari;
    int indexawal=0;
    int indexakhir=3;
    int hasilpencarian;
    hasilpencarian=pencarianbiner(arr,cari,indexawal,indexakhir);
    if(hasilpencarian==-1){
        cout<<"Angka Yang Anda Cari Tidak Ketemu"<<endl;
       
    }
    else {
        cout<<"Angka yang anda cari ketemu di index ke = "<<hasilpencarian+1<<endl;
    }

}

Membuat program Array Linear

pada array linear kita dapat mencari data, tanpa data harus di urutkan dulu...

contoh : kita mengisi data 1 pada indeks ke- 1, 4 pada indeks ke- 2, 2 pada indeks ke- 3...dan kita ingin mencari data 4.. maka dia akan langsung menemukan data angka 4 pada indeks ke -2... berikut adalah program nya

#include<iostream>
#define max 30

using namespace std;

void bacaData(int a[],int n){
    for(int i=0; i<n; i++){
        cout<<"masukkan data index ke-"<<i+1<<":";
        cin>>a[i];
    }
}

void tampilData(int arr[],int n){
    for(int i=0; i<n; i++){
        if(i%2==1){
       
        }
        else{
            cout<<"data index ke-"<<i+1<<":"<<arr[i]<<endl;
        }
    }
}

void tampil_data_rekursif(int arr[],int i, int n){
    if(i<n){
        cout<<"data index ke-"<<i<<":"<<arr[i]<<endl;
       
        tampil_data_rekursif(arr,i+1,n);
    }
   
}
float hitung_rata(int arr[],int n){
    float jumlah;
    float hasil;
    float x;
    for(int i=0; i<n; i++){
        if(i%2==1){
            x=i;
        }
        else{
            jumlah=jumlah+arr[i];
        }   
    }

    hasil=jumlah/x;
    return hasil;
}


main(){
    int a[max], banyakData;
   
    cout<<"masukkan banyak data :";
    cin>>banyakData;
   
    if(banyakData > max){
        cout<<"maksimal"<<" "<<max<<" "<<"data"<<endl;
    }
    else{
        //baca data array a
        bacaData(a, banyakData);
        //tampil data array a
        //tampil_data_rekursif(a,0, banyakData);
       
       
        //tamoil data array a
        tampilData(a,banyakData);   
       
        cout<<"rata-rata ="<< hitung_rata(a, banyakData);
    }
   
   
   
   
    return 0;
}

menghitung volume tabung

pada C++ kita juga dapat menghitung volume dari semua bangun ruang, salah satunya kita dapat mengitung volume pada tabung, langsung saja ke programnya :

#include <iostream>
#include <string>

using namespace std;
int main()
{
   string raptor_prompt_variable_zzyz;
   float vk;
   float phi=3.14;
   float vt;
   int t;
   int r;

   cout << "MENGHITUNG VOLUME TABUNG DAN KERUCUT" << endl;  
   raptor_prompt_variable_zzyz ="masukkan jari jari =";
   cout << raptor_prompt_variable_zzyz;
   cin >> r;
  
   raptor_prompt_variable_zzyz ="masukkan tinggi =";
   cout << raptor_prompt_variable_zzyz;
   cin >> t;
  
   vt =phi*r*r*t;
   vk =1/3.0*phi*r*r*t;
   cout << "volume tabung adalah "<<vt << endl;
   cout << "volume kerucut adalah"<<vk << endl;
   return 0;
}

Mengubah celcius Ke Farenheit dan Reamur (petemuan 3)

Kali ini kita akan mencoba merubah celcius ke farenheit atau pun reamur meggunakan  C++. langsung saja kita lihat ke programnya.

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

using namespace std;

class yoogs{
    private:
        int c;
        float r,f;
    public:   
    void  masuk(){
        cout<<"masukkan cc :";
        cin>>c;
    }
    float reamur(int c){
        r=4/5*c;
        return r;
    }
    float farenheit(int c){
        f=(9/5*c)+32;
        return f;
    }
    void hasil(){
        cout<<"hasil cc ke reamur :"<<r;
        cout<<"hasil cc ke farenheit :"<<f;
    }
       
 int main(){
       
        yoogs x;
        x.masuk();
        x.reamur(x.c);
        x.farenheit(x.f);
        x.hasil();
   
}

Selasa, 13 Maret 2018

OVERLOADING (postes 2)

overloading  adalah fungtion yang memiliki parameter dimana fungsi fungsi itu memiliki operasi yang berbeda.

inilah contoh kodingan overloading dalam menghitung luas lingkaran dan luas tabung.
#include<iostream>

using namespace std;

class lingkaran{
friend ostream& operator << (ostream&, lingkaran&);
friend istream& operator >> (istream&, lingkaran&);

public:
lingkaran(){
r=0;
phi=3.14;
l=0;
}
float luas(){
l=phi*r*r;
return l;
}
private:
int r;
float phi, l;
};

ostream& operator << (ostream& keluar, lingkaran& link){
keluar <<"r = :"<<link.r<<endl;
keluar <<"luas lingkaran adalah "<<link.luas()<<endl<<endl<<endl;
}
istream& operator >> (istream& masuk, lingkaran& karan){
cout<<"masukkan r =";
masuk >> karan.r;
return masuk;
}

class luastabung{
friend ostream& operator << (ostream&, luastabung&);
friend istream& operator >> (istream&, luastabung&);

public:
luastabung(){
r=0;
phi=3.14;
t=0;
l=0;
}
float luasalas(){
l=(2*phi*r*r)+(2*phi*r*t);
return l;
}
private:
int r;
int t;
float phi, l;
};
ostream& operator << (ostream& aku, luastabung& kamu){
aku <<"r = :"<<kamu.r<<endl;
aku <<"t = :"<<kamu.t<<endl;
aku <<"luas tabung adalah "<<kamu.luasalas();
}
istream& operator >> (istream& dia, luastabung& mereka){
cout<<"masukkan r =";
dia >> mereka.r;
cout<<"masukkan t =";
dia >> mereka.t;
return dia;
}


main(){
lingkaran x;
cin>>x;
cout<<x;

luastabung y;
cin>>y;
cout<<y;

}



menghitung cc ke farenheit dan reamur:

#include<iostream>

using namespace std;


class celsius{
    friend ostream& operator << (ostream&, celsius&);
    friend istream& operator >> (istream&, celsius&);
   
    private:
        float c, r, f;
    public:
        celsius(){
            r=0;
            f=0;
            c=0;
        }
        float reamur(){
            r=4.0/5*c;
            return r;
        }
        float farenheit(){
            f=(9.0/5*c)+32;
            return f;
        }
   
};
    ostream& operator << (ostream& aku, celsius& kamu){
    cout<<endl;
    aku <<"c = "<<kamu.c<<endl;
    aku <<"cc ke reamur  adalah "<<kamu.reamur();cout<<endl;
    aku <<"cc ke farenheit adalah "<<kamu.farenheit();
    }
    istream& operator >> (istream& dia, celsius& mereka){
    cout<<"masukkan celsius =";
    dia >> mereka.c;
    return dia;  
    }
   

main(){

    celsius x;
    cin>>x;
    cout<<x;
   
}

Mencari Data

program c++ mencari data yg terdapat pada indeks ke-, dengan metode aray linear. #include<iostream> #include<conio.h> using na...