• Tidak ada hasil yang ditemukan

Desain dan Analisis Algoritma Pembangkitan Convex Hull 3 Dimensi dan Visualisasinya

N/A
N/A
Protected

Academic year: 2022

Membagikan "Desain dan Analisis Algoritma Pembangkitan Convex Hull 3 Dimensi dan Visualisasinya"

Copied!
6
0
0

Teks penuh

(1)

Abstrak—Masalah Convex Hull merupakan salah satu masalah yang trivial pada persoalan komputasi geometri. Secara umum, masalah Convex Hull dapat dinyatakan dengan adanya sejumlah titik, di mana titik-titik tersebut akan dibungkus dengan sebuah objek yang convex dan memiliki luas/volume sekecil mungkin.

Convex Hull tidak hanya sebatas 2-dimensi saja, terdapat pula Convex Hull 3-dimensi yang dikenal sebagai Convex Polyhedron.

Beberapa algoritma yang dapat digunakan untuk menyelesaikan masalah ini adalah algoritma Brute-Force, Gift- Wrapping, Incremental dan masih banyak lagi. Tiap algoritma memiliki kompleksitas yang berbeda-beda, hal ini tentu saja bergantung pada metode atau pendekatan apa yang digunakan pada algoritma tersebut.

Dalam publikasi ini dilakukan studi dan implementasi algoritma pembentukan Convex Hull 3-dimensi beserta visualisasinya dengan bahasa C++. Hasil uji coba menunjukkan program menghasilkan Convex Hull yang benar dan memiliki pertumbuhan waktu eksekusi secara kuadratik dengan kompleksitas waktu 𝑶(𝒏𝒇) pada 𝒏 buah titik, dan 𝒇 buah sisi.

Kata Kunci— Convex Hull, algoritma Incremental, komputasi geometri 3-dimensi.

I. PENDAHULUAN

Masalah Convex Hull merupakan salah satu masalah yang trivial pada persoalan computational geometry. Permasalahan Convex Hull memiliki aplikasi terapan yang cukup banyak, seperti pada permasalahan grafika komputer, otomasi desain, pengenalan pola, penelitian operasi dan lain-lain. Secara umum, masalah Convex Hull dapat dinyatakan dengan adanya sejumlah titik, di mana titik-titik tersebut akan dibungkus dengan sebuah objek yang convex dan memiliki luas/volume sekecil mungkin. Hasil akhir yang diperoleh adalah titik-titik mana saja yang menjadi boundary/titik terluar dan luas/volume dari Convex Hull tersebut jika diperlukan. Convex Hull tidak hanya sebatas 2-dimensi saja, terdapat pula Convex Hull 3- dimensi yang dikenal sebagai Convex Polyhedron.

Beberapa algoritma yang dapat digunakan untuk menyelesaikan masalah ini adalah algoritma Brute-Force, Gift- Wrapping, Graham’s Scan, Incremental dan Divide-and- Conquer. Tiap algoritma memiliki kompleksitas yang berbeda- beda, hal ini tentu saja bergantung pada metode atau pendekatan apa yang digunakan pada algoritma tersebut.

Pada publikasi ini, penulis akan mencoba membahas penyelesaian permasalahan Convex Hull ini dengan metode Incremental serta visualisasinya, khususnya untuk Convex Hull 3-dimensi. Hasil yang diharapkan dalam publikasi ini adalah proses komputasi untuk menyelesaikan masalah Convex Hull 3-

dimensi dengan konsumsi waktu dan memory yang efisien.

Tentisualunya dilakukan analisis yang komprehensif terlebih dahulu dalam menentukan algoritma yang digunakan untuk menyelesaikan masalah ini.

II. ULASANALGORITMA A. Convex Hull

Pada sebuah set yang berisi titik-titik misalnya 𝑆 = {𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹}, Convex Hull adalah bidang convex terkecil yang mencakup semua titik yang ada pada set 𝑆 [1]. Jika setiap titik pada set 𝑆 dihubungkan satu sama lain dengan garis lurus, maka Convex Hull 𝑆 adalah garis terluar dari sejumlah garis lurus yang dihasilkan (Gambar 1).

B. Permasalahan Convex Hull 3-dimensi

Convex Hull juga dapat direpresentasikan dalam bidang 3- dimensi(biasa disebut Convex Hull 3D atau convex polyhedron).

Mengacu pada Gambar 2 (a), sebuah Convex Hull 3D terdiri atas:

- Titik (A, B, C dan D).

- Garis (AB, AC, AD, BC, BD dan CD).

- Sisi segitiga (ABC, ACD dan BCD).

Gambar 1. Bidang poligon ABCDEF merupakan sebuah Convex Hull

Gambar 2 Contoh Convex Hull 3D yang paling sederhana

Desain dan Analisis Algoritma Pembangkitan Convex Hull 3 Dimensi dan Visualisasinya

Andi Muh. Primabudi, Arya Yudhi Wijaya dan Rully Soelaiman

Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia

e-mail: [email protected]

(2)

Secara umum, permasalahan Convex Hull 3-dimensi ini adalah diberikan masukan berupa sejumlah n titik dalam sebuah bidang 3-dimensi, lalu temukan Convex Hull dari titik-titik ini dengan keluaran:

1. List yang berisikan sisi-sisi segitiga mana saja yang menjadi boundary dari Convex Hull 3D yang telah dibentuk.

2. Luas permukaan dari Convex Hull 3D yang telah dibentuk.

3. Volume dari Convex Hull 3D yang telah dibentuk.

Ilustrasi permasalahan Convex Hull 3D dapat dilihat pada Gambar 3.

Untuk mendapatkan list sisi-sisi segitiga mana saja yang menjadi boundary dari Convex Hull 3D, penulis akan mengimplementasikan algoritma Incremental. Sedangkan untuk menghitung luas permukaan dan volume, dapat digunakan operasi vektor seperti Dot Product, Cross Product dan Triple Product [2].

C. Algoritma Incremental

Algoritma Incremental adalah salah satu algoritma yang dapat digunakan untuk menyelesaikan permasalahan Convex Hull 3D [1]. Ide dari algoritma ini adalah membentuk Convex Hull secara bertahap, mulai dari empat titik hingga 𝑛 titik (𝑛 ≥ 4). Ilustrasi algoritma ini dapat dilihat pada Gambar 4.

Jika diberikan sebuah set 𝑆 = {𝑝1, 𝑝2, 𝑝3, 𝑝4, 𝑝5, … , 𝑝𝑛}, algoritma yang memiliki kompleksitas 𝑂(𝑛𝑓) ini bekerja dengan langkah sebagai berikut:

1. Untuk membentuk sebuah Convex Hull 3D, dibutuhkan mimimal 4 titik yang tidak berada di bidang yang sama, atau dengan kata lain bisa dijadikan sebuah tetrahedron. Cara mencari keempat titik tersebut (𝑇1, 𝑇2, 𝑇3,𝑇4∈ 𝑆) yaitu:

a. 𝑇1

Untuk titik pertama, bebas dipilih titik mana saja.

b. 𝑇2

Untuk titik kedua, dipilih titik yang tidak berada pada posisi yang sama dengan 𝑇1 atau jika 𝑇1

dihubungkan dengan 𝑇2 menjadi sebuah vektor 𝑇1𝑇2

⃗⃗⃗⃗⃗⃗⃗⃗ maka akan memiliki |𝑇⃗⃗⃗⃗⃗⃗⃗⃗ | > 0 seperti pada 1𝑇2 Gambar 5.

Gambar 3. Ilustrasi permasalahan Convex Hull 3D

Gambar 4. Ilustrasi algoritma Incremental

Gambar 5. Titik 𝑇1 dan 𝑇2 yang valid

Gambar 6. Titik 𝑇3 yang vaild

Gambar 7. Titik 𝑇4 yang vaild

c. 𝑇3

Untuk titik ketiga, dipilih titik yang jika dihubungkan dengan 𝑇1 menjadi sebuah vektor 𝑇1𝑇3

⃗⃗⃗⃗⃗⃗⃗⃗ , vektor tersebut tidak sejajar/segaris dengan 𝑇1𝑇2

⃗⃗⃗⃗⃗⃗⃗⃗ . Dua vektor yang sejajar akan menghasilkan vektor cross product yang memiliki nilai skalar = 0 atau disebut juga vektor nol (lihat Gambar 6).

Maka dari itu 𝑇3 dipilih jika memenuhi syarat pada Persamaan 1.

|𝑇⃗⃗⃗⃗⃗⃗⃗⃗ × 𝑇1𝑇2 ⃗⃗⃗⃗⃗⃗⃗⃗ | ! = 0 1𝑇3 (1) d. 𝑇4

Untuk titik ke empat, dipilih titik yang jika dihubungkan dengan 𝑇1 menjadi sebuah vektor 𝑇1𝑇4

⃗⃗⃗⃗⃗⃗⃗⃗ , garis tersebut tidak berada pada bidang yang sama dengan segitga/sisi 𝑇1𝑇2𝑇3 yang dibentuk oleh 𝑇1, 𝑇2 dan 𝑇3 (lihat Gambar 7). Jika sebuah titik 𝑇4 berada pada bidang yang sama dengan sisi 𝑇1𝑇2𝑇3, maka nilai dot product dari 𝑇⃗⃗⃗⃗⃗⃗⃗⃗ 1𝑇4 dengan hasil cross product sisi 𝑇1𝑇2𝑇3 (𝑇⃗⃗⃗⃗⃗⃗⃗⃗ × 𝑇1𝑇2 ⃗⃗⃗⃗⃗⃗⃗⃗ ) 1𝑇3

akan menghasilkan nilai nol. Maka dari itu 𝑇4

dapat dipilih jika memenuhi syarat pada Persamaan 2.

𝑇1𝑇4

⃗⃗⃗⃗⃗⃗⃗⃗ ∙ (𝑇⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ × 𝑇1𝑇2 ⃗⃗⃗⃗⃗⃗⃗⃗ ) ! = 0 1𝑇3 (2) 2. Membentuk empat sisi dari tetrahedron sedemikian

rupa, sehingga semua bagian yang berada di dalam tetrahedron tersebut merupakan bagian belakang dari

(3)

keempat sisi tersebut (lihat Gambar 8). Misalkan salah satu sisi yaitu 𝑇1𝑇2𝑇3yang dibentuk dari 𝑇1,𝑇2 dan 𝑇3. Titik yang lain (𝑇4) harus berada di belakang sisi tersebut, atau dengan kata lain 𝑇⃗⃗⃗⃗⃗⃗⃗⃗ ∙ (𝑇1𝑇4⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ × 𝑇1𝑇2 ⃗⃗⃗⃗⃗⃗⃗⃗ ) 1𝑇3

harus lebih kecil dari 0. Jika ternyata 𝑇4 berada di depan sisi tersebut (𝑇⃗⃗⃗⃗⃗⃗⃗⃗ ∙ (𝑇1𝑇4⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ × 𝑇1𝑇2 ⃗⃗⃗⃗⃗⃗⃗⃗ ) > 0), maka 1𝑇3 sisi tersebut harus diubah menjadi 𝑇1𝑇3𝑇2, karena nilai dari 𝑇⃗⃗⃗⃗⃗⃗⃗⃗ ∙ (𝑇1𝑇4⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ × 𝑇1𝑇3 ⃗⃗⃗⃗⃗⃗⃗⃗ ) pasti lebih kecil dari 0. Hal 1𝑇2 tersebut juga berlaku untuk ke tiga sisi lainnya (𝑇1𝑇2𝑇4, 𝑇1𝑇3𝑇4 dan 𝑇2𝑇3𝑇4). Jika ke empat sisi telah dibentuk, maka Convex Hull 3D dengan empat titik telah dibentuk.

3. Jika set S memiliki titik lebih dari empat, maka akan dibentuk Convex Hull setiap penambahan satu titik mulai dari titik kelima hingga titik terakhir. Saat penambahan titik baru, misalnya titik 𝑃 (𝑃 ∈ 𝑆 dan 𝑃 ! = 𝑇1, 𝑇2, 𝑇3, 𝑇4). Harus ditemukan dulu sisi-sisi mana saja yang berhadapan dengan titik 𝑃 (titik 𝑃 berada di depan sisi tersebut). Jika titik 𝑃 tersebut berada di depan sebuah sisi, maka sisi tersebut akan dihapus. Setelah itu akan dibentuk sisi-sisi baru dengan cara menghubungkan titik 𝑃 ke titik-titik pembentuk sisi yang dihapus tadi. Ada kemungkinan, lebih dari satu sisi yang berhadapan dengan titik 𝑃 tersebut. Untuk mencari sisi mana saja yang berhadapan dengan titik 𝑃. Caranya bisa diibaratkan seperti orang yang berdiri di posisi titik 𝑃 dan melihat ke arah Convex Hull, maka terdapat beberapa sisi yang terlihat oleh mata, sedangkan beberapa sisi yang lain tidak terlihat.

Pada Gambar 9 sisi yang berwarna putih merupakan sisi yang berhadapan dengan titik 𝑃, sedangkan sisi yang berwarna abu-abu merupakan sisi yang tidak berhadapan dengan titik 𝑃 (berada di belakang). Semua sisi yang berwarna putih nantinya akan dihapus kemudian akan dibentuk sisi-sisi baru seperti yang ditunjukkan pada Gambar 10.

Gambar 8. Bagian dalam tetrahedron

Gambar 9. Convex Hull sebelum penambahan titik 𝑃

Gambar 10. Convex Hull setelah penmbahan titik 𝑃

Gambar 11, 12 dan 13 merupakan pseudocode dari proses pembentukan Convex Hull untuk titik kelima sampai titik terakhir.

ConstructCH3D Input :

F : A set contain with 4 faces P : A set of points

n : Total of point

count : Total of faces right now Output:

F : A set of faces 1. for i=4 to n-1 do 2. for j=0 to count-1 do

3. if(F[j].visible=true &

PointPositionFromFace( P[i],F[j]>0) do 4. DFS(i,j)

5. break 6. endfor 7. endfor

Gambar 11. Pseudocode fungsi ConstructCH3D DFS

Input :

noP : current point index noF : current face index F : a set of face Output:

-

1. F[noF].visible ← false

2. CHECK(noP, F[noF].b, F[noF].a) 3. CHECK(noP, F[noF].c, F[noF].b) 4. CHECK(noP, F[noF].a, F[noF].c)

Gambar 12. Pseudocode fungsi DFS

(4)

CHECK Input :

noP : current point index x : first point

y : second point

count : Total of faces right now Output:

-

1. f ← to[x][y]

2. temp ← Ø

3. if(F[f].visible == true) then

4. if(PointPositionFromFace(P[noP],F[f])>0) then

5. DFS(noP,f) 6. else

7. temp.a ← y 8. temp.b ← x 9. temp.c ← noP 10. temp.visible ← true 11. to[noP][y] ← count 12. to[y][x] ← count 13. to[x][noP] ← count 14. F[count] ← temp 15. count ← count + 1

Gambar 13. Pseudocode fungsi DFS

Gambar 14. Umpan balik dari situs SPOJ

III. HASILUJICOBA

Pada bab ini akan dijelaskan mekanisme uji coba yang dilakukan. Pertama akan dilakukan uji coba dengan mengunggah kode sumber dari program yang telah di buat ke situs penilaian daring SPOJ. Uji coba selanjutnya yaitu uji coba kebenaran dari implementasi program yang telah dibuat.

Kemudian uji coba yang ketiga yaitu uji coba kinerja dari program yang telah dibuat.. Uji coba keempat yaitu uji coba visualisasi dan yang terakhir adalah analisis kompleksitas.

A. Uji Coba Melalui SPOJ

Dalam uji coba ini, kode sumber dari progam yang telah dibuat diunggah ke situs penilaian daring SPOJ pada soal yang berjudul “Convex Hull 3D” [3]. Ketentuan-ketentuan dari soal telah disesuaikan dengan yang diminta pada soal tersebut.

Setelah kode sumber diunggah, situs SPOJ akan memberikan umpan balik. Jika hasil keluaran program sesuai dengan ketentuan pada soal, maka situs SPOJ akan menampilkan umpan balik berupa tulisan “Accepted”, tetapi jika sebaliknya, maka akan muncul umpan balik berupa tulisan “Wrong Answer”, “Time Limit Exceeded” atau “Runtime Error”.

Dari uji coba ini, didapatkan bahwa kode program hasil implementasi pada publikasi ini mendapat umpan balik

“Accepted” seperti pada Gambar 14 yang berarti program berjalan dengan benar dengan menggunakan memori sebesar 6.5 MB dan waktu eksekusi program terhadap masukan SPOJ sebesar 0.58 detik.

B. Uji Coba Kebenaran

Pada uji coba ini akan dilakukan pengujian program dengan data masukan berupa objek 3-dimensi dengan jumlah titik yang sedikit. Uji coba kebenaran dilakukan dengan cara membandingkan hasil keluaran program dengan hasil keluaran

yang didapatkan dengan algoritma naif/bruteforce (Gambar 15) [1].

Dengan menggunakan program yang telah diimplementasikan pada publikasi ini, jika diberikan data masukan seperti pada Gambar 16, luas permukaan dan volume Convex Hull yang dihasilkan adalah seperti yang tertera pada Gambar 17. Hasil ini akan dibandingkan dengan hasil keluaran algoritma naif jika diberikan masukan yang sama.

BruteForceConvexHull3D Input :

S : A set of points in the plane.

Output:

E : A list of convexhull(S) faces.

1. E ← Ø

2. for all pair (A,B,C) ϵ S & A != B != C 3. do valid ← true

4. for all points D ϵ S & D not equal to A|B|C 5. if D lies to the front of face ABC 6. then valid ← false

7. endfor

8. if valid ← true

9. then add face ABC to E 10. Endfor

Gambar 15. Pseudocode algoritma Convex Hull 3D secara naif 1

8 5 3 7 -5 3 -7 9 -3 2 1 8 -4 -5 0 6 -5 -5 -5 0 0 0 5 -7 -3

Gambar 16. Data masukan untuk uji coba kebenaran 543.53 814.67

Gambar 17. Hasil keluaran program

0 2 3 0 3 4 0 4 2 1 3 7 1 4 3 1 5 4 1 7 5 2 4 7 2 7 3 4 5 7

Gambar 18. Hasil keluaran algoritma naif

Tabel 1. Tabel perhitungan luas permukaan and volume setiap sisi pada hasil keluaran algoritma naif

Sisi Luas Permukaan Volume

0 55.66 103.17

1 64.27 93.67

2 45.22 64.50

3 60.49 89.67

4 54.51 79.67

5 49.00 81.67

6 41.67 73.33

7 54.82 67.17

8 55.39 85.17

9 62.50 76.67

Total 543.53 814.67

(5)

Hasil perhitungan pada Tabel 1 menghasilkan nilai keluaran yang sesuai dengan nilai keluaran pada Gambar 18, maka terbukti bahwa hasil implementasi program dalam publikasi ini adalah benar.

C. Analisis Kompleksitas

Pada subbab ini, akan dilakukan analisis kompleksitas terhadap algoritma pembentukan Convex Hull 3D yang telah dirancang dengan tujuan untuk dibandingkan dengan kompleksitas hasil uji coba kinerja pada subbab berikutnya.

Pada algoritma Incremental yang telah dirancang, proses penambahan titik ke-5 hingga titik terakhir merupakan proses yang memiliki proses perulangan yang paling banyak. Maka dari itu, pseudocode pada Gambar 13 perlu dianalisis biayanya untuk menentukan kompleksitas pada algoritma ini.

Pada Tabel 2, dapat disimpulkan bahwa kompleksitas dari algoritma pembentukan Convex Hull 3D yang telah dirancang pada publikasi ini yaitu 𝑂(𝑛 ∗ 𝑐𝑜𝑢𝑛𝑡) atau 𝑂(𝑛𝑓) untuk 𝑛 buah titik dan 𝑓 buah sisi.

D. Uji Coba Kinerja

Pada subbab ini akan dilakukan uji coba kinerja program dengan melakukan beberapa kali pengujian dengan data masukan berupa objek 3-dimensi dengan jumlah titik yang berbeda untuk masing-masing pengujian. Uji coba ini bertujuan untuk menunjukkan pengaruh banyaknya titik dan sisi terhadap waktu eksekusi program.

Pada Tabel 3 setiap uji coba dilakukan berulang-ulang sebanyak 100 kali dengan tujuan agar waktu eksekusi program dapat diamati. Hasil uji coba pada Tabel 3 dapat digambarkan ke dalam bentuk grafik seperti yang ditunjukkan pada Gambar 19.

Tabel 2. Analisis kompleksitas pseudocode pada Gambar 13 ConstructCH3D Banyak

eksekusi

Biaya per eksekusi

Biaya

for i=4 to n-1 do n-4 1 n-4 for j=0 to count-1 do n-4 * count 1 n-4 * count if(F[j].visible=true &

PointPositionFromFace(

P[i],F[j]>0) do

n-4 * count 1 n-4 * count

DFS(i,j) n-4 * count count n-4 * count break n-4 * count 1 n-4 * count endfor

Endfor

Kompleksitas O(n count)

Tabel 3. Tabel pengaruh jumlah titik terhadap waktu eksekusi program

No n F Banyaknya

testcase Waktu eksekusi program (detik)

1 100 271 100 0.02

2 200 317 100 0.06

3 300 356 100 0.11

4 400 383 100 0.16

5 500 416 100 0.24

6 600 443 100 0.32

7 700 476 100 0.40

8 800 503 100 0.51

9 900 536 100 0.61

10 1000 563 100 0.73

Gambar 19 Grafik pengaruh waktu eksekusi program terhadap jumlah titik

Gambar 20 Tampilan objek sebelum dan setelah pembentukan Convex Hull 3D

Gambar 21 Tampilan di dalam objek setelah pembentukan Convex Hull 3D Seperti yang dapat dilihat pada Gambar 19, grafik pertumbuhan waktu cenderung mendekati kurva kuadratik. Hal ini sesuai dengan kompleksitas dari algoritma Incremental yang dibahas pada publikasi ini.

E. Uji Coba Visualisasi

Pada subbab ini akan dilakukan uji coba dari program visualisasi Convex Hull 3D yang telah diimplementasikan.

Salah satu fitur dari visualisasi Convex Hull 3D adalah menampilkan tampilan objek sebelum dan setelah pembentukan Convex Hull 3D yang ditunjukkan pada Gambar 20. Kemudian pada Gambar 21 diperlihatkan area di dalam Convex Hull, dimana terdapat titik-titik yang bukan merupakan boundary.

IV. KESIMPULANDANSARAN

Berdasarkan hasil uji coba yang telah dilakukan, terdapat tiga kesimpulan yang bisa diambil, yaitu:

1) Pada hasil uji coba kebenaran dan hasil uji coba pada situs SPOJ, ditunjukkan bahwa hasil dari pembentukan Convex Hull 3D yang dihasilkan oleh program sesuai dengan hasil yang diinginkan. Hal tersebut membuktikan bahwa hasil implementasi pembentukan algoritma Convex Hull 3D dengan algoritma Incremental pada publikasi ini dapat menghasilkan keluaran yang benar.

(6)

2) Pada hasil uji coba kinerja dan analisis kompleksitas ditunjukkan bahwa pertumbuhan waktu eksekusi program bersifat kuadratik dengan kompleksitas Ο(𝑛𝑓) pada 𝑛 buah titik dan 𝑓 sisi.

3) Hasil uji coba visualisasi menunjukkan bahwa visualisasi Convex Hull 3D yang dihasilkan oleh program sesuai dengan hasil yang diinginkan. Hal tersebut membuktikan bahwa hasil implementasi visual Convex Hull 3D pada publikasi ini menghasilkan keluaran yang benar.

Pada publikasi ini, batasan jumlah titik pada satu objek 3- dimensi hanya 1000 titik. Maka dari itu algoritma dengan kompleksitas Ο(𝑛𝑓) masih dapat berjalan dengan cepat. Tetapi pada kenyataannya terdapat objek yang memiliki lebih dari 1000 titik. Pada pengembangan publikasi ini, dapat dilakukan studi mengenai pengembangan algoritma-algoritma pembentukan Convex Hull lainnya yang memiliki kompleksitas Ο(𝑛 log 𝑛) yang dapat menyelesaikan permasalahan Convex Hull 3D pada objek yang memiliki lebih dari 1000 titik dengan waktu yang lebih efisien.

UCAPANTERIMAKASIH

Penulis mengucapkan puji syukur kepada Allah SWT yang melimpahkan rahmat dan hidayahnya sehingga penulis dapat menyelesaikan penelitian ini dengan lancar. Penulis juga mengucapkan terima kasih kepada Bapak Rully Soelaiman dan Bapak Arya Yudhi Wijaya yang telah membantu penulis dalam menyelesaikan penelitian ini dengan lancar. Penulis juga mengucapkan terima kasih kepada pihak-pihak lain yang turut membantu kelancaran penelitian ini.

DAFTARPUSTAKA

[1] M. d. Berg, O. Cheong, M. v. Kreveld dan M. Overmars, Computational Geometry: Algorithms and Application, 2008.

[2] D. G. Zill dan M. R. Cullen, Advanced Engineering Mathematics, 2006.

[3] SPOJ, “760. Convex Hull 3D,” November 2005.

[Online]. Available:

http://www.spoj.com/problems/CH3D/.

Gambar

Gambar 1. Bidang poligon ABCDEF merupakan sebuah Convex Hull
Ilustrasi permasalahan Convex Hull 3D dapat dilihat pada  Gambar 3.
Gambar 9. Convex Hull sebelum penambahan titik
Tabel 3. Tabel pengaruh jumlah titik terhadap waktu eksekusi program

Referensi

Dokumen terkait

Cawan porselin dikeringkan di dalam oven selam satu jam pada suhu 105 o C, lalu didinginkan selam 30 menit di dalam desikator dan ditimbang hingga didapatkan

'Evaluasi Penggunaan Antibiotik Berdasar Kriteria Gyssens Pasien Rawat Inap Kelas III di Bagian Bedah RSUP Dr Kariadi Periode Agustus-Desember 2008'.. Determinants

Beton sebesar 0,85fc’ diasumsikan terdistribusi secara merata pada daerah tekan ekivalen yg dibatsi oleh tepi penampang dan suatu garis lurus sejajar sumbu netral sejarak a=β

Dalam bentuk yang sekarang, EMS hanya menuntut perbaikan terus-menerus pada tujuan dan sasaran lingkungan setelah memasukkan pertimbangan terhadap peraturan, dampak

Hasil penelitian ini dapat disimpulkan bahwa penanaman karakter kreatif dan mandiri melalui ekstrakurikuler pramuka pada sisiwa kelas VII A Madrasah Tsanawiyah Yasin

2 2016 Dalam rangka memberikan penegasan dan kepastian hukum atas urusan pemerintahan yang akan dilaksanakan oleh Pemerintah Kabupaten Bantul, sesuai dengan potensi

Bundling (sistem penjualan paket) , dimana perusahaan menawarkan kombinasi spesifik dari berbagai produk yang dijual secara bersama, dengan harga yang lebih

konsep-konsep yang dikemukakan, supervisi pendidikan dipandang sebagai kegiatan yang ditujukan untuk memperbaiki dan meningkatkan mutu proses dan hasil