Bermain dengan Access Control pada Swift

Tips dan trik penggunaan access control dalam bahasa pemrograman Swift untuk membersihkan Xcode project menjadi lebih baik

Auriga Aristo
Dipantry
3 min readDec 24, 2020

--

Photo by Sigmund on Unsplash

Menulis koding dengan clean code bagi junior developer merupakan sebuah tantangan sendiri untuk mereka. Sebagian besar junior developer menulis kode berdasarkan fungsi yang dibutuhkan berdasarkan kebutuhan mereka yang kadang berakibat buruk pada memory management dan time management project. Dalam melakukan clean code, access control merupakan sebuah hal yang penting. Mana kode yang mampu diakses oleh class lain, file lain, hingga modul lain, dan mana kode yang tidak bisa diakses. Access control juga mengatur seberapa besar akses yang diberikan pada sebuah fungsi yang diciptakan agar kode menjadi lebih terstruktur.

Dalam penggunaannya, access control dapat digunakan pada class, struct, enum, properties, methods, initializers, hingga subscripts. Access control dapat digunakan juga pada protocol tergantung pada situasi tertentu seperti global constants, variable dan function.

Jika kamu belum tahu, akses kontrol biasa terletak di depan class atau function, contohnya:

open class A {}
private function b(){}
fileprivate struct C {}

Swift mengenal 5 buah access control, yaitu open, public, internal, fileprivate, dan private.

Open

Access control tipe “open” adalah akses yang paling terbuka, bayangkan seperti sebuah ruangan tanpa adanya sekuriti yang memperbolehkan siapapun mengakses. Sehingga akses tipe “open” memperbolehkan setiap fungsi atau class yang ada diakses dari manapun termasuk di luar modul. Contohnya adalah UICollectionViewCell yang bisa dipanggil dimanapun termasuk target lain seperti Widget.

Public

Access control tipe “public” mirip dengan akses tipe “open”, hanya saja “public” melarang untuk melakukan subclass dan overriding. Public hanya diperbolehkan untuk melakukan subclass pada satu modul saja.

Contoh perbedaannya bisa dilihat pada kode di bawah.

// module 1
open class op1 {}
public class pc1 {}
// module 2
class op2 : op1 {} -> berhasil
class pc2 : pc1 {} -> gagal

Internal

Access control tipe “internal” merupakan akses kontrol yang hanya memperbolehkan setiap fungsi dan class untuk diakses dalam satu modul yang sama. Akses kontrol tipe ini adalah default dari semua class yang ada. Apabila dalam kodingan kalian tidak menyertakan akses kontrol, maka bagian kode tersebut memiliki akses kontrol “internal”.

Fileprivate

Access control tipe “fileprivate” merupakan akses control yang hanya memperbolehkan setiap kode untuk diakses dalam satu file yang sama. Tidak seperti bahasa lain yang hanya memperbolehkan satu file hanya mengandung satu class. Swift memperbolehkan satu file lebih dari satu class dan global variable. Dengan begitu, fileprivate dapat digunakan untuk mencegah kode dapat diakses dari file yang berbeda, namun masih bisa digunakan pada semua bagian dalam satu file yang sama.

Private

Access control tipe “private” adalah akses control yang paling kuat karena fungsi atau variable dengan akses control ini hanya diperbolehkan untuk dipanggil pada satu class yang sama. Bahkan penggunaan obyek dari luar class dan mencoba memanggil fungsi atau variable tidak akan berhasil.

Untuk menyimpulkan, kamu dapat melihat perbedaan kegunaannya pada tabel di bawah.

Kesimpulan

Access control sangat membantu dalam koding menggunakan bahasa pemrograman Swift. Access control memberikan restriction atau batas akses kepada sebagian kodingan agar tidak bisa diakses di segala tempat. Dengan begitu, kodingan tidak akan menjadi redundan dan tampak lebih rapi.

Tanyakan pada kolom komentar di bawah jika kamu ada pertanyaan.

Selamat mencoba…

--

--

Auriga Aristo
Dipantry

4+ years in Backend Developer | PHP, Java/Kotlin, MySQL, Golang | New story every week