Politeknik Tanah Laut Teknik Informatika Semester 2

Selasa, 23 April 2019

CodeBlocks C++ : Searching (Sequential)

By April 23, 2019
“Searching (Sequential)”
Yo sobat Mahasiswa, mari kita lanjutkan materi koding yaitu "Searching Sequential". Silahkan juga lihat Contoh Program Besar pada postingan sebelumnya.

  • Searching Sequential
Pencarian berurutan dalam C++ juga disebut pencarian linear. Teknik pencarian ini sangat sederhana, untuk melakukan teknik ini pengguna mulai loop dari indeks nol array ke indeks terakhir array. Dimulai dari indeks pertama dan membandingkan nilai yang diperlukan dengan nilai pertama. Jika nilai yang diperlukan ditemukan, maka akan menunjukkan hasil sebaliknya membandingkan nilai indeks berikutnya dan akan berlanjut sampai nilai yang diperlukan ditemukan atau loop selesai tanpa menemukan nilai apa pun.

Jika sobat mencari elemen yang berada di dekat bagian depan array, pencarian berurutan akan menemukannya dengan cepat. Semakin banyak data yang harus dicari, semakin lama waktu yang dibutuhkan untuk menemukan data yang cocok dengan kunci menggunakan proses ini, Oleh karena itu diperlukan suatu metode untuk mempersingkat hal tersebut.


Contoh:
i = 0;
    ulang:
        if (i != n)
        {
            if (nama[i] == x)
                cout << " Nama yang dicari ditemukan pada data " << i+1;
            else
            {
                i++;
                goto ulang;
            }
        }
        else
        {
            cout << " Data tidak ada\n";
        }
    return 0;
Penjelasan:
Dalam algoritma searching sequential diatas, i didefinisikan sebagai variabel yang mencarikan data yang sobat inputkan dan dicari. Lalu program memeriksa algoritma penyeleksian kondisi, dimana jika i tidak sama dengan n (n = jumlah data) maka kondisi 1 (if) akan dijalankan, jika tidak maka kondisi 2 (else) yang dijalankan.

Dalam kondisi 1 (if) ada algoritma penyeleksian kondisi lagi yang dimana dalam algoritma tersebut jika nama[i] sama dengan data/sesuai (nama[i] == x) maka program akan menjalankan kondisi 1 dengan perintah output "Nama yang dicari ditemukan pada data ....". Namun, jika tidak maka kondisi 2 yang dijalankan dimana i akan diproses (i++) sehingga i yang semula 0 menjadi 1 (0 = 0 + 1) karena i++ sama saja dengan i+1, lalu ada deklarasi goto ulang untuk perintah mengulang proses ke dimana ulang berada.

Jika dalam proses pencarian data sudah selesai, maka proses akan di return untuk mengakhiri program (mengembalikan nilai awal semua).

  • Contoh Program
#include <iostream>
#include <windows.h>
using namespace std;

main()
{
    int n, i = 0;
    string nama[10], x;

    cout << " Masukan banyak data : "; cin >> n;
    for (i = 0; i < n; i++)
    {
        cout << " Orang " << i+1 << " = "; cin >> nama[i];
    }

    system("cls");
    cout << " Masukan nama yang dicari : "; cin >> x;

    i = 0;
    ulang:
        if (i != n)
        {
            if (nama[i] == x)
                cout << " Nama yang dicari ditemukan pada data " << i+1;
            else
            {
                i++;
                goto ulang;
            }
        }
        else
        {
            cout << " Data tidak ada\n";
        }
    return 0;
}


Sobat bisa mencoba kodingan diatas dan memahaminya. Contoh programnya sendiri memiliki banyak variasi tergantung dari kreativitas oleh penulis program.


Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.
Read More...

CodeBlocks C++ : Searching (Binary)

By April 23, 2019
“Searching (Binary)”
Yo sobat Mahasiswa, mari kita lanjutkan materi koding yaitu "Searching Binary". Silahkan juga lihat Contoh Seaching Sequential pada postingan sebelumnya.

  • Searching Binary
Pencarian biner adalah algoritma pencarian yang digunakan secara luas yang membutuhkan array untuk diurutkan sebelum pencarian diterapkan. Ide utama di balik algoritma ini adalah untuk tetap membagi array menjadi dua (membagi dan mengatasi) sampai elemen ditemukan, atau semua elemen sampai habis. Biner bekerja dengan membandingkan item tengah array dengan target data, jika cocok, itu mengembalikan true (boolean benar/salah), jika jangka menengah lebih besar dari target, pencarian dilakukan di sub-array kiri. Jika jangka menengah kurang dari target, pencarian dilakukan dalam sub-array yang tepat.

Contoh:
awal = 0; akhir = 7; bflag = 0;
    while (b_flag == 0 && awal <= akhir)
    {
        tengah = (awal + akhir) / 2;
        if (data[tengah] == cari)
        {
            b_flag = 1;
            break;
        }
        else if (data[tengah] < cari)
            awal = tengah + 1;
        else
            akhir = tengah - 1;
    }
    if (b_flag == 1)
        cout << "\nData ditemukan pada posisi ke-" << tengah+1 << endl;
    else
        cout << "\nData tidak ditemukan\n";
Penjelasan:
Dalam algoritma searching biner diatas, dideklarasikan variabel awal, akhir, tengah, dan b_flag dimana awal diidentifikasikan nilainya adalah 0, akhir nilainya 7, tengah nilainya adalah awal + akhir / 2, dan b_flag nilainya 0. Lalu program akan melakukan perulagan while dimana akan dilakukan apabila kondisi terpenuhi, yaitu apabila b_flag nilainya adalah 0 (b_flag == 0) dan awal kurang lebih sama dengan akhir (awal <= akhir). Dalam algoritma perulangan while terdapat rumus perhitungan tengah, dan algoritma penyeleksian kondisi.

Untuk perhitungan, nilai tengah merupakan penggerak dari array data, dimana rumus tengah akan dibandingkan dengan variabel cari dan akan terus dijalankan hingga nilai yang ditambahan/dikurangkan ke awal/akhir sama, dan perulangan berhenti. 

Dalam algoritma penyeleksian kondisi, jika data[tengah] sama dengan cari (data[tengah] == cari), maka kondisi 1 akan dijalankan, apabila data[tengah] kurang dari cari (data[tengah] < cari), maka kondisi 2 akan dijalankan, namun apabila kedua kondisi tidak terpenuhi maka kondisi 3 yang dijalankan.

Setelah perulangan, maka untuk mengeluarkan hasil dari proses diatas maka diperlukan sebuah algoritma penyeleksian kondisi dimana jika b_flag sama dengan 1 (b_flag == 1) maka kondisi 1 akan dijalankan, dengan perintah "Data ditemukan pada posisi ke-....", apabila kondisi 1 tidak terpenhi maka kondisi 2 akan dijalankan, dengan perintah "Data tidak ditemukan".

  • Contoh Program
#include <iostream>
#include <windows.h>
using namespace std;

main()
{
    int n, i = 0;
    string nama[10], x;

    cout << " Masukan banyak data : "; cin >> n;
    for (i = 0; i < n; i++)
    {
        cout << " Orang " << i+1 << " = "; cin >> nama[i];
    }

    system("cls");
    cout << " Masukan nama yang dicari : "; cin >> x;

    i = 0;
    ulang:
        if (i != n)
        {
            if (nama[i] == x)
                cout << " Nama yang dicari ditemukan pada data " << i+1;
            else
            {
                i++;
                goto ulang;
            }
        }
        else
        {
            cout << " Data tidak ada\n";
        }
    return 0;
}


Sobat bisa mencoba kodingan diatas dan memahaminya. Contoh programnya sendiri memiliki banyak variasi tergantung dari kreativitas oleh penulis program.


Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.
Read More...