Media Belajar Bahasa Pemrograman | by APPKEY

SwiftTutorial Swift 35 : Pemrograman Swift Extensions

Tutorial Swift 35 : Pemrograman Swift Extensions [+7 Contoh]

-

Last Updated on August 15, 2022 by

Swift extensions adalah cara menambahkan fungsi baru pada kelas, struktur ataupun tipe enumerasi yang sudah ada di Swift. Berikut ini adalah cara-cara pemrograman extension dalam Swift yang bisa Anda contoh.

Apa Itu Swift Extension?

Menambahkan tipe fungsi baru dapat dilakukan dengan extension dalam Swift. Akan tetapi, Anda tetap tidak bisa mengganti fungsi tersebut secara total. Anda hanya bisa menambahkannya saja sesuai kebutuhan.

6 fungsi utama dari Swift Extensions adalah:

  • Menambahkan properti komputasi beserta properti tipe komputasi.
  • Mendefinisikan metode type dan instance di Swift.
  • Menyediakan proses inisialisasi baru.
  • Mendefinisikan subskrip.
  • Mendefinisikan dan menggunakan tipe baru nest.
  • Menyesuaikan agar tipe fungsi yang ada sudah sesuai protokol.

Setiap extension dalam Swift selalu dideklarasikan dengan kata kunci ‘extension’.

Sintaksis Swift Extensions

Adapun bentuk sintaksis dari Swift Extensions adalah sebagai berikut:

extension SomeType {
// tambahkan fungsi baru di sini
}

Tipe fungsi yang sudah ada juga dapat ditambahkan dengan Swift Extension untuk menjadikannya sebuah sistem protokol standar. Bentuk sintaksnya masih serupa dengan pemrograman kelas atau struktur di Swift:

extension SomeType: SomeProtocol, AnotherProtocol {
// persyaratan protokol dijelaskan di sini
}

Swift Extension : Properti Komputasi

Dua jenis properti komputasi ‘instance’ dan ‘type’ dapat diperluas fungsinya memakai Swift extention. Berikut contohnya:

extension Int {
   var tambah: Int {return self + 9 }
   var kurang: Int { return self - 9 }
   var kali: Int { return self * 9 }
   var bagi: Int { return self / 9 }
}

let penambahan = 5.tambah
print("Hasil 1 = \(penambahan)")

let pengurangan = 10.kurang
print("Hasil 2 = \(pengurangan)")

let perkalian = 5.kali
print("Hasil 3 = \(perkalian)")

let pembagian = 18.bagi
print("Hasil 4 = \(pembagian)")

let hitung = 10.tambah + 5.kali
print("Hasil 5 = \(hitung)")

Anda akan mendapat hasil berikut setelah menjalankan kode di atas:

Hasil 1 = 14
Hasil 2 = 1
Hasil 3 = 45
Hasil 4 = 2
Hasil 5 = 64

Swift Extensions : Menambahkan Initializers Baru

Swift 4 menyediakan keleluasaan bagi programmer untuk menambahkan penginisasi (intializers) baru ke tipe fungsi yang sudah ada. Hal ini dapat dilakukan memakai extension dalam Swift.

Anda dapat menambahkan tipe fungsi kustom buatan sendiri untuk memperluas fungsi kode saat ini, begitu juga memasukkan opsi inisiasi tambahan.

Namun perlu diingat bahwa Swift Extention hanya mendukung kode init() saja, dan tidak mencakup deinit().

Contoh pemrograman extension di Swift dengan initializer baru:

Artikel Terkait  Tutorial Swift 41 : Mengenal Swift Recursion dan Contohnya
struct sum {
   var num1 = 2, num2 = 4
}

struct diff {
   var no1 = 4, no2 = 2
}

struct mult {
   var a = sum()
   var b = diff()
}

let calc = mult()
print ("Nilai pada mult sum: \(calc.a.num1, calc.a.num2)")
print("Nilai pada mult diff: \(calc.b.no1, calc.b.no2)")

let memcalc = mult(a: sum(num1: 12, num2: 18),b: diff(no1: 18, no2: 12))
print("Nilai pada mult sum sekarang: \(memcalc.a.num1, memcalc.a.num2)")
print("Nilai pada mult diff sekarang: \(memcalc.b.no1, memcalc.b.no2)")

extension mult {
   init(x: sum, y: diff) {
      let X = x.num1 + x.num2
      let Y = y.no1 + y.no2
   }
}

let a = sum(num1: 2, num2: 4)
print("Nilai pada sum: \( a.num1, a.num2)")

let b = diff(no1: 4, no2: 2)
print("Nilai pada diff: \(b.no1, b.no2)")

Output dari kode di atas adalah:

Nilai pada mult sum: (2, 4)
Nilai pada mult diff: (4, 2)
Nilai pada mult sum sekarang: (12, 18)
Nilai pada mult diff sekarang: (18, 12)
Nilai pada sum:(2, 4)
Nilai pada diff: (4, 2)

Swift Extension : Menambah Metode ‘Instance’ & ‘Type’

Metode (method) instance dan type juga dapat disematkan pada subclass memakai extension dalam Swift. Berikut contohnya:

extension Int {
   func topics(summation: () -> ()) {
      for _ in 0..<self {
         summation()
      }
   }
}

2.topics(summation: {
   print("Extensi block")
})

4.topics(summation: {
   print("Tipe casting blok")
})

Kode di atas akan menghasilkan output sebagai berikut di Playground:

Extensi block
Extensi block
Tipe casting blok
Tipe casting blok
Tipe casting blok
Tipe casting blok

Fungsi topics() mengambil tipe argumen ‘(summation: () → ())’ untuk menunjukkan bahwa fungsi tidak mengambil argumen apa pun, dan tidak akan mengembalikan nilai apa pun.

Untuk memanggil fungsi ini beberapa kali dalam struktur kode Anda, lakukan inisialisasi ‘for block’ diikuti oleh metode dengan topic().

Swift Extensions : Memutasi Metode Instance

Metode instance juga dapat dimutasikan saat dideklarasikan sebagai ekstensi.

Metode struktur dan enumerasi yang memodifikasi diri sendiri atau propertinya harus menandai metode instance sebagai ‘mutasi’; seperti halnya metode lain yang bermutasi dari implementasi aslinya.

Contoh kodingnya adalah sebagai berikut:

extension Double {
   mutating func circle() {
      let pi = 3.1415
      self = pi * self * self
   }
}

var Trial1 = 3
Trial1.circle()
print("Hasil = \(Trial1)")

var Trial2 = 6
Trial2.circle()
print("Hasil = \(Trial2)")

var Trial3 = 9
Trial3.circle()
print("Hasil = \(Trial3)")

Dengan hasil keluarannya adalah sebagai berikut:

Area of circle is: 28.2735
Area of circle is: 113.094
Area of circle is: 254.4615

Swift Extension : Menambahkan Subscripts

Extension dalam Swift juga bermanfaat untuk memasukkan subskrip (subscripts) baru pada struktur kode yang sudah dideklarasikan. Contoh kodenya adalah:

extension Int {
   subscript(var multtable: Int) -> Int {
      var no1 = 1
      while multtable > 0 {
         no1 *= 10
         --multtable
      }
      return (self / no1) % 10
   }
}

print(12[0])
print(7869[1])
print(786543[2])

Ketika program di atas dijalankan memakai Playground, maka hasilnya adalah:

2
6
5

Swift Extensions: Memperluas Nested Swift (Class, Structure, Enumeration)

Terakhir, Anda bisa memperluas tipe nested Swift untuk berbagai class, structure dan enumeration dengan extension seperti pada contoh ini:

extension Int {
   enum calc {
      case add
      case sub
      case mult
      case div
      case anything
   }
   var print: calc {
      switch self {
         case 0:
            return .add
         case 1:
            return .sub
         case 2:
            return .mult
         case 3:
            return .div
         default:
            return .anything
      }
   }
}

func result(numb: [Int]) {
   for i in numb {
      switch i.print {
         case .add:
            print(" 5 ")
         case .sub:
            print(" 10 ")
         case .mult:
            print(" 15 ")
         case .div:
            print(" 20 ")
         default:
            print(" 25 ")
      }
   }
}
result(numb: [0, 1, 2, 3, 4, 7])

Lalu hasil akhir saat kode di atas dijalankan adalah:

5
10
15
20
25
25

Demikianlah pembahasan cara-cara pengaplikasian extension dalam Swift beserta contoh kodingnya. Semoga ulasan di atas bermanfaat menambah pengetahuan programming Anda, ya.

Yuk ikuti terus CODEKEY untuk mendapat lebih banyak ilmu dan contoh pemrograman dari nol sampai mahir! Pelajari berbagai contoh koding dari aneka bahasa pemrograman secara gratis hanya di https://codekey.id/. Sampai bertemu lagi!


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Tutorial

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang bahasa pemrograman langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Blog Post Ranking 10

Tutorial PHP 22 : Cara Membuat Redirect PHP dengan Cepat dan Mudah

Jika Anda melakukan browsing di browser kesayangan Anda, mungkin Anda pernah melihat link yang berisikan “php redirect” atau yang...

Tutorial PHP 23 : Cara Membuat Messages Alert PHP

Alert box atau alert messages digunakan di situs web untuk menampilkan pesan peringatan kepada pengguna bahwa mereka telah memasukkan...

Tutorial PHP 2 : Cara Install PHP, Langkah Awal Belajar PHP

PHP adalah bahasa pemrograman gratis dan open source. Secara teknis tidak perlu menginstal PHP: sebagian besar host web dan...

Tutorial Python 9 : Cara Membuat Looping Python

Pada artikel sebelumnya, Codekey telah menjelaskan tentang Operasi Kondisional Python yang di dalamnya menyinggung tentang percabangan dan perulangan. Belajar...

Tutorial HTML/CSS 23 : Cara Membuat Form Sederhana dengan HTML

Form memiliki peran yang sangat krusial bagi website atau aplikasi untuk menjaga sistem keamanannya. Form HTML digunakan untuk mengumpulkan...

Tutorial SQL 8 : Constraint SQL, Bagaimana Fungsi dan Penggunaannya?

Pada artikel sebelumnya Anda telah mempelajari tentang wildcard SQL, pada artikel kali ini kami akan menjelaskan tentang constraint SQL. Jika...

Tutorial Javascript 8 : Array Javascript, Panduan Lengkap Cara Membuatnya

Seperti bahasa pemrograman yang berorientasi objek lainnya, dalam JavaScript juga terdapat array. Jika Anda memiliki banyak objek yang ingin...

Tutorial SQL 20 : Mari Pelajari Cara Menggunakan Fungsi GROUP by SQL

Pada pembahasan seri Tutorial SQL ke- 20 ini, Codekey akan membahas tentang GROUP BY yang merupakan statement di dalam...

Tutorial Python 7 : Python String Format dan Cara Mudahnya

Anda ingin belajar Python dan ingin menjadi ahli dalam bahasa pemrograman Python? Mari belajar bersama Codekey! Pada pembahasan kali...

Tutorial Python 8 : Langkah Mudah Membuat Operasi Kondisional pada Python

Pada pembahasan sebelumnya, Codekey telah menjelaskan kepada Anda tentang pengoperasian string pada Python mulai dari menggabungkan hingga memanipulasi string...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya