Function

Posted by

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.

Share to
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Leave a Reply

Your email address will not be published. Required fields are marked *