Untitled

 avatar
unknown
plain_text
3 months ago
2.8 kB
6
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