Wednesday, March 13, 2013

Code ++ array (Pencarian Data)

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

int n; //banyaknya data
const maks = 100; //maksimum banyaknya data

void cetak_judul();
void isi_data(int data[]);
void cetak_data(int data[]);
int cari_data(int data[],int x);

void main()
{
    //buat variabel data
    int data[maks];
   
    cetak_judul();
    cout << "Banyaknya data : "; cin >> n;
    isi_data(data);
    cetak_data(data);
   
    int x; //data yg hendak dicari
    char tanya;
    do
    {
        cout << "Masukkan data yg hendak dicari : "; cin >> x;
        int posisi = cari_data(data,x);
        if (posisi == 0)
            cout << "Data tidak ditemukan!!";
        else
            cout << "Data ditemukan pada posisi ke-" << posisi << endl;
        cout << "Ingin cari lagi (y/t) : ";
        tanya = getche();
        cout << endl << endl;
    } while (tanya != 't');
}

void cetak_judul()
{
    cout << "Program Pencarian Data" << endl;
    cout << "----------------------" << endl;
    cout << endl;
}

void cetak_data(int data[])
{
    for (int k=0; k<n; k++)
      cout << (k+1) << ":" << data[k] << " ";
     cout << endl;
}

void isi_data(int data[])
{
    randomize();
    for (int k=0; k<n; k++)
        data[k] = random(100);
}

int cari_data(int data[], int x)
{
    int posisi = 0;  //data belum ditemukan
    int k = 0;  //posisi data awal
    do
    {
        if (data[k] == x)  //apakah data ke-k adalah data yg dicari?
        {
            //jika benar maka set posisi = k+1 dan selesai
            posisi = k+1;
        }
        else
        {
            //jika tidak, lanjutkan pencarian ke data berikutnya
            k++;
        }
    } while ( (k<n) && (posisi==0) ); //cari selama data blm habis dan belum ditemukan
    return posisi;
}

No comments:

Post a Comment

Kebahagiaan sejati bukanlah pada saat kita berhasil meraih apa yg kita perjuangkan, melainkan bagaimana kesuksesan kita itu memberi arti atau membahagiakan orang lain.