Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Machine Learning
Code

Menulis Kode Sebuah Aplikasi Android dengan IBM Watson Machine Learning

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called IBM Watson Machine Learning.
Create Intelligent Chatbots on Android With IBM Watson

Indonesian (Bahasa Indonesia) translation by Husain Ali Yahya (you can also view the original English article)

Pada awal 2011, sebuah sistem komputer pemahaman bahasa bernama IBM Watson telah mampu untuk mengalahkan semua kontestas manusia dalam permainan semi kuis bernama Jeopardy! Ini adalah kejadian bersejarah dan mungkin adalah titik di mana publik secara umum mulai menyadari bahwa kecerdasan buatan bukanlah sekedar bagian dari fiksi sains.

Sebelumnya, Watson adalah perusahaan sebuah super komputer dan hanya bisa melakukan sedikit hal seperti menjawab pertanyaan trivia. Namun kini dia terlah bertransformasi menjadi sebuah sistem yang serbaguna dan banyak dari kemampuannya tersedia pada layanan awan.

Pada seri panduan ini, saya akan menunjukkanmu cara menggunakan aneka layanan yang ditawarkan oleh IBM Watson Developer Cloud pada aplikasi Android. Pada panduan pengantar ini, kamu akan belajar cara menggunakan IBM Bluemix, Waston Java SDK, dan Watson tone analyzer untuk membuat sebuah aplikasi Android sederhana yang bisa mengidentifikasi emosi yang hadir dalam teks apapun.

Prasyarat

Untuk bisa mengikuti panduan ini kamu akan membutuhkan:

  • Versi terbaru Android Studio
  • Sebuah akun IBM Bluemix gratis.
  • Sebuah perangkat atau emulator yang menjalankan Android 4.4 atau lebih tinggi

1. Membuat Sebuah Layanan Watson

Layanan Watson bisa hanya bisa diakses melalui platform awan IBM Bluemix. Ini berarti kamu bisa menggunakan mereka dalam aplikasi-mu hanya setelah kamu mengaktifkan mereka di dalm konsol Bluemix dan mendapatkan kredensial yang dibutuhkan.

Mulai dengan masuk ke konsol dan bernavigasi ke Service > Watson.

Watson services home screen

Selanjutnya, tekan tombol Create Watson Service untuk melihat semua layanan Watson yang tersedia untukmu.

List of Watson services

Untuk saat ini, karena kita hanya tertarik untuk menganalisan emosi dalam teks tertulis, pilih layanan Tone Analyzer.

Di layar berikutnya, ganti nama layanan-nya ke sesuatu yang memiliki makna dan tekan tombol Create.

Tone analyzer creation screen

Layanan tone analyzer akan diaktifkan untuk akunmu dan sepasang kredensial login akan dibuat. Untuk melihat kredensial-nya, buka tab Service credentials dan pilih aksi View credentials.

Tone analyzer credentials

Simpan konten dari dokumen JSON-nya ke sebuah berkas di komputer-mu. Saya sarankan kamu menamai berkas-nya credentials.json.

2. Pengaturan Proyek

Watson Java SDK membuatnya jadi sangat mudah untuk berkomunikasi dengan layanan Watson apapun. Untuk bisa menggunakannya dalam proyekmu, tambahkan dia sebagai sebuah dependency compile dalam berkas build.gradle modul app.

Untuk panduan ini, kamu akan membutuhkan dua pustaka lagi: Commons IO, untuk menyederhanakan berkas operasi IO, dan Android Design Support sehinga bisa menggunakan beberapa widget Material Design. Tambahkan mereka juga sebagai dependencies compile.

Kamu juga membutuhkan izin INTERNET untuk berkomunikasi dengan server IBM jadi tambahkanlah baris berikut ke berkas AndroidManifest.xml:

Terakhirm tekan tombol Sync Now untuk menyelesaikan konfigurasi proyek.

3. Menginisialisasi Tone Analyzer

Untuk berkomunikasi dengan layanan tone analyzer Watson, kamu harus menggunakan class ToneAnalyzer. Constructor-nya mengharapkan sebuah tanggal dalam bentuk string sebagai argumen yang nanti-nya akan digunakan untuk menentukan secara otomatis versi layanan tone analyzer yang akan digunakan.

Ingat bahwa tanggal-nya harus selalu berupa string statis. Ini membantu untuk memastikan aplikasimu tidak berhenti bekerja ketika sebuah versi baru dari layanan-nya membawa masalah.

Instance ToneAnalyzer harus dikonfigurasi untuk digunakan pada kredensial-mu, jadi pindahkan berkas credentials.json yang baru saja kamu buat ke folder res/raw dari proyek.

Selanjutnya, kamu harus mengambil nilai keys username dan password dari berkas JSON-nya. Kode berikut menunjukkan cara cepatnya dengan menggunakan class IOUtils dan JSONObject:

Sekarang kamu bisa menyelesaikan konfigurasi instance ToneAnalyzer dengan memanggil metode setUsernameAndPassword().

4. Membuat sebuah Antarmuka

aplikasi kita membutuhkan sebuah antarmuka yang mengizinkan pengguna untuk mengetik beberapa kalimat dengan menekan sebuah tombol untuk memulai analisis-nya. Dengan kata lain, sekarang kamu harus membuat layout sederhana yang mengandung widget EditText dan Button.

Kamu juga bisa menggunakan kontainer TextInputLayout untuk memastikan widget EditText sesuai dengan pedoman dari Material Design.

Maka, tambahkanlah kode berikut ke berkas layout activity XML-mu:

5. Menggunakan Tone Analyzer

Tone analysis-nya harus dimulai ketika pengguna menekan tombol .Oleh karena-nya, kamu membutuhkan sebuah on-click event handler di widget Button dengan menggunakan metode setOnClickListener()-nya. Namun, sebelum kamu melakukannya, jangan lupa untuk mendapatkan sebuah referensi ke widget-nya dengan menggunakan metode findViewById().

Di dalam on-click event handler, hal pertama yang harus kamu lakukan adalah menentukan apa yang pengguna-nya telah ketik ke widget EditText menggunakan metode getText()-nya.

Seperti semua layanan-layanan Watson, layanan tone analyzer menawarkan aneka fitur berbeda. Contohnya, dia bisa mengidentifikasi emosi, gaya bahasa, dan tendensi sosial di dalam input-nya. Dia juga bisa bekerja dengan berkas JSON, teks biasa, dan HTML. Maka, untuk memakai-nya secara efisien, kamu harus menspesifikasikan secara eksplisit fitur yang perlu kamu gunakan menggunakan objek ToneOptions yang bisa dibuat dengan mudah menggunakan class ToneOptions.Builder.

Untuk saat ini, kita hanya menggunakan layanannya untuk mendaftar semua emosi yang hadir dalam string kalimat biasa. Berikut adalah cara untuk membuat objek ToneOptions yang melakukannya.

Sekarang kamu bisa membuat sebuah permintaan tone analysis menggunakan metode getTone() yang membutuhkan sebuah string berisi teks untuk dianalisis dan sebuah objek ToneOptions sebagai argumennya. Untuk benar-benar mengeksekusi permintaan-nya secara asinkron kamu juga harus memanggil metode enqueue() yang membutuhkan instance ServiceCallback sebagai argumennya.

Di dalam metode onResponse() dari class ServiceCallback, kamu memiliki akses ke sebuah objek ToneAnalysis. Dengan memanggil metode getDocumentTone()-nya, kamu bisa menentukan tone keseluruhan dari teks yang kamu lewatkan ke layanan.

Nilai yang dikembalikan dari metode getDocumentTone() adalah objek ElementTone yang berisi daftar dari kategori tone. Karena sebelumnya kita menyatakan secara spesifik bahwa kita hanya tertarik pada kategori emosi, daftar ini hanya akan berisi satu elemen. Berikut cara kamu mengambil skor-skor dari tiap emosi yang dideteksi layanan-nya:

Seperti yang kamu bayangkan, objek ToneScore mewakili satu emosi. Dia memiliki sebuah Double yang berisi skor sebenarnya dan sebuah String yang memberi tahu-mu nama emosi-nya. Jika skor-nya lebih besar dari 0.5, itu berarti ada kemungkinan besar bahwa emosi itu sedang diekpresikan dalam teks-nya.

Sekarang, mari cukup ambil emosi-emosi yang memiliki skor lebih besar dari 0.5 dan gunakan mereka untuk membuat sebuah pesan yang bisa ditampilkan ke pengguna menggunakan sebuah Toast.

Karena metode onResponse() berjalan di thread yang berbeda, kamu harus memastika kamu membuat dan menampilkan Toast hanya setelah menjalankan metode runOnUiThread().

Sekarang aplikasi-nya siap. Jika kamu ingin menjalankannya, ketik beberapa kaliman dan mulai analisisnya, kamu akan melihat Watson secara akurat mengidentifikan emosi yang hadir dalam teks-mu.

Tone analyzer app running

Kesimpulan

Pada panduan ini, kamu telah membuat sebuah aplikasi yang menggunakan layanan tone analyzer IBM Watson utnuk melakukan sebuah tugas kompleks yang menebak emosi dalam kutipan teks. Kamu juga telah belajar dasar penggunakan SDK Watson Java dan konsol IBM Bluemix.

Untuk belajar lebih mengenai layanan-nya, kamu bisa mengacu ke dokumentasi resmi-nya.

Di waktu luang, kamu bisa mengecek beberapa kiriman kami yang lainnya mengenai penggunakan machine learning untuk aplikasi Android-mu di Envato Tuts+.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.