Obj-C: Membuat Method
Method adalah bagian dari program yang melaksanakan tugas tertentu. Bagian program ini diberi nama yang unik sehingga bisa dipanggil sewaktu-waktu jika diperlukan dan secara berulang-ulang.
Dalam Obj-C, kita dapat membuat Method dengan dua cara:
- Instance Method: dipanggil melalui object (Class instance)
- Class Method: dipanggil melalui nama Class
Deklarasi Instance Method diawali dengan tanda “-” (minus) sedangkan Class Method diawali dengan tanda “+” (plus).
Selain kedua cara di atas, Obj-C juga mendukung penggunaan C-style method. Ketiga cara tersebut akan saya tunjukkan melalui program berikut ini:
[sourcecode language=”objc”] //// main.m
//
#import <Foundation/Foundation.h>
@interface Kalkulator : NSObject
– (int) tambah:(int)bil1:(int)bil2;
+ (int) kurang:(int)bil1:(int)bil2;
@end
@implementation Kalkulator
– (int) tambah:(int)bil1 :(int)bil2{
int x = bil1+bil2;
return x;
}
+ (int) kurang:(int)bil1 :(int)bil2{
int x = bil1-bil2;
return x;
}
@end
int Kali(int,int);
int Kali(int bil1, int bil2){
int x = bil1*bil2;
return x;
}
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// my code starts here
int a = 1;
int b = 2;
int c;
int d;
// contoh: menggunakan instance method
Kalkulator *KalkulatorKu = [[Kalkulator alloc] init];
c = [KalkulatorKu tambah:a :b];
NSLog(@"Hasil penjumlahan: %d + %d = %d n",a,b,c);
// contoh: menggunakan class method
c = [Kalkulator kurang:a :b];
NSLog(@"Hasil pengurangan: %d – %d = %d n",a,b,c);
// contoh: menggunakan C-style method
d = Kali(a,b);
NSLog(@"Hasil perkalian: %d x %d = %d n",a,b,d);
// my code ends here
[pool drain];
return 0;
}
Berikut ini keluaran dari program di atas:
Apa bedanya instance dan class method? Melalui program di atas, jelas Class method lebih praktis penggunaannya ketimbang instance method yg harus dibuatkan object dulu sebelum bisa digunakan. Namun perlu diingat bahwa Class method tidak memiliki akses terhadap Variable dalam Class sehingga hanya cocok untuk method-method yg sederhana dan berdiri sendiri.