Monday, October 26, 2020

Tutorial mudah membuat RecyclerView di Android

Sejak google meluncurkan pendekatan material design, penggunaan ListView disarankan untuk beralih ke RecyclerView. Dengan kemampuan yang lebih baik dari pendahulunya, RecyclerView ini lebih fleksible dan mampu menampung jumlah data besar.

Artikel sebelumnya tentang tutorial ListView bisa di cek pada link berikut ini: Tutorial ListView di Android.

Konsep kode program untuk membuat RecyclerView kurang lebih sama pada Custom ListView seperti yang sudah dibahas pada artikel sebelumnya pada link diatas.

Adapun tahapan yang dilakukan dalam membuat RecyclerView yaitu:

  1. Menambah dependency di gradle
  2. Membuat Class model
  3. Membuat layout untuk item list
  4. Membuat Adapter untuk binding data
Berikut detail dari tahapan-tahapan diatas:

Menambah dependency di file gradle

Setelah kita melakukan perubahan pada file gradle maka Android Studio akan meminta anda melakukan sinkronisasi untuk update library yang dibutuhkan.

Selanjutnya pada file xml di layout activity, gunakan juga elemen RecyclerView seperti pada kode dibawah ini:

Membuat Class model

Class model disini kita perlukan untuk mempresentasikan setiap item data menjadi sebuah objek ketika digunakan pada Adapter di RecyclerView. Class model disini akan menggunakan Players yaitu object pemain Juventus FC seperti pada contoh di ListView sebelumnya.

Untuk generate constructor dan method getter setter bisa digunakan shortcut di Android Studio (Win: Alt + Insert, Mac: Cmd + N) untuk mempercepat pembuatannya.

Layout item list

Pada layout ini akan digunakan juga CardView dimana pada item ini akan ditampilkan 3 buah TextView untuk menampung data nama pemain, posisi dan nomer punggung.

Membuat Adapter

Selanjutnya kita perlu buat class Adapter yang merupakan extends/turunan dari RecyclerView.Adapter dengan kode seperti berikut ini:

Dan pada bagian terakhir ini kita akan mengimplementasikannya di Activity dimana data yang akan kita gunakan dalam bentuk String JSON. Kita akan gunakan method setData( ) untuk melakukan parse data JSON ke dalam ArrayList<Players> supaya bisa di-binding oleh Adapter untuk di tampilkan ke layar. 

Setelah tahapan tersebut selesai kita implementasikan, kita dapat menjalankan pada Android Studio dan hasil akhirnya adalah seperti tampilan berikut ini

RecyclerView menggunakan CardView


Jika anda membutuhkan file project lengkap untuk ListView sederhana ataupun RecyclerView seperti pada contoh diatas bisa tuliskan alamat email di komentar, selanjutnya akan saya share kode tersebut untuk anda.

Monday, October 5, 2020

Menyusun latar belakang skripsi yang baik


Latar belakang merupakan bagian pertama yang sangat penting dalam menyusun karya ilmiah/skripsi. Latar belakang yang baik dan menarik akan membuat orang yang mempelajari/membaca semakin mudah memahami maksud dari penelitian yang kita lakukan. Selain itu memudahkan juga anda(para mahasiswa) dalam menghadapi pertanyaan-pertanyaan dosen penguji di ujian akhir nantinya. 

Syarat mutlak dan wajib untuk dapat menulis latar belakang yang baik dengan banyak membaca literature (paper dari penelitian sebelumnya). Dengan banyak membaca literature, maka akan semakin jelas arah penelitian yang akan kita lakukan dan menyusun latar belakang menjadi lebih mudah dan terarah.

Berikut ini beberapa tahapan dalam menuliskan latar belakang:

  1. Tuliskan masalah yang dihadapi oleh objek penelitian. Atau masalah yang sudah pernah dihadapi peneliti sebelumnya dan belum ada solusinya. Untuk masalah-masalah di objek penelitian sampaikan secara detail bukan bersifat general.
  2. Sampaikan gambaran umum tentang metode/teknologi/solusi yang anda rencanakan untuk mengatasi masalah diatas. Gunakan beberapa referensi terkait metode/solusi yang akan anda gunakan tersebut.
  3. Jawab semua pertanyaan WHY di judul skripsi
Dibawah ini adalah contoh penulisan latar belakang pada paper berjudul IMPLEMENTASI ALGORITMA REGRESI LINEAR BERGANDA UNTUK MEMPREDIKSI PRODUKSI PADI DI KABUPATEN BANTUL" oleh Ervan Triyanto yang dapat didownload pada url: http://jurnal.univrab.ac.id/index.php/rabit/article/view/666

Sesuai pada poin ke-3 diatas, maka yang perlu dijawab pada pertanyaan WHY judul adalah:
  • Mengapa prediksi produksi padi?
  • Mengapa di kabupaten Bantul?
  • Mengapa menggunakan Algoritam Regresi linear berganda?
Ketersediaan pangan yang cukup dan merata merupakan salah satu pilar perwujudan ketahanan pangan. Salah satu inti pokok dari ketahanan pangan adalah tersedianya makanan pokok bagi masyarakat. Salah satu makanan pokok yang dikonsumsi adalah nasi. Nasi adalah hasil dari pengolahan hasil pertanian yaitu padi. Padi (Oryza Sativa) adalah salah satu dari jenis tanaman pertanian yang bernilai ekonomis, di Bantul sendiri padi tergolong sebagai tanaman pangan pokok yang banyak dibudidayakan.
Kabupaten Bantul sendiri merupakan salah satu kabupaten di Provinsi Daerah Istimewa Yogyakarta. Kabupaten Bantul memiliki luas wilayah 50.810 hektare, dengan pemanfaatan lahan pertanian berupa sawah sebesar 15.183 ha dan lahan bukan sawah sebesar 12.742 ha. Luas lahan sawah yang cukup luas ini dimanfaatkan untuk pertanian padi. Produksi padi di Bantul pada tahun 2014 sebesar 192.847 ton, pada tahun 2015 sebesar 199.141 ton, dan pada tahun 2016 sebesar 180.593 ton [1].  

Paragraf 1 dan 2 diatas merupakan jawaban dari "Mengapa di kabupaten Bantul?" 

Karena produksi padi di kabupaten Bantul setiap tahun selalu berubah – ubah, maka sebuah prediksi perlu dilakukan untuk mengetahui gambaran masa depan apakah hasil produksi padi di kabupaten Bantul akan mengalami kenaikan ataupun penurunan. Hasil prediksi ini dapat digunakan sebagai tolak ukur untuk mengetahui ketahanan pangan di kabupaten bantul khususnya padi. Penelitian ini memanfaatkan data panen atau produksi padi di dinas pertanian kabupaten Bantul sebagai data acuan untuk melakukan prediksi hasil panen padi di kabupaten Bantul. Selain itu prediksi ini juga mempertimbangkan beberapa faktor yang dapat mempengaruhi hasil prodiksi yang berupa luas lahan, curah hujan, serangan hama, hasil produksi sebelumnya, serta pengetahuan petani tentang penanaman padi. 

Paragraf 3 adalah jawaban dari "Mengapa prediksi produksi padi?"

Untuk melakukan prediksi tentunya harus menggunakan sebuah algoritma, salah satu algoritma untuk melakukan prediksi yaitu menggunakan Algoritma Regresi Linear Berganda. Algoritma Regresi Linear Berganda merupakan salah satu teknik analisis data yang sering digunakan untuk mengkaji hubungan antar beberapa variabel dan meramal satu variable [1]. Algoritma ini dapat dilakukan untuk memprediksi beberapa hal seperti prediksi kelayakan operasional mesin rivet produksi [2] atau prediksi konsumsi bahan bakar [3].

Paragraf 4 diatas yaitu jawaban dari "Mengapa menggunakan Algoritam Regresi linear berganda?"

Dari beberapa penjelasan diatas disimpulkan bahwa metode Regresi Linear Berganda dapat digunakan untuk meprediksi sesuatu di masa depan dengan menggunakan lebih dari 2 faktor atau variabel yang memiliki pengaruh terhadap apa yang akan diprediksi, oleh karena itu peneliti akan menggunakan metode ini untuk melakukan prediksi produksi padi di kabupaten Bantul.

Paragraf ke 5 merupakan rangkuman dari penelitian yang akan dilakukan.

Selain anda ikuti ketiga tips tersebut, selalu konsultasikan naskah anda dengan dosen pembimbing dan sekali lagi, banyak membaca paper yang berkaitan dengan area penelitian yang diambil. Untuk penelitian di level Skripsi (S1) sebaiknya membaca paper terkait minimal 30 paper. Semoga bermanfaat artikel penulisan latar belakang di skripsi berikut dan bagi para #PejuangSkripsi semakin menemukan titik terang dan terarah penelitian skripsi anda.

Wednesday, September 2, 2020

5 Hal penting ketika mengirim email ke Dosen

Meskipun telah banyak artikel, postingan Instagram ataupun video di Tiktok yang membahas etika atau aturan dalam mengirimkan email ke dosen, namun ternyata masih banyak mahasiswa yang belum tau atau belum paham hal penting ini. Terbukti masih ada beberapa email yang masuk ke inbox saya tanpa memperhatikan hal-hal penting tersebut.

Contoh email yang kurang tepat

Untuk itu saya ingin membagikan 5 hal penting berikut ini yang perlu anda perhatikan jika ingin berkomunikasi dengan dosen melalui email:

1. Tuliskan Subject

Subject ini sangat penting dalam komunikasi email, karena penerima akan mengetahui secara cepat maksud dari si pengirim email tersebut sebelum membukanya dan membaca secara detail. Kesalahan fatal jika anda mengirimkan email tanpa menuliskan subject/topik, bahkan beberapa email filter akan menkategorikan email anda masuk ke folder spam.

Tuliskan subject email dengan singkat dan jelas. Misal anda akan mengumpulkan tugas melalui email jangan hanya menuliskan "Tugas" lebih baik diganti dengan "Tugas matakuliah ABC", atau saat anda ingin melakukan konfirmasi nilai ujian jangan menuliskan "Nilai" lebih baik ditulis "Konfirmasi nilai ujian akhir matakuliah XYZ". Hal ini akan memudahkan dosen anda untuk memahami maksud dari email yang anda kirimkan. 

2. Kata pembuka

Gunakan kata pembuka yang sopan dan baik, misalnya: Assalamualaikum pak, Selamat pagi bu, Dear pak XYZ, dll. Jangan gunakan bahasa percakapan sehari-hari dalam menuliskan kata pembuka ini, contohnya berikut ini yang harus anda hindari: Halo dab, Hi bro, Halo pak, dll. 

3. Identitas anda

Anda harus pahami bahwa dosen tidak bisa menghapal satu-persatu nama mahasiswa yang begitu banyak, apalagi hanya tulisan di email, maka identitas ini sangat penting ketika anda berkomunikasi dengan email. Perkenalkan diri anda setelah menuliskan salam pembuka, sebutkan nama, nomer identitas dan hubungan anda dengan dosen tersebut. Misalkan: Nama saya ABC dengan nim 123, saya adalah mahasiswa bapak di kelas XX pada matakuliah ABC. 

4. Isi email

Tuliskan isi email dengan jelas sesuai maksud anda. Gunakan bahasa resmi dan sopan, hindari penggunaan bahasa sehari-hari dan jangan menyingkat kata-kata. Gunakan kata ganti Saya, dan jangan menggunakan kata ganti aku, akuh, gue, atau yang sejenisnya. 

Hal lain yang perlu anda perhatikan adalah jangan memerintah "dosen", misalkan: tolong diperiksa, tolong disetujui, tolong dibalas, dll. Kalaupun anda memerlukan dosen untuk segera melakukan sesuatu hal, maka sampaikan secara tidak langsung, misalkan: Jika ada ada suatu hal yang perlu diperbaiki, mohon kiranya bapak memberitahu saya. Hal ini lebih nyaman bagi dosen untuk melakukan sesuatu hal untuk anda.

5. Pahami kesibukan dosen

Anda perlu pahami bahwa dosen tidak menerima email dari anda saja, dan berbagai macam kesibukan yang lain. Anda jangan terlalu berharap email akan dibalas dengan segera, kalaupun dosen segera membalas dengan cepat maka itulah keberuntungan anda. Waktu normal bagi dosen untuk membalas email adalah 3-4 hari kerja, jika lebih dari 5 hari anda belum mendapatkan balasan, anda bisa mengingatkan kembali dengan melakukan reply pada email sebelumnya.

Hal penting diatas tidak hanya dilakukan dalam mengirimkan email ke dosen, tetapi anda juga perlu perhatikan ketika mengirimkan email untuk lamaran pekerjaan, berkomunikasi dengan atasan ataupun komunikasi dengan rekan kerja.

Beberapa tulisan diambil dari artikel:


Friday, August 7, 2020

Membuat Github profile README

Ketika sedang mencari inspirasi atau tutorial code di Github, saya sering melihat beberapa profile-profile di halaman utama Github yang menarik, seperti:

Untuk membuat tampilan profile seperti beberapa akun diatas, bisa kita lakukan dengan membuat repository baru dengan nama sama seperti username kita di Github. Misalkan username saya adalah ariflaksito, maka saya akan buat repository baru dengan nama ariflaksito, kemudian check kolom [ ] "Initialize this repository with a README" supaya otomatis akan tercreate template untuk profile kita. Dan satu lagi, pastikan repository anda mempunyai akses public bukan private.

Special repository message dari Github

Selanjutnya silahkan berkreasi untuk memperindah profile anda, siapa tau yang berkunjung ke repository anda untuk explore kode-kode jadi lebih betaah 😉

Untuk menuliskan beberapa text formating di Github menggunakan markdown khusus, bisa dilihat panduannya berikut ini: Github Flavored Markdown. Sedangkan untuk beberapa icon/emoji yang bisa digunakan bisa di cek juga disini: Github markdown Emoji.

Saya sendiri menggunakan badge info dari Pufler Git-badges dan menampilkan statistik dari Github Readme Stats.

Seperti ini tampilan profile saya di Github

Wassalam, semoga bermanfaat 🙏

Wednesday, July 22, 2020

Belajar Data Science dimana ya sebaiknya?

Menjawab pertanyaan dari judul diatas secara sedarhana yaitu kuliah aja di kampus dimana terdapat prodi/jurusan computer science, informatika, atau bidang-bidang komputer. Ternyata kenyataannya tidak semua prodi/jurusan komputer tersebut mengajarkan data science loh. Nah, sebaiknya gimana donk??

Data Science Diagram
source: https://intellipaat.com/blog/what-is-data-science/

Tren pekerjaan yang banyak diminati oleh para lulusan bidang komputer saat ini yaitu data science, dimana anda bisa cek sendiri rentang gaji untuk pekerjaan ini di google degh. Bidang ilmu data science ini merupakan lintas ilmu dari programming, database dan statistika seperti pada ilustrasi gambar diatas. Selain itu ilmu machine learning juga diperlukan pada pekerjaan ini.

Sayangnya tidak semua kampus di prodi komputer mengajarkan ilmu ini, seperti di prodi kampus tempat saya mengajar hanya 2 sks saja untuk belajar data mining, lebih baik dari pada tidak ada sama sekali khan. Selanjutnya bagaimana cara nya supaya kita bisa mendapat ilmu tentang data science tersebut?

Investasi waktu, pikiran dan uang
Disini uang saya tuliskan di bagian akhir, karena yang paling penting adalah waktu dan fokus pada pikiran. Bisa juga koq kita tanpa uang mempelajari ilmu tersebut.

Nah.. dimasa pandemi ini sangat banyak online course atau webinar yang gratis atau berbayar yg bisa kita ikuti. Pada artikel kali ini saya akan share 2 course online yang bagus untuk anda ikuti dalam mempelajari data science ini, dimana saya sendiri sudah mencoba nya, yaitu: Dqlab dan Sanbercode

DQLab

Saya sudah join ecourse yang beralamat di https://dqlab.id/ ini sejak agustus 2019, dan materi yang dipelajari cukup lengkap, yaitu SQL for data science, R for data science dan Python for data science. Content materi sangat beragam, dari level pemula sampai level lanjut/advance. Selain itu di paltform ini menggunakan live code yang sudah support ke-3 bahasa tersebut, jadi kita tidak perlu menyiapkan environment di local PC/Laptop untuk belajar data science, cukup browser dan koneksi internet saja.

Menurut saya ecourse di DQLab menyiapkan membernya untuk menjadi data engineering, data analyst ataupun data science (perbedaan ke-3 bidang ini saya kurang paham detail, bisa explore sendiri ya), disini materi-materinya fokus di pengolahan data, transformasi, data analisis, cleaning, wrangling, dsb.

DQLab juga menyediakan beberapa challenge yang dipandu oleh beberapa pakar dari dunia industri, seperti traveloka, tokopedia, efishery, xeratic, dll. Challenge ini seperti mini project yang bisa kita kerjakan dengan range waktu tertentu, dimana kasusnya memang sesuai dengan dunia industri, jadi jika kita mengikutinya akan punya pengalaman yang sangat berharga.

Untuk materi-materi tentang modeling machine learning atau data mining ada juga di DQLab pada project challenge yang biasanya setiap bulan 1x atau 2x akan diinfokan di dashboard kita.

Modul challenge Dqlab
Modul challenge DQLab

Beberapa modul dasar di DQLab di sediakan gratis, selanjutnya kita bisa berlangganan dengan harga yang cukup terjangkau. Saat artikel ini diposting terdapat promo untuk berlangganan seharga Rp. 179.400,- untuk 6 bulan. Cek berkala web dan IG Dqlab yang biasanya share informasi promo untuk berlangganan.

Dengan jumlah modul saat ini lebih dari 30 dan akan terus bertambah lagi dengan materi-materi terupdate, saya rasa biaya berlangganan sebesar angka diatas layak dengan apa yang nantinya akan kita dapatkan.

Beberapa modul juga menawarkan reward yaitu extend berlangganan 1 bulan jika kita bisa menyelesaikannya dengan batas waktu yang ditentukan. Saya sendiri pernah mendapatkan reward challenge ini dan juga reward 6 bulan gratis ketika tim DQLab meminta tetimoni.

Challenge dengan Reward di DQLab
Challenge dengan Reward di DQLab

Sanbercode

Sanbercode merupakan ecourse kedua yang akan saya bahas disini, dimana terdapat juga kelas di bidang programing dan design yang ditawarkan selain kelas data science.  Beralamatkan di https://sanbercode.com/, saya mengikuti kegiatan bootcamp dari sanbercode untuk kelas python data science pada bulan Juni 2020 dan sangat puas dengan metode yang diterapkan di event ini.

Event bootcamp tersebut bernama "Bootcamp online 2020 by SanberCode.. From Zero to Hero". Program ini intensif selama 1 bulan atau 4 pekan yang diselenggarakan setiap bulan (kegiatan bisa berubah sewaktu-waktu, cek IG Sanbercode untuk info lebih lanjut). 

Terdapat 2 level pada bootcamp ini yaitu kelas dasar dan kelas lanjutan. Kelas dasar ini gratis dengan syarat yaitu membayar uang komitmen Rp 200,000 dan mendapatkan score bootcamp 80 atau lebih. Saya mengikuti kelas dasar dan Alhamdulillah mendapatkan score 88 dan uang kembali masuk rekening 😄.

Informasi bootcamp bulan Juli 2020


Kurikulum dari bootcamp tersebut kurang lebih seperti berikut ini:
Minggu 1
  • Hello Python
  • Functions, Method and Getting Help
  • Logic Control Flow and Loop
  • Python List dan Dictionary
  • Statistika Deskriptif Untuk Data Science
Minggu 2
  • Pandas Introduction
  • Akses/Indexing dan Transformasi Data
  • Reshaping Data
  • Grouping Data
  • Merging DataFrame
Minggu 3
  • Pengenalan Matplotlib
  • Custom Visualisasi
  • Multiple Plots
  • Perbandingan Kuantitatif
  • Seaborn dan Altair
Minggu 4
  • Pengenalan Machine Learning
  • Algoritma KNN dan Model Regresi Linear
  • Evaluasi Performa dan Memilih Model
  • Preprocessing Data
Setiap materi tersebut akan ada tugas harian yang dikerjakan pada jupyter notebook atau google colab dan disubmit untuk dilakukan penilaian. Selanjutnya pada akhir pekan (hari sabtu) teradapat quiz sampai minggu ke-3 dan minggu terakhir akan ada final project. Dan untuk final project ini akan dibuka kaggle competition dimana kita disediakan data untuk diolah dan kemudian dilakukan prediksi dengan akurasi terbaik sebagai rangking dari beberapa peserta bootcamp.

Dengan cara pembelajaran intensif seperti ini saya rasa pemahaman materi yang akan didapatkan akan lebih cepat karena kita akan dipakasa fokus selama 1 bulan penuh. 

Jika anda ingin mendapatkan file-file tugas dan quiz dari sanbercode yang pernah saya kerjakan sebelumnya bisa akses github berikut: https://github.com/ariflaksito/sanbercode-data-science

Kesimpulan

Dari kedua ecourse yang saya bahas tersebut, kesimpulan menurut saya yaitu:
1) DQLab
- Kasus-kasus di bidang industri terkini
- Bisa mempelajari 3 bahasa penting di data science(R, python, SQL)
- Materi sangat banyak dan terus bertambah, bisa dipelajari sesuai kebutuhan

2) Sanbercode
- Waktu singkat hanya 4 minggu
- Sesuai bagi pemula untuk belajar cepat
- Gratis dengan syarat

Semoga bermanfaat yaa, selamat belajar data science!


Friday, March 13, 2020

Membuat Code Highlight di Word

Bagi beberapa mahasiswa tingkat akhir yang mengambil Skripsi/TA, khususnya di bidang ilmu Computer Science, Informatika, Sistem Informasi, dkk, masalah formating dan tata letak penulisan di aplikasi pengolah kata(Word processing) dapat menaikan level stress disaat si dosen pembimbing meminta menuliskan code-code secara rapi seperti pada Code editor.

planetb.ca ~ syntax-highlight-word
Kali ini saya akan share salah satu tools yang membuat hidup para pejuang-pejuang Skripsi/TA menjadi lebih indah tanpa harus berkutat dengan masalah formating code di Word.   

Saya biasa menggunakan tools online yang dibuat oleh om Jamie di alamat http://planetb.ca/syntax-highlight-word. Cara penggunaanya cukup mudah, tinggal copy khan saja baris code ke dalam form yang tersedia, kemudian pilih jenis bahasa pemrograman dan klik tombol Show Highlighted untuk mendapatkan hasilnya.

Tampilan tools online untuk code highlight
Selanjutnya dari tampilan highlight yang ada di browser "Select All" atau (Ctrl+A), kemudian copy dan paste di Word, naaah... sekarang sudah tampil rapi khan code-code anda di Word.

Tampilan saat di paste ke Word
Silahkan bisa dishare jika artikel ini anda rasa bermanfaat dan dapat membantu para pejuang Skripsi/TA/Thesis.






Wednesday, March 4, 2020

Mengenal Sistem Rekomendasi


Artikel kali ini berkaitan dengan posting saya sebelumnya, saat itu saya tiba-tiba mendapatkan video rekomendasi dari youtube yaitu "[GUIDE] Pebble Screen Tearing Fix". Padahal ketika itu saya sedang exploring video-video smartwatch... Naah kebetulan sekali muncul video tersebut.

Yang jadi pertanyaan adalah.., koq bisa ya Youtube tau apa yang saya butuhkan, atau apa yang bermanfaat buat saya. Teknik ini lah yang disebut dengan Recommendation System atau Sistem Rekomendasi, dimana pengguna akan disuguhkan informasi yang berkaitan dengan item atau karakteristik pengguna tersebut. Menurut saya faktor kebetulan atau Serendipity pada teknik ini sangat kereen, dimana pengguna di tawarkan suatu item/produk yang tak terduga.

Awal mula sistem rekomendasi


Berdasar artikel tahun 1995 tentang social information filtering, saat itu telah ada penelitian di bidang rekomendasi pada database musik yang bernama Ringo, dimana telah dilakukan teknik personalized recommendations. Setelah era berkembangnya internet dan maraknya e-commerce, search engine,  social media dan teknologi berbasis web lainnya, beberapa teknik pada sistem rekomendasi banyak bermuculan untuk menghasilkan item rekomendasi yang lebih baik.

Contoh penggunaan sistem rekomendasi

Peran sistem rekomendasi menjadi penting seiring dengan pertumbuhan data di internet yang sangat pesat dan besar. Dengan meledaknya data-data tersebut, filtering/penyaringan informasi yang berguna/bermanfaat secara personal menjadi bagian yang penting. Disinilah peran sistem rekomendasi dalam melakukan filtering untuk menghasilkan rekomendasi yang baik.

Beberapa perusahaan e-commerce menggunakan sistem rekomendasi untuk menunjang bisnis mereka, seperti: Netflix, Amazon, YouTube, Facebook, Google, MovieLens, Last.fm, Alibaba, eBay, dll.  Dari sejumlah artikel menyebutkan tujuan dari implementasi sistem rekomendasi ini adalah menampilkan list item/produk yang relevan, terbarukan/novelty, kebetulan/serendipity dan beragam/diversity.

MovieLens merupakan salah satu gudang data yang menyediakan data movie, users dan ratings dalam jumlah besar yang sering digunakan oleh banyak peneliti untuk pengujian performa atau membentuk model baru dalam sistem rekomendasi.

Dashboard MovieLens setelah user login
Beberapa sistem rekomendasi pada aplikasi Iflix, Blibli, GoFood dan GrabFood yang memeberikan rekomendasi terkait preference dari pengguna atau item/produk.

Rekomendasi dari iflix beberapa film kartun 😆

Di Blibli saya direkomendasikan membeli Sneakers & Tab ✌😁


Di GrabFood saya disarankan membeli dari resto-resto tersebut

Umumnya terdapat dua metode dalam membangun sistem rekomendasi, yaitu: content-based filtering(CB) dan collaborative filtering(CF), kurang lebih berikut ini detailnya.. 

1. Content-based filtering(CB)

Metode ini memberikan rekomendasi berdasarkan data deskripsi item/produk yang tersedia. Sistem akan mencari persamaan produk berdasarkan deskripsi yang ada. Preferensi pengguna dalam melakukan interaksi terhadap produk akan direkam dan produk dengan kemiripan tertentu akan direkomendasikan kepada pengguna tersebut. Kurang lebih ilustrasi teknik ini seperti pada gambar berikut:

Metode content-based filtering
Pada metode CB ini terdapat beberapa keunggulan, yaitu: 
  • Pengguna akan mendapatkan rekomendasi terhadap produk yang disukainya. 
  • Jika terdapat produk baru akan dengan mudah direkomendasikan jika sesuai dengan karakter produk sejenis. 
Meski demikian terdapat juga beberapa kelemahan pada metode ini: 
  • Tidak bisa memunculkan fitur serendipity, karena jenis produk yang berbeda. 
  • Ekstraksi/pengambilan informasi tipe data video, audio, image sulit dilakukan, karena membutuhkan algoritma yang rumit & kompleks. 
  • Perusahaan bisnis e-commerce tidak dapat ekspansi penjualan produknya, karena tipe produk berbeda tidak muncul sebagai rekomendasi ke pengguna.

2. Collaborative filtering(CF)

Pada CF, sistem memberikan rekomendasi berdasarkan pada karakteristik dari pengguna dengan pengguna yang lain. Oleh karena itu, data history transaksi atau rating dari pengguna menjadi komponen penting dalam metode ini. Misalkan pengguna A membeli kopi, kentang goreng dan telur mata sapi sedangkan pengguna B membeli kopi dan kentang goreng. Maka kemungkinan besar pengguna B juga akan membeli telur mata sapi, karena berdasarkan karakteristik antar pengguna terdapat kecocokan. Konsep inilah yang digunakan oleh metode CF dalam sistem rekomendasi.  Berikut ilustrasi dari metode CF:

Metode collaborative filtering

Di metode CF ini dapat mengatasi kelemahan pada metode CB, yaitu serendipity, dimana pengguna akan merasa surprise mendapatkan rekomendasi produk-produk yang tidak mereka bayangkan sebelumnya. Tetapi di metode CF sistem akan menghasilkan rekomendasi yang baik berdasarkan data rating dari pengguna, kondisi jarangnya data-data tersebut menyebabkan sistem rekomendasi berjalan tidak maksimal, atau istilahnya disebut sparse data.

Kesimpulan

Implementasinya kedua metode dalam sistem rekomendasi tersebut digunakan sesuai kebutuhan, misalkan pada bisnis produk yang sejenis bisa menggunakan metode CB, sedangkan untuk produk-produk beragam, metode CF bisa dipilih. Algoritma pada metode CB sebagian besar menggunakan KNN atau teknik searching dan matching, sedangkan di CF lebih beragam lagi algoritma yang digunakan, seperti: neural network atau matrix factorization.

Gabungan metode keduanya, atau biasa disebut dengan metode Hybrid telah banyak dikembangkan juga untuk menghasilkan rekomendasi yang lebih baik. Trend penelitian saat ini banyak ke arah prediksi matrix data untuk mengatasi kendala sparse data di CF atau pengembangan metode hybrid  di sistem rekomendasi dengan berbagai macam teknik.

Bagi mahasiswa yang tertarik mengambil tema penelitian ini, bisa kontak saya untuk diskusi lebih lanjut yaa.. InshaAllah artikel selanjutnya akan saya bahas beberapa teknik implementasi di metode collaborative filtering.

Wednesday, July 3, 2019

Movie App dengan Angular JS dan Onsen UI

Kali ini saya akan share contoh aplikasi front-end web dengan bahasa pemrograman Javascript menggunakan framework Angular JS versi 1. Disini saya juga menggunakan Onsen UI (https://onsen.io/) sebagai library untuk layouting di tampilan mobile. Contoh aplikasi ini bisa digunakan untuk referensi final project pada mata kuliah Hybrid Web prodi D3 Teknik Informatika.

Untuk data yang digunakan adalah API dari themoviedb.org, yang merupakan database movie dengan dokumentasi yang lengkap dan gratis. Untuk menggunakan layanan ini silahkan melakukan registrasi terlebih dahulu untuk mendapatkan API Key yang nantinya akan kita gunakan untuk melakukan request data. 

Dibawah ini tampilan untuk halaman utama yang menampilkan data list movie yang diakses melalui url: https://api.themoviedb.org/3/discover/movie?api_key={xyz}
List Data Movie
Dari masing-masing list item movie tersebut dapat dilihat detail pada tampilan dibawah ini dengan menggunakan url: https://api.themoviedb.org/3/movie/[id]?api_key={xyz}

Detail item Movie
Untuk dapat melakukan request pada kedua url API diatas, parameter api_key harus diubah dengan data api_key anda yang didapatkan setelah login ke web themoviedb.org dengan memilih menu Setting > API > API Key (v3 auth), seperti pada tampilan dibawah ini:

API Key di themoviedb.org
Untuk code program ini bisa anda dapatkan di https://github.com/ariflaksito/movie-app-angular1. Anda bisa melakukan clone source code atau download dalam zip file. Setelah itu silahkan anda ubah 2 file yaitu:

  • js/controllers/MainController.js
  • js/controllers/MovieController.js
Yang perlu diubah adalah API Key yang anda miliki dicopykan ke code url untuk menggantikan api_key=xyz pada kedua file tersebut.

InshaAllah lain kali akan saya tulis artikel tentang penggunaan framework Angular JS

Friday, June 28, 2019

Cara mudah membuat kutipan di Microsoft Word


Dari pengalaman saya membimbing mahasiswa/i dalam penulisan skripsi atau publikasi ilmiah, tidak ada satupun yang tidak menggunakan Microsoft Word. Belum pernah saya menemukan satupun dari mereka yang menggunakan Open Office atau Libre Office dalam menuliskan naskah ilmiah, apalagi menggunakan LaTeX. Setelah beberapa kali diskusi dengan mahasiswa/i bimbingan saya ternyata beberapa dari mereka belum paham penggunaan fitur sitasi otomatis di Microsoft Word. Padahal sebagian besar saya membimbing pada prodi Informatika 😂😂

Di posting kali ini saya akan share cara mudah dalam menggunakan fitur sitasi/kutipan/referensi. Untuk contohnya disini saya gunakan Microsoft Word Office 365, untuk versi Word yang lainnya  kurang lebih sama juga caranya.

Sebelum kita mulai cara menggunakan sitasi di Word, yang perlu diperhatikan adalah sumber referensi apa saja yang bisa kita gunakan untuk karya ilmiah khususnya skripsi. Berikut daftar sumber referensi tersebut:
  1. Buku dengan nomer ISBN resmi,
  2. Jurnal Cetak atau Jurnal Online
  3. Surat kabar atau Majalah
  4. Naskah Skripsi
  5. Website resmi instansi/perusahaan yang bereputasi
Khusus website ini kita tidak bisa menggunakan web asal-asalan, seperti blog, wikipedia atau tulisan orang yang tidak ilmiah. Tetapi kita bisa mengambil sumber referensi dari website dimana yang menerbitkan adalah instansi/perusahaan yang bereputasi. Contohnya anda menggunakan sumber referensi dari dokumentasi framework CodeIngniter di website, naah.. hal itu bisa kita gunakan karena diterbitkan oleh instansi resmi yaitu British Columbia Institute of Technology sebagai pengembang framwork CodeIgniter. Amannya silahkan diskusikan dengan dosen pembimbing untuk masalah sumber referensi web ini.

Oke, kita mulai saja cara menggunakan sitasi di Word. Setelah kita buka aplikasi Word, pilih tab Referensi atau References kemudian terdapat satu blok bagian Referensi yang nantinya akan kita gunakan. Seperti pada gambar dibawah ini


Untuk menambah daftar referensi, pertama klik tombol Kelola Sumber/Citations yang akan memunculkan window Pengelola Sumber. Jika belum ada data sumber yang akan digunakan, klik tombol Baru dimana akan muncul tampilan window Buat Sumber. Selanjutnya isikan tipe sumber (buku, situs web, artikel jurnal, laporan, paten, dll), pengarang, judul, tahun, kota dan penerbit. Untuk beberapa tipe sumber field tersebut tidak wajib diisikan, tetapi lebih baiki lagi jika semua field terisi, untuk memperjelas dan lebih detail informasi sumber referensi karya kita.

Window Pengelola Sumber
Window Buat Sumber, contoh menambahkan referensi tipe Buku
Setelah kita tambahkan beberapa sumber referensi, pada window Pengelola Sumber akan muncul daftar referensi tersebut. Supaya dapat digunakan pada file kita, maka pindahkan daftar referensi tersebut ke bagian kanan (Daftar saat ini) menggunakan tombol Salin ->

Cara melakukan kutipan pada paragraf yang kita tuliskan yaitu dengan cara memilih tombol Sisipkan Kutipan/Insert Citation, kemudian pilih sumber referensi yang muncul, maka secara otomatis pada paragraf akan muncul kutipan tersebut.


Menambahkan kutipan (Dengan style IEEE)
Pada gambar diatas kita menambah kutipan dengan style IEEE. Terdapat beberapa style yang digunakan dalam membuat kutipan dan Daftar pustaka seperti, APA, Chicago, Harvard, dll. Setiap perguruan tinggi mempunyai standard style dalam penulisan skripsi/karya ilmiah, silahkan tanyakan ke dosen pembimbing atau redaksi penerbit jurnal untuk aturan style penulisannya.

Dalam membuat daftar pustaka, kita juga dapat memanfaatkan fitur di Word ini dengan memilih tombol Bibliografi, maka secara otomatis akan tergenerate daftar pustaka pada tulisan kita. Jika pada saat proses penulisan kita menambahkan beberapa referensi baru dan perlu ditampilkan di daftar pustaka, kita dapat melakukan pembaharuan dengan cara menempatkan kursor pada tulisn daftar pustaka kita, kemudia akan muncul tombol Perbarui Kutipan dan Bibliografi, pilih tombol tersebut maka daftar pustaka dan kutipan kita akan terupdate.


Membuat daftar pustaka otomatis
Kita dapat juga merubah penggunaan style dengan cara klik tombol dropdown pada bagian Gaya, kemudian pilih style yang kita inginkan, maka otomatis pada kutipan di paragraf kita dan daftar pustaka akan berubah menyesuaikan style pilihan tersebut.

Cukup mudah khan menggunakan fitur Referensi di Microsoft Word, jangan sampai masalah penulisan kutipan dan pustaka menghabiskan waktu kita dalam menyelesaikan penulisan skripsi.

Selamat mencoba, Semoga bermanfaat..

PS: Silahkan tinggalkan komentar jika ada pertanyaan

------------------------
Contoh style IEEE
------------------------
Algoritma Bee Colony telah digunakan pada pencarian rute terpendek untuk pengiriman distribusi Carica di Nida Food Wonosobo, dimana untuk distribusi pengiriman pada 13 toko diperlukan jarak terpendek yaitu 54,35 km [1]

DAFTAR PUSTAKA
[1] M. D. Arifin and A. D. Laksito, "IMPLEMENTASI ALGORITMA BEE COLONY UNTUK OPTIMASI RUTE DISTRIBUSI CARICA NIDA FOOD WONOSOBO," Jurnal Sistem Informasi (Sistemasi), pp. 243-253, 2019.
[2] A. D. Laksito, K. Kusrini, H. Sismoro, F. Rahmawati and M. Yusa, "A Comparison Study of Search Strategy on Collecting Twitter Data for Drug Adverse Reaction," in 2nd International Seminar on Application for Technology of Information and Communication, Semarang, 2018.
[3] P. S. Vilarino and C. P. Sanchez, PHP Microservices, Birmingham: Packt Publishing Ltd., 2017.

------------------------
Contoh style APA
------------------------
Algoritma Bee Colony telah digunakan pada pencarian rute terpendek untuk pengiriman distribusi Carica di Nida Food Wonosobo, dimana untuk distribusi pengiriman pada 13 toko diperlukan jarak terpendek yaitu 54,35 km (Arifin & Laksito, 2019)

DAFTAR PUSTAKA

Arifin, M. D., & Laksito, A. D. (2019). IMPLEMENTASI ALGORITMA BEE COLONY UNTUK OPTIMASI RUTE DISTRIBUSI CARICA NIDA FOOD WONOSOBO. Jurnal Sistem Informasi (Sistemasi), 243-253.

Laksito, A. D., Kusrini, K., Sismoro, H., Rahmawati, F., & Yusa, M. (2018). A Comparison Study of Search Strategy on Collecting Twitter Data for Drug Adverse Reaction. 2nd International Seminar on Application for Technology of Information and Communication. Semarang.

Vilarino, P. S., & Sanchez, C. P. (2017). PHP Microservices. Birmingham: Packt Publishing Ltd.

--------------------------
Contoh style Chicago
--------------------------
Algoritma Bee Colony telah digunakan pada pencarian rute terpendek untuk pengiriman distribusi Carica di Nida Food Wonosobo, dimana untuk distribusi pengiriman pada 13 toko diperlukan jarak terpendek yaitu 54,35 km (Arifin and Laksito 2019)

DAFTAR PUSTAKA

Arifin, Muhammad Darwis, and Arif Dwi Laksito. "IMPLEMENTASI ALGORITMA BEE COLONY UNTUK OPTIMASI RUTE DISTRIBUSI CARICA NIDA FOOD WONOSOBO." Jurnal Sistem Informasi (Sistemasi), 2019: 243-253.

Laksito, Arif Dwi, Kusrini Kusrini, Heri Sismoro, Fita Rahmawati, and Mochammad Yusa. "A Comparison Study of Search Strategy on Collecting Twitter Data for Drug Adverse Reaction." 2nd International Seminar on Application for Technology of Information and Communication. Semarang, 2018.

Vilarino, Pablo Solar, and Carlos Perez Sanchez. PHP Microservices. Birmingham: Packt Publishing Ltd., 2017.

Wednesday, June 26, 2019

Bagaimana memulai belajar Javascript?


Sebelum saya share tentang bagaimana memulai mempelajari javascript secara praktis, kita coba pahami dulu kenapa kita harus mempelajari bahasa pemrograman ini. JavaScript adalah salah satu bahasa pemrograman web yang paling kuat dan fleksibel. Apalagi bagi anda yang ingin berkarir sebagai web-developer, kemampuan yang baik dalam menggunakan bahasa ini mutlak diperlukan. Atau para mahasiswa yang mengambil tema web dalam skripsinya jangan sampai tidak paham dengan javascript, dosen pembimbing atau dosen penguji siap meberondong pertanyaan2 ke anda.

Perangkat komputer/laptop yang anda gunakan untuk menggunakan javascript tidak membutuhkan spesifikasi yang besar, kita hanya memerlukan web browser dan text editor yang sangat ringan digunakan seperti: Notepad++, Sublime atau Atom. Klopun anda memiliki spesifikasi laptop yang gahar/super bisa menggunakan PHPStorm atau Visual Studio Code.

PHPStorm ini adalah IDE dari Jetbrains yang berbayar dan anda bisa menggunakan trial 30 hari. Atau jika anda sebagai mahasiswa dosen, atau tenaga pendidik dan memiliki email resmi dari kampus, anda bisa mendaftarkan lisensi pendidikan gratis. Saya sudah menggunakan selama 3 tahun versi free educational licenses ini, dimana setiap tahun perlu mengisi form untuk extends masa aktif. Dengan satu aktivasi tersebut kita bisa mendapatkan free produk Jetbrains yang lain, seperti: Datagrip, WebStorm, AppCode, RubyMine, dll. Untuk detail free lisensinya anda bisa menuju ke link ini

Jetbrains Free Educational Licenses 

Ohh maaf, jadi pembahasan Jetbrains inih 😂😁

Untuk mempelajari javascript, paling tidak anda sudah paham dengan HTML dan CSS sebagai bahasa markup dan style untuk membangun sebuah website. Javascript sangat erat berkaitan dengan HTML dan CSS. Dimana javascript ini bertugas membuat tampilan website menjadi lebih interaktif dan dinamis.

Perlu diketahui bahwa jascript ini berbeda dengan Java, tidak ada kaitan dan hubungan antara bahasa pemrograman javascript dan Java. Java merupakan bahasa pemrograman berorientasi Objek yang di kembangkan oleh Sun dan saat ini sudah diambil alih oleh Oracle. Sedangkan javascript dikembangkan oleh Brendan Eich yang saat itu bekerja untuk Netscape dimana awalnya bernama Live Script. Kemungkinan untuk alasan marketing dan popularitas, Netscape mengubah namanya menjadi Javascript.

Konsep tentang algoritma pemrograman merupakan nilai plus untuk menguasai javascript. Meskipun anda belum pernah mempelajari algoritma pemrograman anda bisa mempelajarinya bersamaan dengan belajar javascript. Modal untuk bisa menguasai javascript adalah koneksi, konsisten dan komintmen. Yaa.. anda harus mempunyai koneksi internet yang oke dan komitmen untuk meluangkan waktu mempelajarinya. 

Berikut ini tahapan untuk memulai mempelajarinya:
  1. Pelajari blog di malasngoding.com tentang javascript. Artikel ini berbahasa indonesia dan cukup lengkap tahap-tahap untuk dasar teori dan best-practise javascript. Terdapat 13 bagian dan kurang lebih diperlukan waktu sekitar 10 jam untuk menyelesaikannya. Berikut alamat webnya: https://www.malasngoding.com/belajar-javascript-pengertian-dan-pengenalan-javascript/

  2. Ikuti e-course gratis di dicoding.com pada materi Web Fundamental. Disini selain mempelajari javascript, juga terdapat materi HTML dan CSS. Anda harus registrasi dulu untuk bisa bergabung di course ini. Dari pengalaman saya sebelumnya e-course dicoding ini terstruktur dalam menyusun materi dan memudahkan dalam memahami konsep pemrograman yang kita pelajari. Batas waktu menyelesaikan e-course ini adalah 30 hari, maka anda harus mengatur waktu sebaik mungkin dan konsisten menyelesaikannya. Langsung saja menuju link berikut: https://www.dicoding.com/academies/123
Menurut saya dari blog dan e-course diatas sangat efektif untuk membangun dasar skill pemrograman javascript. Selain mempelajari dari 2 materi tersebut bisa juga dicoba beberapa blog atau e-course berikut ini:
Selamat belajar javacript yaa, semoga 1-2 bulan kedepan setelah membaca artikel ini anda bisa menguasai pemrograman javascript dan bisa bermanfaat untuk kehidupan anda atau orang-orang disekitar, hehee...

InshaAllah selanjutnya saya akan share artikel best-practise dalam mengembangkan web menggunakan javascript