Membuat Program Klasifikasi Segitiga yang Cerdas dengan Python
Membuat Program Klasifikasi Segitiga Lengkap dengan Python
Mengklasifikasikan segitiga berdasarkan panjang sisinya adalah studi kasus yang ideal untuk melatih logika pemrograman. Sebuah program yang baik tidak hanya menjalankan logika matematika dengan benar, tetapi juga harus mampu menangani berbagai kemungkinan secara spesifik dan mengantisipasi kesalahan input dari pengguna.
Pada artikel ini, kita akan membangun satu program Python yang lengkap dan cerdas. Program ini akan mengklasifikasikan segitiga ke dalam lima kategori yang jelas: sama sisi, sama kaki, siku-siku sama kaki, siku-siku, dan sembarang.
Logika Klasifikasi Bertingkat 📐
Sebelum menulis kode, kita harus menentukan urutan pemeriksaan (hierarki) agar tidak terjadi tumpang tindih klasifikasi. Urutan yang logis adalah dari yang paling spesifik ke yang paling umum.
- Pemeriksaan #1: Validitas (Ketaksamaan Segitiga)
Ini adalah syarat mutlak yang harus diperiksa pertama kali: jumlah panjang dua sisi mana pun harus lebih besar dari panjang sisi ketiga. - Pemeriksaan #2: Segitiga Sama Sisi
Jika ketiga sisi sama panjang (a = b = c). Ini kondisi paling spesifik. - Pemeriksaan #3: Segitiga Sama Kaki
Periksa apakah hanya dua sisinya yang sama panjang. Ini akan menangkap semua jenis segitiga sama kaki. - Pemeriksaan #4: Segitiga Siku-Siku Sama Kaki
Setelah diketahui sama kaki, kita bisa melakukan pengecekan tambahan apakah ia juga siku-siku. - Pemeriksaan #5: Segitiga Siku-Siku
Jika bukan jenis-jenis di atas, periksa apakah ia memenuhi Teorema Pythagoras. - Pilihan Terakhir: Segitiga Sembarang
Jika tidak ada kondisi di atas yang terpenuhi, maka segitiga tersebut adalah segitiga sembarang.
Implementasi Kode Python Lengkap
Berikut adalah program lengkap yang menerapkan hierarki logika di atas dan juga menggunakan `try-except` untuk menangani input yang tidak valid.
import math
print("--- Program Klasifikasi Segitiga Lengkap ---")
try:
a = float(input("Masukkan panjang sisi a: "))
b = float(input("Masukkan panjang sisi b: "))
c = float(input("Masukkan panjang sisi c: "))
# 1. Memeriksa validitas segitiga
if (a + b > c) and (a + c > b) and (b + c > a):
print("\n--> Sisi-sisi tersebut VALID untuk membentuk segitiga.")
# 2. Klasifikasi bertingkat
a2, b2, c2 = a**2, b**2, c**2
# Menggunakan kurung () untuk menyambung baris dengan aman
siku_siku = (math.isclose(a2 + b2, c2) or
math.isclose(a2 + c2, b2) or
math.isclose(b2 + c2, a2))
if a == b == c:
print("--> Jenis segitiga: Segitiga Sama Sisi.")
elif a == b or a == c or b == c:
# Ditemukan sama kaki, sekarang cek apakah juga siku-siku
if siku_siku:
print("--> Jenis segitiga: Segitiga Siku-Siku Sama Kaki.")
else:
print("--> Jenis segitiga: Segitiga Sama Kaki.")
elif siku_siku:
print("--> Jenis segitiga: Segitiga Siku-Siku.")
else:
print("--> Jenis segitiga: Segitiga Sembarang.")
else:
print("\nError: Sisi-sisi tersebut TIDAK VALID untuk membentuk segitiga.")
except ValueError:
print("\nError: Input tidak valid. Harap masukkan bilangan.")
Kesimpulan
Dengan menyusun logika kondisional secara bertingkat (hierarkis), kita dapat membuat program yang mampu melakukan klasifikasi yang sangat spesifik dan akurat sesuai aturan yang kita definisikan. Program ini sekarang jauh lebih cerdas karena tidak hanya menerapkan aturan geometri dengan benar, tetapi juga mengikuti urutan prioritas yang logis untuk menghindari ambiguitas.

