i
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
ABSTRAK
Dalam beberapa tahun terakhir terlihat pertumbuhan yang dramatis pada kemampuan komputasi, visualisasi, dan grafis dari perangkat mobile. Meski begitu, kebanyakan pilihan desain yang digunakan oleh para pengembang perangkat keras untuk mengimplementasikannya tidak cocok untuk diterapkan pada perangkat mobile akibat diperlukannya tenaga, biaya, dan tempat yang lebih. Terdapat beberapa pendekatan untuk menyelesaikan masalah tersebut, salah satunya adalah dengan menggunakan OpenGL ES yang merupakan API tingkat rendah yang memberikan pengembang sebuah antarmuka ke perangkat keras grafik pada perangkat mobile. Namun, karena sifatnya yang merupakan API tingkat rendah, untuk menggunakannya pengembang perlu memanggil cukup banyak fungsi pra-operasi yang relatif kompleks, bertolak belakang dengan apa yang terjadi dalam beberapa tahun terakhir dimana permintaan atas API tingkat tinggi terus meningkat. Penelitian ini membahas bagaimana masalah tersebut dapat diatasi dengan membangun sebuah lapisan abstraksi tingkat tinggi tambahan pada OpenGL ES dengan memanfaatkan pola-pola desain tertentu sehingga basis kode menjadi lebih ringkas dan dapat dikompilasi untuk platform desktop dan mobile. Dengan menerapkan beberapa pola desain seperti Façade, Template
Method Pattern, dan Observer, sebuah library dibangun untuk mengenkapsulasi
sebagian kecil fungsionalitas 2-dimensi dari OpenGL ES. Library yang dihasilkan mencakup sistem windowing sederhana serta kelas-kelas yang bertanggungjawab atas operasi grafik seperti pembuat bentuk primitif, penampil teks, dan penampil file gambar. Hasil penelitian ini direspon secara positif oleh pengembang
perangkat lunak grafis secara umum dan pakar yang bergerak di bidangnya. Dengan begitu, pengembang dapat membangun perangkat lunak grafis melalui sebuah antarmuka tingkat tinggi tanpa perlu mengkhawatirkan tentang kerumitan API OpenGL ES di belakangnya.
ii
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
ABSTRACT
In recent years we have seen a dramatic growth in the computation,
visualization, and graphics capabilities of mobile computing devices. Even so,
most of the design choices that are being used by the hardware developers to
implement them are not compatible with mobile devices due to higher power, cost,
and space requirements. There are some approaches that can be used to address
the problem, one of them is to use the OpenGL ES which is a low-level API that
provides developers an interface to the mobile graphics hardware. However,
since OpenGL ES is a low-level API, it comes with many complex pre-operations
that are simply not intended, also to integrate these libraries with any kind of
system is often a tough trial. It is an opposite to what is currently happening
where the number of developers requesting a high-level API is continuing to
increase. This research discusses how the problem can be addressed by building a
high-level abstraction layer on top of OpenGL ES by taking advantage of certain
design patterns so that the user’s code base can be simplified and can be
compiled for the desktop and mobile platforms. By using few design patterns like
Façade, Template Method Pattern, and Observer, a library is built to encapsulate
parts of the 2D functionalities of OpenGL ES. The resulting library covers a
simple windowing system and classes that does graphical operations like drawing
primitive shapes, texts, and pictures. The library received a positive response
from general and expert developers. Therefore, developers can build graphics
applications through a high-level API without worrying about the complexity of
OpenGL ES behind it.
115
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
DAFTAR PUSTAKA
Atlassian. (2011). Use the issue tracker. Atlassian Documentation. [Online]. Tersedia:
https://confluence.atlassian.com/display/BITBUCKET/Use+the+issue+tra cker [17 Februari 2015]
Bell, T. E. dan Thayer, T. A. (1976). “Software requirements: Are they really a
problem?”. Proceedings of the 2nd International Conference on Software
Engineering. California: IEEE Computer Society Press
Bitbucket.org. (2015). Issues. [Online]. Tersedia: https://bitbucket.org/djzmo/cybil2d/admin/issues [11 Februari 2015] Boileau, R. (2008). Low Level versus High Level APIs. Ottawa: PIKA
Technologies
Bosch, J. (1998). “Design Patterns as Language Constructs”. Journal of
Object-Oriented Programming, pp. 18-32. Denville: SIGS
Buschmann, F., et al. (2007). Pattern-Oriented Software Architecture, A Pattern Language for Distributed Computing. San Francisco: John Wiley & Sons
Coplien, J., O. (1998). “Software Design Patterns: Common Questions and
Answers”. In: Rising L., (Ed.), The Patterns Handbook: Techniques,
Strategies, and Applications, pp. 311-320. Illinois: UIUC University Press
Cusumano, M. A. dan Yoffie, D.B. (1999). “What Netscape Learned from Cross
-Platform Software Development”. ACM Comm., 42 (10), pp. 72-78. New
York: ACM
Darby, J. (2009). Beginning OpenGL Game Programming. Boston: Cengage Learning
Densmore, S. (2004). Why Singletons are Evil. Redmond: MSDN
Dey, S. et al. (2007). “A Very Simple Approach for 3-D to 2-D Mapping”. International Journal on Image Processing and Communications, 11.2:
116
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Dictionary.com. (2013). “Computer graphics”. Collins English Dictionary - Complete & Unabridged 10th Edition, [Online]. HarperCollins Publishers.
Tersedia: http://dictionary.reference.com/browse/computer+graphics [11 Juni 2013]
Finney, K. C. (2013). 3D Game Programming All in One, Third Edition. Boston: Cengage Learning
Freeman, E. et al. (2004). Head First Design Patterns, pp. 162. California:
O’Reilly
Friedrich, M. et al. (1999). “Efficient Object-Oriented Software with Design
Patterns” dalam GCSE ’99 Proceedings of the First International
Symposium on Generative and Component-Based Software Engineering,
pp. 79-90. London: Springer-Verlag
Game-lab.org. (2012). POSA2: Wrapper Façade. [Online]. Tersedia: http://game-lab.org/posts/posa2-wrapper-facade/ [16 Februari 2015]
Gamma, E. et al. (1993). “Design Patterns: Abstraction and Reuse of
Object-Oriented Design”. ECOOP ’93, pp. 406-431. London: Springer-Verlag
Gamma, E. et al. (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Massachusetts: Addison-Wesley
GitHub. (2015). Using pull requests. GitHub Help. [Online]. Tersedia: https://help.github.com/articles/using-pull-requests/ [17 Februari 2015] Gomila, L. (2013). SFML releases. SFML community forums. [Online] Tersedia:
http://en.sfml-dev.org/forums/index.php?topic=76 [7 November 2013]
Grimm, T. (1998). “The Human Condition: A Justification for Rapid Prototyping”
dalam Time Compression Technologies, vol. 3 no. 3. Kentucky: Accelerated Technologies, Inc.
Haller, K. dan Hansson, H.V. (2013). SFML Game Development. Birmingham: Packt Publishing
Harbour, J. (2004). Game Programming All in One, Second Edition. Massachusetts: Course Technology Ptr
117
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
International Data Corporation (2014). Smartphone OS Market Share, Q3 2014. [Online]. Tersedia: http://www.idc.com/prodserv/smartphone-os-market-share.jsp [10 Februari 2015]
Jackson, D. (2012). Software Abstractions: Logic, Language, and Analysis. Cambridge: MIT Press
Jalali, S. (2009). Trends and Implications in Embedded Systems Development. Mumbai: Tata Consultancy Services
Janssen, C. (2013). Platform. Techopedia. [Online]. Tersedia: http://www.techopedia.com/definition/3411/platform [7 November 2013] Krasner, G. E. dan Pope, S. T. (1988). “A cookbook for using the Model
-View-Controller User Interface paradigm in Smalltalk-80”. Journal of Object-Oriented Programming, pp. 26-49. Denville: SIGS
Krustchinsky, J. (2013). Is SDL a game engine?. Game Development Stack
Exchange. [Online]. Tersedia: http://
gamedev.stackexchange.com/questions/59139/is-sdl-a-game-engine [17 Februari 2015]
Lasater, C.G. (2010). Design Patterns. Texas: Wordware Publishing
Lehman, M. (1980). “Programs, life cycles, and the laws of software evolution”.
Proceedings of the IEEE vol. 68, no. 9, pp. 1060-1076. California: IEEE
Computer Society Press
Libsdl.org. (2015). About SDL. [Online]. Tersedia: https://www.libsdl.org [7 Maret 2015]
Lodico, M. G., et al. (2010). Methods in Educational Research: From Theory to Practice. San Francisco: John Wiley & Sons
Malizia, A. (2006). Mobile 3D Graphics. London: Springer-Verlag
McConnel, J.J. (2006). Computer Graphics: Theory Into Practice. Burlington: Jones & Bartlett Learning
118
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Miller, T. (2004). Managed DirectX 9: Graphics and Game Programming: Kick Start. Indiana: Sams Publishing
Mitchell, S. (2013). SDL Game Development. Birmingham: Packt Publishing Oliver, R. S. et al. (2010). “An Operating System Abstraction Layer for Portable
Applications in Wireless Sensor Networks”. Proceeding of the 2010 ACM Symposium on Applied Computing, SAC ’10, pp. 742-748. New York: ACM
OpenGL.org. (2013). OpenGL Overview. OpenGL. [Online]. Tersedia: https://www.opengl.org/about/ [11 Juni 2013]
Papadopoulos, J. (2014). Lords of the Fallen Dev: “Low level APIs Complex Concepts To Grasp, Won’t Bet On Mantle Right Now”. DSOGaming. [Online]. Tersedia: http://www.dsogaming.com/news/lords-of-the-fallen- dev-low-level-apis-complex-concepts-to-grasp-wont-bet-on-mantle-right-now/ [27 Maret 2015]
Papurt, D. M. (1995). Inside the Object Model: The Sensible Use of C++. Cambridge: Cambridge University Press
Pulli, K. (2006). “New APIs for mobile graphics”. Proc. SPIE 6074, Multimedia on Mobile Devices II, 607401; doi:10.1117/12.660438. Cambridge: MIT
CSAIL
Reddy, M. (2011). API Design for C++. Burlington: Morgan Kaufmann
Royce, W. (1987). “Managing the development of large software systems:
concepts and techniques” dalam ICSE ’87 Proceedings of the 9th
International Conference on Software Engineering, pp. 328-338.
California: IEEE Computer Society Press
Schmidt, D. C. (1999). “Wrapper Façade”. C++ Report, February 1999, 11.2. New York: SIGS
Sherrod, A. (2011). Beginning DirectX 11 Game Programming. Boston: Cengage Learning
119
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Smithwick, M. dan Verma, M. (2012). Pro OpenGL ES for Android. New York: Apress
Statista (2014). Global market share held by operating systems Desktop PCs from January 2012 to December 2014. [Online]. Tersedia:
http://www.statista.com/statistics/218089/global-market-share-of-windows-7 [10 Februari 2015]
Stuart, J. A. et al. (2005). “Towards a Unified Approach for Cross-Platform
Software Development”. Proceedings of the 14th International
Conference on Intellegent and Adaptive Systems and Software
Engineering,IASSE-2005, pp. 235-242. Nevada: University of Nevada,
Reno
Thorn, A. (2009). Cross Platform Game Development. Burlington: Jones & Bartlett Learning
Thorn, A. (2005). DirectX 9 Graphics: The definitive guide to Direct3D. Texas: Wordware Publishing
Vogel, L. (2014). Distributed Version Control with Git: Mastering the Git command line – Third Edition. Hamburg: Lars Vogel