Anda di halaman 1dari 7

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/329525878

Analisis Performa Aplikasi Android Pada Bahasa Pemrograman Java dan


Kotlin

Conference Paper · July 2018

CITATIONS READS

0 2,257

3 authors, including:

Ghifari Munawar Bambang Wisnuadhi


Politeknik Negeri Bandung Politeknik Negeri Bandung
8 PUBLICATIONS   1 CITATION    3 PUBLICATIONS   0 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Penelitian Pemula 2016 View project

Penelitian Pemula 2015 View project

All content following this page was uploaded by Ghifari Munawar on 10 December 2018.

The user has requested enhancement of the downloaded file.


Analisis Performa Aplikasi Android Pada
Bahasa Pemrograman Java dan Kotlin
Niko Sumanda Sibarani1, Ghifari Munawar2, Bambang Wisnuadhi3

Jurusan Teknik Komputer dan Informatika, Politeknik Negeri Bandung, Bandung 40012
E-mail : 1niko.sumanda.tif414@polban.ac.id, 2ghifari.munawar@polban.ac.id, 3bwisnu@jtk.polban.ac.id

ABSTRAK

Perkembangan aplikasi android dari tahun ke tahun semakin meningkat. Untuk memenuhi kebutuhan pasar
tersebut dibutuhkan perangkat lunak yang dapat berjalan maksimal di berbagai perangkat android. Penelitian ini
membandingkan 2 bahasa pemrograman yang popular digunakan dalam pengembangan aplikasi android yakni
Java dan Kotlin dengan melakukan analisis performa pada aplikasi yang dibangun dengan masing-masing bahasa
pemrograman tersebut. Eksperimen dilakukan dengan mengukur performa aplikasi pada saat aplikasi berjalan di
perangkat android dengan mengoperasikan fitur-fitur yang tersedia pada aplikasi tersebut. Eksperimen yang
dilakukan memperlihatkan bahwa aplikasi dengan bahasa pemrograman Kotlin lebih minim dalam penggunaan
CPU walaupun kedua bahasa pemrograman tidak menunjukkan perbedaan yang signifikan. Hasil menunjukkan
CPU usage kedua nya hanya berbeda 0.65 %. Bahasa pemrograman Kotlin juga lebih kecil dalam memory usage
dengan perhitungan lebih dari 2 kali lipat penggunaan memori pada bahasa Java. Sementara pada execution time
program terlihat bahwa bahasa pemrograman kotlin lebih cepat dibandingkan bahasa pemrograman Java.
Berdasarkan hasil keseluruhan pengukuran dapat disimpulkan bahwa bahasa pemrograman Kotlin memiliki
performa yang lebih baik dibandingkan bahasa pemrograman Java untuk aplikasi berbasis android.

Kata Kunci: Analisis performa, Kotlin, Java, CPU usage, Memory usage, Execution time

1. PENDAHULUAN maka dibutuhkan aplikasi yang dapat berjalan


Perkembangan industri perangkat lunak sudah sangat maksimal pada perangkat tersebut. Menurut referensi
pesat. Terlebih pada perkembangan teknologi mobile [2] masalah performa adalah salah satu masalah
yang menunjukkan peningkatan yang sangat utama dan biasanya ditemukan di semua aplikasi
signifikan. Berbagai aktifitas dan kegiatan sudah mobile. Banyak kriteria performa yang harus
dilakukan secara mobile karena mudah, cepat dan dipenuhi dalam pengembangan aplikasi mobile.
dapat dilakukan di mana saja seperti membaca Seperti penggunaan resource yang seminim
berita/artikel, berkomunikasi jarak jauh dan lain-lain. mungkin, konsumsi daya yang kecil dan lain-lain.
Menurut penelitian [1], perkembangan pengguna Bahasa pemrograman yang berbeda dapat
smartphone dari tahun ke tahun meningkat dan mempengaruhi performa aplikasi mobile [3].
diprediksi akan terus meningkat. Gambar 1
menunjukkan pertumbuhan pengguna smartphone Pada acara Google I/O 2017, Google mengumumkan
dari tahun ke tahun. bahasa pemrograman baru yang resmi digunakan
untuk pengembangan aplikasi android yaitu bahasa
Kotlin. Bahasa Kotlin adalah bahasa pemrograman
yang dikembangkan oleh JetBrains, perusahaan yang
juga mengembangkan IDE Android Studio. Bahasa
Kotlin adalah pengembangan dari bahasa Java yang
sudah popular sebelumnya. Bahasa Kotlin memiliki
fitur-fitur bahasa modern yang lebih dibandingkan
bahasa Java.

Dengan adanya bahasa pemrograman ini kemudian


memicu pertanyaan tentang bahasa pemrograman
Gambar 1. Grafik pertumbuhan pengguna mana yang lebih baik digunakan untuk
smartphone di Indonesia pengembangan aplikasi android antara Java dan
Karena perangkat smartphone adalah perangkat yang Kotlin. Bahasa pemrograman Kotlin dinilai dapat
sangat terbatas baik dari segi daya maupun resource
319
memberikan value yang lebih dibandingkan bahasa bekerja, efisiensi kinerja atau seberapa handal
Java. Penelitian ini kemudian muncul untuk aplikasi dapat digunakan. Pada penelitian ini aspek
mengetahui bahasa pemrograman mana yang performa yang di angkat adalah bagaimana
memberikan performa yang lebih baik pada aplikasi penggunaan resource aplikasi pada perangkat yakni
android. Dalam penelitian ini akan mengukur CPU dan memory serta seberapa cepat aplikasi dalam
performa aplikasi android dalam 3 variabel yakni mengeksekusi program. Pengukuran dilakukan
CPU usage, memory usage dan execution time. dengan menggunakan tools profiling. Gambar 2
adalah karakteristik kualitas produk/software pada
2. LANDASAN TEORI ISO/IEC 25010.
2.1 Kotlin
Kotlin adalah bahasa pemrograman berbasis Java
Virtual Machine (JVM) yang dikembangkan oleh
JetBrains [4]. Kotlin merupakan bahasa
pemrograman yang pragmatis untuk android yang
mengkombinasikan object oriented (OO) dan
pemrograman fungsional. Kotlin juga bahasa
pemrograman yang interoperabilitas yang membuat
bahasa ini dapat digabungkan dalam satu project
dengan bahasa pemrograman Java. Bahasa
pemrograman ini juga dapat digunakan untuk
pengembangan aplikasi berbasis desktop, web dan
bahkan untuk backend. Beberapa keuntungan yang
mungkin akan didapatkan jika pengembangan Gambar 2. Karakteristik kualitas aplikasi [8]
aplikasi beralih menggunakan Kotlin untuk
mengembangkan aplikasi diatas platform JVM 2.4 Object Oriented Programming
adalah sebagai berikut: Object oriented programming (OOP) adalah ilmu
1. Dapat mengatasi NullPointerException fundamental yang digunakan pada pengembangan
yang umumnya terdapat pada Java. aplikasi dalam penelitian ini. Pada OOP, fungsi dan
2. Penulisan kode lebih ringkas dan mudah variabel dibungkus dalam sebuah objek atau class
dibaca dibandingkan kode yang ditulis yang dapat saling berinteraksi, sehingga membentuk
dengan menggunakan bahasa Java [5]. sebuah program [9]. Dengan menggunakan
3. Mudah dipelajari paradigma ini, maka akan membantu pada sisi
4. Dukungan IDE untuk mempermudah dalam reusability dari program yang dibuat agar tidak
pemrograman. menulis kode program berulang kali. OOP juga akan
digunakan dalam implementasi pengembangan
2.2 Java aplikasi dengan bahasa Kotlin.
Java adalah bahasa pemrograman yang popular,
dikembangkan oleh Sun Microsystems [6]. Salah 2.6 Model View Controller (MVC)
satu penggunaan terbesar Java adalah dalam Model View Controller (MVC) adalah konsep
pembuatan aplikasi native untuk android. Bahasa arsitektur dalam pembangunan aplikasi yang
pemrograman ini bersifat multiplatform yakni bahasa membagi aplikasi web menjadi 3 bagian besar. Yang
ini dapat digunakan di berbagai platform, seperti mana setiap bagian memiliki tugas-tugas serta
desktop, android dan bahkan untuk sistem operasi tanggung jawab masing-masing. Tiga bagian tersebut
Linux. Beberapa ciri dari bahasa pemrograman ini adalah: model, view dan controller. Gambar 3
adalah sebagai berikut [7]: merupakan keterkaitan antar bagian pada MVC.
1. Object oriented language
2. Multithreading
3. Garbage collector support
4. Statically Typed
5. Multiplatform

2.3 Application Performance Analysis


Terdapat beberapa karakteristik kualitas aplikasi
pada ISO/IEC 25010 yang ditunjukkan pada Gambar
2 yang salah satu nya adalah aspek performa.
Performa menggambarkan bagaimana aplikasi
Gambar 3. Keterkaitan antar bagian pada MVC

320
2.5 Snapdragon Profiller 3.1 Studi Pustaka
Snapdragon Profiler adalah perangkat lunak yang Mempelajari hal-hal teknis yang terkait dengan
berjalan pada platform Windows, Mac, dan Linux. masalah yang akan diselesaikan melalui penelitian
Ini terhubung dengan perangkat Android yang ini. Beberapa hal yang dipelajari adalah sebagai
didukung oleh prosesor Snapdragon melalui USB. berikut:
Snapdragon Profiler memungkinkan pengembang 1. Kajian pustaka dari penelitian sebelumnya
untuk menganalisis data CPU, GPU, DSP, memori, 2. Pustaka terkait pemrograman Java
daya, termal, dan jaringan, sehingga dapat 3. Pustaka terkait pemrograman Kotlin
menemukan dan memperbaiki bug kinerja pada 4. Pengembangan aplikasi android
aplikasi. Fitur dan keuntungan yang diperoleh 5. Pustaka terkait pengukuran performa aplikasi
menggunakan Snapdragon Profiler adalah [10]: mobile
1. Terdapat tampilan realtime yang memudahkan
untuk memantau resource pada perangkat 3.2 Pengembangan Aplikasi
seperti CPU, GPU, DSP, memory, power, Pengembangan aplikasi dilakukan analisis,
jaringan dan lain-lain. perancangan, implementasi dan pengujian terhadap
2. Mode Trace Capture yang memungkinkan aplikasi. Tahap ini bertujuan untuk menganalisis
pengguna untuk memvisualisasikan kejadian kebutuhan aplikasi, merancangan sistem secara
pada sistem dan perangkat seperti CPU, GPU keseluruhan, melakukan implementasi dan pengujian
dan lain-lain. aplikasi untuk memastikan aplikasi yang akan
3. Melihat dan mengedit tampilan dan preview digunakan sudah berjalan sesuai dengan requirement.
hasil capture pada perangkat. Aplikasi yang dibangun adalah aplikasi Pencari
Rumah Makan dengan kebutuhan seperti pada
3. METODOLOGI subbab 3.2.1 dan 3.2.2. Aplikasi dibangun dengan
Metodologi penelitian menjelaskan metode yang menggunakan bahasa pemrograman Java dan Kotlin
digunakan dalam analisis perbandingan performa kemudian kedua aplikasi akan dilakukan pengukuran
aplikasi menggunakan Java dan Kotlin pada performa untuk mengetahui performa aplikasi mana
perangkat android. Penelitian ini akan yang lebih baik. Sebelum dilakukan pengukuran,
mengembangkan 2 aplikasi yang masing-masing terlebih dahulu dilakukan pengujian yang bertujuan
mewakili bahasa pemrogaman Java dan Kotlin. untuk mengetahui kesesuaian antara input dan output
Kedua aplikasi memiliki requirement yang sama yang diharapkan pada aplikasi.
untuk kemudian dibandingkan performanya. Gambar
4 adalah tahapan-tahapan yang dilakukan dalam 3.2.1 Usecase Diagram
penelitian ini. Aplikasi yang diuji adalah aplikasi dengan kebutuhan
seperti pada Gambar 5. Usecase diagram dibuat
untuk mengambarkan interaksi antar pengguna
dengan aplikasi. Secara umum, fitur utama aplikasi
adalah mencari dan menampilkan rumah makan.
Gambar 5 adalah usecase diagram aplikasi Pencari
Rumah Makan.

Gambar 4. Tahapan-tahapan penelitian


Gambar 5. Usecase Diagram aplikasi

321
3.2.2 Package Diagram kemudian mengoperasikan setiap fitur pada aplikasi.
Arsitektur aplikasi yang dibangun adalah seperti pada Percobaan dilakukan sebanyak tiga kali pada setiap
Gambar 6 ditunjukkan dengan package diagram. fitur aplikasi kemudian hasilnya dirata-ratakan.
Aplikasi dengan CPU, memory dan execution time
yang lebih rendah adalah aplikasi dengan performa
yang lebih baik. Eksperimen dilakukan pada
perangkat dengan spesifikasi 4GB RAM, processor
Snapdragon 626 dengan sistem operasi android oreo
(8.0)

4. HASIL DAN ANALISIS


Pada tahap ini dilakukan pengolah dan penyajian data
yang diperoleh dari hasil eksperimen. Berdasarkan
data tersebut, maka akan terlihat performa dari kedua
Gambar 6. Arsitektur Aplikasi
aplikasi. Kemudian dilihat hasil analisisnya
menggunakan bahasa pemrograman mana yang
Penjelasan mengenai package diagram dipaparkan
memiliki performa yang lebih baik untuk digunakan
pada Tabel 1.
pada aplikasi berbasis android.
Tabel 1. Penjelasan Package Diagram
Nama Deskripsi 4.1 Pengujian fungsional Aplikasi
Package Pengujian ini dilakukan untuk memastikan aplikasi
Main Package ini berisi fungsi utama telah memenuhi requirement atau tidak. Metode
pada aplikasi pengujian yang dilakukan adalah black box testing
Model Package ini berisi class-class yang bertujuan untuk mengetahui kesesuaian antara
model data yang dibutuhkan input dan output yang diharapkan. Hasil yang
aplikasi diharapkan dari setiap requirement ditunjukkan oleh
Adapter Package ini berisi class-class Tabel 3. Hasil pengujian yang telah dilakukan
adapter
ditunjukkan pada Tabel 4.
res Package ini berisi resource yang
Tabel 3. Output yang diharapkan
dibutuhkan oleh aplikasi seperti
REQ.ID Deskripsi
gambar, layout dan lain-lain.
Helper Package ini berisi class-class REQ.1 Menampilkan rumah makan yang
fungsi yang membantu aplikasi terkait dengan keyword yang diinputkan
Manifest Package ini berisi informasi REQ.2 Menampilkan daftar rumah makan yang
mengenai aplikasi terdekat dengan lokasi pengguna
Library Package ini berisi file library REQ.3 Menampilkan daftar rumah makan
pendukung aplikasi seperti Picasso berdasarkan kategori yang dipilih
dan AsynchttpClient REQ.4 Menampilkan daftar rumah makan pada
suatu daerah/kota yang dipilih
3.3 Eksperimen
Tabel 4. Hasil Pengujian Fungsional Aplikasi
Eksperimen dilakukan dengan melakukan No Requirement Status
pengukuran performa pada masing-masing aplikasi Java Apps Kotlin
java dan kotlin. Tabel 2 adalah variabel performa Apps
yang diukur dari kedua aplikasi. 1 REQ.1 √ √
2 REQ.2 √ √
Tabel 2. Variabel Performa yang Diukur 3 REQ.3 √ √
No Variabel Satuan Deskripsi 4 REQ.4 √ √
1 CPU Usage Persentase Penggunaan Keterangan: √ menunjukkan requirement pada
(%) CPU pada aplikasi telah terpenuhi dan sesuai
perangkat
2 Memory Byte (B) Penggunaan 4.2 Pengujian Performa Aplikasi
Usage memory pada
4.2.1 Penggunaan CPU pada device
perangkat
3 Execution Millisecond Waktu Pengukuran penggunaan CPU pada perangkat
Time (ms) eksekusi android ini dibagi per fitur aplikasi. Aplikasi
program dijalankan pada perangkat dan mengoperasikan fitur
aplikasi. pada 4 requirement aplikasi. Hasil
Skenario pengukuran yang dilakukan adalah dengan pengukuran penggunaan CPU pada perangkat
menjalankan aplikasi pada perangkat android, android ditunjukkan oleh Gambar 7.

322
CPU Usage (%) Execution Time (ms)

20.00 6000.00
18.00 5000.00
16.00
14.00 4000.00
12.00 3000.00
10.00
8.00 2000.00
6.00
1000.00
4.00
2.00 0.00
REQ- REQ- REQ- REQ- Avera
0.00 01 02 03 04 ge
REQ- REQ- REQ- REQ- Avera
01 02 03 04 ge Java 5234.33 334.00 2535.33 970.67 2268.58
Java 4.87 11.52 8.97 18.01 10.84 Kotlin 3237.33 295.33 2107.33 844.00 1621.00

Kotlin 4.86 11.99 7.05 16.89 10.19


Java Kotlin

Java Kotlin
Gambar 9. Hasil pengukuran execution time
Gambar 7. Hasil Pengukuran CPU Usage
4.4 Analisis Hasil
4.2.2 Penggunaan Memori pada device Berdasarkan pada pengukuran yang telah dilakukan
Pengukuran penggunaan memori pada perangkat ini diatas dengan melihat penggunaan CPU, memori dan
dibagi per fitur aplikasi. Aplikasi dijalankan pada execution time pada setiap fitur pada aplikasi. Untuk
perangkat dan mengoperasikan fitur aplikasi. pada 4 mengetahui bahasa pemrograman mana yang
requirement aplikasi. Hasil pengukuran penggunaan memiliki performa yang lebih baik untuk digunakan
memori pada perangkat ditunjukkan oleh Gambar 8. pada aplikasi berbasis android maka hasil
pengukuran tersebut dirangkum seperti berikut.
Memory Usage (MB) Tabel 5 adalah hasil rekapitulasi dari seluruh
pengukuran yang dilakukan. Hasil pengukuran pada
250.00
seluruh fitur aplikasi di rata-ratakan.
200.00
Tabel 5 Rekapitulasi Pengukuran Performa
150.00
Parameter Hasil
Kotlin Java
100.00
CPU Usage (%) 10.19 10.84
Memory 25.72 63.29
Usage(MB)
50.00
Execution 1621.00 2268.58
Time(ms)
0.00
REQ- REQ- REQ- REQ- Averag
01 02 03 04 e
Berdasarkan hasil tersebut, terlihat bahwa bahasa
Java 12.22 2.55 2.47 235.93 63.29
pemrograman Kotlin memiliki performa lebih baik
Kotlin 14.72 0.26 0.80 87.11 25.72
untuk ketiga variabel (CPU Usage, Memory Usage,
Java Kotlin
Execution Time) dibandingkan bahasa pemrograman
java.
Gambar 8. Hasil Pengukuran Memory Usage
5. KESIMPULAN
4.2.3 Kecepatan eksekusi program Berdasarkan pada penelitian yang telah dilakukan,
Pengukuran penggunaan memori pada perangkat didapatkan kesimpulan sebagai berikut:
android ini dibagi per fitur aplikasi. Aplikasi 1. Pengukuran dilakukan dengan membangun
dijalankan pada perangkat dan mengoperasikan fitur aplikasi pada masing-masing bahasa
aplikasi. pada 4 requirement aplikasi. Hasil pemrograman Java dan Kotlin. Kemudian
pengukuran penggunaan memori pada perangkat mengukur performa aplikasi dengan
ditunjukkan oleh Gambar 9. mengoperasikan setiap fitur yang ada pada
aplikasi. Dari operasi tersebut didapatkan hasil
penggunaan CPU, memori dan kecepatan
eksekusi aplikasi pada perangkat android.

323
2. Pengukuran yang telah dilakukan menunjukkan Available: https://id.techinasia.com/riset-tren-
bahwa bahasa Kotlin lebih sedikit dalam pengembangan-aplikasi-mobile. [Diakses 25
penggunaan CPU walaupun kedua bahasa 25 2018].
pemrograman tidak menunjukkan perbedaan
[2] S. Doug, High Performance Android Apps,
yang signifikan. Hasil menunjukkan penggunaan
Sebastopol: O'Reilly Media, Inc, 2010.
CPU kedua nya memiliki selisih 0.65 %.
3. Pengukuran penggunaan memori dari kedua [3] T. S. Fernandes, ´. Cota dan . ´. F. Moreira,
bahasa pemrograman menunjukkan hasil yang “Performance Evaluation of Android
sangat signifikan. Bahasa pemrograman Kotlin Applications: a Case Study,” Institute of
lebih kecil dalam penggunaan memori dengan Informatics, Porto Alegre.
perhitungan lebih dari 2 kali lipat penggunaan [4] A. Leiva, Kotlin for Android Developers,
memori pada bahasa Java. Lean Publishing, 2017.
4. Pengukuran kecepatan eksekusi juga [5] R. K. Panchal dan A. K. Patel, “A comparative
menunjukkan hasil yang signifikan. Terlihat study: Java Vs kotlin Programming in
bahwa bahasa pemrograman kotlin lebih cepat Android,” International Journal of Innovative
dalam mengeksekusi program dibandingkan Trends in Engineering & Research, vol. 2, no.
bahasa pemrograman Java. 9, 2017.
5. Berdasarkan hasil keseluruhan pengukuran dapat
[6] J. Friesen, Learn Java for Android
disimpulkan bahwa bahasa pemrograman Kotlin
Development, Appress Media, 2014.
memiliki performa yang lebih baik dibandingkan
bahasa pemrograman Java untuk aplikasi [7] Wikipedia, “Java (Programming Language),”
berbasis android. Wikipedia, [Online]. Available:
https://en.wikipedia.org/wiki/Java_(program
UCAPAN TERIMAKASIH ming_language). [Diakses 2 Juli 2018].
Penulis mengucapkan terimakasih kepada semua [8] ISO, “ISO/IEC 25010:2011,” 2011. [Online].
pihak yang telah membantu dalam penulisan artikel Available:
ini. Ucapan terimakasih disampaikan kepada orang https://www.iso.org/obp/ui/#iso:std:iso-
tua dan keluarga yang senantiasa memberikan doa iec:25010:ed-1:v1:en.
dan dukungan kepada penulis baik material maupun [9] Wikipedia, “Object-oriented programming,”
non material, kepada Bapak/Ibu dosen di Jurusan Wikipedia, [Online]. Available:
Teknik Komputer dan Informatika POLBAN yang https://en.wikipedia.org/wiki/Object-
memberikan masukan dan arahan yang sangat berarti oriented_programming. [Diakses 2 Juli 2018].
dalam penulisan karya ilmiah ini, juga rekan-rekan [10] Qualcomm Technology Inc, “Snapdragon
mahasiswa/i D-IV Teknik Informatika angkatan Profiller,” Qualcomm Developer Network,
2014 yang telah memberikan dukungan dalam [Online]. Available:
menyelesaikan penulisan karya ilmiah ini. Serta https://developer.qualcomm.com/software/sn
seluruh pihak yang telah memberikan doa dan apdragon-profiler. [Diakses 2 Juli 2018].
dukungan demi kelancaran dan kemudahan selama
mengerjakan penelitian dan penulisan karya ilmiah. [11] M. Arias dan R. Chakraborty, Functional
Kotlin, Birmingham: Packt Publishing Ltd,
DAFTAR PUSTAKA 2018.

[1] K. K. Wijaya, “Riset Tren Pengembangan
Aplikasi Mobile,” Techinasia, [Online].

324

View publication stats

Anda mungkin juga menyukai