Rabu, 07 November 2018

Algoritma Segitiga


Segitiga merupakan bangun datar yang terbentuk dari tiga buah garis lurus. Dimana ujung-ujung garis tersebut saling bersentuhan satu sama lainnya.  

Yang jadi permasalahannya adalah :
a.    Apakah setiap tiga buah garis tersebut akan selalu membentuk segitiga atau tidak ?
b.    Bentuk segitiga apakah yang akan tebentuk dari tiga buah garis tersebut (segitiga sama sisi, segitiga sama kaki, segitiga siku-siku atau segitiga sembarang) ?

A. Menentukan tiga buah garis tersebut apakah membentuk segitiga atau tidak
Syarat tiga buah garis dapat membentuk segitiga adalah garis tepanjang harus lebih pendek dari jumlah dua garis yang lainya.
Misalkan :
1.       Panjang garis A = 30 cm, garis B = 15 cm, garis C = 25 cm.
Bisa membentuk segitiga karena garis terpanjang (garis A) < (garis B + garis C).
2.       Panjang garis A = 12 cm, garis B = 25 cm, garis C = 10 cm.
Tidak bisa membentuk segitiga karena garis terpanjang (garis B) >= (garis A + garis C).
     
         Berarti untuk menentukan tiga buah garis tersebut bisa membentuk segitiga atau tidak, langkah pertamanya adalah menentukan garis terpanjang kemudian membandingkan garis terpanjang tersebut dengan jumlah dua garis yang lainya. Apakah lebih kecil atau tidak. Jika lebih kecil maka bisa membentuk segitiga, jika tidak maka tidak dapat membentuk segitiga.

Misalkan panjang garis kesatu adalah A, garis kedua B, dan garis ketiga C, maka algoritma untuk menentukan tiga buah garis tersebut dapat membentuk segitiga atau tidak adalah sebagai berikut :

Read (A,B,C)
{mencari garis terpanjang}
If A>=B And A>=C Then
    Maks := A
    Garis1 := B
    Garis2 := C
Else
    If B>=A And B>=C Then
         Maks:= B
         Garis1 := A
         Garis2 := C
    Else
         Maks:= C
         Garis1 := A
         Garis2 := B
    Endif
EndIf
{Membanding garis terpanjang dengan dua garis yang lainnya}
If Maks <= (Garis1 + Garis2) Then
    Write(‘Dapat membentuk segitiga’)
Else
    Write(‘Tidak dapat membentuk segitiga’)
Endif    

Keterangan : Maks adalah garis terpanjang, Garis1 dan Garis2 dua garis yang lainnya.

B.    Menentukan bentuk segitiga
Seperti yang kita ketahui bahwa ada berbagai bentuk segitiga, yaitu : segitiga sama sisi, segitiga sama kaki, segitiga siku-siku, segitiga sembarang, segitiga lancip, segitiga tumpul.
Namun dalam kesempatan ini penulis hanya membahas tentang bentuk segitiga sama sisi, segitiga sama kaki, segitiga siku-siku dan segitiga sembarang. Adapun ketentuan dari bentuk segitiga yang dapat dibentuk dari tiga buah garis lurus adalah sebagai berikut :

(kita asumsikan tiga buah garis tersebut bisa membentuk segitiga, garis pertama adalah A, garis kedua adalah B, garis ketiga adalah C atau garis terpanjang adalah Maks, dua garis lainnya adalah Garis1 dan Garis2 ).

1.       Segitiga sama sisi
Tiga buah garis akan membentuk segitiga sama sisi, jika :
A = B dan A = C
Atau
Maks=Garis1 dan Maks=Garis2

2.       Segitiga sama kaki
Tiga buah garis akan membentuk segitiga sama kai, jika :
A = B atau A = C atau B = C
Atau
Maks = Garis1 atau Maks = Garis2 atau Garis1 = Garis2

3.       Segitiga siku-siku
Tiga buah garis akan membentuk segitiga siku-siku, jika :
Maks2 = Garis12 + Garis22

4.       Segitiga sembarang
Jika semua ketentuan di atas tidak terpenuhi maka tiga buah garis tersebut akan membentuk segitiga sembarang.

Dari ketentuan di atas dapat kita buat Algoritmanya sebagai berikut :

IF Maks = Garis1 AND Maks = Garis2 Then
    Write(‘Membentuk Segitiga Sama Sisi’)
Else
    If Maks = Garis1 OR Maks = Garis2 OR Garis1 = Garis2 Then
       Write(‘Membentuk Segitiga Sama Kaki’)
    Else
       If Maks^2 = Garis1^2 + Garis^2 Then
           Write(‘Membentuk Segitiga Siku-siku’)
       Else
           Write(‘Membentuk Segitiga Sembarang’)
       EndIf
    EndIf
EndIf
                       

      Jika dua algoritma di atas digabungkan, maka menjadi :

Read (A,B,C)
{mencari garis terpanjang}
If A>=B And A>=C Then
    Maks := A
    Garis1 := B
    Garis2 := C
Else
    If B>=A And B>=C Then
       Maks:= B
       Garis1 := A
       Garis2 := C
    Else
       Maks:= C
       Garis1 := A
       Garis2 := B
    Endif
EndIf
{Membanding garis terpanjang dengan dua garis yang lainnya}
If Maks <= (Garis1 + Garis2) Then
    Write(‘Dapat membentuk segitiga’)
   
    {Menentukan bentuk segitiga}
    If Maks = Garis1 AND Maks = Garis2 Then
        Write(‘Membentuk Segitiga Sama Sisi’)
    Else
        If Maks = Garis1 OR Maks = Garis2 OR Garis1 = Garis2 Then
       Write(‘Membentuk Segitiga Sama Kaki’)
        Else
           If Maks^2 = Garis1^2 + Garis^2 Then
               Write(‘Membentuk Segitiga Siku-siku’)
           Else
               Write(‘Membentuk Segitiga Sembarang’)
            EndIf
        EndIf
    EndIf

Else
    Write(‘Tidak dapat membentuk segitiga’)
Endif 

Demikianlah sedikit penjelasan tentang Algoritma Segitiga, mohon ma’af dan koreksi apabila masih ada kekurangan-kekurangannya.
Semoga bermanfaat.