Tugas Akhir - 2009 PERANCANGAN, IMPLEMENTASI DAN ANALISIS 3D GRAPHICS FRAMEWORK EXTENSI M3G FRAMEWORK Mirza Akhena¹, Dana Sulistyo Kusumo², Adiwijaya³ ¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom Abstrak Framework adalah reusable object oriented library berupa sekumpulan class atau library yang digunakan untuk menyelesaikan domain problem tertentu pada software application. Framework terdiri dari koleksi API yang sangat banyak. Hal ini dikarenakan framework harus mampu mengakomodasi berbagai macam skenario penggunaan dari yang paling simpel hingga yang paling kompleks. Namun kenyataannya sebagian besar developer hanya menggunakan sebagian kecil dari sejumlah skenario yang ditawarkan. Tugas akhir ini bertujuan untuk membuat sebuah framework baru yang dikembangkan dari sebuah high level API library yang stabil dan telah banyak digunakan untuk pembuatan content 3D pada mobile device yang dikenal dengan nama M3G. Penggunaan M3G untuk skenario yang paling sederhana masih terlalu rumit, oleh karenanya akan dibuat sebuah framework yang mudah penggunaannya dibandingkan dengan menggunakan M3G. Framework ini juga menerapkan design pattern dalam perancangannya. Analisa yang dilakukan dalam tugas akhir ini adalah membandingkan penggunaan dan arsitektur framework yang dibangun dari M3G dengan framework M3G sendiri. Hasilnya, framework yang dikembangkan mampu menangani skenario penggunaan yang simpel dari M3G dengan baik dibandingkan dengan M3G itu sendiri. Hal ini ditunjukkan dengan jumlah penulisan kode yang lebih sedikit dan lebih terstruktur. Kata Kunci : Desain Framework, Design Pattern, M3G Abstract Framework is a reusable object oriented library which is formed in a group of a class or a library whic is used for finishing a certain domain problem in a software application. Framework contains a lot of API collection. Due to the framework must be able to accomodate many kinds of using scenario from the simplest one to the most complex. But the fact that most of of developer use only small part from the whole possible scenario. In this final assessment, the writer tries to make a new framework which is developed from a stable high level API library and commonly used for creating 3D content in a mobile device, known as M3G. According to the writer, using M3G for the simplest scenario is still complex so the writer tries to make an easy-to-use framework which is better than M3G. The writer also applies design pattern in designing this framework. This final assessment’s analysis is only focused on comparing the usability and framework architecture, which the writer has developed from M3G, to M3G itself. The result is the framework, which the writer has developed, can be better in handling a simple scenario from M3G than M3G itself. This is shown by the amount of code line which is less and more structured. Keywords : Framework Design, Design Pattern, M3G Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org) Program Studi S1 Teknik Informatika Tugas Akhir - 2009 1. Pendahuluan 1.1 Latar belakang Seringkali seorang developer dalam rutinitasnya mengembangkan suatu aplikasi menemukan beberapa bagian yang sama yang dilakukan secara berulangulang. Dari hal ini para developer mengetahui bahwa mereka bisa mengabstraksikan proses low-level yang dilakukan berulang-ulang ini ke level yang lebih tinggi. Sehingga muncullah konsep library. Library bisa sangat meningkatkan produktifitas developer dalam mengembangkan aplikasi karena bisa menambahkan hal yang baru tanpa harus mengulang apa yang sudah dibuat sebelumnya. Kemunculan konsep Object Oriented Programming (OOP) juga sangat berperan dalam perkembangan library. Saat ini kita sangat dimudahkan dengan library yang bisa dipakai ulang dan berorientasi objek. Reusable library ini dikenal dengan istilah framework. Saat ini ada banyak framework yang sedang dikembangkan oleh para designer framework. Beberapa yang terkenal adalah framework .NET, framework Java, Spring, Symfony dan Prado untuk PHP, XNA dari .NET khusus untuk membuat game, dan masih banyak framework-framework lainnya Pada umumnya, sebuah framework terdiri dari kumpulan API yang sangat banyak. Hal ini disebabkan karena sebuah framework harus bisa mengakomodasi berbagai macam skenario penggunaan, dari yang paling sederhana hingga yang paling kompleks. Namun faktanya, sebagian besar developer hanya menggunakan sebagian kecil saja dari skenario yang ditawarkan sehingga sebenarnya hanya sebagian kecil saja dari framework yang sering digunakan. Dalam Tugas Akhir ini akan dibuat sebuah framework yang akan dibangun dari framework lain namun dengan tingkat abstraksinya yang lebih tinggi sehingga bisa menyederhanakan operasi yang dilakukan berulang-ulang pada penggunaan framework aslinya. Framework yang akan dibangun diharapkan bisa mengakomodasi beberapa skenario umum yang sering dihadapi oleh developer pembuat aplikasi atau game berbasiskan 3D yang berjalan diatas mobile device. Perancangan sebuah framework yang berkualitas membutuhkan usaha yang sungguh-sungguh untuk membuatnya. Karena framework yang berkualitas akan mudah dipelajari dalam waktu yang singkat yang pada akhirnya akan meningkatkan produktivitas para developer pengguna framework. 1 Fakultas Teknik Informatika Program Studi S1 Teknik Informatika Tugas Akhir - 2009 1.2 Perumusan masalah Masalah utama dalam Tugas akhir ini adalah bagaimana merancang sebuah framework serta menerapkan prinsip desain untuk membangun sebuah framework yang lebih sederhana, mudah digunakan dan tetap bisa dikembangkan. Yang dimaksud dengan sederhana adalah kode yang harus ditulis pada saat penggunaan lebih sedikit karena beberapa nilai awal sudah didefinisikan sebelumnya. Sedangkan arti kata mudah disini adalah mudah karena penggunaannya langsung terfokus pada apa yang akan dibuat dan tidak terlalu terkonsentrasi pada hal-hal teknis yang terlalu spesifik dan mendetail. 1.3 Batasan masalah Untuk menghindari terlalu meluasnya pembahasan, Maka batasan masalah dalam Tugas Akhir ini adalah: Framework yang akan dibangun dalam Tugas Akhir ini akan membahas domain problem pada salah satu bidang multimedia yaitu grafis 3 dimensi. Framework yang akan dibangun akan menggunakan resource pada framework standar untuk membuat model 3D pada mobile device, yaitu Mobile 3D Graphics API library yang disingkat M3G (JSR-184) Framework yang akan dibangun hanya menyederhanakan sebagian kecil proses saja dari framewok aslinya (fungsionalitas pada framework yang akan dibuat adalah subset dari framework aslinya). Oleh sebab itu, analisis perbandingan yang akan dilakukan adalah berdasarkan pada apa yang dimiliki pada framework yang dibuat bukan pada framework asal. Karena framework adalah skeleton dari aplikasi maka tidak semua fungsionalitas akan disediakan. Oleh karena itu akan diasumsikan bahwa beberapa fungsionalitas tersebut bisa dibuat dikembangkan. Sehingga kelengkapan fungsionalitas tidak menjadi patokan. Analisis yang dilakukan tidak berdasarkan kemampuan fungsionalitas. namun dilakukan dari sisi arsitektur frameworknya. Framewok yang akan dibangun, dibuat diatas framework lain, sehingga pada level teknisnya akan lebih banyak menggunakan class dan pemanggilan method akan lebih sering terjadi sehingga dapat dipastikan menjadi lebih lambat dan lebih banyak menggunakan resource memory. Oleh karena itu, TA ini tidak befokus pada parameter kecepatan, ukuran memory atau biaya komputasi yang digunakan. Framework yang akan dibangun akan memiliki cara kerja dan sudut pandang tersendiri yang berbeda dari framework aslinya serta memiliki level abstraksi yang lebih tinggi. Sebagian adalah gagasan yang baru. Tugas Akhir tidak berfokus pada sisi teknis seperti penggunaan IDE, cara membuat project, cara mengimpor package, cara meng-compile, serta cara men-deploy aplikasi. 2 Fakultas Teknik Informatika Program Studi S1 Teknik Informatika Tugas Akhir - 2009 Pada level fungsionalitas, Tugas Akhir ini tidak terfokus pada sisi perhitungan matematis dan kompleksitas algoritma dari fungsionalitas yang ada. Pada level penggunaan diasumsikan pengguna (user) adalah seorang programmer yang mengerti tentang paradigma OOP. 1.4 Tujuan Tujuan dari penyusunan Tugas Akhir ini adalah: 1. Membangun sebuah framework baru yang dikembangkan dari framework lain yang berkonsentrasi pada bidang pemodelan grafis 3D. 2. Membandingkan framework yang dibangun dengan framework aslinya dari sisi arsitektur perancangan dan kesederhanaan serta kemudahan penggunaannya. 1.5 Metodologi penyelesaian masalah Metodologi yang akan digunakan dalam merealisasikan Tugas Akhir ini adalah dengan menggunakan langkah-langkah berikut ini: 1. Mengumpulkan literatur-literatur yang relevan dengan permasalahan yang menjadi bahasan tugas akhir ini, meliputi studi pustaka dan referensi tentang desain framework, design pattern, object oriented programming, konsep grafis 3d, pemrograman Java dengan platform J2ME, dan M3G framework. 2. Mempelajari object oriented programming dengan menggunkan bahasa pemrograman java dengan platform J2ME. 3. Mempelajari beberapa design pattern yang akan diimplementasikan kedalam framework yang akan dibangun. 4. Mempelajari panduan tentang desain framework yang baik. 5. Mempelajari beberapa hal tentang konsep grafis 3D yang berkaitan dengan framework yang dibangun 6. Membuat, mendesain, dan melakukan eksperimen dengan hasil rancangan yang dibangun dengan mengimplementasikan model kedalam bentuk framework. 7. Mempelajari dan melakukan eksperimen dengan framework M3G. 8. Mereview dan mempelajari model perancangan yang sudah dibuat dan menyesuaikan dengan framework M3G. 9. Kembali melakukan perancangan dan pengembangn model yang telah disesuaikan dengan framework M3G kedalam bentuk framework baru. 10. Menganalisa dan membandingkan antara framework yang sudah dikembangkan dengan framework aslinya dari sisi kemudahan penggunaan dan arsitektur rancangan. 3 Fakultas Teknik Informatika Program Studi S1 Teknik Informatika Tugas Akhir - 2009 1.6 Sistematika Penulisan Tugas akhir ini disusun dengan sistematika penulisan sebagai berikut : BAB I Pendahuluan Bab ini berisi latar belakang, perumusan masalah, tujuan dan batasan masalah dari tugas akhir, metodologi yang digunakan dalam menyelesaikan tugas akhir ini serta sistematika penulisan buku tugas akhir. BAB II Landasan Teori Bab ini berisi uraian teori mengenai framework, design pattern, grafis 3D, platform J2ME, dan framework M3G. BAB III Perancangan Framework Bab ini berisi rancangan framework yang dimodelkan dalam bentuk kode program dan Unified Manipulation Language (UML). BAB IV Analisis Hasil Perancangan Framework Bab yang berisi uraian hasil perancangan framework yang dibuat dengan melakukan perbandingan dengan framework aslinya. BAB V Kesimpulan dan Saran Berisi tentang kesimpulan yang didapat dari pelaksanaan tugas akhir ini dan saran-saran yang diperlukan untuk perbaikan maupun pengembangannya lebih lanjut. 4 Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org) Program Studi S1 Teknik Informatika Tugas Akhir - 2009 5. Kesimpulan dan Saran 5.1 Kesimpulan Berdasarkan hasil pengujian analisis yang telah dilakukan di bab 4, diperoleh beberapa kesimpulan sebagai berikut : Dengan menggunakan framework Mir3G, maka penggunaan aplikasi menjadi lebih terstrukur karena Mir3G menerapkan Design Pattern Template Method dan Strategy. Kode yang ditulis dalam Mir3G relatif lebih pendek dari pada M3G. Hal ini bisa dilihat dari contoh skenario pembuatan world dan objek. Kode pada Mir3G lebih fokus pada goal skenario dibandingkan M3G yang masih harus mendefinisikan skenario secara sangat mendetail spesifik. Hal ini bisa dilihat pada kasus pendefinisian Objek 3D (mesh) pada M3G yang sangat mendetil pendefinisiannya dan dibandingkan dengan Mir3G yang hanya mendefinisikan komponen yang diperlukan saja. 5.2 Saran Pada Mir3G harus dilakukan refactoring lagi misalnya pada segi penamaan method dan class, butuh melibatkan ahli bahasa. Mir3G langsung dikembangkan dari low level (OpenGL ES) bukan dari M3G. Dan untuk kedepannya Mir3G dapat dikembangkan untuk komputer desktop. 34 Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org) Program Studi S1 Teknik Informatika Tugas Akhir - 2009 Daftar Pustaka [1] Maclaughin, Brett D and Police, Gary and West, David. Head First Object-Oriented Analysis & Design. O’reilly. America. 2004. [2] Freeman, Eric and Freeman Elisabeth. Head First Design Pattern. O’reilly. America. 2004. [3] Astle, Dave and Hawkins, Kevin. Beginning Open GL Game Programming. Thomson Course Technology. America. 2004. [4] Wells, Martin. J2ME Game Technology. America. 2004. Programming. Thomson Course [5] Larman, Craig . Applying UML and Patterns :An Intriduction to ObjectOriented Analysis and Iterative Development. Prentice Hall PTR. America. 2004 [6] Gamma, Erich . Design Pattern : Elements of reusable Object-Oriented Software . Addison-Wesley Professional. America. 1994. [7] Cwalina, Krzysztof and Abrams, Brad. Framework Design Guidlines : Conventions, Idioms, and Patterns for Reusable .Net Libraries. AddisonWesley Professional. America. 2005. [8] Hofele, Claus. Mobile 3D Graphics: Learning 3D Graphics with the Java Micro Edition. Addison-Wesley Professional. America. 2005. [9] Fowler, Martin. Refactoring: Improving the Design of existing code . The Addision-Wesley Professional. America. 1999 [10] Kerievsky, Joshua. Refactoring to Patterns . The Addision-Wesley Professional. America. 2004. [11] Pulli, Kari and Aarnio, Tomi. Mobile 3D Graphics with OpenGL ES and M3G . Morgan Kaufman. America. 2008 [12] Framework Engineering Conference by Krzysztof Cwalina as Program Manager from Microsoft. Architecting, Designing, and Developing Reusable Libraries. 2008 [13] Professional Developer Conference 2008 by Krzysztof Cwalina and Brad Abrams. Framework Design Guidline.2008 Lampiran A : Contoh Implementasi Mir3G 35 Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org) Program Studi S1 Teknik Informatika