Mengunduh Citra Satelit Resolusi Tinggi Google

Salah satu riset terkini adalah klasifikasi penggunaan lahan (land use) dengan Deep Learning. Data yang digunakan adalah citra satelit. Banyak penyedia data, misalnya USGS. Hanya saja data yang diunduh per Tile (istilah satu segmen potret satelit) kurang tajam (resulusi 30 m). Bandingkan dengan resolusi google earth yang bahkan di wilayah tertentu dalam skala sentimeter. Nah, untuk klasifikasi menggunakan pola gambar (bukan warna), perlu resolusi tinggi (kurang dari 1 m), salah satunya lewat Google Earth. Postingan ini membahas teknik pengunduhan citra satelit dari Google Earth.

Google Map Customizer

Salah satu situs penyedia pengunduhan adalah Google Map Customizer yang dapat diakses di link berikut ini. Fasilitas ini memanfaatkan citra Google Earth. Isian yang diperlukan adalah ukuran dari layar yang akan ditangkap. Arahkan saja ke resolusi yang sesuai, dilanjutkan dengan mengisi ukuran lebar dan tinggi (width dan high).

Perhatikan di sini saya menempatkan pojok kiri di daerah Aceh dengan resoulis wilayah Indonesia, berukuran 9000 baik untuk lebar dan tinggi. Ukuran sebesar ini, sebagai informasi, menghasilkan ukuran citra *.png 200 mb. Lanjutkan dengan menekan “Set Dimension”. Tunggu beberapa saat tergantung ukuran peta (makin besar makin lama pengunduhannya).

Save Screenshoot

Untuk lebih jelasnya Anda dapat mengklik “How to Use” di bagian bawah Google Map Customizer. Di situ disebutkan tentang alat bantu untuk screenshoot satu berkas panjang lewat addins Save Screenshot yang tersedia untuk Mozilla dan Google Chrome.

Tekan “Save as Image” untuk mengunduh citra. Anda bisa juga memilih PDF. Tunggu beberapa saat hingga proses pengunduhan selesai. Perhatikan, di sini citra yang dihasilkan cukup detil. Selamat mencoba, semoga bermanfaat.

Agar Scanner UMAX 5600 Bisa Jalan di Windows 10

Setelah beberapa tahun tidak berhasil menjalankan UMAX 5600 di Windows 10 akhirnya bisa dijalankan juga. Sebelumnya memang scanner ini bisa digunakan dengan Windows XP yang lalu, setelah migrasi entah mengapa baik di forum Microsoft maupun di Googling tidak berhasil ditemukan. Selama ini digunakan dengan menggunakan VMWare yang berisi XP di dalamnya, tapi tentu saja jadi berat karena harus menyediakan satu mesin virtual XP di Windows 10.

Namun beberapa referensi di Youtube banyak yang menyarankan menggunakan aplikasi-aplikasi tertentu dengan Tips dan Trik-nya. Nah, repotnya beberapa saya jalankan, dan berhasil. Sayangnya ada sedikit kombinasi antara satu Tip n Trik dengan lainnya.

1. Gunakan Driver yang Lama dengan Kompatibilitas set ke Windows Xp sp 2

Teknik ini dianjurkan karena driver sejatinya sudah ada. Namun masalahnya adalah tidak berhasil menginstal “Hot-Key”. Tetapi ketika gagal menginstal Hot key, tetap saja beberapa file terpasang di Windows 10. Sepertinya file-file tersebut bermanfaat.

2. Menggunakan Driver Bawaan Microsoft

Metode ini dapat dilihat di link youtube ini. Ketika terpasang tetap saja “Paint” tidak mendeteksi adanya Scanner. Saya lebih suka menggunakan Paint dibanding aplikasi bawaan UMAX yang butuh waktu lama ketika membuka. Di link tersebut disarankan menggunakan “PaperScan” yang bisa diunduh di link ini. Namun ketika dijalankan Hardware Scanner tidak terdeteksi.

Untuk mengatasi hal tersebut, setelah dijalankan langakah 1 dan 2 ternyata muncul pilihan UMAX 5600 di PaperScan yang muncul kemungkinan besar karena langkah 1. Hampir saja saya “uninstall” PaperScan. Masalahnya sekarang adalah mencari software free selain PaperScan yang gratis karena masih “Trial”. Sekian, semoga ada yang bisa memberi masukan.

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.

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.

Mencari Sumber Inspirasi

Saat ini sumber informasi tersedia bebas di internet. Beberapa peneliti dengan semangat berbagi yang tinggi kerap men-share kerjaannya baik lewat blog, github, google colab, dan aplikasi-aplikasi berbagi lainnya. Terkadang video pembelajaran bisa dilihat secara gratis di Youtube dengan kualitas yang jauh lebih baik dari dosen/guru pengajar di kelas. Apakah fenomena ini akan merubah peta pendidikan di dunia, mirip fenomena disrupsi yang saat ini masuk ke bidang ekonomi ditandai dengan tergusurnya bisnis konvensional dengan bisnis berbasis industri 4.0 dengan internet of thins-nya. Hanya waktu yang bisa menjawabnya.

Apakah kita bisa berguru dengan sumber informasi seperti buku, ebook, website, google, dan sebagainya? Jawabnya tentu saja bisa. Karena entah itu guru atau murid tetap membutuhkan sumber informasi tersebut. Nah, kalau begitu apa gunanya institusi pendidikan? Untuk menjawabnya, paling gampang adalah mengevaluasi diri sendiri.

Tidak ada yang menyangkal bahwa manusia dari bayi hingga dewasa memiliki kemampuan meniru yang tinggi. Bahkan Jepang yang terkenal pencipta alat-alat teknik, menerapkan prinsip tiru dan modifikasi. Apa yang ditiru oleh bayi atau anak kecil? Tentu saja bukan bacaan, apalagi browsing di internet. Mereka lebih suka melihat langsung, berinteraksi, dan berbaur untuk melakukan peng-copy-an. Salah satu contoh menarik adalah akademi balap yang dibentuk oleh Valentino Rossi. Entah belajar teknik mengajar dari siapa, Rossi bisa menghasilkan pembalap-pembalap kelas dunia, salah satunya F. Morbidelli yang minggu lalu menjuarai seri Aragon 2020. Dengan sederhana, dari wawancara, dia menjelaskan apa yang diperoleh dari akademi balap milik Rossi tersebut. Dia mengatakan sebagian besar ilmu yang diperoleh dari Rossi adalah bukan dari wejangan dia di kelas, melainkan dari interaksi dengan sang legenda balap tersebut, dari bagaimana dia bersikap ketika ada masalah, bagaimana menjaga semangat juang, dan lain-lain yang tidak bisa diperoleh hanya dari video, apalagi tulisan.

Boleh saja e-learning menggantikan peran dosen pengajar, tetapi ada keinginan dari siswa untuk mempelajari sesuatu dari sumber inspirasi, yang tidak lain adalah pengajar dan jajarannya, termasuk instruktur di laboratorium. Terlebih jika siswa tersebut dikirim belajar ke negara lain untuk lebih banyak memperoleh pengalaman agar bisa diterapkan di negaranya. Jepang sebelum perang dunia 2 banyak mengirim anak-anak mudanya mempelajari ilmu permesinan di Jerman hingga akhirnya mampu memproduksi perlengkapan tempur baik senjata, mobil, pesawat dan kapal lautnya. Pengalaman berharga saya ketika studi lanjut dan bergabung dengan siswa-siswa dari negara lain adalah bahwa tidak ada yang layak untuk disombongkan, semua harus belajar. Uniknya, dosen selalu dihormati, tidak seperti di negara kita belakangan ini. Beberapa hari yang lalu saya menjenguk rekan saya yang dulunya dosen di tempat saya mengajar. Sebelum keluar, beberapa tahun yang lalu, para mahasiswa mendemo dengan alasan sepele, bahkan aksinya hingga memecahkan kaca jendela kelas. Saya pun pernah, bahkan sempat salah satunya orasi di depan kelas saat saya mengajar, yang traumanya lumayan, sampai-sampai hingga saat ini saya tidak lagi mau mengajar mahasiswa dari fakultas bernuansa agama itu. Waktu itu saya pos materinya di sini, dengan harapan beberapa tahun kemudian siapa tahu mereka melihat lagi materinya dan bermanfaat ketika sedang mengerjakan skripsi. Sekian, semoga bisa menginspirasi.

Deteksi Tepi dengan Open CV

Beberapa aplikasi baik di laptop maupun di handphone menerapkan deteksi tepi untuk memisahkan antara citra dengan latar/background-nya. Salah satu metode deteksi tepi yang terkenal adalan metode Canny yang menerapkan filter Gauss:

Beberapa aplikasi telah menerapkan metode Canny ini, misalnya Matlab dan OpenCV. Postingan ini mencoba menggunakan OpenCV yang bekerja di Google Colab dengan bahasa Python. Seperti biasa, buka Google Colab.

  • import cv2
  • import numpy as np
  • from matplotlib import pyplot as plt
  • # read image
  • img = cv2.imread(“dimas.jpg”0)
  • # Find edge with Canny edge detection
  • edges = cv2.Canny(img, 100200)
  • # display results
  • plt.subplot(121), plt.imshow(img, cmap=‘gray’)
  • plt.title(‘Original Image’), plt.xticks([]), plt.yticks([])
  • plt.subplot(122), plt.imshow(edges, cmap=‘gray’)
  • plt.title(‘Edge Image’), plt.xticks([]), plt.yticks([])
  • plt.show()

Open CV diimpor terlebih dahulu, termasuk numpy dan pyplot untuk pengolahan matriks dan pembuatan grafik. Variabel “img” mengambil nama file citra yang terlebih dahulu diupload ke Google Colab. Ketika sel di-run pastikan tampil hasilnya.

Atau bisa menggunakan cv2_imshow agar lebih besar gambar yang ditambilkan.

  • from google.colab.patches import cv2_imshow
  • cv2_imshow(edges)

Silahkan lihat video tutorial di akhir postingan ini. Sekian, semoga bermanfaat.

Typing Test Online

Saat ini mengetik merupakan aktivitas yang kurang diminati oleh anak-anak muda. Mereka lebih menyukai aktivitas lain yang tidak kalah menarik yaitu pembuatan video. Blog sepertinya kalah menarik dibanding Vlog lewat aplikasi andalannya Youtube. Hal ini didukung oleh “monetisasi” dari Youtube yang sangat menggiurkan. Penghasilan dari konten bahkan melebihi pegawai yang bekerja di kantor atau industri.

Di sisi pendidikan, mengetik tetap dibutuhkan mengingat skripsi atau tugas akhir membutuhkan laporan yang diketik rapi. Jumlah halamannya pun bisa mencapai 40 hingga 100 halaman. Jika lambat mengetik tentu saja membuat siswa lama lulusnya. Copy-paste yang kerap jadi andalan mahasiswa era 90 – 200-an sudah sulit karena banyaknya plagiarism check, ditambah lagi nanti naskah yang di-upload id RAMA (http://rama.ristekbrin.go.id/) harus memiliki nilai similarity (kemiripan dengan naskah orang lain) yang kecil. Jadi mau tidak mau mahasiswa harus mengetik sendiri. Nah, repotnya untuk belajar mengetik, butuh waktu, usaha, dan kesabaran.

Pada postingan yang lalu telah dibahas jenis-jenis keyboard yang ada saat ini. Kebanyakan yang beredar adalah QWERTY. Keyboard standar ini sebenarnya agak merepotkan karena misalnya, huruf “a” yang sering digunakan ternyata terletak di kelingking pada rumah jari. Namun karena sudah terlanjur digunakan orang banyak, terpaksa menjadi standar karena sulitnya orang kalau harus merubah posisi huruf/angka di keyboard.

Beberapa situs menyediakan cara meningkatkan keterampilan mengetik, disertai dengan game-game yang menarik. Untuk standar mengetik bisa menggunakan situs tes pengetikan (Typing Test) ini. Gunakan saja waktu 1 menit untuk tes biar tidak lelah.

Statistiknya juga bagus, beberapa tombol yang kurang kita kuasai diberi tahu, sehingga bisa lebih fokus terhadap huruf-huruf tersebut. Selain itu, situs tertentu berisi game-game online yang beradu kecepatan mengetik dengan orang lain di seluruh dunia, misalnya di 10fastfinger.com. Untuk mudahnya kita cari saja lawan dari Indonesia. Repot juga kalau mengetik tulisan ber-Bahasa Inggris. Untuk memulainya kita harus Sign-in dulu, bisa lewat facebook.

Sepertinya masih banyak anak-anak muda yang mengetiknya cepat (saya ranking 16 dari 41 peserta). Sepertinya Blogger masih tetap eksis dan hobby menulis masih jadi primadona. Dibanding dengan vlog yang boros kuota, blogger jauh lebih efisien. Berikut link video bincang-bincang masalah ini. Sekian, semoga bisa menginspirasi.

Konversi Huruf Besar dan Huruf Kecil Pada Python (Google Colab)

Untuk mengolah teks diperlukan proses konversi ke huruf kecil semua sebelum diolah lebih lanjut seperti stemming, pencarian kata dasar, dan operasi pada teks lainnya. Gunakan sembarang file txt untuk praktek yang diunggah ke Google Colab.

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

Perhatikan di sini fungsi open memiliki parameter ‘r’ yang berbeda dengan post yang lalu (tanpa parameter ‘r’). Di sini ketika berganti baris, teks tidak ditulis dalam kode \n melainkan berganti baris.

Gunakan fungsi “upper” atau “lower” untuk beruturut-turut merabah seluruh teks menjadi huruf besar atau huruf kecil semua.

  • content.upper()

Sebagai penutup, ada satu fungsi split untuk memisah teks tersebut menjadi kata per kata ke bawah dengan kode sebagai berikut.

  • list_ = open(“Praktek.txt”).read().split()
  • list_

Ini merupakan teknik menghitung berapa jumlah kata yang ada dalam satu paragraph.

Untuk lebih jelasnya simak video berikut ini: