Objective-C adalah bahasa pemrograman berorientasi objek yang merupakan superset dari bahasa C. Meskipun popularitasnya sedikit menurun seiring dengan kemunculan Swift, Objective-C tetap menjadi tulang punggung historis bagi pengembangan aplikasi di ekosistem Apple, termasuk macOS dan iOS. Bahasa ini terkenal karena sifatnya yang sangat dinamis dan penggunaan kerangka kerja (framework) yang kuat dari Apple, terutama Cocoa dan Cocoa Touch.
Ilustrasi sederhana konsep pengiriman pesan (messaging) khas Objective-C.
Salah satu ciri khas paling mencolok dari Objective-C adalah sintaksis pengiriman pesannya yang dipinjam dari Smalltalk. Berbeda dengan bahasa C++ atau Java di mana pemanggilan fungsi dilakukan menggunakan notasi titik (misalnya, objek.metode()), Objective-C menggunakan notasi kurung siku untuk mengirim pesan: [objek pesanDenganParameter:nilai];.
Pengiriman pesan ini bersifat dinamis (runtime dispatch). Artinya, bahasa ini tidak selalu memutuskan metode mana yang akan dieksekusi saat kompilasi; keputusan tersebut sering kali ditunda hingga program benar-benar berjalan. Hal ini memberikan fleksibilitas luar biasa, misalnya dalam implementasi pola desain seperti Method Swizzling, yang memungkinkan pengembang menukar implementasi dua metode saat runtime.
// Contoh Pengiriman Pesan di Objective-C:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
@autoreleasepool {
NSString *nama = @"Dunia";
// Pengiriman Pesan: [receiver messageName:parameterValue]
NSLog(@"Halo %@!", nama);
}
return 0;
}
Karena Objective-C adalah superset dari C, ia mewarisi semua kemampuan dan sintaksis dari bahasa C. Ini berarti Anda dapat dengan mudah mengintegrasikan kode C yang sudah ada ke dalam proyek Objective-C. Selain itu, ia menambahkan fitur orientasi objek modern seperti manajemen memori (kini sering dibantu oleh ARC - Automatic Reference Counting), kategori (untuk memperluas fungsionalitas kelas tanpa subclassing), dan protokol.
Manajemen memori telah menjadi topik penting. Awalnya, Objective-C mengandalkan penghitungan referensi manual (Retain/Release). Namun, pengenalan ARC oleh Apple secara signifikan menyederhanakan pengembangan dengan secara otomatis menyisipkan kode penghitungan referensi yang diperlukan selama kompilasi, membuat pengelolaan siklus hidup objek jauh lebih aman dan mudah diprediksi bagi pengembang aplikasi modern.
Objective-C mendominasi pengembangan aplikasi desktop Apple (macOS) melalui kerangka kerja Cocoa, dan aplikasi mobile (iOS) melalui Cocoa Touch. Kerangka kerja ini menyediakan pustaka kelas yang sangat kaya untuk membangun antarmuka pengguna, menangani jaringan, grafis, dan banyak lagi. Pemahaman mendalam tentang Objective-C sering kali diperlukan untuk bekerja dengan basis kode aplikasi iOS lama atau ketika berinteraksi mendalam dengan API inti sistem operasi Apple.
Meskipun Swift telah menjadi bahasa pilihan utama untuk pengembangan baru di platform Apple karena sintaksisnya yang lebih modern, lebih aman, dan lebih ringkas, Objective-C tetap vital. Interoperabilitas antara Swift dan Objective-C sangat mulus, memungkinkan perpindahan bertahap dan penggunaan kode lama yang teruji secara efisien dalam proyek-proyek baru. Banyak pustaka inti yang ditulis dalam Objective-C masih diakses melalui jembatan interoperabilitas ini.
Objective-C adalah bahasa yang kuat, dinamis, dan memiliki sejarah panjang dalam dunia komputasi, terutama di ranah produk Apple. Meskipun mungkin kurang populer bagi pemula saat ini dibandingkan Swift, pemahaman tentang konsep intinya—terutama pengiriman pesan dinamis—memberikan wawasan berharga tentang arsitektur sistem operasi yang mendasarinya. Bahasa ini adalah jembatan penting antara pemrograman C tradisional dan pengembangan aplikasi modern yang kaya fitur.