Skip to content

Instantly share code, notes, and snippets.

@refeed
Created July 25, 2025 23:50
Show Gist options
  • Save refeed/6b2d8b177586c448c484a2e78461bf3d to your computer and use it in GitHub Desktop.
Save refeed/6b2d8b177586c448c484a2e78461bf3d to your computer and use it in GitHub Desktop.
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