Skip to main content

Posts

Showing posts from April, 2016

Kotlin | kotlin.String steroid untuk java.lang.String

Sama seperti String di Java, Kotlin String adalah obyek immutable yang berarti sekali diinisialisasi, valuenya tidak akan bisa diubah. Jika dilakukan assignment value baru, yang sebenarnya terjadi adalah JVM akan membuat obyek String baru dengan value yang diassign. String kode = "Sebenarnya hubungan kita ini apa sih?" ; // misalkan object di memory adalah ABC kode = "Oke, besok aku datang ke Ayah kamu" ; // object yang ada di memory saat ini adalah XYZ Seperti halnya dengan Java, String literal di Kotlin juga dimulai dengan tanda petik ganda ("). Hanya saja class String di Kotlin memeliki beberapa kelebihan dibanding String di Java. Diantaranya: Setiap element character dari string bisa diakses dengan array syntax eg: kode[index], sedangkan di Java kode.charAt(index) Untuk iterasi tiap element Java for ( char c : kode.toCharArray()) { System. out .println(c); } Kotlin for (c in kode) { println (c) } String template, yakni dalam string l

I'm not that fanatic anymore ^^!

Haiiii * impersonate cara Takeru Satoh mengucapkan hai (iya dalam bahasa Jepang) di dorama Emperor's Cook :P Yak, sesuai judul post kali ini, saya sudah tidak sefanatik dulu terhadap bahasa pemrograman yang saya gunakan, yakni Java. Semua berawal ketika saya mengenal JVM language  lain (bahasa pemrograman yang berjalan di Java Virtual Machine ) seperti : Groovy yang mengusung Dynamic Typing Bagi programmer dynamic type seperti PHP mungkin akan merasa familiar dengan Groovy, karena kita tidak perlu mendeklarasikan tipe data pada variable. Saya sempat jatuh cinta pada bahasa ini, namun saya masih merasakan keamanan "bermain" OOP dengan static type. Scala dengan konsep Functional OOP (Object Oriented Programming) Bahasa ini membuka wawasan saya bahwa diluar pemrograman struktural dan berbasis object (imperative), pernah ada bahasa yang mengusung konsep functional  dan belakangan ini mulai muncul lagi ke permukaan dan bahkan banyak menyedot perhatian para developer

Java | Retrolambda, Coding dengan Java 8 untuk Java 5, 6, 7

Seperti yang kita ketahui bahwa versi paling akhir untuk saat ini dari Java adalah Java 8. Pada Java (sebagai bahasa pemrograman) 8 terdapat cukup banyak fitur baru yang memudahkan hidup kita sebagai programmer, terutama untuk mengurangi verbosity / boilerplate dari code yang kita tulis. Fitur-fitur tersebut antara lain adalah lambda expressions , method reference , dan try with resources . Lambda expressions (fitur ini dirilis mulai java 8) Sebagai contoh di swing, apabila kita menambahkan actionlistener pada button adalah sebagai berikut clickButton.addActionListener(new ActionListener() {     @Override     public void actionPerformed(ActionEvent event) {         System.out.println(event);     } }); terlihat bahwa koding yang kita tulis cukup banyak ( verbose ), namun dengan lambda expressions  kita cukup menuliskan clickButton.addActionListener((ActionEvent event) -> {     System.out.println(event); }); atau bahkan clickButton.addActionListener(event -> {     System