Unit Testing : Uji Kasus Segitiga

yunolva
3 min readDec 19, 2022

Implementasi Rekayasa Perangkat Lunak

Persoalan

  1. Jika terdapat bilangan negatif atau 0, maka tidak ada segitiga yang dibangun.
  2. Jika bilangan terbesar lebih besar atau sama dengan penjumlahan dua bilangan lainnya yang lebih kecil, maka tidak ada segitiga yang dapat dibangun.
  3. Jika a = b atau b = c atau c = a (namun tidak sama dengan salah satu yang lain), maka segitiga tersebut masuk ke dalam kategori segitiga Sama Kaki
  4. Jika a = b dan b = c, maka segitiga tersebut masuk ke dalam kategori segitiga Sama Sisi.
  5. Jika bukan sama kaki, sama sisi atau siku-siku, namun bilangan terbesarnya lebih kecil dari pada jumlah penjumlahan dua bilangan lainnya, maka segitiga tersebut masuk ke dalam kategori Segitiga Bebas.

Sebagai catatan :

Kasus ke-1 angka — angkanya bulat.

Kasus ke-2 angka — angkanya pecahan. Jika masukkan 2.99, 3.01, dan 3.00 maka akan dianggap segitiga sama sisi.

Rancangan Kode

#Yunolva Anis Ramaziyah - 1301204096

# Memasukkan Input berupa a,b, dan c
#a = int(input("Masukkan angka pertama :"))
#b = int(input("Masukkan angka kedua :"))
#c = int(input("Masukkan angka ketiga :"))

nonRoundeda = float(input("Masukkan angka pertama :"))
nonRoundedb = float(input("Masukkan angka kedua :"))
nonRoundedc = float(input("Masukkan angka ketiga :"))

# Untuk melengkapi Kasus 1 dan 2, angka yang diinputkan dapat bilangan bulat dan pecahan
a = round(nonRoundeda)
b = round(nonRoundedb)
c = round(nonRoundedc)

# Fungsi Segitiga dengan parameter a,b, dan c yang akan mendetermine tipe dari segitiga
def Segitiga(a,b,c):
# Algoritma yang digunakan untuk mendeteksi ada atau tidaknya bilangan negatif atau 0
if a<=0 or b <=0 or c<= 0 :
return("Segitiga tidak dapat dibangun!")

# Algoritma yang akan memeriksa apakah bilangan terbesar memiliki jumlah lebih besar atau sama dengan penjumlahan dari dua bilangan lainnya.
elif a>=b+c or b>=c+a or c>=a+b :
return("Segitiga tidak dapat dibangun!")

# Algorirtma yang memerikasa apakah a akan sama dengan b, b akan sama dengan a, dan c akan sama dengan a
# Sama Kaki
elif a==b and b!=c :
return("Segitiga sama kaki")

# Algoritma yang akan memeriksa apakah a sama dengan b dan b sama dengan c
# Sama Sisi
elif a==b and b==c :
return("Segitiga sama sisi")

# Algoritma yang akan memeriksa apakah kuadrat bilangan terbesar sama dengan penjumlahan dari kuadrat dua bilangan lainnya.
# Segitiga Siku - Siku
elif a**2 + b**2 == c**2 or a**2 + c**2 == b**2 or b**2 + c**2 == a**2:
return("Segitiga siku-siku")

#Jika tidak memenuhi semua kriteria maka akan dikategorikan sebagai kelompok Segitiga Bebas
else :
return("segitiga bebas")


# Mengeluarkan Output berupa tipe segitiga
print(Segitiga(a,b,c))

Flowgraph

FlowGraph — Yunolva Anis Ramaziyah

Independent Path

a. 22, 23, 50

b. 22, 26, 27, 50

c. 22, 26, 31, 32, 50

d. 22, 26, 31, 36, 37, 50

e. 22, 26, 31, 41, 42, 50

f. 22, 26, 31, 41, 45, 46, 50

Cyclomatic Complexity

Cyclomatic complexity merupakan sebuah ukuran kompleksitas dari program yang sering digunakan memperkirakan berapa banyak pengujian yang diperlukan untuk memastikan program dapat bekerja dengan benar.

Cyclomatic Complexity :

Software Testing: Perhitungan Cyclomatic Complexity (socs.binus.ac.id)

V(G) : cyclomatic complexity

E : total jumlah edge

N : total jumlah node

V(G) = E - N + 2
V(G) = 17 - 13 + 2
V(G) = 6

Testing

Penggunaan testing dapat dilakukan menggunakan bantuan seperti librabry pytest untuk melakukan unit testing yang ditargetkan pada function utama yakni Segitiga, sehingga didapatkan hasil sebagai berikut :

Yunolva Anis — IF4409

--

--

yunolva

Merupakan cerita keseharian dari mahasiswa teknik ngoding yang nggak ada ngoding ngodingnya