Objective C dan Cocoa Touch

Perlu dipahami bahwa Objective C bukan bahasa tersendiri seperti C#, C++, atau Java. Objective C adalah bahasa C yang ditambahkan dengan sintak object oriented. Jadi jika kamu mengetikkan bahasa C dan di-compile, maka tidak akan ada masalah.
Sedangkan Cocoa Touch adalah kumpulan iOS framework. Tiap framework memiliki ribuan class, dengan bahasa Objective C, yang bisa kita gunakan untuk membuat aplikasi iOS. Diilustrasikan sebagai berikut :
Cocoa Touch
  • Foundation Framework, basis framework
    • NSObject
    • NSString
    • NSArray
    • NSDictionary
    • dan lain-lain
  • UIKit Framework, untuk membuat UI
    • UIView
    • UITextField
    • UIButton
    • UILabel
    • dan lain-lain
  • MapKit Framework, untuk menampilkan apple maps
  • dan lain-lain
Sekarang, buka kembali Xcode dan buat project baru (cmd + shift + N). Kita akan belajar dasar dari Objective C.

Membuat Command Line Project

 Pilih OS X -> Application -> Command Line Tool.
➷ Beri nama “LearnBasic“. Pada pilihan type, pilih Core Foundation.
➷ Klik Next.
➷ Klik Create.
➷ Klik Xcode pada topbar -> Preferences -> Text Editing -> Editing -> centang Line numbers untuk memberikan nomor baris.
Kamu akan mendapati kode pada main.m sebagai berikut :
9   #import <Foundation/Foundation.h>
10
11 int main(int argc, const char * argv[])
12 {
13
14 @autoreleasepool {
15
16     // insert code here...
17     NSLog(@"Hello, World!");
18
19 }
20     return 0;
21 }
Baris 9 menunjukkan bahwa kita membutuhkan file Foundation.hpada Foundation Framework. Untuk memanggil file pada Objective C, kita menggunakan #import, bukan #include, walaupun sebenarnya tidak ada masalah walaupun kita gunakan #include.Namun ada baiknya kita gunakan standardisasi yang telah ditetapkan oleh Objective C.
Baris 11 adalah fungsi yang telah ditetapkan pada bahasa C sebagai fungsi yang dipanggil ketika program dijalankan. Pada projectHelloWorld pun ada file ini, yang digunakan untuk memanggil classAppDelegate.
Baris 14 adalah tanda bahwa semua object yang dibuat setelah kurung kurawal “{” akan dihapus ketika keluar dari kurung kurawal. Pada sesi ini tidak ada object yang dibuat, jadi kalau dihilangkan juga tidak apa-apa. Karakter “@” menunjukkan sebuah identifier keyword dalam Objective C agar tidak konflik dengan bahasa C atau C++.
Baris 16 adalah single line comment, ditandai dengan “//”. Untuk multi line comments gunakan “/* */”.
Baris 17 adalah fungsi untuk menampilkan output ke console. NSLog adalah bagian dari Foundation Framework. Lagi-lagi kamu berhadapan dengan “@” yang menandakan bahwa tulisan “Hello World!” adalah sebuah kelas NSString, bukan char[].
➷ Klik Run, maka akan muncul tulisan “Hello World!” pada panel di bagian bawah (apabila tidak muncul pilih View -> Debug Area ->Activate Console).

Deklarasi Variable

Ketikkan kode di bawah ini :
14      @autoreleasepool {
15
16     // insert code here...
17     NSLog(@"Hello, World!");
18
19 NSString *myName = @"Chuck Norris";
20 int myAge = 18;
21 NSLog(@"Halo, nama saya %@. Umur saya %d tahun.", myName, myAge);
22 }
Baris 19 adalah bentuk deklarasi variable NSString. Semua object dalam Objective C berupa pointer, jadi harus menggunakan tanda “*”. Jika kamu belum mengerti apa itu pointer, bisa dicari di google atauwikipedia.
Hanya untuk NSString yang bisa diisi langsung dengan nilainya. Objek lain harus dialokasikan terlebih dahulu (akan dipelajari di segmen berikutnya).
Baris 20 adalah inisialisasi variable standar C.
Baris 21, logging. Pada C mungkin kamu mengenal fomat “%d” untuk decimal variable, “%f” untuk floating point, “%s” untuk string. Untuk object pada Objective C, kita gunakan “%@”.
➷ Klik Run, maka akan muncul tulisan “Halo, nama saya Chuck Norris. Umur saya 18 tahun.”

Mengakses Method

Jika basis pemrograman kamu adalah prosedural seperti C, mungkin method adalah sesuatu yang asing. Method adalah fungsi yang dimiliki oleh suatu object atau class, yang berkenaan dengan object atau class itu sendiri. Contoh seperti burung (object) memiliki fungsi makan, terbang, bersuara (method).
Mengakses method pada Objective C berbeda dengan bahasa pemrograman lain. Pada pemrograman lain mungkin kamu mengenal format seperti ini :
someObjectOrClass.someMethod()
someObjectOrClass.someMethod(type someParameter)
someObjectOrClass.someMethod(type someParameter1, type someParameter2)
Pada objective C, format yang dipakai sebagai berikut :
[someObjectOrClass someMethod]
[someObjectOrClass someMethodWithParameter:(type)parameter]
[someObjectOrClass someMethodWithParameter1:(type)parameter1 andParameter2:(type)parameter2]
Lanjut koding. Ketikkan kode berikut :
21          NSLog(@"Halo, nama saya %@. Umur saya %d tahun.", myName, myAge);
22
23 NSMutableArray *myFoods = [[NSMutableArray alloc] init];
24 [myFoods addObject:@"Mangga"];
25 [myFoods addObject:@"Apel"];
26 [myFoods addObject:@"Jeruk"];
27 NSLog(@"Buah kesukaan saya adalah : %@", myFoods);
28
29 NSArray *mySubjects = [NSArray arrayWithObjects:@"Matematika", @"Fisika", @"Kimia", nil];
30 NSLog(@"Dan mata pelajaran favorit saya adalah : %@", mySubjects);
31 }
➷ Run dan lihat hasilnya.
Baris 23 adalah cara standar inisialisasi object dalam Objective C.  Pertama kelas mengalokasikan tempat pada memori untuk dijadikan sebuah objek, lalu objek tersebut diinisialisasikan.
Baris 24-26 adalah cara akses object method.
Baris 29 adalah cara akses class method. Dalam hal ini method tersebut langsung mengalokasi dan menginisialisasi sebuah array berisi matematika, fisika, dan kimia.
NSMutableArray adalah NSArray yang bisa dimodifikasi nilainya. Contoh lainnya adalah NSMutableDictionary, NSMutableData, dan NSMutableSet.