Plus Minus Kotlin Dibanding Java

Top apps yang menggunakan Kotlin. Sumber: Appbrain

Pengantar

Kendala waktu dan produktivitas adalah dua hal utama yang perlu diingat saat mengerjakan project Android, dimana hal ini tidak mudah dicapai dengan boilerplate code dan exception handlers yang banyak sekali jumlahnya di Java. Jadi, sekarang saatnya mengenalkan bahasa baru dan yang lebih matang, seperti yang telah dilakukan secara efektif oleh JetBrains dengan memperkenalkan Kotlin.

Artikel ini akan mendiskusikan pada bagian penting di mana letak kekurangan Java sebagai bahasa pemrograman Android, dan mengapa Kotlin akan segera mengambil alih posisi Java.

Bahasa yang paling populer dan paling banyak digunakan di pemrograman Android saat ini adalah Java. Java sudah begitu dominan di dunia pemrograman dan kata  "Java" secara otomatis muncul di benak para programmer setiap kali mereka mendengar tentang kata pemrograman. Tidak diragukan bahwa Java mengambil alih pasar pemrograman secara prematur dan menjadi tidak tergoyahkan. Tetapi rupanya Java adalah bahasa pemrograman nomor satu yang umumnya dipilih oleh programmer untuk karirnya.




Namun, menjadi populer atau banyak digunakan oleh banyak orang tidak berarti bahwa hal itu tak tertandingi di sepanjang waktu. Dengan berjalannya waktu akhirnya para programmer menyadari kesulitan Java, tentang karakteristiknya yang bertele-tele dan kerentanannya terhadap error. Begitulah sebenarnya yang terjadi di hampir semua aplikasi Android yang dibuat dengan Java. Tetapi jangan khawatir, karena Java bukanlah satu-satunya pilihan.

Meskipun demikian, tidak perlu khawatir dengan isu-isu kelemahan yang disebutkan untuk Java karena Kotlin ditujukan untuk mendukung para programmer Android. Dengan kata lain, para programmer tidak perlu lagi mengeluh ketika melihat Null Pointer Exception bermunculan, atau sebal ketika melihat kode Java yang berserakan. Kotlin hadir dengan segudang fitur yang bisa membuktikan untuk menjadi anugerah bagi para programmer.

Artikel ini juga akan mendiskusikan di bagian mana Kotlin meraih keunggulan atas Java dan mengapa sebenarnya Java, entah secara perlahan atau cepat tapi pasti, terdorong keluar dari kerangka pemrograman Android. Selainitu, artikel ini juga untuk memotivasi para programmer, bahwa sekarang adalah waktu yang paling tepat untuk memulai mempelajari Kotlin sebagai bahasa pemrograman modern yang lebih pragmatis.

Ada apa dengan Java?

Adalah sesuatu yang sangat tidak praktis bila kita mulai belajar dengan bahasa pemrograman yang menantang tetapi secara tak terduga muncul suatu bahasa baru di pasar. Java sudah menjadi platform bahasa yang independen terhadap platform tertentu dan disukai oleh banyak orang. Java sudah digunakan hampir di mana-mana dan untuk banyak tujuan tapi semua hal pasti memiliki kekurangan. Sepertinya setiap hari selalu ada celah keamanan yang selalu muncul di Java yang membuat setiap programmer lelah.

Java mulai terlihat tua

Memang benar bahwa Java adalah salah satu bahasa pemrograman terbaik, tapi waktu berlalu dengan cepat. Di dunia modern, tidak ada programmer yang bisa membayangkan coding tanpa integrasi atau dukungan fungsi lambda & stream, dan tidak ada programmer yang ingin repot dengan plugin untuk mencapai hal yang sama. Meskipun Android Nougat memperkenalkan fitur baru di Java 8 menggunakan Jack compiler, namun Jack Compiler hanya dapat digunakan untuk Versi SDK minimal 24 atau lebih tinggi. Dan mengikuti tren saat ini, update versi Android oleh masing-masing pengguna berlangsung dengan sangat lambat. Dengan demikian, tidak banyak keuntungan yang disebabkan kehadiran Jack Compiler ini di Android Nougat.

Java terlalu bertele-tele

Pernah pusing melihat tumpukan kode program di layar komputer Anda setelah menyelesaikan suatu project? Jawaban sebagian besar programmer adalah YA! Siapa yang tidak ingin melihat kode yang bersih dan sederhana, yang bisa dimengerti dengan mudah tidak hanya oleh diri sendiri tetapi oleh orang lain juga? Sayangnya, Java agak sulit mengatur kode secara ringkas. Menulis kode dengan ringkas dan pendek adalah salah satu kelemahan terbesar di Java yang dihadapi setiap programmer. Dan pada akhirnya, ternyata menjadi sesuatu yang menyebalkan bagi para programmer untuk mengelola beberapa file dengan banyak kode di dalamnya.

Java - bahasa yang tidak aman

Salah satu kelemahan Java yang terkenal adalah Null Pointer Exception, yang juga disebut sebagai "THE BILLION DOLLAR MISTAKE".
"Saya menyebutnya kesalahan yang bernilai miliaran dolar. Sejak ada penemuan tentang null reference pada tahun 1965 ... Hal ini menyebabkan banyak kesalahan, kerentanan, dan crash pada sistem yang tak terhitung banyaknya, yang bisa menyebabkan satu miliar dolar rasa sakit dan kerusakan dalam empat puluh tahun terakhir "- Sir Charles Antony Richard Hoare
Bahkan tidak ada satu aplikasi pun sekarang yang bebas dari Null Pointer Exception, karena Android menggunakan NULL secara berulang-ulang, yang menjadikannya salah satu kelemahan utama Java saat menangani Null Pointer Exception secara efisien. Penanganan handler secara eksplisit harus selalu digunakan untuk setiap instans object sehingga membuatnya terlalu membosankan untuk pekerjaan yang harus dilakukan berulang-ulang.

Kotlin - kemerdekaan programmer

Kotlin adalah bahasa pemrograman yang bersifat statically-typed yang berjalan di Java Virtual Machine dan juga dapat di-compile ke source code JavaScript atau menggunakan compiler LLVM. Pengembangan Kotlin berasal dari tim programmer JetBrains. Sintaks Kotlin tidak kompatibel dengan Java, tetapi Kotlin dirancang untuk bisa saling beroperasi bersama dengan kode Java. [1]
"Kami percaya Kotlin sangat sesuai untuk Android tidak hanya karena memberi programmer apa yang mereka inginkan, tapi juga karena sesuai dengan semangat Android." – Google Developer Product Group.
Untuk mengurangi penderitaan para programmer, Kotlin bersifat pragmatis dan merupakan bahasa yang lebih matang yang hadir dengan sejumlah fitur yang menakjubkan. Alasan mengapa Kotlin menonjol di tengah-tengah berbagai bahasa pemrograman adalah bahwa karena Kotlin mendobrak keterbatasan Java dan secara positif mempengaruhi alur kerja proses pengembangan project dari hari ke hari. Ini adalah hal yang sangat hebat dan ada beberapa hal lain yang bisa memikat para programmer.

Interoperabilitas 100%

Fitur pertama dan paling menonjol di Kotlin adalah interoperabilitas. Programmer bisa memanggil kode yang ditulis di Java ke Kotlin dan sebaliknya. Jadi, tidak perlu mengonversi keseluruhan project (Java) Anda menjadi Kotlin dari awal. Cukup masuk saja komputer Anda, dan mulailah menuliskan kode Kotlin ke program Java yang sudah ada. Satu hal yang perlu diingat adalah bahwa sintaks Kotlin tidak sama/kompatibel dengan Java, tetapi Kotlin dirancang untuk beroperasi/kompatibel dengan kode yang ditulis dengan Java.

Terbebas dari Null Pointer Exception

Programmer tidak perlu resah lagi karena khawatir dengan Null Pointer Exceptions, karena Kotlin akan men-cek nilai NULL dari runtime menjadi ke compile time. Ini berarti Null safety adalah bagian dari sistem itu sendiri. Di Kotlin, semua variabel adalah non-null. Jadi, untuk mendeklarasikan variabel yang nullable, cukup tambahkan saja '?'
Misalnya, jika Anda mencoba mendeklarasikan variabel seperti yang ditunjukkan pada Contoh 1, compiler akan menghasilkan error “Null cannot be a value of non-null type string”
Contoh 1 
nama var: String
nama = null
Jadi, programmer perlu menyebutkan secara eksplisit variabel null, yaitu seperti yang ditunjukkan pada Contoh 2 berikut dengan tanda '?'.
Contoh 2
nama var: String?
nama = null
Kotlin tidak bertele-tele

Tidak ada programmer yang suka menulis banyak baris kode untuk fungsi yang kecil. Untuk memperbaiki situasi, Kotlin membantu programmer menulis kode secara ringkas dan lebih bersih sehingga membantu menghemat waktu dan mengurangi kode yang berserakan & berulang-ulang. Kotlin bisa memahami kode dan dapat menyimpulkan jenis deklarasi variabel dan juga getters / equals / hashcode yang dihasilkan oleh compiler. Ini membantu programmer untuk menghilangkan hal-hal yang mengganggu untuk menempatkan titik koma setelah setiap statemen. Hal ini akan menghemat waktu sekaligus membantu dalam meningkatkan produktivitas. Contoh 3 menunjukkan contoh sederhana untuk membuktikan bahwa Kotlin lebih tidak bertele-tele dibanding dengan Java.
Contoh 3
System.out.println (); //Java
println () // Kotlin (tanpa titik koma apapun)
Smart Casts

Tidak perlu lagi ada kekhawatiran tentang operator casting secara eksplisit karena compiler Kotlin akan menyisipkan secara otomatis dimanapun dibutuhkan. Untuk memeriksa apakah sebuah objek sesuai dengan tipe yang diberikan saat runtime, programmer biasanya menggunakan operator 'is' atau '! Is'.
Sebagai contoh, mari kita simak sebuah fungsi 'MethodX' seperti yang dideklarasikan pada Contoh 4. Misalkan disini 'obj' adalah suatu kelas jika tidak null. Tetapi tidak perlu khawatir dengan men-cek null atau tidak atau men-cek tipe object nya, inilah gunanya Smart Casts.
Contoh 4
fun methodX(obj : Any?){
// coba bayangkan jika kita perlu memeriksa sebuah string
if (obj == null || obj !is String)
{ return }
// mulai sekarang dan seterusnya, obj akan dianggap sebagai String dan bukan Null, yang menghindarkan kita dari kerumitan memeriksa null atau melakukan casting secara eksplisit
val length_string = obj.length
}
Destrukturisasi terhadap Deklarasi

Men-destrukturisasi berarti memperlakukan satu objek sebagai satu set beberapa variabel, yaitu mendeklarasikan beberapa variabel untuk satu objek dalam satu kali jadi.
Misalnya, mari kita perhatikan nama dan umur seseorang. Dengan pernyataan yang ditunjukkan pada Contoh 5, kita telah membuat 2 variabel baru.
Contoh 5 
val orang = orang ("Manish", 21)
val (nama, umur) = orang
// 2 variabel  yang kita buat
println (nama)
println (umur)
Pada bagian kompilasi, destrukturisasi kompilasi akan di-compile seperti yang ditunjukkan pada Contoh 6. Selain itu, destrukturisasn deklarasi juga dapat digunakan untuk lambda dan juga loop.
Contoh 6 
nama val = person.component1 ();
umur val = person.component2 ();
IDE dan Plugin yang mengagumkan

Kotlin yang merupakan produk dari JetBrains tidak perlu dikhawatirkan lagi, karena JetBrains adalah salah satu perusahaan terbaik yang mengkhususkan diri dalam menciptakan IDE terbaik. Untuk mendapatkan Kotlin, cukup pasang plugin di Android Studio atau bahkan di Eclipse (Cukup semudah itu).
Plugin lain yang menakjubkan adalah "Convert Java file to Kotlin" yang mengubah kode Java yang ada ke Kotlin. Fitur ini sangat berguna jika kita memiliki banyak kode Java dan merasa sulit untuk mencampurnya dengan Kotlin di tengah-tengahnya. Jadi begitulah, Kotlin akan memudahkan kita lagi.
Catatan: Untuk Android Studio versi 3 ke atas, sudah otomatis ada plugin untuk Kotlin seperti yang dimaksudkan di atas.

Apakah Kotlin adalah bahasa yang sempurna?

Pertanyaan yang akan muncul di benak kita sekarang setelah membaca fitur yang mantap di Kotlin untuk membuat pemrograman menjadi mudah adalah "Wow, itu terlihat hebat. Tetapi apakah hal itu merupakan hal yang sempurna? ". Jawabannya adalah tidak. Kotlin mungkin adalah bahasa yang paling menjanjikan tapi bahkan bahasa yang lebih baik dari Kotlin nanti tetaplah memiliki beberapa kekurangan. Peribahasa klasik: “Tidak akan ada yang sempurna”.

Kompilasi yang lamban

Kelemahan kecil penggunaan Kotlin adalah kecepatan kompilasi yang relatif lebih lambat dibanding dengan bahasa kompetitornya.

Komunitas programmer yang lebih kecil

Meskipun adopsi Kotlin relatif cukup cepat di antara para programmer, Kotlin masih memiliki komunitas programmer yang relatif kecil untuk saat ini. Ini berarti lebih sulit untuk menemukan solusi jika kita punya masalah kode pemrograman pada titik tertentu. Misalnya, mencari Kotlin di StackOverflow akan menemukan sekitar 3.600 posting sementara ada lebih dari 1.000.000 posting yang terkait dengan Java.

Ukuran package yang lebih besar

Masalah lain dengan Kotlin adalah bahwa produk akhirnya lebih besar dari pada pendahulunya. Dibandingkan dengan Java, ukuran kemasan Kotlin lebih besar.

Java ke Kotlin

Konversi kode Java ke Kotlin adalah suatu keuntungan tapi mungkin hanya mengubah sekitar 80% kode yang bisa diubah secara mulus. Sisanya 20% akan terlihat acak-acakan dan bisa terlalu membosankan untuk dirapikan.

Kesimpulan

Kotlin secara keseluruhan merupakan bahasa pemrograman yang selalu diimpikan oleh banyak programmer, terutama saat mengerjakan hal yangn membosankan di Java. Kotlin juga membuat pemrograman Android jauh lebih menarik dan mudah dipelajari. Kotlin juga mengurangi kompleksitas kode dan membantu programmer menjaga pengelolaan kode dengan cara yang lebih baik. Dengan memperhitungkan semua hal tersebut, jika kita adalah programmer Android, kita harus mencoba Kotlin. Konverter sintaks otomatis di Android Studio yang mendeteksi kode Java dan bisa mengkonversi ke Kotlin merupakan keuntungan karena mengubah sebagian besar kode Java dengan mulus. Singkatnya, Kotlin adalah hal besar dimana kita akan beralih, jika kita adalah penggemar berat Android. Bahkan meskipun masih ada beberapa kekurangan, Kotlin akan membantu kita untuk menghemat banyak waktu dengan cara yang jauh lebih rapi dan bermanfaat.

Jadi silakan ambil di PC, download Android Studio versi 3.0 ke atas dan silahkan mulai. Sekarang adalah waktu terbaik untuk belajar Kotlin karena usianya yang relatif masih muda dan belum banyak orang yang memiliki pengalaman yang dalam dengan Kotlin.

References:
Referensi utama:Kotlin – The unrivalled android programming language lineage -  Jangid, Manish - http://imperialjournals.com/index.php/IJIR/article/view/5491
[1] Kotlin (Programming Language) - https://en.wikipedia.org/wiki/Kotlin_(programming_language)



No comments: