LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL EMBEDDED SYSTEMS.

i

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.
Kata Kunci: Abstraksi, OpenGL ES, Pola Desain

YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL
EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

ii
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.
Keywords: Abstraction, OpenGL ES, Design Pattern


YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL
EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

115

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 ObjectOriented 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 CrossPlatform 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:
75-82. Poland: Versita
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL
EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

116
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://gamelab.org/posts/posa2-wrapper-facade/ [16 Februari 2015]
Gamma, E. et al. (1993). “Design Patterns: Abstraction and Reuse of ObjectOriented 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
Hinton, P. R. (2004). SPSS Explained. East Sussex: Psychology Press
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL
EMBEDDED SYSTEMS

Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

117
International Data Corporation (2014). Smartphone OS Market Share, Q3 2014.
[Online]. Tersedia: http://www.idc.com/prodserv/smartphone-os-marketshare.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-ViewController User Interface paradigm in Smalltalk-80”. Journal of ObjectOriented Programming, pp. 26-49. Denville: SIGS
Krustchinsky, J. (2013). Is SDL a game engine?. Game Development Stack
Exchange.

[Online].

Tersedia:

gamedev.stackexchange.com/questions/59139/is-sdl-a-game-engine

http://
[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
McReynolds, T. dan Blythe, D. (2005). Advanced Graphics Programming Using
OpenGL. Amsterdam: Elsevier

YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL
EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

118
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-fallendev-low-level-apis-complex-concepts-to-grasp-wont-bet-on-mantle-rightnow/ [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
Shults, B. P. (2002). “Teaching Data Structures: Thread Safety and Components”.
Fronties in Education, 2002. Boston: IEEE
YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL
EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

119
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-ofwindows-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
Yeates, S. (2005). What Is Version Control? Why Is It Important For Due
Diligence?.

OSS

Watch.

[Online].

Tersedia:

http://oss-

watch.ac.uk/resources/versioncontrol [17 Februari 2015]

YANA DWIPUTRA NUGRAHA, 2015
LIBRARY CYBIL2D SEBAGAI ALTERNATIF LAPISAN ABSTRAKSI TINGKAT TINGGI OPENGL
EMBEDDED SYSTEMS
Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu