Pemrograman Kotlin

Kotlin

Pemrograman Kotlin

Kotlin merupakan bahasa yang diketik secara statis yang memiliki beberapa fitur hebat untuk dicoba jadi mari kita lihat dengan contoh dan juga cara menggunakan kotlin.

Apa itu Kotlin

Kotlin adalah bahasa pemrograman yang relatif baru yang dikembangkan oleh JetBrains untuk aplikasi multiplatform modern. Saat ini, Kotlin banyak digunakan untuk pengembangan Android daripada Java. Itu karena Kotlin aman, ringkas, dan menyenangkan untuk dibaca dan ditulis.

Tutorial Kotlin kami akan memandu Anda mempelajari Kotlin selangkah demi selangkah.


Tentang Pemrograman Kotlin

  • Open Source - Kompiler Kotlin, plugin Intellij IDEA, dan alat build semuanya open source.
  • Interoperable - Kotlin 100 persen interoperable dengan Java. Ini berarti semua kode Java/Android Anda saat ini bekerja dengan lancar dengan Kotlin.
  • Ringkas - Dibandingkan dengan Java, kode Kotlin jauh lebih ringkas. Selain itu, kode Kotlin jauh lebih ekspresif (lebih mudah dipahami dan ditulis).
  • Tool-friendly - Kotlin dikembangkan oleh JetBrains, perusahaan yang terkenal karena menciptakan alat pengembangan. Anda dapat memilih IDE Java untuk menulis kode Koltin.

Mengapa Belajar Kotlin?

  • Kotlin 100 persen dapat dioperasikan dengan Java. Karenanya kode Java/Android Anda berfungsi dengan Kotlin.
  • Kotlin memungkinkan Anda untuk memotong baris kode sekitar 40% (dibandingkan dengan Java).
  • Belajar Kotlin itu mudah. Sangat mudah jika Anda sudah tahu Java.
  • Kotlin ramah alat. Anda dapat menggunakan IDE Java atau baris perintah apa pun untuk menjalankan Kotlin.

Bagaimana cara belajar Kotlin?

  • Tutorial Kotlin dari Programiz - Kami menyediakan tutorial dan contoh Kotlin langkah demi langkah. Mulai dengan Kotlin.
  • Tutorial Kotlin Resmi - Referensi Kotlin dan tutorial Kotlin dari situs resminya adalah sumber paling tepercaya untuk mempelajari Kotlin.
  • Menulis banyak kode Kotlin - Satu-satunya cara Anda dapat mempelajari pemrograman adalah dengan menulis banyak kode.
Fitur Kotlin

Fungsi ekstensi:
Seperti namanya, ini menambahkan beberapa fungsionalitas tambahan ke komponen yang ada.
Lihat di bawah ini kami menambahkan fungsionalitas tambahan ke bilangan bulat yang mengalikan angka apa pun dengan 5.

menyenangkan Int.multi() = ini * 5cetak(50.multi())

Ini akan mencetak 250 sebagai hasilnya
Sekarang mari tambahkan teks selamat datang menggunakan fungsi ekstensi

fun String.greet():String { 
return this .plus( " we welcome you!" )
}
print("Jhon".sapa())

Ini akan mencetak Jhon kami menyambut Anda!

Pemeran pintar
Ini adalah fitur terbaik yang dapat Anda tanyakan untuk apa yang dilakukannya adalah memeriksa beberapa jenis dan daripada itu akan memungkinkan untuk melakukan semua operasi yang diizinkan untuk jenis tertentu seperti misalnya jika jenisnya adalah string, itu akan memungkinkan penyalinan, operasi panjang dll dan pada objek yang sama jika mendeteksi itu bilangan bulat daripada itu akan memungkinkan operasi dilakukan pada bilangan bulat. Bagaimana kita melakukannya? jadi untuk itu gunakan saja operator untuk mengecek tipenya

val n:Any = "Halo" 
ketika
(n) {
adalah String -> n. panjangnya
adalah
Int -> n.inc()
}

When sama seperti pernyataan switch.

Catatan: gips pintar tidak berfungsi ketika kompiler tidak dapat menjamin tentang perubahan variabel antara pemeriksaan dan penggunaan.

Pemeran pintar bekerja pada skenario berikut jika

  • val adalah variabel lokal
  • val bersifat pribadi atau internal

Argumen default dan bernama
Tidak adanya fitur ini di java membuat pengembang menambahkan konsep fungsi overloading karena semua parameter yang dideklarasikan harus dilewati oleh pemanggil tetapi dengan fitur ini Anda dapat menyingkirkan semua ini hanya dengan memberikan nilai default ke parameter yang ingin Anda jadikan opsional saat memanggil metode itu dan Anda bebas menggunakannya setelahnya tanpa terikat untuk memberikan nilai ke semua parameter. Dengan argumen bernama sekarang Anda dapat dengan mudah mengubah urutan parameter pada saat pemanggilan ini dilakukan dengan menulis nama argumen dan kemudian menetapkan nilainya.

fun argumentValid(num: Int, str: String = "12" ) { 
}
//Semua 3 adalah
argumen yang validValid(15, "Hei" )
argumenValid(str = "Nama" , num = 45) //Argumen bernama argumenValid
(45) //penggunaan argumen default

Pengembalian multi-nilai dari fungsi
Ada beberapa skenario di mana lebih dari 1 nilai perlu dikembalikan dari fungsi, sekarang dimungkinkan untuk melakukannya. Ini sebenarnya disebut sebagai deklarasi destructuring.

data kelas Mahasiswa( nama val :String, usia val :Int)siswa yang menyenangkanKesenangan (siswa: Siswa): Siswa { 
kembali Siswa ( nama siswa , siswa. usia )
}
val stud = Mahasiswa( "Jhon" ,24)
val (nama,umur) = mahasiswaFun (stud)
println(nama)
println(umur)

Kelas data


Ini paling umum di java untuk membuat kelas model dengan getter dan setter tetapi dengan kotlin yang perlu dilakukan hanyalah menambahkan data di depan kelas dan itu akan menjadi kelas model tidak perlu getter dan setter apa pun yang dapat Anda akses langsung anggota itu sendiri.

kelas publik Mahasiswa { nama String 
pribadi ; usia int pribadi ; public String getName() { mengembalikan nama ; } public void setName(Nama string) { this . nama = nama; } public int getAge() { kembali umur ; } public void setAge( int umur) { this . umur = umur; } }

















Kelas model ini di java sama dengan model berikut di kotlin

kelas data Siswa( internal val name :String, internal val age :Int)

Tidak ada lagi findViewById()
Ada juga ekstensi kotlin yang tersedia yang menghilangkan kebutuhan findViewById. Cukup tambahkan apply plugin: 'kotlin-android-extensions' di app.gradle

impor kotlinx.android.synthetic.main. activity_main .* 

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout. activity_main );

Memeriksa memeriksa = memeriksa baru ();
tvValue.setText(String.valueOf(memeriksa.callThis()));
}
}

Jika Anda telah mengamati daripada dengan baris impor library activity_main.* ditulis dengan baik itu karena nama xml di sini adalah activity_main yang berarti semua objek yang digunakan di kelas diambil dari file xml itu.


Fungsi orde tinggi
Jika fungsi Anda menerima fungsi sebagai parameter atau mengembalikan fungsi sebagai hasilnya, itu disebut fungsi orde tinggi. Mari kita lihat contoh tentang cara menggunakan fungsi orde tinggi

fun addValue(operasi:(Int,Int) -> Int):Int { 
kembali operasi(10,20)
}
addValue{num1,num2 -> num1 * num2} //Ini akan mencetak 200
addValue{num1,num2 -> num1 - num2} //Ini akan mencetak -10

Ini adalah contoh yang sangat mendasar dari fungsi orde tinggi yang menerima fungsi sebagai parameter, di sini operasi adalah nama dari fungsi tersebut.

Inter-operable dengan java
Apa yang membuat kotlin lebih menarik adalah bahwa keuntungan ekstra apa pun yang Anda miliki di kotlin dapat digunakan langsung di kode java Anda juga. Jika Anda ingin menggunakan kelas kotlin di kelas Java Anda daripada hanya membuat objek untuk kelas itu seperti yang biasa Anda buat di Java.

class Demo { 

fun Int.mul() = this * 10

fun String.greet():String {
return this .plus( " we welcome you!" )
}


fun addValue(operation:(Int,Int) -> Int): Int {
return operation(10,20)
}

fun callThis():Int {
return addValue { a,b -> a * b }
}
}

Fungsi-fungsi di atas didefinisikan di dalam Demo kelas kotlin sehingga untuk menggunakan kelas ini dalam file java buat objek untuk kelas ini dan mulai gunakan fungsi-fungsi ini.

MainActivity kelas publik memperluas AppCompatActivity { 

@Override
protected void onCreate(Bundle saveInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout. activity_main );

Demo demo = Demo baru ();
Log.v("Nomor:",""+demo.callThis());
Log.v("Nomor:",""+demo.greet("Jack"));
Log.v("Nomor:",""+demo.mul(25));
}
}

Keamanan
nol Pengecualian penunjuk nol kesalahan miliar dolar dapat dengan mudah dihindari dengan menggunakan kotlin operator. Cara kerjanya adalah pertama-tama memeriksa nilainya apakah itu nol atau tidak jika bukan nol daripada hanya melakukan operasi berikutnya misalnya.

val str:String = "name"
str = null // Karena str didefinisikan sebagai null simpan, ia akan menampilkan kesalahan
str.length

Secara default semua objek adalah null safe sehingga mereka tidak akan menerima null sebagai nilai tetapi ada skenario di mana nilainya bisa menjadi null jadi untuk kasus tersebut secara eksplisit Anda perlu mendefinisikannya dengan menambahkan ? setelah jenisnya.

val str: String ? = "name"
str = null
str.length //Ini akan menampilkan kesalahan sebagai ?. tidak digunakan dapat mengakibatkan NPE.
str?.length // Ini benar-benar valid sekarang.str!!.length //Ini akan menghasilkan NPE jika str adalah null.
Previous Post Next Post