Media Belajar Bahasa Pemrograman | by APPKEY

SwiftTutorial Swift 34 : Kupas Tuntas Swift Type Casting...

Tutorial Swift 34 : Kupas Tuntas Swift Type Casting dari Nol

-

Last Updated on August 10, 2022 by

Swift Type Casting digunakan untuk memvalidasi tipe instance “Type Casting” dalam bahasa pemrograman Swift 4. Fungsi ini akan memeriksa apakah sebuah tipe instance merupakan bagian dari super class, subclass, atau memiliki kedudukan tersendiri.

Swift Type Casting 4 memiliki dua operator, yakni ‘is’ untuk memeriksa tipe nilai; dan ‘as’ untuk mentransmisikan nilai tipe tersebut ke tipe yang berbeda.

Type Casting Swift juga bisa mengecek apakah sebuah instance mengikuti standar kesesuaian protokol tertentu atau tidak.

Untuk lebih lengkapnya, kali ini kita akan belajar Swift Type Casting secara tuntas disertai aneka contoh aplikasinya. Yuk langsung saja kita simak bersama tutorialnya!

Belajar Swift Type Casting : Mendefinisikan Hierarki Kelas (Class)

Type Casting dipakai untuk memeriksa jenis instance di Swift, guna mengetahui apakah komponen tersebut masuk ke dalam jenis kelas tertentu.

Ia juga akan turut mengecek susunan hierarki class dan subclass dari instance. Apabila tipe instance yang dicek berada pada struktur yang berbeda, maka Type Casting akan  memindahkannya untuk menyamaratakan kedudukan.

Contoh coding definisi hierarki class pada Swift Type Casting:

class Subjects {
   var physics: String
   init(physics: String) {
      self.physics = physics
   }
}

class Chemistry: Subjects {
   var equations: String
   init(physics: String, equations: String) {
      self.equations = equations
      super.init(physics: physics)
   }
}

class Maths: Subjects {
   var formulae: String
   init(physics: String, formulae: String) {
      self.formulae = formulae
      super.init(physics: physics)
   }
}

let sa = [ Chemistry(physics: "solid physics", equations: "Hertz"),
   Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz")]

let samplechem = Chemistry(physics: "solid physics", equations: "Hertz")
print("Instance physics is: \(samplechem.physics)")
print("Instance equation is: \(samplechem.equations)")

let samplemaths = Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz")
print("Instance physics is: \(samplemaths.physics)")
print("Instance formulae is: \(samplemaths.formulae)")

Ketika kode program di atas dijalankan memakai Swift Playfground, maka hasilnya akan menjadi sebagai berikut :

Instance physics adalah: solid physics
Instance equation adalah: Hertz
Instance physics adalah: Fluid Dynamics
Instance formulae adalah: Giga Hertz

Belajar Swift Type Checking (“is”)

Type Checking di Swift dilakukan dengan kode operasi “is”. Kode ini mencari tahu apakah sebuah instance termasuk ke dalam jenis subclass tertentu.

Apabila terbukti benar/cocok, maka Type Checking akan mengembalikannya sebagai ‘true’, dan menjalankan ‘false’ kalau sebaliknya. Contoh kode pemrogramannya adalah:

class Subjects {
   var physics: String
   init(physics: String) {
      self.physics = physics
   }
}

class Chemistry: Subjects {
   var equations: String
   init(physics: String, equations: String) {
      self.equations = equations
      super.init(physics: physics)
   }
}

class Maths: Subjects {
   var formulae: String
   init(physics: String, formulae: String) {
      self.formulae = formulae
      super.init(physics: physics)
   }
}

let sa = [
   Chemistry(physics: "solid physics", equations: "Hertz"),
   Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz"),
   Chemistry(physics: "Thermo physics", equations: "Decibels"),
   Maths(physics: "Astro Physics", formulae: "MegaHertz"),
   Maths(physics: "Differential Equations", formulae: "Cosine Series")]

let samplechem = Chemistry(physics: "solid physics", equations: "Hertz")
print("Instance physics is: \(samplechem.physics)")
print("Instance equation is: \(samplechem.equations)")

let samplemaths = Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz")
print("Instance physics is: \(samplemaths.physics)")
print("Instance formulae is: \(samplemaths.formulae)")

var chemCount = 0
var mathsCount = 0
for item in sa {
   if item is Chemistry {
      ++chemCount
   } else if item is Maths {
      ++mathsCount
   }
}

print("Subjects in chemistry contains \(chemCount) topics and maths contains \(mathsCount) topics")

 

Output dari kode di atas adalah:

Instance physics adalah: solid physics
Instance equation adalah: Hertz
Instance physics adalah: Fluid Dynamics
Instance formulae adalah: Giga Hertz
Subjek kimia (chemistry) mengandung 2 topik, dan matematika (math) memuat 3 topik

Belajar Swift Type Downcasting (“as?” dan “as!”)

Berikutnya ada Swift Type Downcasting. Ada dua jenis operator yang bisa kita gunakan untuk men-downcasting berbagai tipe subclass di Swift, yaitu “as?” dan “as!”.

Keduanya sama-sama digunakan untuk mengembalikan nilai dalam kondisi nihil (nol), namun pada situasi yang berbeda.

Kode “as?” dapat mengembalikan nilai opsional saat nilai instance kembali ke titik nihil. Sementara “as!” dipakai sewaktu terjadi kegagalan downcasting itu sendiri.

“as!” dapat mengembalikan force unwrapping seperti yang pernah dibahas dalam proses Swift chaining optional. Akibatnya, muncul runtime error sebagai penanda downcast gagal.

Contoh koding downcasting pada Swift:

Artikel Terkait  Tutorial Swift 6 : Type Optional Swift dan Cara Menggunakannya
class Subjects {
   var physics: String
   init(physics: String) {
      self.physics = physics
   }
}

class Chemistry: Subjects {
   var equations: String
   init(physics: String, equations: String) {
      self.equations = equations
      super.init(physics: physics)
   }
}

class Maths: Subjects {
   var formulae: String
   init(physics: String, formulae: String) {
      self.formulae = formulae
      super.init(physics: physics)
   }
}

let sa = [
   Chemistry(physics: "solid physics", equations: "Hertz"),
   Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz"),
   Chemistry(physics: "Thermo physics", equations: "Decibels"),
   Maths(physics: "Astro Physics", formulae: "MegaHertz"),
   Maths(physics: "Differential Equations", formulae: "Cosine Series")]

let samplechem = Chemistry(physics: "solid physics", equations: "Hertz")
print("Instance physics is: \(samplechem.physics)")
print("Instance equation is: \(samplechem.equations)")

let samplemaths = Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz")
print("Instance physics is: \(samplemaths.physics)")
print("Instance formulae is: \(samplemaths.formulae)")

var chemCount = 0
var mathsCount = 0

for item in sa {
   if let print = item as? Chemistry {
      print("Chemistry topics are: '\(print.physics)', \(print.equations)")
   } else if let example = item as? Maths {
      print("Maths topics are: '\(example.physics)', \(example.formulae)")
   }
}

Saat program di atas dijalankan di Playground, maka hasilnya adalah seperti ini:

Instance physics adalah: solid physics
Instance equation adalah: Hertz
Instance physics adalah: Fluid Dynamics
Instance formulae adalah: Giga Hertz
Chemistry topics adalah: 'solid physics', Hertz
Maths topics adalah: 'Fluid Dynamics', Giga Hertz
Chemistry topics adalah: 'Thermo physics', Decibels
Maths topics adalah: 'Astro Physics', MegaHertz
Maths topics adalah: 'Differential Equations', Cosine Series

Swift Type Casting : Any dan Any Object

Terakhir, ada Type Casting Swfit dengan kata kunci “Any” dan “Any Object”. Berikut fungsi dan contoh pemakaiannya:

Swift Type Casting “Any”

Kata kunci “Any” digunakan untuk mewakili instance dari tipe apapun, termasuk yang berupa tipe fungsi. Contoh pemrograman Type Casting “Any”:

class Subjects {
   var physics: String
   init(physics: String) {
      self.physics = physics
   }
}

class Chemistry: Subjects {
   var equations: String
   init(physics: String, equations: String) {
      self.equations = equations
      super.init(physics: physics)
   }
}

class Maths: Subjects {
   var formulae: String
   init(physics: String, formulae: String) {
      self.formulae = formulae
      super.init(physics: physics)
   }
}

let sa = [
   Chemistry(physics: "solid physics", equations: "Hertz"),
   Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz"),
   Chemistry(physics: "Thermo physics", equations: "Decibels"),
   Maths(physics: "Astro Physics", formulae: "MegaHertz"),
   Maths(physics: "Differential Equations", formulae: "Cosine Series")]

let samplechem = Chemistry(physics: "solid physics", equations: "Hertz")
print("Instance physics is: \(samplechem.physics)")
print("Instance equation is: \(samplechem.equations)")

let samplemaths = Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz")
print("Instance physics is: \(samplemaths.physics)")
print("Instance formulae is: \(samplemaths.formulae)")

var chemCount = 0
var mathsCount = 0

for item in sa {
   if let print = item as? Chemistry {
      print("Chemistry topics are: '\(print.physics)', \(print.equations)")
   } else if let example = item as? Maths {
      print("Maths topics are: '\(example.physics)', \(example.formulae)")
   }
}

var exampleany = [Any]()

exampleany.append(12)
exampleany.append(3.14159)
exampleany.append("Example for Any")
exampleany.append(Chemistry(physics: "solid physics", equations: "Hertz"))

for print in exampleany {
   switch print {
      case let someInt as Int:
         print("Integer value is \(someInt)")
      case let someDouble as Double where someDouble > 0:
         print("Pi value is \(someDouble)")
      case let someString as String:
         print("\(someString)")
      case let phy as Chemistry:   
         print("Topics '\(phy.physics)', \(phy.equations)")
      default:
         print("None")
   }
}

 

Lalu hasilnya adalah:

Instance physics adalah: solid physics
Instance equation adalah: Hertz
Instance physics adalah: Fluid Dynamics
Instance formulae adalah: Giga Hertz
Chemistry topics adalah: 'solid physics', Hertz
Maths topics adalah: 'Fluid Dynamics', Giga Hertz
Chemistry topics adalah: 'Thermo physics', Decibels
Maths topics adalah: 'Astro Physics', MegaHertz
Maths topics adalah: 'Differential Equations', Cosine Series
Integer value adalah 12
Pi value adalah 3.14159
Contoh Any
Topics 'solid physics', Hertz

Swift Type Casting “AnyObject”

Keyword “AnyObject” dipakai untuk merepresentasikan instance dari tipe kelas ‘any’. Contoh programmingnya:

class Subjects {
   var physics: String
   init(physics: String) {
      self.physics = physics
   }
}

class Chemistry: Subjects {
   var equations: String
   init(physics: String, equations: String) {
      self.equations = equations
      super.init(physics: physics)
   }
}

class Maths: Subjects {
   var formulae: String
   init(physics: String, formulae: String) {
      self.formulae = formulae
      super.init(physics: physics)
   }
}

let saprint: [AnyObject] = [Chemistry(physics: "solid physics", equations: "Hertz"),
   Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz"),
   Chemistry(physics: "Thermo physics", equations: "Decibels"),
   Maths(physics: "Astro Physics", formulae: "MegaHertz"),
   Maths(physics: "Differential Equations", formulae: "Cosine Series")]

let samplechem = Chemistry(physics: "solid physics", equations: "Hertz")
print("Instance physics is: \(samplechem.physics)")
print("Instance equation is: \(samplechem.equations)")

let samplemaths = Maths(physics: "Fluid Dynamics", formulae: "Giga Hertz")
print("Instance physics is: \(samplemaths.physics)")
print("Instance formulae is: \(samplemaths.formulae)")

var chemCount = 0
var mathsCount = 0

for item in saprint {
   if let print = item as? Chemistry {
      print("Chemistry topics are: '\(print.physics)', \(print.equations)")
   } else if let example = item as? Maths {
      print("Maths topics are: '\(example.physics)', \(example.formulae)")
   }
}

var exampleany = [Any]()
exampleany.append(12)
exampleany.append(3.14159)
exampleany.append("Example for Any")
exampleany.append(Chemistry(physics: "solid physics", equations: "Hertz"))

for print in exampleany {
   switch print {
      case let someInt as Int:
         print("Integer value is \(someInt)")
      case let someDouble as Double where someDouble > 0:
         print("Pi value is \(someDouble)")
      case let someString as String:
         print("\(someString)")
      case let phy as Chemistry:
         print("Topics '\(phy.physics)', \(phy.equations)")
      default:
         print("None")
   }
}

Kode di atas nantinya akan menghasilkan output sebagai berikut di Playground:

Instance physics adalah: solid physics
Instance equation adalah: Hertz
Instance physics adalah: Fluid Dynamics
Instance formulae adalah: Giga Hertz
Chemistry topics adalah: 'solid physics', Hertz
Maths topics adalah: 'Fluid Dynamics', Giga Hertz
Chemistry topics adalah: 'Thermo physics', Decibels
Maths topics adalah: 'Astro Physics', MegaHertz
Maths topics adalah: 'Differential Equations', Cosine Series
Integer value adalah 12
Pi value adalah 3.14159
Contoh Any
Topics 'solid physics', Hertz

Demikianlah ulasan belajar Swift “Type Casting” kali ini. Semoga tutorial di atas bermanfaat menambah pengetahuan Anda, ya!

Belajar coding sekarang lebih simpel dan gratis bersama CODEKEY. Temukan lebih banyak tutorial pemrograman lainnya 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