Sebagai penggiat IT, kamu tidak asing dengan AI beserta keluarganya, bukan? Di era saat ini, banyak pengembang aplikasi memanfaatkan berbagai AI untuk membantu pekerjaan mereka, seperti Gemini, ChatGPT, Llama, Core ML, dan masih banyak lagi.
Tentunya, sebagai pengembang aplikasi, tak hanya fasih menggunakannya, kita juga perlu paham cara mengimplementasikan machine learning dalam aplikasi. Lalu, kira-kira bagaimana ya menerapkannya dalam aplikasi iOS? Yuk, simak selengkapnya dalam blog ini!
AI dan Machine Learning
💻 Mulai Belajar Pemrograman
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.
Daftar SekarangSebelum mengimplementasikan machine learning dalam aplikasi, tentu kita perlu tahu dahulu bedanya AI dengan ML. AI atau artificial intelligence adalah sistem komputer yang bisa melakukan pekerjaan-pekerjaan yang umumnya memerlukan tenaga atau kecerdasan manusia untuk menyelesaikannya, sedangkan ML atau machine learning adalah teknologi yang mampu mempelajari data yang ada dan melakukan tugas-tugas tertentu sesuai dengan apa yang ia pelajari. Lalu, apa hubungannya Machine Learning dengan AI?
Teknologi machine learning ini merupakan salah satu cabang dari AI. Tak hanya ML, masih banyak lagi contoh dari AI, seperti NLP, vision, speech, hingga robotics. Namun, pada kesempatan ini, kita akan fokus dengan machine learning dan implementasinya dalam aplikasi iOS.
Machine Learning Workflow
Kira-kira, bagaimana cara machine learning bekerja ya? Dalam traditional programming, kamu biasanya akan menggunakan logika pemrograman tertentu untuk menentukan aturan dari sebuah program.
Contohnya di halaman login, kamu akan membuat aturan untuk memvalidasi email yang dimasukkan. Jadi, jika ada email yang tidak valid, output dari kode program tersebut akan false atau gagal.
Hal ini berbeda dengan pendekatan yang digunakan oleh machine learning. Di sini, kamu tidak lagi berfokus dengan aturan, melainkan machine learning-lah yang akan membangun dan menemukan polanya. Kamu cukup menyediakan contoh input dan melabelinya sebagai output tertentu.
Contohnya, kamu ingin membuat sebuah aplikasi untuk mendeteksi anjing dan kucing. Input dari aplikasi tersebut adalah foto-foto hewan anjing dan kucing. Tugas machine learning tersebut adalah menandai atau bisa dikatakan dengan memberikan label, apakah foto tersebut termasuk kucing atau anjing.
Semakin banyak input dan output yang kamu sediakan, semakin pintar aturan yang bisa kamu buat. Nah, aturan dalam machine learning tersebut disimpan dalam sebuah model. Kurang lebih gambaran dari alur pembuatan model tersebut bisa kamu lihat seperti ini.
Kamu bisa pelajari cara kerja machine learning secara lebih detail dalam kelas Belajar Machine Learning untuk Pemula.
Model Machine Learning untuk Pengembangan Aplikasi
Seperti yang kita tahu, saat ini sudah banyak aplikasi yang tersedia di marketplace. Semua aplikasi tersebut pasti memiliki solusinya masing-masing sesuai dengan masalah yang diangkat. Tentunya keberagaman solusi tersebut memerlukan pendekatannya tersendiri ketika ingin menerapkan machine learning di dalamnya.
Oleh karena itu, pengembang model machine learning berlomba-lomba membangun sebuah model yang bisa digunakan oleh orang banyak, seperti model dari Gemini dan ChatGPT yang bisa digunakan dalam pengembangan aplikasi. Meskipun demikian, ternyata membangun model sendiri sesuai kebutuhan bisnis aplikasi juga mudah dilakukan saat ini, lo!
Saat ini, ada banyak platform dan layanan yang menyediakan model machine learning yang bisa diintegrasikan langsung ke dalam aplikasi seperti berikut.
- TensorFlow Lite: Framework open-source yang dikembangkan oleh Google ini memungkinkan pengembang untuk membuat, melatih, dan menerapkan model machine learning dengan mudah. TensorFlow juga mendukung berbagai platform, termasuk iOS.
- Core ML: Apple menyediakan Core ML sebagai framework bawaan untuk mengintegrasikan model machine learning ke dalam aplikasi iOS. Dengan Core ML, kamu bisa menggunakan model yang sudah dilatih untuk berbagai tugas seperti pengenalan gambar, analisis teks, hingga prediksi data.
- PyTorch: Framework yang fleksibel dan populer untuk riset dan pengembangan machine learning. PyTorch memungkinkan pengembang membangun model kustom yang kemudian dapat diekspor ke Core ML untuk aplikasi iOS.
Selain itu, model yang disediakan oleh perusahaan besar seperti OpenAI, Meta, dan Google Cloud AI juga bisa dimanfaatkan. Model-model ini sering kali sudah dilatih dengan dataset yang sangat besar sehingga kamu tidak perlu memulai dari nol.
Nah, pada blog ini kita akan fokus membahas tentang Core ML.
Apa itu Core ML ya?
Core ML adalah framework milik Apple yang dirancang khusus untuk mempermudah pengintegrasian machine learning dalam aplikasi iOS, macOS, watchOS, dan tvOS. Dengan Core ML, pengembang dapat:
- Memanfaatkan model machine learning yang sudah dilatih.
- Mengintegrasikan fitur machine learning secara efisien tanpa mempengaruhi performa aplikasi.
- Mendukung berbagai jenis model, termasuk vision, NLP, dan data tabular.
Seperti inilah gambaran alur sebuah model dari Core ML hingga digunakan dalam sebuah aplikasi iOS.
Ketika kamu mempunyai model machine learning, kamu bisa menggunakan Core ML untuk dimasukkan dalam aplikasi Xcode.
Selain menggunakan model Core ML, kamu juga memanfaatkan model dari format lain dan dikonversi menjadi model Core ML. Caranya cukup mudah, yakni menggunakan Core ML Tools. Dengan menggunakannya, kamu bisa mengubah berbagai model yang dibuat dengan tools modern menjadi Core ML, seperti TensorFlow, PyTorch, LibSVM, XGBoost, hingga Scikit Learn.
Selain itu, Xcode juga menyediakan sebuah fitur untuk mengembangakan model machine learning dengan format Core ML. Caranya cukup mudah, yakni dengan membuka Xcode, kemudian menekan menu Xcode dalam touchbar, pilih Open Developer Tool, dan pilih Create ML.
Sebuah pop up berisikan berbagai jenis machine learning akan muncul dan kamu bisa pilih sesuai dengan kebutuhanmu.
Selain membuat model Core ML, kamu juga bisa menguji keakuratan sebuah model. Fitur ini mirip dengan fitur Teachable Machine dari Google. Namun, di sini kamu cukup menggunakan Xcode, IDE dari Apple untuk membangun aplikasi iOS. Menarik, bukan? Jika kamu tertarik, kamu bisa melihat cara melakukan evaluasi Core ML melalui dokumentasinya di Discover machine learning enhancements in Create ML.
Core ML : Membangun Aplikasi iOS Berbasis Machine Learning
Setelah memahami dasar-dasar tentang Core ML, pertanyaan selanjutnya adalah bagaimana cara memanfaatkannya untuk membuat aplikasi iOS? Berikut ini adalah langkah-langkah yang dapat kamu ikuti untuk mulai mengintegrasikan machine learning ke dalam aplikasi iOS menggunakan Core ML.
Persiapkan Model Machine Learning dengan Core ML
Langkah pertama adalah memiliki model machine learning yang sudah dilatih. Kamu bisa mendapatkan model dari berbagai sumber, seperti model open-source yang tersedia di internet, layanan cloud AI, atau model yang kamu bangun sendiri menggunakan framework seperti Xcode, TuriCreate, TensorFlow, atau PyTorch.
Pastikan model yang kamu pilih memiliki format yang kompatibel dengan Core ML (biasanya dengan ekstensi .mlmodel). Jika model yang kamu miliki belum dalam format ini, gunakan Core ML Tools untuk mengonversinya.
Contoh Kasus Deteksi Bunga dengan Core ML
Misalnya, kamu ingin membangun aplikasi yang dapat mengenali jenis bunga dalam gambar. Model machine learning yang dilatih untuk mengenali berbagai jenis bunga bisa kamu konversi ke format Core ML menggunakan perintah Python berikut.
1 2 3 4 5 |
import coremltools # Konversi model TensorFlow ke Core ML coreml_model = coremltools.converters.tensorflow.convert("model.pb") coreml_model.save("FlowerClassifier.mlmodel") |
Integrasikan Model Core ML ke dalam Xcode
Setelah memiliki model dengan format .mlmodel, langkah selanjutnya adalah memasukkannya ke dalam proyek Xcode seperti berikut.
- Drag-and-drop file .mlmodel ke dalam proyek Xcode.
- Xcode akan secara otomatis membuat kelas Swift yang mewakili model tersebut sehingga mudah untuk digunakan dalam kode.
Gunakan Model di Aplikasi
Core ML membuat proses integrasi model menjadi sangat sederhana. Kamu hanya perlu beberapa baris kode Swift untuk mulai menggunakan model dalam aplikasi. Berikut contoh cara memanfaatkan model Core ML bernama FlowerClassifier untuk klasifikasi gambar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import CoreML import Vision func classifyImage(_ image: UIImage) { guard let model = try? VNCoreMLModel(for: FlowerClassifier().model) else { print("Gagal memuat model") return } let request = VNCoreMLRequest(model: model) { (request, error) in guard let results = request.results as? [VNClassificationObservation] else { print("Tidak ada hasil yang valid") return } if let topResult = results.first { print("Klasifikasi: \(topResult.identifier), Confidence: \(topResult.confidence)") } } guard let ciImage = CIImage(image: image) else { return } let handler = VNImageRequestHandler(ciImage: ciImage) try? handler.perform([request]) } |
Uji Coba Aplikasi iOS berbasis Core ML
Setelah mengintegrasikan model ke dalam aplikasi, lakukan pengujian untuk memastikan model berfungsi dengan baik. Gunakan beberapa gambar atau dataset uji untuk memeriksa akurasi hasil prediksi. Kamu juga bisa memanfaatkan fitur bawaan Xcode untuk memvisualisasikan performa model.
Optimalkan Model Core ML untuk Performa
CoreML mendukung optimalisasi model untuk meningkatkan performa dan efisiensi. Beberapa cara untuk mengoptimalkan model meliputi:
- Quantization: Mengurangi ukuran model dengan menyimpan bobot dalam format yang lebih kecil (seperti int8).
- Batch Processing: Memproses beberapa data sekaligus untuk mempercepat waktu prediksi.
- On-Device Training: Menggunakan fitur terbaru dari Apple untuk melatih ulang model langsung di perangkat pengguna.
Kesimpulan
Core ML membuka peluang besar bagi pengembang untuk mengintegrasikan machine learning ke dalam aplikasi iOS dengan cara yang efisien dan ramah pengguna. Dengan memahami dasar-dasar Core ML, memanfaatkan alat seperti Xcode dan Core ML Tools, serta mengikuti langkah-langkah pengembangan yang tepat, kamu bisa menciptakan aplikasi canggih yang memanfaatkan kekuatan AI untuk memberikan solusi nyata kepada pengguna.
Jika kamu ingin mulai belajar iOS development, telah hadir langganan Learning Path baru, iOS Developer di Tokopedia Dicoding. Mulai belajar terarah dengan Learning Path. Khusus untuk kamu, dapatkan diskon 70% untuk setiap pembelian paket learning path. Kunjungi dicoding.id/iOS. |
Jadi, tunggu apa lagi? Segera mulai proyekmu dan eksplorasi kemampuan Core ML untuk membuat aplikasi iOS yang lebih pintar dan interaktif!