Pemograman Object Oriented di iOS – FoodPin App

Dipostingan kali ini kita akan membahas mengenai implementasi konsep OOP di aplikasi yang telah kita buat di tutorial sebelumnya. Karena dengan mengimplementasikan konsep ini membuat aplikasi kita menjadi lebih ringan dan ramping, so check this out.

Object Oriented Progamming di iOS

Mengenali Pemograman Object Oriented

OOP di iOSSejauh ini kita telah membuat aplikasi yang lumayan keren di tutorial sebelumnya. Karena kita telah membuat aplikasi iPhone dengan navigation controller dan table view menggunakan Storyboard. Nah rencana selanjutnya adalah mengembangakan kembali halaman dari detail restaurant menjadi lebih baik. Karena kita tidak hanya menampilkan gambar restaurant, nantinya kita juga menampilkan nama restaurant, tipe dan lokasi restaurant di halaman detail tersebut.

Tetapi sebelum memulai itu semua, akan lebih baik jika kita membahas tentang bahasa dasar Pemograman Object Oriented. Oya jangan takut dulu, OOP atau Object Oriented Programming ini bukanlah bahasa pemogramman tapi hanya konsep/teknik yang ada di dunia pemogramman.

Teori tentang Object Oriented Programming

Sama halnya dengan Objective-C, Swift juga memakai konsep Object Oriented Programming (OOP) ini. OOP merupakan cara untuk membangung aplikasi perangkat lunak yang terdiri dari object. Dengan kata lain, kebanyakan code yang ditulis pada aplikasi terdiri dari object. UIViewController, UIButton, UINavigationController dan UITableView contoh dari object yang ada di iOS SDK. Kita tidak hanya menggunakan object bawaan yang ada di iOS SDK, kita juga membuat object kita sendri seperti DetailViewController dan CustomTableCell.

Jadi kenapa harus OOP? Satu alasan penting kenapa kita membagi pengembangan aplikasi menjadi bagian kecil karena itu akan mempermudah pengembangan, disini bagian kecil itulah yang dinamakan dengan object. Setiap object memiliki tanggung jawabnya sendiri dan hubungan antara object dan dengan object yang lainnyalah yang membuat software dapat bekerja, dimana ini lah dasar dari OOP.

Contoh Object di Aplikasi Hello World di iOS
Contoh Object di Aplikasi Hello World di iOS

Mari kita ambil contoh pada aplikasi Hello World yang pertama kali kita buat di postingan sebelumnya. Object UIViewController bertanggung jawab untuk tampilan dari aplikasi dan posisi dari tombol Hello World. Object UIButton (seperti tombol Hello World) bertanggung jawab untuk menampilkan tombol standar iOS ke layar dan merekam setiap sentuhan. Lain halnya dengan object UIAllertController yang bertanggung jawab utuk menampilkan pesan peringatan kepada user. Nah setiap object yang bekerja sama ini lah yang membuat aplikasi Hello World dapat bekerja.

Di Pemogramman Object Oriented, sebuah object memiliki dua karakteristik yaitu properties dan fungsionalitas. Mari kita contohkan object dalam dunia nyata, contohnya mobil. Sebuah mobil memliki warnanya sendiri, modelnya sendiri, kecepatan, dan gaya nya sendiri. Ini merupakan properties dari sebuah mobil. Sehingga karakteristik fungsionalnya yang membuat mobil dapat betanggung jawab untuk beberapa fungsi seperti melaju, mengerem, mengendarai, dsb.

Jika kita kembali ke dunia iOS, mari kita lihat properties dan fungsionalities dari object UIButton di aplikasi Hello World:

Properti – Background, ukuran, warna dan font merupakan contoh dari properties UIButton

Fungsionalitas – Ketika tombol di sentuh, itu akan memanggil fungsu untuk menampilkan pesan peringatan ke layar. Jadi “menampilkan pesan peringantan” adalah fungsi dari tombol.

Di pembahasan sebelumnya kita selalu berbicara tentang method. Di Swift, kita membuat methid untuk bertanggung jawab dalam fungsionallitas dari object.

 

Class, Object dan Instansi

Diluar Method dan Object, kita mungkin mengenal yang namanya instansi dan class di OOP. Nah mari kita bahas satu persatu terlebih dahulu agar semuanya jelas.

Sebua class merupakan sebuah blueprint atau prototype untuk membuat object. Dasarnya, class terdiri dari properties dan method. Contohnya kita ingin membuat class Kursus. Class Kursus ini berisikan properties seperti nama, kode kursus dan jumlah siswa. Class ini menggambarkan blueprint dari sebuah kursus. Kita bisa membuatnya menjadi kursus pemograman iOS dengan code kursus IPC101, kursus memasak dengan code CC101, dsb. Disini “Kursus Pemograman iOS” dan “Kursus Memasak” dinamakan object dari class Kursus. Nah terkadang ini dinamakan dengan instansi dari class Kursus. Jadi Instansi merupakan kata lain dari object.

 

Project FoodPin

Jadi kenapa kita membahas OOP di awal pembahasan ini adalah untuk menjelaskan konsep yang akan kita gunakan selanjutnya. Buka kembali project FoodPin yang telah kita sebelumnya di postingan FoodPin Navigation Controller.

Di RestaurantTableViewController, kita telah membuat banyak array untuk menampung nama, tipe, lokasi dan gambar dari restaurant.

Jika kita telah mengerti tentang konsep OOP, data ini bisa karakteristikkan menjadi properties dari restaurant. Jadi daripada menyimpan data ini di array yang terpisah, maka akan lebih baik jika kita membuat class Restaurant menyimpan data ini di array dari object Restaurant.

Banyak Array menjadi Object Restaurant
Banyak Array menjadi Object Restaurant

Kita akan mengkonversi data kedalam class Restaurant di projet FoodPin.

 

Membuat Class Restaurant

Pertama kali kita akan membuat class Restaurant. Klik kanan folder FoodPin di project navigaor dna pilih “New File ..”. Pilih template “Swift File” dibawah Source dan klik “Next”. Beri nama file tersebut dengan “Restaurant.swift” dan simpan file tersebut di folder project Xcode.

Membuat class baru menggunakan template Swift
Membuat class baru menggunakan template Swift

Ketika telah selesai, isi class tersebut dengan code dibawah ini:

Di Swift, kita menggunakan kata class untuk menunjukkan sebuah class. Code diatas menjelaskan class Restaurant dengan  5 propertiesnya seperti nama, tipe, lokasi, gambar, dan telah dikunjungi. Hanya isVisited dalam properties Boolean, yang lainnya Strings. Semua properties di inisialisasi dengan default value karena di Swift, semua variabel harus diinisialisasi dengan sebuah nilai. Atau kita bisa mendeklarasikannya dalam bentuk pilihan, contohnya kita bisa menginisilisasikan properties dari location seperti ini:

Tanda tanya tesebut mengindikasikan variabel location boleh atau tidak boleh diisi sebuah value.

Inisialisasi adalah proses untuk mempersiapkan instansi dari sebuah class (object). Jika kita membuat sebuah object, initializer digunakan untuk mengisi nilai dari setiap properties yang ada di instansinya. Untuk itu kita bisa menggunakan kata init untuk mendefinisikan initializer seperti ini:

Untuk membuat instansi dari class Restaurant seperti code dibawah ini:

 

Menggunakan Array dari Object Restaurant

Setelah mengerti dasar dari object initilization, mari kita kembali ke project FoodPin dan mengkonversikan 5 array kedalam array Restaurant. Pertama kali hapus array dari file RestaurantTableViewController.swift:

Timpa dengan code array Restaurant berikut:

Setelah kita menimpaarray, kita akan mendapatkan beberapa pessan error dari Xcode. Ini dikarenakan beberapa code masih terhubung dengan code sebelumnya, untuk kita harus menggantinya dengan array yang baru yaitu array restaurant. Pertama kali perbarui method tableView(_:numberOfRowInSection:):

Jika sebelumnya kita menggunakan array restaurantNames, sekarang kita menggunakan array restaurant.

Selanjutnya kita perbarui method tableView(_:cellForRowAtIndexPath:):

Semua informasi restaurant sekarang didapatkan kembali dari object restaurang. Kita menggunakan syntax dot untuk mengakses nilai properties.

Selain itu, timpa kedua method tableView(_:commitEditingStyle:) dan tableView(_:editActionForRowAtIndexPath:) dengan code ini:

Dengan code dibawah ini:

Terkahir, ganti method prepareForSegue menjadi code berikut:

Sekarang kita telah bisa mengcompile dan menjalankan aplikasi. Aplikasi akan terlihat sama seperti sebelumnya, tapi sebenarnya kita telah melakukan improvisasi di belakangnya menggunakan konsep OOP dan class baru yaitu class Restaurant.

Well mungkin cukup sekian pembahasan kali ini, oya contoh code bisa di download disini: https://www.dropbox.com/s/bdj23hwzgrn62eq/FoodPinOOP.zip

Semoga informasinya bermnanfaat Guys, See Yaa .. 😉


Referensi :
Iklan

Good People write good comments ..

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s