Untitled
unknown
plain_text
3 months ago
2.8 kB
7
Indexable
def sequential_search_bruteforce(himpunan_array: list, target_key: int) -> int:
"""
Implementasi murni algoritma Brute Force untuk pencarian sekuensial.
Tujuan: Mencari lokasi (indeks) dari target_key di dalam himpunan_array.
Kondisi Pra-syarat: himpunan_array tidak diwajibkan dalam kondisi terurut.
Parameter Oprasional:
himpunan_array (list): Representasi ruang pencarian semesta (S).
target_key (int/str): Nilai entitas tunggal yang sedang dicari (K).
Return Value:
int: Mengembalikan nilai integer berupa indeks posisi jika target ditemukan.
Mengembalikan -1 jika iterasi kehabisan elemen dan target tidak eksis.
"""
# 1. Menghitung ukuran kardinalitas (n) dari himpunan data
n = len(himpunan_array)
print(f"[SISTEM] Memulai inisialisasi ruang pencarian dengan ukuran n = {n} elemen.")
# 2. Blok Perulangan Iteratif (Fase Generator)
# Range(n) secara otomatis membangkitkan nilai i dari 0 hingga n-1
for i in range(n):
print(f" [PROSES] Mengekstraksi memori indeks ke-{i} -> Nilai: {himpunan_array[i]}")
# 3. Blok Evaluasi Komparasi (Fase Tester)
if himpunan_array[i] == target_key:
# Kondisi terpenuhi: Eksekusi Short-Circuit (Penghentian Dini)
print(f"[BERHASIL] Evaluasi TRUE. Target {target_key} ditemukan bersarang pada indeks ke-{i}!")
return i
# 4. Blok Terminasi Kegagalan (Fall-back)
# Jika baris ini tereksekusi, artinya CPU telah menyapu bersih himpunan n
# dan tidak ada satupun evaluasi yang menghasilkan nilai TRUE.
print(f"[GAGAL] Ruang pencarian habis dieksplorasi. Target {target_key} tidak terdaftar di dalam sistem.")
return -1
# =====================================================================
# Modul Pengujian Utama (Main Driver Program)
# =====================================================================
if __name__ == "__main__":
# Mendefinisikan ruang keadaan (dataset acak)
dataset_simulasi = [14, 55, 89, 32, 77, 21, 95, 8, 41, 63]
kunci_target = 95
print("=" * 60)
print("SIMULASI PENGECEKAN BRUTE FORCE: SEQUENTIAL SEARCH")
print("=" * 60)
print(f"Himpunan Semesta (A) : {dataset_simulasi}")
print(f"Target Pencarian (K) : {kunci_target}")
print("-" * 60)
# Mengeksekusi pemanggilan sub-rutin fungsi
indeks_resolusi = sequential_search_bruteforce(dataset_simulasi, kunci_target)
print("-" * 60)
if indeks_resolusi != -1:
print(f"KESIMPULAN: Operasi sukses. Data diakses pada alamat indeks [{indeks_resolusi}].")
else:
print("KESIMPULAN: Operasi gagal. Data bersifat non-eksisten.")Editor is loading...
Leave a Comment