Created
July 25, 2025 23:50
-
-
Save refeed/6b2d8b177586c448c484a2e78461bf3d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
import pdb | |
import sys | |
import traceback | |
def calculate_average(values): | |
# BUG: Tidak handle jika list kosong, akan raise ZeroDivisionError | |
return sum(values) / len(values) | |
def process_data(data): | |
# BUG: Index bisa keluar batas kalau data lebih kecil dari ekspektasi | |
total = 0 | |
for i in range(len(data) + 1): # Seharusnya range(len(data)) | |
total += data[i] # IndexError di sini kalau i == len(data) | |
return total | |
def analyze_dataset(dataset): | |
breakpoint() | |
results = [] | |
for group in dataset: | |
avg = calculate_average(group) | |
results.append(avg) | |
return process_data(results) | |
def main(): | |
# Dataset acak, kadang mengandung list kosong | |
dataset = [[random.randint(1, 10) for _ in range(random.randint(0, 5))] | |
for _ in range(3)] | |
print("Dataset:", dataset) | |
try: | |
result = analyze_dataset(dataset) | |
print("Final result:", result) | |
except Exception: | |
# Aktifkan postmortem debugging | |
print("\nTerjadi error! Masuk ke postmortem debugging...\n") | |
traceback.print_exc() | |
# pdb.post_mortem() | |
# import pudb; pudb.post_mortem() | |
if __name__ == "__main__": | |
# Pasang breakpoint awal untuk cek dataset sebelum error | |
breakpoint() | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment