Oleh:
Edy Santosa Putra
NIM: 2329101048
Kelas: E
JAWABAN
Diagram Cartesius adalah sistem koordinat yang digunakan untuk menggambarkan objek berdasarkan
titik-titik koordinat pada 2 sumbu, biasanya disebut sumbu x dan y, dimana pertemuan nilai antara
sumbu x dan y membentuk sebuah titik koordinat.
Gambar1
Diagram Cartesian sebuah Persegi Panjang
Pada Gambar 1 diatas, digambarkan sebuah bangun datar persegi panjang dengan koordinat (1,5),
(7,5), (1,2), dan (7,1). Maka sebuah node yang menyimpan bangun datar tersebut dapat
divisualisasikan seperti pada Gambar 2 dibawah.
Gambar 2
List Koordinat
Dari penjelasan diatas apabila kita menambahkan sebuah node baru dari LinkedList yang kita buat,
misalnya sebuah bangun datar segitiga dengan koordinat (2,2), (4,-1), dan (0,-1) maka akan dihasilkan
sebuah LinkedList seperti pada Gambar 3 dan Diagram Cartesian pada Gambar 4:
Gambar 3
LinkedList of List
Gambar 4
Diagram Cartesian Persegi Panjang dan Segitiga
Gambar 5
Jarak antara koordinat
Di Gambar 5 kondisi untuk menentukan apakah bangun datar tersebut merupakan persegi
panjang telah terpenuni karena:
1. Struktur data memiliki 4 koordinat
2. Cocokkan panjang jarak antara koordinatnya. Pada gambar diatas bisa kita lihat terdapat
pasangan koordinat horizontal (1,5), (7,5) dan (1,1), (7,1) memiliki panjang 6 titik, kemudian
pasangan koordinat vertikal (1,1), (1,5) dan (7,1), (7,5) memiliki panjang 4 titik.
3. Pasangan koordinat vertikal dan horizontal berbeda. Vertikal memiliki panjang 4 titik,
Horizontal memiliki panjang 6 titik.
Asumsikan kita telah memiliki struktur data LinkedList dengan 3 bangun datar seperti gambar
dibawah:
Gambar 6
Struktur Data Cartesian dengan 3 Bangun Datar
Algoritma diatas dapat kita tuangkan ke pseudo code sebagai berikut:
// loop bangunDatar
for (i=0 to i> bangunDatar.length){
if (panjang bangun datar tertinggi)
titikTerpanjang++
else
titikTerpendek++
}
// loop bangunDatar
for (i=0 to i> bangunDatar.length){
if bangunDatar[i].panjang node == 4
HitungPersegi()
Else if bangunDatar[i].panjang node == 3
HitungSegitiga()
Else if bangunDatar[i].panjang node == 2
HitungLingkaran()