Skip to content

Instantly share code, notes, and snippets.

@HaradaKumiko
Created June 24, 2022 02:14
Show Gist options
  • Save HaradaKumiko/c2e0fc23273f13f93103354c920b680b to your computer and use it in GitHub Desktop.
Save HaradaKumiko/c2e0fc23273f13f93103354c920b680b to your computer and use it in GitHub Desktop.
Tugas Kelompok Struktur Data
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var array = ["Abrisam", "Alfatih", "Alif", "Albab", "Adzriel", "Akmal", "Alhanan", "Alhusayn", "Alfarizi", "Alfarezi", "Alfarizqi", "Altair", "Amrullah", "Amiruddin", "Aulian", "Arif", "Arfan", "Arshaq", "Arrahmah", "Arroyyan", "Asadel", "Asshauqi", "Aulian", "Avicenna", "Awwab", "Azam", "Azizi", "Azhar", "Azka", "Azril", "Baahir", "Baha", "Bahar", "Baharudin", "Baihaqi", "Badzil", "Bakrie", "Barra", "Bashir", "Baaqir", "Chairil", "Chumaidi", "Daffa", "Daniyal", "Dzakir", "Dzaky", "Dzuhairi", "Effendy", "Eshan", "Faeyza", "Fattah", "Farzan", "Fauzan", "Fawwaz", "Firman", "Ghayda", "Ghazzal", "Gibran", "Hafiz", "Hasan", "Hanafi", "Haidar", "Hakima", "Haikal", "Haytham", "Haziq", "Hizam", "Ibrahim", "Iftikhar", "Irsyad", "Izadin", "Jabir", "Jibran", "Kahfi", "Kamil", "Khairan", "Khalid", "Khalique", "Labib", "Lathiif", "Lazuardi", "Leron", "Liban", "Limazah", "Luay", "Luay", "Luqman", "Lutfi", "Mahasin", "Maisan", "Manaf", "Mauza", "Mecca", "Miftah", "Mikail", "Miyaz", "Nabeel", "Nadim", "Nashshar", "Naufal", "Nazeef", "Nazril", "Nizam", "Nufail", "Nuha", "Omar", "Onn", "Opick", "Othman", "Owais", "Ozak", "Pahlevi", "Parvez", "Pervaiz", "Pasha", "Qaabuus", "Qabeel", "Qani", "Qarni", "Qasim", "Qeis", "Qiyas", "Qadafi", "Qurthuby", "Rahiim", "Raffa", "Rafassya", "Rafiah", "Raid", "Radeya", "Rafqi", "Rashya", "Raqqilla", "Rayyan", "Rizal", "Raid", "Rayhan", "Rayyan", "Rizwan", "Shabir", "Shakeil", "Sulthan", "Syafiqi", "Syehan", "Taamir", "Taban", "Tabish", "Tahsin", "Taiq", "Tajammal", "Tamim", "Tamkeen", "Tanvir", "Thaahir", "Taufik", "Taufiq", "Taqy", "Thalib", "Ubaid", "Ubaidah", "Ulu", "Ulin", "Ulu Yaala", "Ulwan", "Ukasyah", "Umar", "Umran", "Usyair", "Usaid", "Utsman", "Waddah", "Wafa", "Wafiq", "Waiz", "Washil", "Wasim", "Waqar", "Warid", "Wifi", "Xaquil", "Xaquille", "Xavier", "Yaasir", "Yahya", "Yakub", "Yasri", "Yaqzhan", "Yasar", "Yasrif", "Yusra", "Zaflan", "Zain", "Zakaria", "Zavier", "Zhafran", "Zehan", "Zulkifli", "Zulchair"];
function binarySearch(array, name) {
let startIndex = 0;
let endIndex = (array.length) - 1;
while (startIndex <= endIndex) {
let pivot = Math.floor((startIndex + endIndex) / 2);
if (array[pivot] === name) {
return `Found the target: ${name} at index ${pivot}`;
} else if (array[pivot] < name) {
startIndex = pivot + 1;
} else {
endIndex = pivot - 1;
}
}
return false;
}
const linearSearch = (array, name) => {
for (let i = 0; i < array.length; i++) {
if (array[i] === name) {
return `Found the target: ${name} at index ${i}`;
}
}
}
console.log("===== Program Mencari Nama =====")
rl.question('Input nama yang akan dicari : ', function (name) {
rl.question('Mau Menggunakan Metode apa? Linear Search [L] / Binary Search [B] : ', function (method) {
switch (method) {
case "L":
const startLinear = performance.now()
console.log(linearSearch(array, name));
const endLinear = performance.now()
console.log(`Time : ${endLinear - startLinear}`)
break;
case "B":
const startBinary = performance.now()
console.log(binarySearch(array, name));
const endBinary = performance.now()
console.log(`Time : ${endBinary - startBinary}`)
break;
}
});
});
{
"name": "testing",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"fs": "^0.0.1-security",
"inquirer": "^8.2.4",
"readline": "^1.3.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment