Anda di halaman 1dari 10

Seach

PRAKTIKUM 2
Tugas Ke-1
Untuk memenuhi tugas Praktikum Algoritma dan Pemrograman I
Prodi. Informatika

Disusun oleh :
0618104049 - VIKRI RAMDHANI

Laboratorium Software Engineering


Program Studi Informatika – Universitas Widyatama
Bandung
2018
Asisten/Instruktur Halaman :
Raka Oktaviano Tanggal : 7 2019
2.3 Praktikum II
2.3.2 Tugas Pendahuluan II
1. Diketahui suatu data tiket sbb.

Id_tiket Jurusan Harga


T001 Bandung-Jakarta 85000
T002 Bandung-Bekasi 50000
T003 Jakarta-Surabaya 150000
Buatlah program bahasa C menggunakan 3 pilihan menu
1. Isi Data, menu untuk memasukkan data di atas ke dalam struktur tiket
2. Cari data berdasarkan Id_tiket, menu untuk menampilkan Id_tiket,
jurusan, dan harga berdasarkan Id_tiket (Gunakan metode pencarian
dengan sequential search menggunakan variable logika)
3. Keluar Program

Program C
#include<stdio.h>
#include<string.h>

typedef struct{
char id_tiket[5];
char jurusan[100];
long int harga;
} Tiket;

int main(){
Tiket tiket[100];
int menu;
int i = 0;
char x[100];

do{
printf("Masukan Menu: ");
scanf("%d", &menu);

if(menu == 1){
char lanjut[5];
while(strcmp(lanjut, "n") != 0){
printf("====================\n");
printf("Masukan ID Tiket: ");
scanf("%s", &tiket[i].id_tiket);
printf("Masukan jurusan: ");
scanf("%s", &tiket[i].jurusan);

printf("Masukan Harga: ");


scanf("%d", &tiket[i].harga);
printf("====================\n");
i++;
printf("Masukan Kembali(y/n): ");
scanf("%s", &lanjut);
}
} else if(menu == 2){
bool found = false;
int j = 0;
printf("====================\n");
printf("Masukan Id Tiket: ");
scanf("%s", &x);
printf("====================\n");
if(i == 0){
printf("Data Not Found");
} else {
while((j<i) && (!found)){
if(strcmp(tiket[j].id_tiket, x) == 0){
found = true;
} else {
j++;
}
}

if(found){
printf("ID Tiket: %s\n",
tiket[j].id_tiket);
printf("Jurusan: %s\n",
tiket[j].jurusan);
printf("Harga: %d\n", tiket[j].harga);
printf("====================\n");
} else {
printf("Data tidak ditemukan\n");
}
}
} else {
printf("Thx...");
}
}while(menu != 3);
return 0;
}
Output:
2. Diketahui sebuah himpunan nilai Array A={21, 31, 24, 12, 8, 9, 4}.
Buatlah program pencarian nilai X yang diinput oleh user menggunakan :
a. Sequential search dengan sentinel awal
b. Binary Search

Program C
#include<stdio.h>

int main(){
int a[7] = {21, 31, 24, 12, 8, 9, 4};
int menu;
int x;

do{
printf("Masukan Menu: ");
scanf("%d", &menu);

if(menu == 1){
printf("Masukan nilai X: ");
scanf("%d", &x);

a[-1] = x;
int i = 7;
while(a[i]!=x){
i--;
}

if(i !=-1){
printf("Data ditemukan di Index ke-%d\n", i+1);
}
else{
printf("Data Tidak Ditemukan\n");
}

} else if(menu == 2){


printf("Masukan nilai X: ");
scanf("%d", &x);

int i, j, k, found;

i=0;
j=7;
found = 0;

while((found == 0) && (i<=j)){


k=(i+j)/2;
if(a[k] == x){
found = 1;
} else {
if(a[k] == x){
i = k+1;
} else {
j=k-1;
}
}
}

if(found == 1){
printf("Ditemukan di Elemen ke %d\n", k+1);
} else {
printf("Data tidak ditemukan\n");
}
} else {
printf("thx..");
}

} while(menu == 1 || menu == 2);


}
Output Program:
2.3.3 Latihan-latihan Praktikum XI

Program C
#include<stdio.h>
#include<string.h>

int kode[4] = {1, 2, 3, 4};


char transport[4][100] = {"Bus", "Kereta Api", "Ferry", "Pesawat"};
int harga[4] = {50000, 100000, 75000, 200000};

typedef struct{
char nama[100];
int kodeT;
int jumlah;
int total;
} Rekap;

char tambah[5];
int main(){
Rekap rekap[100];
int i = 0;
int x;
do{
printf("========================\n");
printf("Nama Pemesan: ");
scanf("%s", &rekap[i].nama);

printf("Kode Transport: ");


scanf("%d", &rekap[i].kodeT);

printf("Jumlah Pesanan: ");


scanf("%d", &rekap[i].jumlah);

printf("Masukan Lagi(y/n): ");


scanf("%s", &tambah);

printf("========================\n");

int j = 0;
bool found = false;

while((j < 4) && (!found)){


if(rekap[i].kodeT == kode[j]){
found = true;
} else {
j++;
}
}
if(found){
int diskon = 0;
rekap[i].total = harga[j]*rekap[i].jumlah;

if(rekap[i].jumlah > 3)
diskon = rekap[i].total*10/100;

rekap[i].total-=diskon;

} else {
rekap[i].total = 0;
}

i++;
} while(strcmp(tambah, "y") == 0);

printf("Cari Data yang total penjualan nya lebih kecil dari


(X): ");
scanf("%d", &x);

printf("========================\n");
printf("Rekap Penjualan Tiket\n");

bool cekKetersediaan = false;


for(int j = 0; j<i; j++){
if(rekap[j].total < x){
cekKetersediaan = true;
printf("Nama Pemesan: %s\n", rekap[j].nama);
printf("Jenis Transportasi: %s\n",
transport[rekap[j].kodeT]);
printf("Total Penjualan: %d\n\n", rekap[j].total);

}
}

if(!cekKetersediaan){
printf("Data Tidak ditemukan");
}

return 0;
}
Output Program:

Program C
#include<stdio.h>
#include<string.h>

int main(){
int a[8] = {5, 3, 2, 1, 3, 2, 4, 5};
int i, j, k, x, found;

printf("Cari Data: ");


scanf("%d", &x);

i = 0;
j = 8;

while((found == 0) && (i <= j)){


k = (i+j)/2;
if(a[k] == x){
found = 1;
} else {
if(a[k] < x)
i = k+1;
else
j=k-1;
}
}

if(found == 1){
printf("Data diktemukan di elemen ke %d", k+1);
} else {
printf("Data tidak ditemukan");
}

return 0;
}
Output Program:

Anda mungkin juga menyukai