Content uploaded by Ghifari Munawar
Author content
All content in this area was uploaded by Ghifari Munawar on Dec 10, 2018
Content may be subject to copyright.
319
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
Perkembangan industri perangkat lunak sudah sangat
pesat. Terlebih pada perkembangan teknologi mobile
yang menunjukkan peningkatan yang sangat
signifikan. Berbagai aktifitas dan kegiatan sudah
dilakukan secara mobile karena mudah, cepat dan
dapat dilakukan di mana saja seperti membaca
berita/artikel, berkomunikasi jarak jauh dan lain-lain.
Menurut penelitian [1], perkembangan pengguna
smartphone dari tahun ke tahun meningkat dan
diprediksi akan terus meningkat. Gambar 1
menunjukkan pertumbuhan pengguna smartphone
dari tahun ke tahun.
Gambar 1. Grafik pertumbuhan pengguna
smartphone di Indonesia
Karena perangkat smartphone adalah perangkat yang
sangat terbatas baik dari segi daya maupun resource
maka dibutuhkan aplikasi yang dapat berjalan
maksimal pada perangkat tersebut. Menurut referensi
[2] masalah performa adalah salah satu masalah
utama dan biasanya ditemukan di semua aplikasi
mobile. Banyak kriteria performa yang harus
dipenuhi dalam pengembangan aplikasi mobile.
Seperti penggunaan resource yang seminim
mungkin, konsumsi daya yang kecil dan lain-lain.
Bahasa pemrograman yang berbeda dapat
mempengaruhi performa aplikasi mobile [3].
Pada acara Google I/O 2017, Google mengumumkan
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
mana yang lebih baik digunakan untuk
pengembangan aplikasi android antara Java dan
Kotlin. Bahasa pemrograman Kotlin dinilai dapat
320
memberikan value yang lebih dibandingkan bahasa
Java. Penelitian ini kemudian muncul untuk
mengetahui bahasa pemrograman mana yang
memberikan performa yang lebih baik pada aplikasi
android. Dalam penelitian ini akan mengukur
performa aplikasi android dalam 3 variabel yakni
CPU usage, memory usage dan execution time.
2. LANDASAN TEORI
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
aplikasi beralih menggunakan Kotlin untuk
mengembangkan aplikasi diatas platform JVM
adalah sebagai berikut:
1. Dapat mengatasi NullPointerException
yang umumnya terdapat pada Java.
2. Penulisan kode lebih ringkas dan mudah
dibaca dibandingkan kode yang ditulis
dengan menggunakan bahasa Java [5].
3. Mudah dipelajari
4. Dukungan IDE untuk mempermudah dalam
pemrograman.
2.2 Java
Java adalah bahasa pemrograman yang popular,
dikembangkan oleh Sun Microsystems [6]. Salah
satu penggunaan terbesar Java adalah dalam
pembuatan aplikasi native untuk android. Bahasa
pemrograman ini bersifat multiplatform yakni bahasa
ini dapat digunakan di berbagai platform, seperti
desktop, android dan bahkan untuk sistem operasi
Linux. Beberapa ciri dari bahasa pemrograman ini
adalah sebagai berikut [7]:
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
bekerja, efisiensi kinerja atau seberapa handal
aplikasi dapat digunakan. Pada penelitian ini aspek
performa yang di angkat adalah bagaimana
penggunaan resource aplikasi pada perangkat yakni
CPU dan memory serta seberapa cepat aplikasi dalam
mengeksekusi program. Pengukuran dilakukan
dengan menggunakan tools profiling. Gambar 2
adalah karakteristik kualitas produk/software pada
ISO/IEC 25010.
Gambar 2. Karakteristik kualitas aplikasi [8]
2.4 Object Oriented Programming
Object oriented programming (OOP) adalah ilmu
fundamental yang digunakan pada pengembangan
aplikasi dalam penelitian ini. Pada OOP, fungsi dan
variabel dibungkus dalam sebuah objek atau class
yang dapat saling berinteraksi, sehingga membentuk
sebuah program [9]. Dengan menggunakan
paradigma ini, maka akan membantu pada sisi
reusability dari program yang dibuat agar tidak
menulis kode program berulang kali. OOP juga akan
digunakan dalam implementasi pengembangan
aplikasi dengan bahasa Kotlin.
2.6 Model View Controller (MVC)
Model View Controller (MVC) adalah konsep
arsitektur dalam pembangunan aplikasi yang
membagi aplikasi web menjadi 3 bagian besar. Yang
mana setiap bagian memiliki tugas-tugas serta
tanggung jawab masing-masing. Tiga bagian tersebut
adalah: model, view dan controller. Gambar 3
merupakan keterkaitan antar bagian pada MVC.
Gambar 3. Keterkaitan antar bagian pada MVC
321
2.5 Snapdragon Profiller
Snapdragon Profiler adalah perangkat lunak yang
berjalan pada platform Windows, Mac, dan Linux.
Ini terhubung dengan perangkat Android yang
didukung oleh prosesor Snapdragon melalui USB.
Snapdragon Profiler memungkinkan pengembang
untuk menganalisis data CPU, GPU, DSP, memori,
daya, termal, dan jaringan, sehingga dapat
menemukan dan memperbaiki bug kinerja pada
aplikasi. Fitur dan keuntungan yang diperoleh
menggunakan Snapdragon Profiler adalah [10]:
1. Terdapat tampilan realtime yang memudahkan
untuk memantau resource pada perangkat
seperti CPU, GPU, DSP, memory, power,
jaringan dan lain-lain.
2. Mode Trace Capture yang memungkinkan
pengguna untuk memvisualisasikan kejadian
pada sistem dan perangkat seperti CPU, GPU
dan lain-lain.
3. Melihat dan mengedit tampilan dan preview
hasil capture pada perangkat.
3. METODOLOGI
Metodologi penelitian menjelaskan metode yang
digunakan dalam analisis perbandingan performa
aplikasi menggunakan Java dan Kotlin pada
perangkat android. Penelitian ini akan
mengembangkan 2 aplikasi yang masing-masing
mewakili bahasa pemrogaman Java dan Kotlin.
Kedua aplikasi memiliki requirement yang sama
untuk kemudian dibandingkan performanya. Gambar
4 adalah tahapan-tahapan yang dilakukan dalam
penelitian ini.
Gambar 4. Tahapan-tahapan penelitian
3.1 Studi Pustaka
Mempelajari hal-hal teknis yang terkait dengan
masalah yang akan diselesaikan melalui penelitian
ini. Beberapa hal yang dipelajari adalah sebagai
berikut:
1. Kajian pustaka dari penelitian sebelumnya
2. Pustaka terkait pemrograman Java
3. Pustaka terkait pemrograman Kotlin
4. Pengembangan aplikasi android
5. Pustaka terkait pengukuran performa aplikasi
mobile
3.2 Pengembangan Aplikasi
Pengembangan aplikasi dilakukan analisis,
perancangan, implementasi dan pengujian terhadap
aplikasi. Tahap ini bertujuan untuk menganalisis
kebutuhan aplikasi, merancangan sistem secara
keseluruhan, melakukan implementasi dan pengujian
aplikasi untuk memastikan aplikasi yang akan
digunakan sudah berjalan sesuai dengan requirement.
Aplikasi yang dibangun adalah aplikasi Pencari
Rumah Makan dengan kebutuhan seperti pada
subbab 3.2.1 dan 3.2.2. Aplikasi dibangun dengan
menggunakan bahasa pemrograman Java dan Kotlin
kemudian kedua aplikasi akan dilakukan pengukuran
performa untuk mengetahui performa aplikasi mana
yang lebih baik. Sebelum dilakukan pengukuran,
terlebih dahulu dilakukan pengujian yang bertujuan
untuk mengetahui kesesuaian antara input dan output
yang diharapkan pada aplikasi.
3.2.1 Usecase Diagram
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 5. Usecase Diagram aplikasi
322
3.2.2 Package Diagram
Arsitektur aplikasi yang dibangun adalah seperti pada
Gambar 6 ditunjukkan dengan package diagram.
Gambar 6. Arsitektur Aplikasi
Penjelasan mengenai package diagram dipaparkan
pada Tabel 1.
Tabel 1. Penjelasan Package Diagram
Nama
Package
Deskripsi
Main
Package ini berisi fungsi utama
pada aplikasi
Model
Package ini berisi class-class
model data yang dibutuhkan
aplikasi
Adapter
Package ini berisi class-class
adapter
res
Package ini berisi resource yang
dibutuhkan oleh aplikasi seperti
gambar, layout dan lain-lain.
Helper
Package ini berisi class-class
fungsi yang membantu aplikasi
Manifest
Package ini berisi informasi
mengenai aplikasi
Library
Package ini berisi file library
pendukung aplikasi seperti Picasso
dan AsynchttpClient
3.3 Eksperimen
Eksperimen dilakukan dengan melakukan
pengukuran performa pada masing-masing aplikasi
java dan kotlin. Tabel 2 adalah variabel performa
yang diukur dari kedua aplikasi.
Tabel 2. Variabel Performa yang Diukur
No
Variabel
Satuan
Deskripsi
1
CPU Usage
Persentase
(%)
Penggunaan
CPU pada
perangkat
2
Memory
Usage
Byte (B)
Penggunaan
memory pada
perangkat
3
Execution
Time
Millisecond
(ms)
Waktu
eksekusi
program
Skenario pengukuran yang dilakukan adalah dengan
menjalankan aplikasi pada perangkat android,
kemudian mengoperasikan setiap fitur pada aplikasi.
Percobaan dilakukan sebanyak tiga kali pada setiap
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
aplikasi. Kemudian dilihat hasil analisisnya
menggunakan bahasa pemrograman mana yang
memiliki performa yang lebih baik untuk digunakan
pada aplikasi berbasis android.
4.1 Pengujian fungsional Aplikasi
Pengujian ini dilakukan untuk memastikan aplikasi
telah memenuhi requirement atau tidak. Metode
pengujian yang dilakukan adalah black box testing
yang bertujuan untuk mengetahui kesesuaian antara
input dan output yang diharapkan. Hasil yang
diharapkan dari setiap requirement ditunjukkan oleh
Tabel 3. Hasil pengujian yang telah dilakukan
ditunjukkan pada Tabel 4.
Tabel 3. Output yang diharapkan
REQ.ID
Deskripsi
REQ.1
Menampilkan rumah makan yang
terkait dengan keyword yang diinputkan
REQ.2
Menampilkan daftar rumah makan yang
terdekat dengan lokasi pengguna
REQ.3
Menampilkan daftar rumah makan
berdasarkan kategori yang dipilih
REQ.4
Menampilkan daftar rumah makan pada
suatu daerah/kota yang dipilih
Tabel 4. Hasil Pengujian Fungsional Aplikasi
No
Requirement
Status
Java Apps
Kotlin
Apps
1
REQ.1
√
√
2
REQ.2
√
√
3
REQ.3
√
√
4
REQ.4
√
√
Keterangan: √ menunjukkan requirement pada
aplikasi telah terpenuhi dan sesuai
4.2 Pengujian Performa Aplikasi
4.2.1 Penggunaan CPU pada device
Pengukuran penggunaan CPU pada perangkat
android ini dibagi per fitur aplikasi. Aplikasi
dijalankan pada perangkat dan mengoperasikan fitur
aplikasi. pada 4 requirement aplikasi. Hasil
pengukuran penggunaan CPU pada perangkat
android ditunjukkan oleh Gambar 7.
323
Gambar 7. Hasil Pengukuran CPU Usage
4.2.2 Penggunaan Memori pada device
Pengukuran penggunaan memori pada perangkat ini
dibagi per fitur aplikasi. Aplikasi dijalankan pada
perangkat dan mengoperasikan fitur aplikasi. pada 4
requirement aplikasi. Hasil pengukuran penggunaan
memori pada perangkat ditunjukkan oleh Gambar 8.
Gambar 8. Hasil Pengukuran Memory Usage
4.2.3 Kecepatan eksekusi program
Pengukuran penggunaan memori pada perangkat
android ini dibagi per fitur aplikasi. Aplikasi
dijalankan pada perangkat dan mengoperasikan fitur
aplikasi. pada 4 requirement aplikasi. Hasil
pengukuran penggunaan memori pada perangkat
ditunjukkan oleh Gambar 9.
Gambar 9. Hasil pengukuran execution time
4.4 Analisis Hasil
Berdasarkan pada pengukuran yang telah dilakukan
diatas dengan melihat penggunaan CPU, memori dan
execution time pada setiap fitur pada aplikasi. Untuk
mengetahui bahasa pemrograman mana yang
memiliki performa yang lebih baik untuk digunakan
pada aplikasi berbasis android maka hasil
pengukuran tersebut dirangkum seperti berikut.
Tabel 5 adalah hasil rekapitulasi dari seluruh
pengukuran yang dilakukan. Hasil pengukuran pada
seluruh fitur aplikasi di rata-ratakan.
Tabel 5 Rekapitulasi Pengukuran Performa
Parameter
Hasil
Kotlin
Java
CPU Usage (%)
10.19
10.84
Memory
Usage(MB)
25.72
63.29
Execution
Time(ms)
1621.00
2268.58
Berdasarkan hasil tersebut, terlihat bahwa bahasa
pemrograman Kotlin memiliki performa lebih baik
untuk ketiga variabel (CPU Usage, Memory Usage,
Execution Time) dibandingkan bahasa pemrograman
java.
5. KESIMPULAN
Berdasarkan pada penelitian yang telah dilakukan,
didapatkan kesimpulan sebagai berikut:
1. Pengukuran dilakukan dengan membangun
aplikasi pada masing-masing bahasa
pemrograman Java dan Kotlin. Kemudian
mengukur performa aplikasi dengan
mengoperasikan setiap fitur yang ada pada
aplikasi. Dari operasi tersebut didapatkan hasil
penggunaan CPU, memori dan kecepatan
eksekusi aplikasi pada perangkat android.
REQ-
01
REQ-
02
REQ-
03
REQ-
04
Avera
ge
Java
4.87
11.52
8.97
18.01
10.84
Kotlin
4.86
11.99
7.05
16.89
10.19
0.00
2.00
4.00
6.00
8.00
10.00
12.00
14.00
16.00
18.00
20.00
CPU Usage (%)
Java Kotlin
REQ-
01
REQ-
02
REQ-
03
REQ-
04
Averag
e
Java
12.22
2.55
2.47
235.93
63.29
Kotlin
14.72
0.26
0.80
87.11
25.72
0.00
50.00
100.00
150.00
200.00
250.00
Memory Usage (MB)
Java Kotlin
REQ-
01
REQ-
02
REQ-
03
REQ-
04
Avera
ge
Java
5234.33
334.00
2535.33
970.67
2268.58
Kotlin
3237.33
295.33
2107.33
844.00
1621.00
0.00
1000.00
2000.00
3000.00
4000.00
5000.00
6000.00
Execution Time (ms)
Java Kotlin
324
2. Pengukuran yang telah dilakukan menunjukkan
bahwa bahasa Kotlin lebih sedikit dalam
penggunaan CPU walaupun kedua bahasa
pemrograman tidak menunjukkan perbedaan
yang signifikan. Hasil menunjukkan penggunaan
CPU kedua nya memiliki selisih 0.65 %.
3. Pengukuran penggunaan memori dari kedua
bahasa pemrograman menunjukkan hasil yang
sangat signifikan. Bahasa pemrograman Kotlin
lebih kecil dalam penggunaan memori dengan
perhitungan lebih dari 2 kali lipat penggunaan
memori pada bahasa Java.
4. Pengukuran kecepatan eksekusi juga
menunjukkan hasil yang signifikan. Terlihat
bahwa bahasa pemrograman kotlin lebih cepat
dalam mengeksekusi program dibandingkan
bahasa pemrograman Java.
5. Berdasarkan hasil keseluruhan pengukuran dapat
disimpulkan bahwa bahasa pemrograman Kotlin
memiliki performa yang lebih baik dibandingkan
bahasa pemrograman Java untuk aplikasi
berbasis android.
UCAPAN TERIMAKASIH
Penulis mengucapkan terimakasih kepada semua
pihak yang telah membantu dalam penulisan artikel
ini. Ucapan terimakasih disampaikan kepada orang
tua dan keluarga yang senantiasa memberikan doa
dan dukungan kepada penulis baik material maupun
non material, kepada Bapak/Ibu dosen di Jurusan
Teknik Komputer dan Informatika POLBAN yang
memberikan masukan dan arahan yang sangat berarti
dalam penulisan karya ilmiah ini, juga rekan-rekan
mahasiswa/i D-IV Teknik Informatika angkatan
2014 yang telah memberikan dukungan dalam
menyelesaikan penulisan karya ilmiah ini. Serta
seluruh pihak yang telah memberikan doa dan
dukungan demi kelancaran dan kemudahan selama
mengerjakan penelitian dan penulisan karya ilmiah.
DAFTAR PUSTAKA
!
[1]
K. K. Wijaya, “Riset Tren Pengembangan
Aplikasi Mobile,” Techinasia, [Online].
Available: https://id.techinasia.com/riset-tren-
pengembangan-aplikasi-mobile. [Diakses 25
25 2018].
[2]
S. Doug, High Performance Android Apps,
Sebastopol: O'Reilly Media, Inc, 2010.
[3]
T. S. Fernandes, ´. Cota dan . ´. F. Moreira,
“Performance Evaluation of Android
Applications: a Case Study,” Institute of
Informatics, Porto Alegre.
[4]
A. Leiva, Kotlin for Android Developers,
Lean Publishing, 2017.
[5]
R. K. Panchal dan A. K. Patel, “A comparative
study: Java Vs kotlin Programming in
Android,” International Journal of Innovative
Trends in Engineering & Research, vol. 2, no.
9, 2017.
[6]
J. Friesen, Learn Java for Android
Development, Appress Media, 2014.
[7]
Wikipedia, “Java (Programming Language),”
Wikipedia, [Online]. Available:
https://en.wikipedia.org/wiki/Java_(program
ming_language). [Diakses 2 Juli 2018].
[8]
ISO, “ISO/IEC 25010:2011,” 2011. [Online].
Available:
https://www.iso.org/obp/ui/#iso:std:iso-
iec:25010:ed-1:v1:en.
[9]
Wikipedia, “Object-oriented programming,”
Wikipedia, [Online]. Available:
https://en.wikipedia.org/wiki/Object-
oriented_programming. [Diakses 2 Juli 2018].
[10]
Qualcomm Technology Inc, “Snapdragon
Profiller,” Qualcomm Developer Network,
[Online]. Available:
https://developer.qualcomm.com/software/sn
apdragon-profiler. [Diakses 2 Juli 2018].
[11]
M. Arias dan R. Chakraborty, Functional
Kotlin, Birmingham: Packt Publishing Ltd,
2018.