DEV Community

Cover image for Kotlin: Fungsi
Gillar Prasatya
Gillar Prasatya

Posted on

Kotlin: Fungsi

Image description
Untuk membuka tautan, lebih di sarankan --> klik kanan, lalu pilih buka link di tab baru agar tidak menutup artikel ini.

Fungsi

Sebuah fungsi itu mirip dengan sebuah program yg kecil yang memiliki nama-nya sendiri, dan dapat dijalankan (dipanggil) dengan memanggil nama tersebut dari fungsi lain.

Fungsi dalam pemrograman bisa dibayangkan seperti Alat Khusus dalam Kotak Peralatan. Misalnya, bayangkan Kita memiliki Kotak Peralatan yang berisi berbagai Alat, dan salah satunya adalah Alat Khusus yang disebut "DoSomething." Alat ini memiliki kemampuan khusus dan dapat diaktifkan dengan memanggil namanya yaitu "DoSomething.".

Sebuah fungsi adalah kumpulan aktivitas yang digabungkan bersama, dan ini adalah cara dasar untuk mengatur program kita dan menggunakan kembali potongan kode tertentu.

Kita memberikan informasi ke dalam fungsi, kemudian fungsi menggunakan informasi tersebut untuk melakukan perhitungan dan menghasilkan output, seperti nilai atau hal lainnya. Bentuk dasar dari sebuah fungsi adalah sebagai berikut:

fun namaFungsi(p1: Tipe1, p2: Tipe2, ...): TipeHasil {

  baris kode

  return hasil

}
Enter fullscreen mode Exit fullscreen mode

p1 dan p2 adalah istilah untuk Parameter, yang bisa dianggap seperti informasi atau data yang dimasukkan ke dalam fungsi. Setiap parameter memiliki nama identifikasi (p1, p2) diikuti oleh titik dua dan jenis data dari parameter tersebut. Tanda kurung tutup dari daftar parameter diikuti oleh titik dua dan jenis data hasil yang dihasilkan oleh fungsi. Baris kode dalam tubuh fungsi diapit oleh kurung kurawal. Ekspresi yang mengikuti kata kunci return adalah hasil yang dihasilkan oleh fungsi ketika selesai.

Sebuah parameter itu seperti aturan yang mengatur apa yang bisa dimasukkan ke dalam fungsi—bisa dianggap seperti pemain pengganti dalam permainan sepak bola. Sedangkan argumen adalah pemain aktual yang Anda masukkan ke dalam permainan, atau nilai sebenarnya yang Anda berikan ke dalam fungsi.

Gabungan dari nama, parameter, dan jenis keluaran dari fungsi itu disebut sebagai function signature, mirip dengan kombinasi nama, aturan, dan peran pemain dalam tim sepak bola.

Berikut adalah contoh fungsi sederhana yang disebut multiplyByTwo():

// Functions/MultiplyByTwo.kt

fun multiplyByTwo(x: Int): Int {  // [1]

  println("Di dalam multiplyByTwo") // [2]

  return x * 2

}

fun main() {

  val r = multiplyByTwo(5)        // [3]

  println(r)

}

/* Output:

Di dalam multiplyByTwo

10

*/
Enter fullscreen mode Exit fullscreen mode

[1] Perhatikan kata kunci fun, nama fungsi, dan daftar parameter yang terdiri dari satu parameter. Fungsi ini mengambil parameter Int dan mengembalikan Int.

[2] Dua baris ini adalah tubuh fungsi atau tubuh blok. Baris terakhir mengembalikan nilai dari perhitungan x * 2 sebagai hasil fungsi.

[3] Baris ini memanggil fungsi dengan argumen yang sesuai, dan menangkap hasilnya ke dalam val r. Pemanggilan fungsi meniru bentuk deklarasinya: nama fungsi, diikuti oleh argumen di dalam tanda kurung.

Kode fungsi dijalankan dengan cara memanggil fungsi, dan kita menggunakan nama fungsi seperti multiplyByTwo() sebagai cara singkat untuk mengakses kode tersebut. Oleh karena itu, fungsi adalah cara paling dasar untuk membuat kode menjadi lebih sederhana dan dapat digunakan kembali dalam pemrograman. Kita juga bisa memahami fungsi sebagai sesuatu seperti rumus matematika yang dapat diisi dengan nilai tertentu (parameter).

println() itu sebenarnya seperti memanggil nomor hotline yang sudah disiapkan oleh Kotlin. Jadi, kita menggunakan nomor ini untuk melakukan sesuatu, dan Kotlin sudah menyiapkan nomor tersebut sebagai alat yang sudah jadi untuk kita gunakan.

Jika fungsi tidak menghasilkan informasi yang penting, jenis hasilnya disebut Unit. Kita bisa menetapkannya secara jelas jika perlu, tetapi Kotlin memperbolehkan untuk tidak menyertakannya:

// Functions/SayHello.kt

fun sayHello() {

  println("Halo!")

}

fun sayGoodbye(): Unit {

  println("Sampai jumpa!")

}

fun main() {

  sayHello()

  sayGoodbye()

}

/* Output:

Halo!

Sampai jumpa!

*/
Enter fullscreen mode Exit fullscreen mode

Baik sayHello() maupun sayGoodbye() mengembalikan Unit, namun sayHello() tidak memerlukan deklarasi yang eksplisit. Fungsi main() juga menggunakan Unit.

Jika suatu fungsi hanya terdiri dari satu pernyataan saja, Kita bisa gunakan cara singkat dengan langsung menulis ekspresi setelah tanda sama dengan, seperti ini:

fun namaFungsi(arg1: Tipe1, arg2: Tipe2, ...): TipeHasil = ekspresi
Enter fullscreen mode Exit fullscreen mode

Bagian dalam fungsi yang dikelilingi oleh kurung kurawal disebut tubuh blok. Sementara itu, jika fungsi menggunakan tanda sama dengan, itu disebut tubuh ekspresi.

Contohnya, pada fungsi multiplyByThree() di bawah ini:

// Functions/MultiplyByThree.kt

fun multiplyByThree(x: Int): Int = x * 3

fun main() {

  println(multiplyByThree(5))

}

/* Output:

15

*/
Enter fullscreen mode Exit fullscreen mode

Ini adalah cara singkat untuk menggambarkan bahwa fungsi tersebut mengembalikan hasil dari perhitungan x * 3 tanpa perlu menggunakan kurung kurawal dan kata kunci "return" secara eksplisit di dalam tubuh fungsi.

Kotlin dapat mengetahui jenis data yang dikembalikan oleh suatu fungsi yang memiliki tubuh ekspresi. Contohnya dapat dilihat pada kode berikut:

// Functions/MultiplyByFour.kt

fun multiplyByFour(x: Int) = x * 4

fun main() {

  val result: Int = multiplyByFour(5)

  println(result)

}

/* Output:

20

*/
Enter fullscreen mode Exit fullscreen mode

Dari sini, Kotlin secara otomatis mengetahui bahwa fungsi multiplyByFour() mengembalikan nilai dengan tipe data Int.

Kotlin bisa otomatis menentukan tipe hasil kembali jika sebuah fungsi hanya berisi satu ekspresi. Jika fungsi memiliki tubuh yang lebih kompleks (tubuh blok) dan Kita tidak menyebutkan tipenya, maka fungsi tersebut akan mengembalikan "Unit."

Saat membuat fungsi, lebih baik pilih nama yang menjelaskan fungsinya dengan baik. Ini membuat kode menjadi lebih mudah dimengerti tanpa perlu penjelasan tambahan. Kadang-kadang, keterbatasan lebar baris membuat kita tidak bisa menggunakan nama yang sejelas yang diinginkan dalam buku ini.

Sumber - Atomic kotlin Sample

Top comments (0)