Migrasi Kode Bahasa Kotlin Android Studio – Setelah kemarin pembahasan mengenai kotlin di bagian pertama, kali ini kita akan membandingkan bahasa kotlin dengan j4va. Karena banyak artikel yang membahas ke unggulan dari kotlin tanpa ada dokumentasi kebenarannya. disini kita akan menciptakan project sederhana yang mempunyai beberapa komponen ibarat recycleview, cardview, picasso, sehingga akan menjadi ibarat gambar dibawah ini
1. Perbandingan penulisan isyarat memakai Kotlin dengan Java
Class Item Pojo Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class User { String title; String imgData; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getImgData() { return imgData; } public void setImgData(String imgData) { this.imgData = imgData; } } |
1 2 3 | class User(var name: String,var imageData: String) { } |
Class Adapter View
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | public class UserAdapter extends RecyclerView.Adapter<UserAdapter.UserHolder>{ private Context context; private ArrayList<User> items; public UserAdapter(Context context,ArrayList<User> items){ this.context = context; this.items = items; } @Override public UserHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.useritem,parent,false); return new UserHolder(view); } @Override public void onBindViewHolder(UserHolder holder, int position) { User user = items.get(position); holder.txtTitle.setText(user.getTitle()); Picasso.with(context) .load(user.getImgData()) .into(holder.imgUser); } @Override public int getItemCount() { return items.size(); } class UserHolder extends RecyclerView.ViewHolder{ TextView txtTitle; ImageView imgUser; public UserHolder(View itemView) { super(itemView); txtTitle = (TextView)itemView.findViewById(R.id.txtTitle); imgUser = (ImageView)itemView.findViewById(R.id.imgData); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class UserAdapter(var context: Context,var items: ArrayList<User>) : RecyclerView.Adapter<UserAdapter.UserHolder>() { override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): UserHolder { var view:View = LayoutInflater.from(parent!!.context).inflate(R.layout.useritem,parent,false) return UserHolder(view) } override fun onBindViewHolder(holder: UserHolder?, position: Int) { var user:User = items.get(position) holder!!.txtTitle.setText(user.name) Picasso.with(context) .load(user.imageData) .into(holder!!.imgData) } override fun getItemCount(): Int { return items.size } class UserHolder(itemView: View?) : RecyclerView.ViewHolder(itemView) { var txtTitle:TextView = itemView!!.findViewById(R.id.txtTitle) as TextView var imgData:ImageView = itemView!!.findViewById(R.id.imgData) as ImageView } } |
Setelah melihat 2 class tersebut bergotong-royong aku terkejut, alasannya yaitu perbandingannya berdasarkan aku jauh dan sangat sederhana dalam penulisan kode. dari beberapa method yang ada di j4va dapat di persempit penulisannya sehingga tidak terlalu panjang di editor. yang kedua kita akan membandingkan performa kedua bahasa tersebut dari sisi memory RAM dan penggunaan processor.
2. Perbandingan Performa bahasa Kotlin dengan bahasa Java


Kedua gambar tersebut melihatkan perbedaan yang tidak signifikan, tetapi masih di menangkan kotlin dalam sisi memory RAM atau processor dengan nilai perbedaan 100 mb. mungkin di karenakan project masih dalam kategori sederhana. jikalau project melaksanakan beberapa komputasi pengolahan gambar kemungkinan akan terlihat perbedaan kedua bahasa.
Kesimpulan saya, bahwa semakin berkembangnya bahasa pemograman yang di keluarkan oleh beberapa vendor, tujuannya bahasa tingkat tinggi yang gampang di pelajari oleh insan dan penggunaa hardware yang jadi lebih efisien. Kode sumber diatas juga dapat kau lihat di Github
Sumber aciknadzirah.blogspot.com
EmoticonEmoticon