Jumat, 24 Februari 2017

Praktikum Struktur Data Pencarian Array

Nama : Hafid Dwi Hibatullah
NIM : E1E1 15 063

  1. Buatlah program untuk mencari data pada array 2 dimensi (opsional: tambahkan kode program untuk memberi inputan data dan ukuran array, poin plus 10)
    Contoh data array:
    1      3      2
    10    5      8
    15    24    10
    yang dicari: 24
    output : data 24 berada pada posisi [2][1]
    yang dicari: 2
    output:  data 2 berada pada posisi [0][2]
    petunjuk: gunakan sequential search, karena data tidak diurutkan, terdapat 2 looping untuk proses pencarian.

    Code :

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

    using namespace std;

    int main()
    {
    int a[3][3],i,j,k,jml=0,cari,index1,index2,inti=0;

    cout<<"\t1. ARRAY 2 DIMENSI\n\n";

    for(k=1,i=0;i<3;i++)
    {
        for(j=0;j<3;j++,k++)
        {
            cout<<"Masukkan data "<<k<<" : "; cin>>a[i][j];
        }
    }
    cout<<"\nData yang anda masukkan adalah : \n\n";
    for(k=1,i=0;i<3;i++)
    {
        for(j=0;j<3;j++,k++)
        {
            cout<<a[i][j]<<"\t";
        }
        cout<<endl<<endl;
    }

    cout<<"Masukkan data yang ingin anda cari : "; cin>>cari;
    for(k=1,i=0;i<3;i++)
    {
        for(j=0;j<3;j++,k++)
        {
            if(a[i][j]==cari)
               {inti=1;jml++;}

        }
    }
    if(inti==1)
    {
        cout<<"\nData ditemukan!!\n";
        cout<<"\nDitemukan "<<jml<<" data!!\n";
        cout<<"\nData barada di index : ";
        for(k=1,i=0;i<3;i++)
        {
            for(j=0;j<3;j++,k++)
            {
                if(a[i][j]==cari)
                {

                    index1=i;
                    index2=j;
                    cout<<"["<<index1<<"]["<<index2<<"]  ";
                }
            }
        }
    }else
    cout<<"\nData nggak ditemukan!!\n";



    getch();
    return 0;
    }


    Screenshot:

     

    Penjelasan Program :
    1. User memasukkan data  array yang diatur dari [0][0] [0][1] [0][2] hingga [2][2].
    2. User memasukkan data yang ingin dicari, bila data terdapat pada array yang diinputkan maka akan di beritahukan ada berapa data yang di temukan dan berada di index ke berapa .
  2. Buat program untuk mencari data berupa huruf pada inputan yang berupa kalimat. (Opsional: hitung jumlah konsonan, dan vokal, poin plus 10).
    Output seperti contoh:
    Input : aku dan aka
    Output :
    Vokal : a u a a a
    Konsonan : k d n k
    Masukkan data yang akan anda cari : s

    Data tidak ada ...


    Code :
    #include <iostream>
    #include <conio.h>
    #include <string.h>

    using namespace std;

    int main()
    {
    int voc=0,kon=0,x,i,inti=0,spac=0;
    char kalimat[100],cari;

    cout<<"\t2. Vocal Konsonan\n\n";

    cout <<"Silakan masukkan kalimat : "; cin.getline(kalimat,100);


    x=strlen(kalimat);
    cout<<"\nHasil analisis kata :\n\n";
    for(i=0;i<x;i++)
        {
            if(kalimat[i]=='a'||kalimat[i]=='i'||kalimat[i]=='u'||kalimat[i]=='e'||kalimat[i]=='o')
            {
                voc++;
            }
            else if(kalimat[i]==' ')
            {
                spac++;
            }
            else
                kon++;
        }

    cout<<"Jumlah vocal\t: "<<voc<<" : ";

    for(i=0;i<x;i++)
        {
    if(kalimat[i]=='a'||kalimat[i]=='i'||kalimat[i]=='u'||kalimat[i]=='e'||kalimat[i]=='o')
            {
                cout<<kalimat[i]<<" ";
            }
        }

    cout<<"\nJumlah konsonan\t: "<<kon<<" : ";

    for(i=0;i<x;i++)
        {
            if(kalimat[i]=='a'||kalimat[i]=='i'||kalimat[i]=='u'||kalimat[i]=='e'||kalimat[i]=='o')
            {
                cout<<"";
            }
            else if(kalimat[i]==' ')
            {
                cout<<"";
            }
            else
                cout<<kalimat[i]<<" ";
        }


    cout<<"\n\nMasukkan data yang ingin anda cari : "; cin>>cari;
    for(i=0;i<x;i++)
        {
            if(kalimat[i]==cari)
            inti=1;
        }

        if(inti==1)
            {
                cout<<"Data ditemukan :D "<<endl<<cari<<" terdapat di dalam kalimat ini"<<endl<<"terdapat "<<spac<<" spasi dalam kalimat ini";
            }
            else
                cout<<"Data tidak ditemukan :'(";
    getch();
    return 0;
    }

    Screenshoot :
     


    Penjelasan Program :
    1. User memasukkan kalimat atau kata yang kemudian akan terhitung huruf vokal dan huruf konsonannya.
    2. User memasukkan huruf yang ingin dicari, bila terdapat huruf yang dicari maka akan muncul pemberitahuannya.


  3. Buat program untuk mencari bilangan ganjil dan bilangan genap dari data angka yang diinputkan oleh user (opsional: berikan indeks untuk setiap data yang ditemukan, nilai plus 10).



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


    using namespace std;

    int main()
    {
        int data[100],input,inti=0,i,index,jml=0;
        string daca;

        cout<<"\t3. Ganjil Genap\n\n";

        cout<<"\nMasukkan jumlah data  yang ingin di inputkan : "; cin>>input;
        for(i=1;i<=input;i++)
        {
            cout<<"Masuukan data ke-"<<i<<" = "; cin>>data[i];
        }
        cout<<"\nMasukkan data yang ingin anda cari (ganjil/genap): "; cin>>daca;

            if(daca=="ganjil"||daca=="Ganjil")
            {
                cout<<"\n\nData ganjil pada inputan adalah : "<<endl;
                for(i=1; i<=input; i++)
                {
                    if(data[i]%2==1)
                    {
                        cout<<"\t\t\t\t\t"<<data[i]<<" Pada index ke-"<<i<<endl;
                    }
                }
            }
            else if(daca=="genap"||daca=="Genap")
            {
                cout<<"\n\nData genap pada inputan adalah : "<<endl;
                for(i=1; i<=input; i++)
                {
                    if(data[i]%2==0)
                    {
                        cout<<"\t\t\t\t\t"<<data[i]<<" Pada index ke-"<<i<<endl;
                    }
                }
            }
            else
                    cout<<"\nPencarian salah!";

    getch();
    return 0;
    }


    Screenshot :



    Penjelasan Program :
    1. User memasuukan jumlah data yang ingin di inputkan, kemudian user memasukkan data sesuai dengan jumlah data yang telah diinputkan.
    2. User memasukkan pencarian data yang ingin dicari terdapat 2 pilihan yaitu ganjil dan genap , bila yg dimasukkan ganjil maka akan keluar hanya data ganjil dengan pada index ke berapa data tersebut dari data yang telah di inputkan di awal , bila yg dimasukkan genap maka akan keluar hanya data genap dengan pada index ke berapa data tersebut dari data yang telah di inputkan di awal , index dimulai dari 1.

Sabtu, 18 Februari 2017

Praktikum Struktur Data ARRAY dan STRUCT



  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<stdio.h>
    #include<conio.h>

    using namespace std;

    int main()
    {
    int a,i;
    int nilai[]={1,2,3,3,2,1,1,2,3};

    for(i=0;i<9;i++)
    {
        cout<<nilai[i]<<"  ";
    }

    cout<<"\nData yang ingin dihapus = ";
    cin>>a;

    for(i=0;i<9;i++)
    {
        if(nilai[i]==a)
        {
            nilai[i]=0;
        }
    }


    cout<<"\nData "<<a<<" udah dihapus!";
    cout<<"\n\nData sekarang : \n";

    for(i=0;i<9;i++)
    {
        if(nilai[i]!=0)
        {
            cout<<nilai[i]<<"  ";
        }
    }
    getch();
    return 0;
    }

    Screenshot:



    Penjelasan Program :
    1. User dapat menghapus data yang ada dengan memasukkan data apa yang akan dihapus
    2. Data yang dimasukkan akan terhapus dari list data

  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<stdio.h>
    #include<conio.h>

    using namespace std;

    int main()
    {
    int a,b,i;
    int nilai[]={1,2,3,3,2,1,1,2,3};

    for(i=0;i<9;i++)
    {
        cout<<nilai[i]<<"  ";
    }

    cout<<"\nData yang ingin diubah = ";
    cin>>a;

    cout<<"\nMasukkan nilai baru untuk data "<<a<<"  = ";
    cin>>b;

    for(i=0;i<9;i++)
    {
        if(nilai[i]==a)
        {
            nilai[i]=b;
        }
    }


    cout<<"\nData "<<a<<" udah diubah!";
    cout<<"\n\nData sekarang : \n";

    for(i=0;i<9;i++)
    {
        if(nilai[i]!=0)
        {
            cout<<nilai[i]<<"  ";
        }
    }
    getch();
    return 0;
    }



    Screenshot :


     
    Penjelasan Program :
    1. User dapat mengubah data yang ada dengan memasukkan data apa yang akan ubah
    2. Nilai baru yang dimasukkan akan merubah data yang ingin dirubah tadi
    3. Seluruh data yang sama akan terubah dengan nilai baru

  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<stdio.h>
    #include<conio.h>

    using namespace std;

    int main()
    {
    int a,b,c=0,i;
    int nilai[]={1,2,3,3,2,1,1,2,3};

    for(i=0;i<9;i++)
    {
        cout<<nilai[i]<<"  ";
    }

    cout<<"\nMasukkan data yang ingin di tambahkan = ";
    cin>>a;

    cout<<"\nMasukkan index ke berapa data "<<a<<" ingin di tambahkan = ";
    cin>>b;

    for(i=0;i<9;i++)
    {
        if(i>=b)
        {
            c=nilai[b];
            nilai[b]=a;
            a=c;
        }
    }


    cout<<"\nData "<<a<<" udah ditambahkan ke index ke-"<<b<<"!";
    cout<<"\n\nData sekarang : \n";

    for(i=0;i<10;i++)
    {
        if(nilai[i]!=0)
        {
            cout<<nilai[i]<<"  ";
        }
    }
    getch();
    return 0;
    }


     Screenshot :



    Penjelasan Program :
    1. User dapat memasukkan data baru ke dalam index data
    2. User kemudian masukkan pada index ke berapa data akan disimpan
    3. index data dimulai dari 0