Anda di halaman 1dari 18

LAPORAN PRAKTIKUM

Algoritma Pemrograman

MODUL
Searching

Disusun oleh:
Nasrulloh Yuli Nugroho
2211102348
S1 IF-10-H

PROGRAM STUDI S1 INFORMATIKA


FAKULTAS INFORMATIKA
INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2022
LATIHAN KELAS – GUIDED
1. Guided 1
Source Code
#include <iostream>

using namespace std;

int sequential_search (int data[], int n, int k){

int posisi, i, ketemu;

if (n <= 0)

posisi = -1;

else {

ketemu = 0;

i = 1;

while ((i < n-1) && !ketemu){

if (data[i] == k){

posisi = i;

ketemu = 1;

else {

i++;

if (!ketemu){

posisi = -1;

return posisi;

int main()

{
int n = 7;

int data[] = {3,1,5,6,4,7,0};

int k = 4;

int posisi = sequential_search(data, n, k);

if (posisi != -1){

cout << " key " << k << " was found at indeks " <<
endl;

else {

cout << " key " << k << " not found " << endl;

return 0;

Screenshoot program

Deskripsi program

Output adalah hasil proses dari source code digunakan untuk mengatur tampilan
yang dikelurkan program
2. Guided 2
Source code
#include <iostream>

using namespace std;

int sequentialsearch (int arr[], int n, int kuncipencarian)

for (int i = 0; i < n; i++)

if (arr[i] == kuncipencarian)

return i;

return -1;
}

int main()

int angka [] = {1,5,7,2,3,9};

int n = 6;

int idx_ditemukan;

int yangdicari;

cout << "masukkan angka yang ingin dicari : ";

cin >> yangdicari;

idx_ditemukan = sequentialsearch(angka, n, yangdicari);

if (idx_ditemukan != -1)

cout << yangdicari << " ditemukan pada indeks " <<
idx_ditemukan;

else{

cout << yangdicari << "tidak ditemukan " << endl;

return 0;

Screenshoot program

Deskripsi program
Ini adalah program yang menemukan kunci yang dicari maka fungsi akan mengembalikan
posisi indeks dari kunci tersebut pada array.

3. Guided 3
Source code
#include <iostream>

using namespace std;

int binarySearch (int arr[], int n, int k){

int kiri, kanan, tengah;

kiri = 0;

kanan = n;

int posisi = -1;

bool ketemu = false;

while(kiri <= kanan)

tengah = (kanan+kiri)/2;

if (k == arr [tengah]){

posisi = tengah;

break;

else if (k < arr[tengah]){

kanan = tengah-1;

else if (k > arr[tengah]){

kiri = tengah+1;

return posisi;

int main()
{

int angka [6] = {1,5,7,8,11,15};

int idx_ditemukan;

int yangDicari;

cout << "masukkan angka yang ingin dicari : ";

cin >> yangDicari;

idx_ditemukan = binarySearch(angka, 6, yangDicari);

if (idx_ditemukan != -1)

cout << yangDicari << " ditemukan pada indeks " <<
idx_ditemukan << endl;

else{

cout << yangDicari << " tidak ditemukan " << endl;

return 0;

Screenshoot program

Deskripsi program
Program ini mencari kunci dengan menginputkan angka menggunakan Binary Search
yang dibantu dengan while, if, else dan array.

LATIHAN KELAS – UNGUIDED


1. Unguided 1
Source code
#include <iostream>

using namespace std;

int Sequentialsearch(double arr[], int n ,double


kunciPencarian){

for (int i = 0; i < n; i++){

if (arr[i] == kunciPencarian) {

return i;

}
} return -1;

int main()

double angka[6] = {1.43,5.32,7.6,2.1,3.6,9.33};

int idx_ditemukan;

double yangDicari;

cout << "Masukkan angka yang ingin dicari : ";

cin >> yangDicari;

idx_ditemukan = Sequentialsearch(angka ,6 , yangDicari);

if (idx_ditemukan != -1){

cout << yangDicari << " ditemukan pada indeks " <<
idx_ditemukan << endl;

else {

cout << yangDicari << " tidak ditemukan" << endl;

return 0;

Screenshoot program

Deskripsi program

Program ini adalah program yang mencari kunci menggunakan Sequential Search yang
dibantu oleh perulangan,percabangan dan array.
2. Unguided 2
Souce code
#include <iostream>

using namespace std;

int binarySearch(char arr[], int n, char k) {

int kiri, kanan, tengah;

kiri = 0;

kanan = n;

int posisi = -1;

while (kiri <= kanan){

tengah = (kanan+kiri)/2;

if (k == arr[tengah]) {

posisi = tengah;

break;

else if (k < arr[tengah]) {

kanan = tengah-1;

else if (k > arr[tengah]) {

kiri = tengah+1;

return posisi;

int main()

char huruf[6] = {'a','d','e','f','i','z'};

int idx_ditemukan;

char yangDicari;
cout << "Masukkan huruf yang ingin dicari : ";

cin >> yangDicari;

idx_ditemukan = binarySearch(huruf ,6 , yangDicari);

if (idx_ditemukan != -1){

cout << yangDicari << " ditemukan pada indeks " <<
idx_ditemukan <<endl;

else {

cout << yangDicari << " tidak ditemukan" << endl;

return 0;

Screenshoot program

Deskripsi program

Program ini akan membagi dua array kanan dan kiri dan setelah itu menyeleksi nya untuk
mendapatkan kunci yang kita inputkan di codingan yang dibantu dengan perulangan dan
percabangan yang dimana 0 bernilai false dan 1bernilai true.
TUGAS
1. Tugas
Source code
#include <iostream>

using namespace std;

int sequentialsearch348 (string arr348[],int n348, string


kuncipencarian348)
{
for (int i348 = 0; i348 < n348; i348++)
{
if (arr348[i348] == kuncipencarian348)
return i348;
}
return -1;
}

int main()
{
string nomor_plat348 [10] = {"R 300 SR", "R 1234 DJ", "R
3218 RR", "R 701 LP", "R 007 TU", "R 3 ST", "R 999 RT", "R
210 RO", "R 1111 II", "R 4987 LH"};
int idx_ditemukan348;
string yangdicari348;

cout << "masukkan nomor plat yang ingin dicari : ";


cin >> yangdicari348;

idx_ditemukan348 = sequentialsearch348(nomor_plat348, 10,


yangdicari348);

if (idx_ditemukan348 != -1)
{
cout << yangdicari348 << " ditemukan pada indeks " <<
idx_ditemukan348;
}
else{
cout << yangdicari348 << " tidak ditemukan " << endl;
}
return 0;
}

Screenshoot program
Deskripsi program

Program ini untuk mencari plat nomor mobil yang parkir sembarangan dengan
menggunakan Sequential Search Ketika program di jalankan maka program akan
menampilkan hasil seperti pada ss output, karena nomor R 999 RS berada diarea
dilarang parkir.
2. Tugas 2
Souce code
#include <iostream>

using namespace std;

int binarySearch348 (int arr348[], int n348, int k348){

int kiri348, kanan348, tengah348;

kiri348 = 0;

kanan348 = n348;

int posisi348 = -1;

bool ketemu348 = false;

while(kiri348 <= kanan348)

tengah348 = (kanan348+kiri348)/2;

if (k348 == arr348 [tengah348]){

posisi348 = tengah348;

break;

else if (k348 < arr348[tengah348]){

kanan348 = tengah348-1;

else if (k348 > arr348[tengah348]){

kiri348 = tengah348+1;

return posisi348;

int main()

int nim339 [13] = {12102001,12102002, 12102003, 12102004,


12102005, 12102006, 12102007, 12102008, 12102009,12102010,
12102011, 12102012, 12102013};

int idx_ditemukan339;

int yangDicari339;

cout << "masukkan angka yang ingin dicari : ";

cin >> yangDicari348;

idx_ditemukan348 = binarySearch348(nim348, 13,


yangDicari348);

if (idx_ditemukan348 != -1)

cout << yangDicari348 << " ditemukan pada indeks " <<
idx_ditemukan348 << endl;

else{

cout << yangDicari348 << " tidak ditemukan " << endl;

return 0;

Screenshoot program

Deskripsi program

Pada program ini untuk mencari NIM mahasiswa yang berjumlah 13 orang dengan
menggunakan Binary Search yaitu dengan membagi 2 array untuk menyeleksi apakah
nilai tersebut berada di dalam array atau tidak dan ketika program di jalankan kita
diminta mengisi nim yang akan di cari yaitu 12102008 maka hasilnya akan keluar dengan
output “12102008 DITEMUKAN PADA INDEKS KE-7”.

3. Tugas 3
Souce code
#include <iostream>

using namespace std;

int binarySearch348 (int arr348[], int n348, int k348){


int kiri348, kanan348, tengah348;
kiri348 = 0;
kanan348 = n348;
int posisi348 = -1;
bool ketemu348 = false;

while(kiri348 <= kanan348)


{
tengah348 = (kanan348+kiri348)/2;

if (k348 == arr348 [tengah348]){


posisi348 = tengah348;
break;
}
else if (k348 < arr348[tengah348]){
kanan348 = tengah348-1;
}
else if (k348 > arr348[tengah348]){
kiri348 = tengah348+1;
}
}
return posisi348;
}

void insertionsort(int arr[], int length){


int i,j,temp;
for (i = 1; i < length; i++){
j=i;
while (j > 0 && arr [j] < arr [j-1]){
temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
j--;
}
}
}

void printarray (int arr[], int length){


for (int i=0; i < length; i++){
cout << arr[i] << " ";
}
cout << endl;
}

int main()
{
int arr348[10] = {21, 61, 28, 72, 44, 68, 37, 52, 75,
75};
int idx_ditemukan348;
int yangDicari348;

cout << "sebelum sort : " << endl;

printarray(arr348, 10);

insertionsort(arr348, 10);

cout << "setelah sort : " << endl;


printarray(arr348,10);

cout << "masukkan angka yang ingin dicari : ";


cin >> yangDicari348;

idx_ditemukan348 = binarySearch348(arr348, 10,


yangDicari348);

if (idx_ditemukan348 != -1)
{
cout << yangDicari348 << " ditemukan pada indeks " <<
idx_ditemukan348 << endl;
}
else{
cout << yangDicari348 << " tidak ditemukan " << endl;
}
return 0;
}

Screenshoot program

Deskripsi program

Program ini untuk membantu Pak Anto dimana mencari data bilangan dengan
menggunakan Binary Search, jika program di jalankan akan meminta kita
menginputkan angka.

Anda mungkin juga menyukai