Halo semua para pembaca arenasharing.com, kali ini kita lanjut pembahasan kita mengenai swift, adapun topik yang akan kita bahas adalah mengenai function.
Apa itu function? Function merupakan blok code yang disusun bersama untuk melakukan task tertentu. Sebuah function bertugas melakukan task tertentu seperti meminta inputan, memproses inputan, dan mengembalikan output. Setiap function memiliki nama yang menjelaskan apa yang dilakukan oleh function tersebut. Function membantu untuk mengatur code menjadi potongan code yang lebih kecil untuk task tertentu. Function juga menghindari untuk duplikasi code.
Function didefinisikan dengan keyword func diikuti dengan nama function. Untuk menggunakan suatu function, kita memanggil nama function yang diikuti oleh input value yang disebut argumen(apabila ada) sesuai dengan tipe dari parameter function tersebut. Argumen function harus selalu dalam urutan yang sama seperti list parameter function dan return value diikuti oleh ->.
Syntax:
- Function dengan parameter dan return value
func funcName(paramName: Type) -> returnType { //body function //logic business return output }
- Function tanpa parameter dengan return value
func funcName() -> returnType { //body function //logic business return output }
- Function dengan parameter tanpa return value
func funcName(paramName: Type) { //body function //logic business }
- Function tanpa parameter tanpa return value
func funcName() { //body function //logic business }
Parameter:
- Lokal Parameter
Lokal parameter hanya bisa diakses secara internal didalam function.
Syntax:func funcName(paramName: Type) { print(paramName) }
paramName sebagai lokal parameter karena diakses secara internal oleh funcName.
Contoh:
func hello(name: String) { print("Hello \(name)") } //untuk mengakses hello(name: "arenasharing") //output: Hello arenasharing
name hanya bisa diakses di dalam body function
- Eksternal Parameter
Parameter eksternal memungkinkan kita untuk memberi nama parameter fungsi agar tujuannya lebih jelas.
Syntax:func funcName(eks paramName: Type) { print(paramName) }
Contoh:
func helloWorld(name person: String) { print("Hello eksternal \(person)") } helloWorld(name: "arenasharing") //output Hello eksternal arenasharing
- Variadic Parameter
Ketika ingin mendefinisikan fungsi dengan beberapa argumen, kita bisa mendeklarasikan parameter sebagai variadic parameter. Parameter bisa ditetapkan sebagai variadic dengan memasukkan (…) setelah nama parameter. Variadic parameter menerima kosong atau banyak values dengan type tertentu.
Value yang diteruskan ke parameter variadic tersedia di dalam body function sebagai array dari tipe yang sesuai. Sebuah function hanya mempunyai paling banyak satu variadic parameter.
Syntax:func funcName(paramName: Type...) { print(paramName) }
Contoh:
func numbers<T>(data: T...) { for i in data { print(i) } } //cara mengakses numbers(data: 1,2,3,4,5) numbers(data: 1.5, 2.4, 9.5, 5.3) numbers(data: "one", "two", "three", "four", "five")
Dimana T merupakan type general.
- I/O Parameter
Function secara default menganggap parameter sebagai constant. I/O parameter menggunakan keyword ‘inout’ karena nilainya diteruskan ‘in’ ke function dan nilainya diakses dan dimodifikasi oleh body function dan dikembalikan ‘out’ dari function untuk mengubah argumen asli. Sebelum nama variable gunakan ‘&’ yang merujuk bahwa kita meneruskan argumen ke parameter in-out.
Contoh:func swapNumber(a: inout Int, b: inout Int) { let temp = a a = b b = temp } var number1 = 10 var number2 = 20 swapNumber(a: &number1, b: &number2) print(number1) //output: 20 print(number2) //output: 10
Function Type
Merupakan function yang dideklarasikan sebagai variabel ke suatu function.
Contoh:
func multiply(a: Int, b: Int) -> Int { return a * b } var multi: (Int, Int) -> Int = multiply let result = multi(10, 20) // output: 300
Multiply merupakan function sebagai variabel yang dideklarasikan ke nama function multi. Function multiply dan multi memiliki jumlah argumen, tipe dan return value yang sama.
Function Types as Parameter
Kita juga bisa pass function itu sendiri sebagai parameter type ke function lain.
Contoh:
func calculate(multiply: (Int, Int) -> Int, a: Int, b: Int) { print(multiply(a, b)) } calculate(multiply: multi, a: 3, b: 5)
Contoh-contoh diatas dapat dilihat pada link github berikut.
Demikian bahasan kali ini mengenai function swift. Semoga bermanfaat dan selamat mencoba.
Penulis terbuka menerima saran dan kritik untuk kebaikan artikel ini.