Koneksi Google Drive dengan Google Colab

Google colab menyediakan fasilitas penyimpanan sementara dengan cara menekan tombol folder di bagian kiri atas. Namun cara ini memiliki kelemahan yakni ketika tidak digunakan maka data yang diupload akan hilang lagi dan kita harus mengunggah ulang. Agar tidak perlu mengunggah ulang Google Colab menyediakan fasilitas menghubungkan Google Drive dengan Google Colab. Data yang diperlukan diunggah ke Google Drive dan Google Colab tinggal mengambil data dari drive saja ketika akan digunakan.

Impor Library

Library yang diperlukan adalah Drive.

Perhatikan di bagian Files, ketika simbol Google Drive ditekan maka ada instruksi untuk me-run sel yang mengaktifkan Drive. Jalankan saja.

Mengisi Authorization Code

Karena terhubung dengan drive maka perlu password Google Drive. Klik URL untuk memasukan authorization code.

Berikutnya tinggal mengkopi saja authorization code dan paste ke isian Google Colab. Pastikan Google Drive sudah aktif.

Menggunakan Drive

Perhatikan munculnya folder Drive di bagian File Google Colab. Selamat mencoba.

Silahkan lihat video tutorialnya berikut,  salah satu materi kuliah pengolahan citra.

Iklan

Menentukan Kompenen RGB Citra dengan OpenCV

Citra berwarna dapat diketahui komponen Red-Green-Blue penyusunnya. Dalam OpenCV sedikit berbeda, yaitu Blue-Green-Red (BGR). Sistem yang menentukan kematangan buah misalnya, membutuhkan nilai RGB suatu buah yang matang atau belum. Nah, di sini kita coba menggunakan OpenCV yang berjalan di Google Colab untuk menentukan kadar RGB-nya yang kemudian dihitung rata-rata untuk menentukan warna dominan-nya. Dalam prakteknya tidak hanya menggunakan rata-rata melainkan dengan sistem berbasis Jaringan Syaraf Tiruan atau Deep Learning.

Mengimpor Library

Beberapa Library diperlukan antara lain CV2, NumPy, dan Google Colab File (untuk input output interface). Gunakan kode berikut di awal untuk sel baru.

  • import cv2
  • import numpy as np
  • import pandas as pd
  • from google.colab.patches import cv2_imshow
  • from google.colab import files
  • import io

Jalankan sel tersebut pastikan tidak ada kesalahan karena akan menentukan instruksi berikutnya.

Mengambil File Citra

Berikutnya adalah mengupload citra. Sebenarnya upload bisa lewat mekanisme upload di Google Colab. Tapi bisa juga dengan memanfaatkan I/O Google Colab, kita tinggal memilih file citra yang akan diuplad.

  • upload_files=files.upload()
  • for filename in upload_files.keys():
  • upload_files.keys
  • print(‘nama file: ‘,filename)
  • citra=cv2.imread(filename)

Di sini variabel upload_files berisi filename yang akan digunakan untuk imread pada OpenCV untuk mengambil matriks RGB citra tersebut. Gunakan citra RGB untuk latihan ini.

Mengolah Matriks Citra

Citra berwarna memiliki tiga komponen matriks yaitu biru, hijau, dan merah yang masing-masing berturut-turut diberi indeks 0, 1, dan 2.

  • blue=citra[:,:,0]
  • green=citra[:,:,1]
  • red=citra[:,:,2]
  • b=np.average(blue)
  • g=np.average(green)
  • r=np.average(red)
  • print(b)
  • print(g)
  • print(r)

Variabel b, g, dan r berturut-turut rata-rata dari total matriks blue, green, dan red. Fungsi print hanya digunakan untuk mengetahui skor rata-rata untuk mengecek akurasi if-else tahap berikutnya.

Deteksi Warna Dominan

Langkah terakhir adalah instruksi if-else untuk mendeteksi mana nilai yang terbesar apakah blue, green, ataukah red.

  • if b>g:
  • if b>=r:
  • result=print(‘warna dominan: blue’)
  • print(b)
  • else:
  • if g>=r:
  • result=print(‘warna dominan: green’)
  • print(g)
  • else:
  • result=print(‘warna dominan: red’)
  • print(r)

Jalankan dan pastikan warna dominan sesuai dengan kenyataannya.

Mengetahui Kekuatan Kita

Mengetahui kekuatan dan kelemahan diri sangat sulit karena menyangkut sesuatu yang sulit diukur. Namun demikian tetap harus diketahui karena terkait dengan tujuan jangka panjang. Bagi peneliti adalah roadmap penelitian, atau bagi mahasiswa berupa proposal penelitian yang akan disusun. Postingan kali ini sedikit berbagi apa saja yang harus diperhatikan dalam memahami kekuatan kita.

Meningkatkan Kekuatan vs Mengurangi Kelemahan

Namanya manusia pasti ada kelebihan dan kekurangan. Untuk pelajar yang masih fresh, baik meningkatkan kekuatan dan mengurangi kelemahan dua-duanya penting dan menjadi fokus utama, walau ketika beranjak dewasa terkadang di negara maju sudah mulai fokus meningkatkan bakat yang ada, apakah sepak bola, tenis, peneliti atau penyanyi, pelukis dan spesialis-spesialis lainnya. Nah, untuk dosen-dosen seusia saya jika fokus mengurangi kelemahan, dikhawatirkan tidak ada waktu tersisa untuk meningkatkan kekuatan yang dimiliki.

Dalam suatu organisasi, misalnya kampus terkadang pimpinan tidak mampu mengumpulkan pundi-pundi kekuatan dari SDM yang ada. Bahkan dalam perputaran organisasi, para staf cenderung melihat kelemahan yang memang mudah dilihat, sementara kelebihan-kelebihan kurang di-ekspos. Saling menjatuhkan, intrik-intrik politik dalam satu organisasi terkadang lupa bahwa seharusnyalah bersaing dengan organisasi lain yang terus berbenah, apalagi di era disrupsi dan pandemi COVID-19. Hal ini terkadang lumrah dijumpai, kita cenderung kurang menghargai prestasi bangsa sendiri, terlepas dari sukses atau gagal. Di Jepang, pesumo walaupun kalah tetap dihormati dan mendapat bayaran yang tinggi. Untuk yang dekat dengan Indonesia, misalnya Thailand dan Malaysia, mereka sangat menghormati atlit-atlit yang membela bangsanya. Tampak yel-yel “don’t be sad, its ok” bergemuruh dari suporternya ketika Malaysia kalah di final memanah dengan Indonesia. Atlit-atlit Thailand, misalnya, disambut di bandara oleh para penggemarnya menang atau kalah. Untungnya saat ini negara kita mulai menghargai atlit-atlitnya yang berprestasi.

Jebakan “Iklan”

Iklan di sini maksudnya hal-hal yang menarik perhatian saat ini. Misalnya, ketika tren “machine learning”, semua pada fokus ke machine learning, tidak perduli cocok atau tidak, perlu atau tidak. Bahkan ada anekdot yang ditujukan orang yang baru belajar machine learning yang nyinyir dengan rekannya yang belajar statistik atau matematika.

Saya teringat rekan saya yang jago di satu bidang, tetapi karena godaan bidang lain akhirnya meninggalkan bidang yang dikuasainya dan beralih ke bidang baru yang lebih diminati walau dari nol lagi. Hal ini terkadang wajar, dan mirip “jebakan batman”. Ibarat anak yang sudah jago satu hal, terkadang jika tidak ada lawan sebanding akan bosan juga. Merasa keahliannya yang sebenarnya sudah tinggi, dianggap olehnya biasa-biasa saja, sehingga bosan dan berusaha mencari bidang lain yang menurutnya lebih menarik. Bayangkan, misalnya Anda menguasai Java, jika orang lain sanggup menyelesaikan satu problem dalam satu minggu, Anda sanggup mengerjakannya beberapa jam saja, maka itulah kekuatan Anda yang sebenarnya. Tapi karena bosan Anda beralih misalnya ke Python, dan Anda mengerjakan satu problem selama satu minggu, padahal orang-orang bisa dalam beberapa jam saja. Anda tidak akan dilirik orang.

Terlalu Asyik Mengerjakan Rutinitas

Beberapa rekan saya, karena asyik menjalankan rutinitas jadi kurang meningkatkan kekuatannya. Dalam satu seminar internasional, saya kebetulan satu meja makan dengan mereka. Kebetulan mereka ibu-ibu yang saya faham banyak kegiatan rumah tangga yang menyita. Saya dengan jujur berkata bahwa kalian sadar atau tidak kalau kualitas di atas rekan-rekan lain yang baru. Mereka malah tersenyum, dan mengatakan kalau saya hanya memuji. Saya malah balas berkata bahwa apa untungnya bagi saya mengatakan demikian. Eh, tidak lama kemudian mereka terkejut ketika namanya disebutkan di forum sebagai salah satu “best paper”.

Nah, bagaimana dengan kelemahan? Tentu saja harus diatasi dan dikurangi, terutama yang mengganggu jalannya kinerja. Namun jika susah, ya fokus saja ke kelebihan/kekuatan. Tidak mungkin memaksa menjadi penulis buku jika lambat mengetik, atau menjadi motivator tetapi sulit pidato. Mungkin cocok di laboratorium, atau selalu menang hibah. Kolaborasi saat ini menjadi satu keharusan. Satu kelemahan bisa diisi oleh kelebihan rekan kita. Dalam pembukaan rakornas asosiasi perguruan tinggi infokom (APTIKOM), ketua aptikom menganjurkan kita fokus ke kekuatan yang ada di kita sekarang daripada menunggu yang tidak/belum ada. Yuk, kita mulai fokus ke kekuatan kita dan berkolaborasi.

Mengetik dengan Suara lewat Google Docs

Pertemuan yang lalu kita telah berlatih mengetik. Tidak perlu berkecil hati untuk rekan-rekan yang kecepatannya mengetiknya lambat karena saat ini Google Docs (http://docs.google.com) menyediakan fasilitas mengetik dengan suara. Alat yang dibutuhkan hanya microphone dan internet karena Google Docs bekerja lewat cloud (internet).

Akun Gmail

Syarat terpenting memanfaatkan fasilitas Google Docs (juga fasilitas lainnya) adalah akun Gmail. Sepertinya saat ini hampir semua orang memiliki akun Gmail. Ketika login Gmail, di bagian kanan atas kita bisa beralih ke Google Docs dengan menekan simbol documen. Lanjutkan dengan membuat dokumen baru.

Memulai Mengetik via Suara

Untuk memulai mengetik, masuk ke menu Tools (atau alat jika sudah dalam bahasa Indonesia) lalu pilih Voice Typing (atau Dikte). Pastikan simbol microfon muncul di sebelah kiri google docs.

Set Bahasa

Jika kita ingin mengetik dalam bahasa Indonesia, maka terlebih dahulu kita harus mengeset bahasa Indonesia agar suara dapat dengan baik dikonversi ke tulisan oleh Google. Caranya adalah dengan menekan tombol segitiga di atas simbol microfon. Pilih bahasa yang Anda inginkan, misalnya Bahasa Indonesia.

Memulai Mengetik dengan Suara

Berikutnya kita tinggal berbicara saja lewat mikrofon. Usahakan perlahan dengan pengucapan yang jelas. Tangan kita tinggal menekan titik dan koma saja. Atau tanda petik jika ingin mengetik cerita/novel. Untuk menyimpan ke laptop, tinggal masuk ke menu File Download dan pilih format yang kita inginkan, misalnya docx. Sekian selamat mencoba.

Lebih jelasnya lihat tutorial video di bawah ini.

Konversi MS Word ke PDF Mengikuti Format IEEE dengan PDF Express

Institute of Electrical and Electronic Engineering (IEEE) memiliki format/style tersendiri. Format ini sudah ada dalam aplikasi sitasi, misalnya Mendeley. IEEE juga menyediakan fasilitas konversi dari MS Word ke PDF standar IEEE lewat situs https://www.pdf-express.org/.

Login

Untuk mendaftar, klik “New Users – Click Here”. Jika sudah punya akun silahkan login ke converter pdf resmi IEEE tersebut.

Unggah Berkas

Masukan Conference ID, Email Address, dan Password yang sudah Anda daftarkan. Silahkan tekan Forgot your password? Ketika Anda lupa. Karena dipakai ketika seminar IEEE saja, biasanya pengguna lupa dengan passwordnya. Selanjutnya tekan Create New Title untuk memulai konversi naskah paper IEEE. Masukan Judul paper sebelum proses unggah berkas MS Word-nya.

Setelah muncul informasi file yang diupload lanjutkan dengan menekan Continue untuk melanjutkan proses konversi. Ada tiga status yang mungkin terjadi: 1) Manual Conversion, 2) Error, dan 3) Upload Incomplete.

 

Perbaiki jika ada Error dan tunggu beberapa saat sampai Anda menerima email hasil dari konversi. Biasanya error jika di dalam naskah ada format Font yang berbeda dengan format standar IEEE.

Menerima Hasil

PDF bekerja lewat mekanisme email. Jadi hasil konversi akan dikirim lewat email.

Selamat, Anda sudah berhasil mengkonversi MS Word ke PDF yang sesuai dengan format IEEE. Naskah tinggal diunduh. Sekian, semoga bermanfaat.

 

Self-Supervised Learning di AIS 2020

Hari ini ada acara spesial yakni Artificial Intelligence Summit (AIS) 2020. Beberapa keynote akan dilaksanakan. Salah satunya nanti Yann LeCun, penemu self-supervised learning. Hari ini pengenalan Self-Supervised Learning (SSL) diberikan oleh Prof Bambang dari ITB. Ide menarik dari metode ini adalah bahwa manusia belajar ketika anak-anak sebagian besar tanpa “supervised”/panduan. Mereka menggunakan self-supervised yang dalam SSL dikenal dengan kombinasi pretext dan downstream task.

Jenis pretext task ada banyak antara lain: rotation, colorization, in-painting, jigsaw, placing image patches, dan lain-lain. Presentasi disertai dengan demo program menggunakan Google Colab, lihat di sini programnya. Disertakan pula link Github sumbernya. Silahkan lihat record-nya di Youtube, atau video di bawah ini.

Menghitung Jumlah Kata dengan Python

Menghitung jumlah kata merupakan tugas wajib yang harus bisa diselesaikan oleh mesin pengelola teks. Teknik telah digunakan oleh word processing misalnya MS Word. Ketika kita mengetik, di bagian bawah langsung tercetak jumlah kata yang telah diketik. Nah, di sini kita coba teknik yang digunakan dalam bahasa pemrograman Python.

Library yang digunakan untuk menghitung kata adalah collections yang memiliki satu fungsi bernama Counter. Gunakan instruksi Open untuk mengambil file txt yang akan dikelola.

  • f2 =  open(‘Praktek.txt’‘r’)
  • content = f2.read()
  • print(content)

Variabel content ketika di-print akan menampilkan isi dari file “Praktek.txt” seperti praktek sebelumnya (lihat pos yang lalu). Tetapi kali ini kita menggunakan fungsi split untuk memisahkan kata dari file tersebut.

  • words = open(‘Praktek.txt’).read().split()
  • words

Terakhir kita menggunakan fungsi Counter baik untuk menampilkan jumlah per kata maupun jumlah total kata (dengan fungsi len).

Untuk jelasnya lihat video tutorial ini.

Mengelola Environment Anaconda

Anaconda merupakan pakat Integrated Development Environment (IDE) berbasis Python (https://www.anaconda.com/). Paket lengkap ini sangat membantu siswa yang baru pertama kali belajar bahasa pemrograman Python. Sebelumnya pengguna Python menggunakan konsol untuk memrogram, termasuk mengelola environment-nya (lihat post yang lalu). Namun, Anaconda memperkenalkan teknik yang lebih sederhana dan mudah dicerna lewat Anaconda Navigator.

Mengunduh Anaconda

Untuk menginstal Anaconda, silahkan unduh di sini. Sesuaikan dengan sistem operasi yang kita gunakan, dan pilih versi yang terkini. Jika sudah, jalankan hingga muncul tampilan sebagai berikut:

Mengatur Environment

Pada Anaconda Navigator terdapat menu Environments untuk mengelola environment yang ada. Environment merupakan folder kerja yang berisi fasilitas-fasilitas tertentu, misalnya untuk deep learning, machine learning, dan lain-lain. Maksudnya adalah agar satu aplikasi tidak bercampur dengan aplikasi lainnya sehingga lebih rapi dan terstruktur.

Secara default, environment yang ada adalah base (root), yang di dalamnya sudah terdapat beberapa fasilitas dasar, salah satunya Jupyter Notebook. Untuk membuat satu environment baru, gunakan tombol +Create di bagian bawah. Untuk beralih ke environment lainnya tinggal menekan nama environment tersebut. Tuggu sesaat hingga library yang ada muncul di sebelah kanan. Untuk membuka terminal ataupun Jupyter Notebook, silahkan tekan simbol segitiga di sebelah kanan environment yang dipilih.

Ada baiknya kita menggunakan Open Terminal untuk membuka Jupyter Notebook agar folder sesuai dengan yang kita inginkan.

Perhatikan saya menggunakan environment “Nusaputra” dengan folder kerja di d:\pengajaran\Pengolahan Citra. Instruksi jupyter notebook bermaksud membuka jupyter notebook di browser kita.

Mencoba Jupyter Notebook

Berbeda dengan Google Colab yang selalu terpasang Library, pada Jupyter Notebook library tertentu, misal OpenCV, harus dipasang terlebih dahulu. Gunakan PIP atau dengan Anaconda Navigator, lihat caranya di materi kuliah saya berikut ini. Perhatikan bagaimana mengelola sel, tracing error, dan lain-lain.

Problematika Kuliah Pemrograman

Salah satu skill yang harus dimiliki oleh mahasiswa jurusan yang berhubungan dengan komputasi (ilmu komputer, sistem informasi, sistem komputer, dll) adalah pemrograman. Saat ini bahasa pemrograman yang beredar sangat beragam, dari yang berbasis desktop, web, android/ios, hingga IoT. Tentu saja tidak semua bahasa harus dikuasai oleh mahasiswa komputer. Beberapa buku teks menggunakan konsep pseudocode yang mirip program tetapi dengan bahasa yang dimengerti manusia dan bebas platform bahasa pemrograman. Namun demikian diharapkan mahasiswa mengerti minimal satu bahasa pemrograman dan menguasainya.

Bahasa pemrograman pun banyak tipenya, dari yang berfungsi alat bantu komputasi teknis, program bisnis, statistik, game, hingga mesin pembelajaran dan deep learning. Banyak style yang diterapkan dalam pembelajaran memrogram ini. Hal ini berkaitan dengan maksud dan tujuan pembelajaran pemrograman itu sendiri.

Pemilihan Bahasa Pemrograman

Beberapa dosen senior kebanyakan mengajarkan bahasa C++ sebagai bahasa utama belajar pemrograman. Wajar, bahasa ini sangat ampuh, cepat, dan merupakan bahasa pembentuk bahasa pemrograman lain, bahkan untuk membuat satu sistem operasi. Beberapa dosen yang agak muda menyarankan Java karena bahasa ini banyak digunakan dalam industri. Bahasa ini juga pembentuk bahasa pemrograman lain, misalnya untuk piranti mobile. Saat ini, Python merupakan bahasa yang paling banyak digunakan karena selain ringan, cepat, dan praktis, bahasa ini cocok untuk bidang yang saat ini sedang “in” yakni deep learning.

Style Pengajaran

Beberapa dosen sangat ketat dalam mengajarkan dalam artian, siswa harus mampu memrogram dengan bahasa yang murni. Ciri dosen ini adalah mengharamkan bahasa pemrograman yang sudah memiliki module atau toolbox yang berisi fungsi tertentu. Misal, alih-alih menggunakan fungsi, misalnya average utk rata-rata, mahasiswa diharuskan membuat formula perhitungan rerata sendiri. Jika siswa mampu mengikuti perkuliahan ini, dipastikan mampu berfikir logis. Namun ketika lulus harus cepat beradaptasi dengan bahasa-bahasa baru yang digunakan industri. Dosen dengan style ini sangat mengharamkan Matlab maupun OpenCV dalam pembelajaran. Saya sendiri sempat mempraktikan metode ini hanya untuk materi dasar seperti algoritma dan pemrograman. Itu pun mahasiswa agak kesulitan.

Dosen-dosen generasi 2000-an kebanyakan saat ini menggunakan bahasa Python. Saat ini Google mempermudah orang belajar Python karena menyediakan fasilitas “Google Colab”, yaitu pemrograman via browser. Mahasiswa tidak perlu menginstal Python, tinggal langsung mengetik http://colab.research.google.com maka langsung terhubung ke Google Colab. Bahkan Google menggratiskan GPU-nya untuk digunakan. Mungkin dosen-dosen senior agak keberatan karena dalam Python banyak fungsi-fungsi “instan” yang tidak mendidik para mahasiswa dalam memrogram tetapi dari diskusi-diskusi sesama pengguna banyak informasi-informasi mengenai struktur logika suatu fungsi tertentu. Pembuat fungsi/library pun menyediakan kode sumber yang dapat dilihat di situs resminya. Selain itu, sumber file dapat dilihat isinya misalnya salah satu fungsi m-file dalam Matlab yang bisa dilihat kode sumbernya. Tentu saja jika siswa diharuskan membuat dari “nol” agak berat, khususnya materi-materi yang melibatkan banyak komputasi seperti model-model deep learning. Ada baiknya mengikut perkuliahan Massachusetts Institute of Technology (MIT) yang mengharuskan mahasiswa memahami struktrur program yang dia ketik. Tentu saja fungsi-fungsi tertentu seperti rata-rata, standar deviasi, dan sejenisnya dianggap siswa sudah memahaminya, terkadang tidak perlu mengkode ulang.

Share Kode (Github, Google Colab, dll)

Saat ini siswa mudah sekali mempelajari satu metode karena sudah banyak yang men-share kode sumber yang merupakan proyek risetnya. Termasuk buku-buku teks pun ikut juga men-share kode2nya, sekaligus promosi buku yang dijualnya. Kode-kode tersebut sangat membantu memahami konsep-konsep dasar komputasi, machine learning, data mining, dan sejenisnya karena langsung terlihat nyata. Hanya saja beberapa problem harus diselesaikan terkait kompatibilitas versi bahasa pemrograman, misalnya Google Colab yang menggunakan versi terkini Python dan library-library nya, seperti diskusi berikut ini.