Skip to main content

Function Varargs Parameter

Varargs Parameter adalah parameter function yang memungkinkan kita mengirimkan jumlah argument yang tidak terbatas ke dalam sebuah function.

Dengan vararg, kita tidak perlu menentukan berapa banyak argument yang akan diterima oleh function.

Sintaks Varargs

Bentuk umum:

fun namaFunction(vararg namaParameter: TipeData) {
// kode
}

Contoh:

fun hitungSemua(vararg values: Int): Int {
var total = 0

for (value in values) {
total += value
}

return total
}

Pada contoh tersebut:

vararg values: Int

berarti function hitungSemua() dapat menerima satu atau banyak nilai bertipe Int.

Contoh Pemanggilan Function

Function dapat dipanggil dengan jumlah argument yang berbeda.

Contoh:

hitungSemua(10)

Atau:

hitungSemua(10, 20)

Atau:

hitungSemua(10, 20, 30)

Bahkan dapat menerima lebih banyak nilai:

hitungSemua(10, 20, 30, 40, 50)

Semua argument tersebut akan diterima oleh parameter values.

Contoh Kasus Menghitung Semua Nilai

Kita dapat menggunakan vararg untuk membuat function yang menghitung total dari beberapa angka.

Contoh:

fun hitungSemua(vararg values: Int): Int {
var total = 0

for (value in values) {
total += value
}

return total
}

Pada function tersebut terdapat variabel:

var total = 0

Variabel total digunakan untuk menyimpan hasil penjumlahan.

Kemudian kita melakukan perulangan:

for (value in values) {
total += value
}

Setiap nilai yang terdapat pada values akan dijumlahkan ke dalam total.

Setelah seluruh nilai selesai diproses, function mengembalikan hasil menggunakan:

return total

Contoh Program Lengkap

fun hitungSemua(vararg values: Int): Int {
var total = 0

for (value in values) {
total += value
}

return total
}

fun main() {
val values = hitungSemua(10, 40, 30, 20)

println(values)
}

Output:

100

Perhitungannya adalah:

10 + 40 + 30 + 20 = 100

Cara Kerja vararg

Ketika function dipanggil:

hitungSemua(10, 40, 30, 20)

nilai-nilai tersebut akan diterima oleh:

vararg values: Int

Secara sederhana, kita dapat membayangkan values berisi:

10
40
30
20

Kemudian for mengambil setiap nilai satu per satu:

for (value in values) {
total += value
}

Prosesnya:

total = 0

total = 0 + 10
total = 10 + 40
total = 50 + 30
total = 80 + 20

total = 100

vararg dengan Jumlah Argument yang Berbeda

Keuntungan utama vararg adalah kita tidak perlu menentukan jumlah argument.

Contoh:

println(hitungSemua(10))

Output:

10

Contoh:

println(hitungSemua(10, 20))

Output:

30

Contoh:

println(hitungSemua(10, 20, 30))

Output:

60

Contoh:

println(hitungSemua(10, 20, 30, 40))

Output:

100

vararg dengan Parameter Lain

vararg juga dapat digunakan bersama parameter lainnya.

Contoh:

fun hitungTotal(nama: String, vararg values: Int): Int {
var total = 0

for (value in values) {
total += value
}

println("Nama: $nama")

return total
}

Pemanggilan:

val total = hitungTotal("Ucup", 10, 20, 30)

println("Total: $total")

Output:

Nama: Ucup
Total: 60

Pada contoh tersebut:

nama: String

adalah parameter biasa.

Sedangkan:

vararg values: Int

adalah parameter yang dapat menerima banyak argument.

vararg Harus Berada di Posisi yang Tepat

Dalam sebuah function, vararg biasanya digunakan setelah parameter wajib.

Contoh:

fun hitungTotal(nama: String, vararg values: Int): Int {
var total = 0

for (value in values) {
total += value
}

return total
}

Pemanggilan:

hitungTotal("Ucup", 10, 20, 30)

Argument pertama "Ucup" diberikan kepada parameter nama.

Sedangkan:

10, 20, 30

diberikan kepada values.

Kapan Menggunakan vararg?

vararg cocok digunakan ketika sebuah function membutuhkan jumlah argument yang dapat berubah-ubah.

Contohnya:

  • Menghitung total beberapa angka.
  • Menghitung rata-rata beberapa nilai.
  • Mencari nilai terbesar.
  • Mencari nilai terkecil.
  • Menggabungkan beberapa String.
  • Memproses daftar data yang jumlahnya tidak tetap.

Contoh mencari nilai terbesar:

fun nilaiTerbesar(vararg values: Int): Int {
var terbesar = values[0]

for (value in values) {
if (value > terbesar) {
terbesar = value
}
}

return terbesar
}

Penggunaan:

val result = nilaiTerbesar(10, 40, 30, 20)

println(result)

Output:

40

Kesimpulan

vararg digunakan ketika sebuah function dapat menerima jumlah argument yang tidak tetap.

Contoh:

fun hitungSemua(vararg values: Int): Int {
var total = 0

for (value in values) {
total += value
}

return total
}

Function tersebut dapat dipanggil dengan jumlah argument yang berbeda:

hitungSemua(10)
hitungSemua(10, 20)
hitungSemua(10, 20, 30)
hitungSemua(10, 20, 30, 40)

Dengan vararg, function menjadi lebih fleksibel karena kita tidak perlu menentukan jumlah argument yang harus diberikan sejak awal.