Membuat Peta RTRW Digital

Terkadang peneliti membutuhkan Rencana Tata Ruang dan Wilayah dalam penelitiannya. Tiap pemerintah daerah (PEMDA) menerbitkan rencananya dengan format yang berbeda-beda. Selain itu ada yang diunggah di situs resminya, namun ada pula yang tidak sehingga menyulitkan peneliti. Nah, saat ini pemerintah memiliki situs online untuk melihat RTRW daerah di seluruh Indonesia. Berikut link-nya.

Saya sudah utak-atik tapi tidak ada unduh dalam bentuk shapefile atau jenis lain, misal KML/KMZ seperti pada satu peta. Terpaksa jika ingin menggunakan caranya dengan proses digitalisasi. Setelah discreenshot jadikan saja basemap ketika membuat RTRW online. Oiya, ternyata tidak hanya RTRW melainkan juga Rencana Detil Tata Ruang (RDTR).

Video berikut mengilustrasikan pembuatan RTRW, tapi di sini rujukannya dari BAPEDA. Semoga bermanfaat.

Insert Image on MkDocs

Now that you know how to install MkDocs and edit the configuration, it’s time to manage your documents. One of the managements is to insert images. In addition, this post also shows how to make our documents online, so that our documents can be read by all people in the world.

Setting mkdocs.yml

This file is available when we finish installing MkDocs via PIP. This file can be opened with any editor, such as Visual Studio Code (VSC). Please delete or edit the available menus according to your needs.

Setting index.md

This is the main part for editing text, namely mark down (md). To make it easier where the script, titles, and images are placed, run the mkdocs serve server. By running the server, the changes we can see the change immediately. Insert the image using the following code in the section you want.

![Screenshot](img/<file_name>.<extension>)

Continue by filling in the image in the img folder location in the docs folder in MkDocs.

Deploy markdown results

Finally, deploy index.md settings by running the code:

mkdocs gh-deploy

If there are no errors, the site folder in MkDocs is ready to be uploaded online. For details, see the following video.

Publish MS Word 365 ke WordPress

Publish dari word ke wordpress biasanya sudah ada fasilitasnya. Namun untuk MS Word 365 tidak ada menu publishnya. Untungnya Office 365 menyediakan template untuk publish ke wordpress.com lewat template yang diunduh di link resminya: https://templates.office.com/en-us/blog-post-tm02843595

Tekan tombol Download di kanan bawah untuk mengunduh file dotx, standar template microsoft word. Simpan di lokasi yang sering digunakan, misalnya documents.

Kalau sudah seperti tampilan di atas, tata caranya mirip dengan publish word pada non versi 365. Silahkan tekan Manage Accounts untuk mendaftarkan akun wordpress agar bisa secara otomatis publish ke www.wordpress.com. Contohnya adalah postingan ini menggunakan template dotx office 365.

Oiya, sebelumnya save as file template karena akan digunakan untuk postingan yang lain. Atau jangan disimpan ketika sudah selesai mengetik di template. Ok, selamat mencoba.

Menginstal Matlab Mobile yang Gratis

Matlab merupakan aplikasi yang banyak dimanfaatkan oleh peneliti. Salah satu bidang yang dapat memanfaatkan aplikasi tersebut adalah matematika. Matlab yang kepanjangannya MATrix LABoratory merupakan software berbayar. Namun untuk aplikasi mobile, ternyata untuk matematika tidak berbayar, tinggal menginstall lewat Playstore android di HP kita.

Jalankan aplikasi yang sudah diinstal. Persiapkan email, karena nanti jika tidak punya akun Anda harus register/create account.

Kalau di web, situs resmi Matlab adalah www.mathworks.com yang berisi informasi mengenai produk Matlab.

 

Silahkan tekan Create one! Jika belum punya account. Selanjutnya jika sudah membuat account baru, Anda bisa login dan memanfaatkan fasilitas Matlab mobile.

 

Jangan khawatir jika Anda diminta Upgrade, tekan saja Continue untuk menggunakan versi mobile. Biasanya untuk fungsi-fungsi dasar matematika tidak memerlukan upgrade. Berikut contoh perhitungan integral.

Simbol @ merupakan simbol fungsi. Contoh di atas jika ingin melihat hasil eksekusi integral dari nol hingga satu. Nah, jika Anda diminta mengintegralkan sebuah persamaan bagaimana?

Contoh di atas kita ingin mengintegralkan sebuah fungsi y = exp(5*x). Oiya, untuk perkalian jangan lupa bintang (*) ya. Pertama-tama Anda harus mendefinisikan x sebagai variabel dengan fungsi syms. Dengan fungsi int diperoleh integral exp(5*x)/5 sementara dengan fungsi diff diperoleh turunannya yakni 5*exp(*5*x). Selamat mencoba.

JavaScript Untuk Matematika

JavaScript merupakan Bahasa pemrograman yang sangat terkenal karena banyak digunakan dalam aplikasi web. Nah, ternyata bahasa ini dapat digunakans sebagai sarana belajar matematika, khusunya anak-anak ilmu komputer.

Tahun 1962, Kenneth Iverson mempublikasi tulisan ‘A Programming language’ dengan bahasa APL waktu itu. Menurut beliau, belajar pemrograman tidak hanya bisa memrogram, melainkan memahami juga analisa matematika di dalamnya.

It is the central thesis of this book that the descriptive and analytic power of an adequate programming language amply repays the considerable effort required for its mastery

Tahun 1977, Ian Stewart dan David Tall dalam bukunya ‘The Foundation of Mathematics’ mewarning agar pembelajaran tidak terlampau formal karena siswa pemula akan kesulitan memahami realitas yang ada.

A purely formal approach, even with a smattering of informality, is psychologically inappropriate for the beginner, because it fails to take account of the realities of the learning process.

Buka Mozilla dan masuk ke mode developer dengan menekan Ctrl-Shift-K. Setelah muncul jendela baru di bagian bawah Mozilla, coba copy-paste contoh kode JavaScript. Ketika pertama kali dilakukan, akan ada warning untuk mengingatkan pengguna bahwa karena berupa kode, ada kemungkinan dapat mengganggu sistem karena virus, spyware, dan sejenisnya.

Kalau di baca warning di atas, kita diminta mengetik ‘allow pasting’ di bawah agar bisa copy-paste. Setelah ini coba masukan kode berikut (lihat ebook hal 55):

function BankAccount(n, b)
{
this.number = n;
this.balance = b;
}
// end of BankAccount definition
// make a bank account
var b1 = new BankAccount(38, 20.12);
// display its number
console.log(b1.number); // 38
// make another
var b2 = new BankAccount(39, 132.51);
console.log(b2.balance); // 132.51

Ini contoh sebuah fungsi bernama ‘BankAccount’ dengan parameter masukan ‘n’ nomor rekening dan ‘b’ saldo.

Maka akan dihasilkan berturut-turut 38 dan 132.5. Selamat mencoba.

Digital Image Processing

Digital image processing is an important step before next processing, e.g. computer vision, prediction, and other image manipulations. Image processing is an input for another computational task. In the first time, image processing is learned by computer scientists with some mathematical processing, e.g. edge detection, noise filter, etc. but to day some discipline, e.g. remote sensing, GIS, use this subject as the main and important material.

I have a lot of friends from computer science that try to focus on this subject. He/she asked about the current trend of this interesting subject. Image processing now has been established, with some images to be processed should have a lot of band frequencies captured by satellite, e.g. Landsat, Sentinel, IKONOS, etc, called multispectral and hyperspectral (more than 13 band frequencies) data. So, if we only have one band frequency, it is difficult to manipulate this single band image (called panchromatic). But for computer scientist, it is interesting to focus on computer vision, whether video or object detection. But some areas, e.g. remote sensing, medical imaging, to say only a few, still need deep learning-based image processing. I’m surprise when see the curriculum in my previous campus that the digital image processing is held by remote sensing & geographic information systems (RS-GIS) department.

If you want to see how image processing for land use/cover classification, my Youtube video might be useful, especially for environmentalists.

Normalisasi Tabel

Dalam mata kuliah basis data, ada satu materi yang cukup berat, yaitu normalisasi tabel. Prinsip dasarnya adalah database relasional dimana ada aturan-aturan tertentu yang mengharuskan database designer mengikuti standar yang baku. Postingan berikut sedikit berdiskusi apa saja yang perlu diperhatikan dalam menormalisasi sebuah tabel.

Multivalue

Ini merupakan prinsip dasar database relasional dimana satu field/kolom dalam satu record tidak boleh berisi lebih dari satu item. Misalnya tabel transaksi pembelian barang, tidak boleh ada satu field, misalnya barang, yang berisi item-item barang yang dibeli. Di sini lah letak perbedaan basis data relasional dengan objek. Dalam basis data objek, isi field (diistilahkan dengan atribut) bisa multivalue dalam bentuk array.

Functional Dependency & Transitive Dependency

Dalam tabel transaksi terdapat dua ketergantungan yakni ketergantungan fungsi dan transitif. Jika Unnormalize Form (UNF) berisi field-field dalam transaksi (termasuk yg multivalue), dan 1NF yang berisi para kandidate key, 2NF berisi tabel-tabel yang mendukung ketergantungan fungsi, misalnya dalam pembelian barang, tabel yang terkait adalah tabel penjualan, detil penjualan dan barang.

Sementara itu ketergantungan yang sifatnya transitif, misalnya pelanggan, suplier, kasir/teler, dan lain-lain dipecah dalam 3NF. Ada level yang lebih rumit dan khusus, diberi nama Boyce-Code Normal Form (BCNF), biasanya terjadi ketika suatu field misalnya harga barang yang mengikuti wilayah cabang tertentu, padahal wilayah bukan merupakan primary key.

Surrogate Key

Dalam detil transaksi, misalnya detil pembelian, terkadang dibuat suatu surrogate key yang agar praktis dibuatkan/di-generate secara otomatis oleh sistem (increment). Mengapa harus dibuatkan surrogate key, silahkan simak video yang merupakan materi kuliah berikut. Semoga sedikit membantu.

Computer Vision

Perkembangan Artificial Intelligence (AI) saat ini sangat cepat baik dalam metode dasar maupun penerapan di lapangan. Banyak instansi yang membutuhkan AI, dari kedokteran, pertanian, hingga pertahanan dan keamanan. Salah satu penerapannya adalah dalam Computer Vision.

Image Processing

Terkadang banyak yang bingung apa perbedaan image processing dengan computer vision. Keduanya sama-sama mengelola gambar/citra, hanya saja computer vision lebih dalam lagi, dimana sebuah model dibuat untuk mampu mengenali sebuah gambar. Sementara itu, image processing memiliki tugas pokok hanya mengolah gambar. Biasanya bekerja sebagai pre-processing sebelum masuk ke modul computer vision, misalnya merubah citra berwarna menjadi hitam putih, merubah ukuran/dimensi gambar, merotasi dan hal-hal yang mengkonversi gambar agar bermanfaat.

Walaupun terlihat sederhana tetapi penerapannya sangat penting, misalnya konvolusi yang merubah gambar besar menjadi gambar yang berukuran lebih kecil tetapi tidak merubah “ciri” dari gambar aslinya. Metode ini digunakan dalam Convolution Neural Network (CNN) bersama dengan Pooling (memperkecil ukuran/dimensi gambar) yang ternyata meningkatkan performa Neural Networks.

Pengenalan Gambar

Sebenarnya untuk mengenali gambar merupakan kemampuan yang sudah dimiliki oleh manusia. Namun jika yang harus dikenali sangat banyak, atau harus selalu “on” 24 jam, tentu saja manusia tidak sanggup. Oleh karena itu riset yang mengembangkan model seperti manusia yang mampu mengenali gambar sangat bermanfaat. Akurasinya pun saat ini kian mendekati 100%.

Selain aspek kuantitatif dalam mengenali gambar, terkadang model pengenalan gambar harus mampu mengenali gambar jauh melebihi mata manusia, misalnya dalam mendeteksi foto rontgen, sel-sel mikroskopis, dan mineral di dalam bumi. Bahkan dalam mengenali tutupan lahan, model melebihi kemampuan mata manusia mengenali foto satelit, mengingat sensor satelit, misalnya Operational Land Imager (OLI) memiliki 9 band frekuensi, dimana mata manusia hanya mampu melihat beberapa band frekuensi saja.

Surveillance System

Selain gambar statis, computer vision juga berkembang untuk mendeteksi video. Biasanya diterapkan pada CCTV keamanan. Jika ada objek mencurigakan, sistem akan memberikan warning sehingga dapat bekerja 24 jam dan selalu waspada, hal yang tidak mungkin dilakukan oleh seorang staf keamanan. Sekian semoga tertarik riset di bidang ini.

Praktek Basis Data dengan Google Colab

Google Colab merupakan media pembelajaran pemrograman yang praktis karena baik bahasa pemrograman maupun mesin/harware disediakan oleh Google. Dengan mengandalkan laptop jadul atau handphone bisa dilaksanakan, asal memiliki koneksi internet. Bahasa yang digunakan adalah bahawa Python yang sangat cocok untuk machine learning. Bagaimana untuk pengolahan basis data?

SQLite

SQLite disediakan dalam satu library yang harus diinstal terlebih dahulu sebelum diimpor. Data diletakan baik dengan koneksi ke Google Drive atau diletakan secara temporal di folder pada Google Colab.

# CREATING THE TABLE
import sqlite3
conn = sqlite3.connect(‘unisma.db’)
print(“Opened database successfully”);
conn.execute(”’
CREATE TABLE IF NOT EXISTS data_siswa(nama text,
matkul text,
dosen text,
nilai integer);”’)
conn.commit()
print(“Table created successfully”);
conn.close()

Setelah Tabel terbentuk, silahkan dimasukan data-datanya misalnya sebagai berikut. Pastikan terisi dengan baik.

# INSERTING VALUES
conn = sqlite3.connect(‘unisma.db’)
conn.execute(“INSERT INTO data_siswa VALUES(‘wahyu’, ‘matematika’, ‘malikus’, 72);”)
conn.execute(“INSERT INTO data_siswa VALUES(‘budi’, ‘bahasa’, ‘amin’, 90);”)
conn.execute(“INSERT INTO data_siswa VALUES(‘linda’, ‘matematika’, ‘malikus’, 91);”)
conn.execute(“INSERT INTO data_siswa VALUES(‘wahyu’, ‘bahasa’, ‘amin’, 75);”)
conn.execute(“INSERT INTO data_siswa VALUES(‘linda’, ‘bahasa’, ‘amin’, 90);”)
conn.execute(“INSERT INTO data_siswa VALUES(‘budi’, ‘matematika’, ‘malikus’, 60);”)
conn.commit()

Untuk menggunakan query silahkan menggunakan instruksi SELECT untuk mengetahui isi dari data/tabel yang ada. Bahasa standar SQL dapat diterapkan pada SQLite. Tentu saja untuk implementasi diharapkan menggunakan Python di lokal komputer kita. Google colab cukup baik untuk media pembelajaran atau sebagai penguji algoritma yang akan diterapkan pada system.

conn.close()
conn = sqlite3.connect(‘unisma.db’)

cursor = conn.execute(”’ SELECT nama
                          FROM data_siswa
                          WHERE matkul=’matematika’;”’)

for row in cursor:
  print(row)
conn.close()

Hasil:

  • (‘wahyu’,)
  • (‘linda’,)
  • (‘budi’,)

Untuk lebih jelasnya silahkan lihat video saya berikut, sekian semoga bisa membantu.

 

Untuk Yang Sedang Sekolah .. Manfaatkan Apa Yang Ada

Kondisi pandemi membuat seluruh aspek kehidupan terganggu, bahkan lumpuh. Termasuk juga dunia pendidikan yang melibatkan pertemuan sosial antara guru/dosen dengan murid/mahasiswa. Penyelenggaraan perkuliahan secara daring dapat dilakukan dengan kualitas yang tidak jauh berbeda, namun perkuliahan praktik masih belum efektif. Pertemuan online dengan aplikasi tertentu banyak dikeluhkan oleh siswa yang mengandalkan pulsa di rumah, yang dapat dilihat dari hasil kuesioner sistem informasi akademik. Walaupun ada bantuan pulsa dari pemerintah, namun mengingat banyaknya mata kuliah yang diambil, tetap saja tidak mencukupi. Selain itu, bagi masyarakat, pulsa masih belum menjadi kebutuhan pokok, dan untuk aplikasi multimedia (streaming video, dan sejenisnya) masih mengandalkan Wifi (biasanya di kampus). Apalagi untuk keluarga yang banyak memiliki anak dan semuanya menjalankan pendidikan secara daring.

Bertanya

Bertanya merupakan aktivitas yang murah meriah. Walaupun dilakukan secara online, pertanyaan tidak memerlukan paket data yang besar. Teman, saudara, guru/dosen, dan siapapun dapat dijadikan sumber rujukan. Tentu saja tata krama bertanya perlu diperhatikan, terutama terhadap guru atau orang yang tidak/baru kita kenal. Terkadang mengirim email pertanyaan terhadap author artikel internasional dibalas, walaupun kadang-kadang tidak direspon atau lama jawabannya.

Nah, masalah muncul ketika pertanyaan yang diajukan tidak ada/belum ada solusinya. Biasanya mahasiswa tingkat doktoral. Akan tetapi di tahap-tahap awal biasanya banyak yang bisa, namun karena bidang ilmu doktoral sangat spesifik, pakar di bidang IT tidak akan memahami seluruh ilmu spesifik, bahkan di bidang yang spesifik pun belum tentu mahir, misalnya AI robotik akan berbeda dengan AI pertanian. Jadi mutlak langkah berikut ini dijalankan.

Membaca Cepat

Di sini membaca perlu ditambahkan kata cepat di akhirnya karena jika tidak, waktu yang sangat berharga akan terbuang sia-sia. Selain itu, membaca artikel ilmiah berbeda dengan membaca novel atau komik. Banyak teknik-teknik membaca cepat, tetapi keingintahuan seharusnya bisa memacu kita membaca cepat, yaitu membaca yang didasari oleh pertanyaan-pertanyaan di kepala kita.

Bagaimana jika makalah yang harus dibaca berbahasa Inggris? Nah, ini merupakan problem utama mahasiswa-mahasiswa yang mengambil studi lanjut di Indonesia. Aplikasi penterjemah dapat digunakan. Selain itu, tidak ada salahnya “sharing“, maksudnya minta dibacakan, oleh suami/istri, anak, saudara, dan lain-lain. Tentu saja tidak dianjurkan jika ada waktu, karena membaca artikel ilmiah, apalagi bidang tingkat doktoral yang tidak semua orang paham, walaupun tahu arti/terjemahan naskah tersebut.

Membaca Artikel Studi Literatur (Review)

Naskah artikel ilmiah terdiri dari beberapa jenis, ada yang naskah buku, prosiding dan jurnal. Selain itu terbagi pula menjadi artikel penelitian dan artikel review. Nah, artikel jenis review terkadang bermanfaat untuk orang yang akan memulai penelitian bidang tertentu. Dari pada meneliti satu persatu naskah paper yang tercerai berai, ada baiknya membaca artikel review yang sudah terstruktur berdasarkan domain ilmu tertentu.

Trik lain adalah mencari artikel jenis penelitian yang berkualitas baik (biasanya berimpak/kuartil tinggi) kemudian dari referensinya kita baca juga. Tentu saja kelemahan membaca dari sumber referensi suatu artikel adalah terlalu jauh tertinggal. Suatu naskah artikel yang hari ini terbit, biasanya hasil penelitian beberapa tahun sebelumnya. Tentu saja referensi yang jadi rujukan pun tambah jauh tertinggal waktunya. Namun biasanya walaupun sudah tertinggal tetapi kemungkinan besar banyak yang mensitasi yang artinya landasannya cukup kuat.

Support Dari Bidang/Pakar Lain

Beberapa penelitian memerlukan support/dukungan dari bidang/pakar lain. Misalnya penelitian tracking dan navigasi membutuhkan bantuan rekan-rekan di bidang pemetaan 3D misalnya, atau mobile application jika akan diterapkan di ponsel. Optimasi yang diterapkan untuk lahan membutuhkan bantuan rekan-rekan GIS dan penginderaan jarak jauh (remote sensing). Bahkan ketika menulis paper bisa minta bantuan rekan-rekan yang mengerti bahasa Inggris jika enggan menggunakan jasa proofreader. Manfaatkan grup medsos untuk bertanya dan bertukar fikiran bidang tertentu di internet.

Berdoa

Ups, seharusnya ini ada di awal. Walaupun ini sudah otomatis kita jalankan tetapi aspek agama perlu dicantumkan di sini, seperti kasus kemendikbud yang terpaksa memasukan kembali kata “agama” dalam roadmap pendidikan nasional. Berdoa dan berusaha sebaiknya tidak terpisah, ketika berusaha diiringi doa dan berdoa tidak hanya ketika ibadah, melainkan ketika sedang berusaha juga. Sekian postingan singkat ini, semoga bermakna.

Menggunakan Algoritma Genetika dengan Python

Algoritma Genetika (GA) merupakan salah satu nature-inspired optimization yang meniru evolusi makhluk hidup. Gampangnya, generasi terkini merupakan generasi yang terbaik yang adaptif terhadap lingkungan. Prinsip seleksi, kawin silang, dan mutasi diterapkan ketika proses optimasi secara pemilihan acak (random) dilakukan. Karena adanya unsur pemilihan acak, GA masuk dalam kategori metaheuristik bersama particle swarm optimization (PSO), simulated annealing (SA), tabu search (TS), dan lain-lain.

Bagaimana algoritma tersebut bekerja dalam suatu bahasa pemrograman saat ini dengan mudah kita jumpai di internet, dari youtube, blog, hingga e-learning gratis. Saat ini modul-modul atau library dapat dijumpai, misalnya di Matlab. Nah, dalam postingan ini kita akan mencoba dengan bahasa pemrograman Python. Sebelumnya perlu sedikit pengertian antara pembuatan program dari awal dengan pemrograman lewat bantuan sebuah modul atau library.

Beberapa pengajar biasanya melarang mahasiswa untuk langsung menggunakan library karena memang peserta didik harus memahami konsep dasarnya terlebih dahulu. Untungnya beberapa situs menyediakan kode program jenis ini yang dishare misalnya ahmedfgad, datascienceplus, pythonheatlhcare, dan lain-lain. Saya dulu menggunakan Matlab, dan ketika beralih ke Python karena pernah dengan bahasa lain maka dengan mudah mengikuti kode dengan bahasa lainnya. Oiya, saat ini GA, PSO, TS, dan lain-lain lebih sering disebut metode dibanding dengan algoritma karena tingkat kompleks dan ciri khas akibat mengikuti prinsip tertentu (makhluk hidup, fisika, biologi, dan lain-lain).

Selain memahami prinsip dasar, dengan kode python GA yang murni berisi langkah-langkah dari seleksi, kawin silang dan mutasi, jika Anda mengambil riset doktoral terkadang perlu menggabungkan dengan metode-metode lain, misalnya riset saya dulu, mutlak harus memodifikasi seluruh kode yang ada, jadi agak sulit jika menggunakan library yang tinggal diimpor.

Nah, jika Anda sudah memahami, dan sekedar menggunakan atau membandingkan metode satu dengan lainnya, penggunaan library jauh lebih praktis. Misal Anda menemukan metode baru dan harus membandingkan dengan metode lain, maka metode lain pembanding itu dapat digunakan, bahkan karena karakternya yang dishare maka orang lain (terutama reviewer jurnal) yakin keabsahannya (bisa dicek sendiri). Untuk GA bisa menggunakan library dari situs-situs berikut antara lain geneticalgorithms, pygad, pydea, dan lain-lain. Sebagai ilustrasi silahkan melihat video saya berikut yang menggunakan Google Colab.

Belajar Membuat Game dengan Python

Ternyata Python tidak hanya digunakan untuk Machine Learning, melainkan juga untuk membuat game. Banyak sumber-sumber belajar di internet, baik di Github maupun penjelasannya di Youtube. Nah, bagi Anda yang pemula ada baiknya membaca postingan ini bagaimana menggunakan dua metode dalam menjalankan Python yaitu konsol dan Jupyter Notebook.

Konsol

Di sini kita ambil contoh dua game terkenal yang dibuat dengan Python yaitu Flappy Bird dan Space Invaders. Install Python di laptop Anda terlebih dahulu, disarankan menggunakan cara yang paling gampang walau agak berat, yaitu paket Anaconda.

Menggunakan konsol sangat dianjurkan bagi Anda yang mahir dan cepat dalam mengetik. Di sini harus dipahami terlebih dahulu cara menangani virtual environment
di Python. Selain itu library-library pendukung harus diinstall juga, terutama pygame karena di sini kita coba menggunakan library tersebut.

Untuk mengedit bisa menggunakan IDLE, Sublime Text, Notepad, atau text editor lainnya. Langkah pertama dalam belajar adalah mencoba menjalankan (running) program tersebut, dilanjutkan dengan mengedit fungsi-fungsi tertentu, misal mengganti gambar/image tokoh, background, atau memindah fungsi tombol naik/turun/kiri/kanan dengan tombol baru.

Jupyter Notebook

Jika Anda pengguna Google Colab, ada baiknya menggunakan Jupyter Notebook karena memang IDE-nya yang tidak jauh berbeda. Ekstensi filenya pun sama (*.ipynb) yang berbeda dengan Python konsol (*.py). SIlahkan membuka Jupyter Notebook lewat Anaconda atau konsol. Untuk lebih cepat sepertinya konsol lebih cepat dan ringan. Arahkan folder kerja ke lokasi game dan ketik “jupyter notebook”. Pastikan fasilitas jupyter notebook tersedia di environment kita (di sini contohnya ‘base’) yang jika belum ada gunakan > pip install jupyter.

Mengingat jenis filenya yang berbeda maka terlebih dahulu kita membuat new file dilanjutkan dengan mengkopi isi file *.py ke dalam file Jupyter Notebook yang baru tersebut. Jalankan file sample, pastikan game berjalan dengan baik.

Coba mengganti beberapa fungsi game tersebut, misalnya tombol bergeraknya pesawat, atau mengganti background dan bentuk pesawatnya. Berikut video penjelasannya, semoga bermanfaat.

 

 

Membuat Grafik dengan Excel

Excel yang merupakan spreadsheet selain memiliki kemampuan mengelola data juga mampu membuat grafik yang cukup baik, terutama untuk versi terkini. Banyak pilihan grafik yang disediakan, mulai dari line, bar, hingga pie. Grafik tersedia di menu Insert pada Excel.

Sebagai contoh kita akan membuat grafik berjenis “bar” untuk nilai akhir (NA) tabel di atas. Masuk ke menu Insert dan pilih simbol “bar” chart.

Berikutnya akan muncul bidang kerja grafik yang harus diisi data nilai akhir serta mahasiswa yang bersangkutan. Pilih Select Data untuk memasukan data yang akan ditampilkan pada grafik. Jika tidak ada klik ganda bidang kerja grafik untuk memunculkannya.

Tekan Chart data range di bagian panah untuk memilih data yang akan ditampilkan pada grafik (1). Data ini diistilahkan dengan Series yang akan muncul di kotak kiri gambar di atas. Series ini bisa lebih dari satu (dalam contoh ini bisa saja kehadiran, UTS, UAS, tidak hanya NA). Berikutnya untuk Axis tekan bagian Edit pada kotak kanan lalu sorot seluruh nama mahasiswa (2) karena jika tidak hanya berisi angka urut saja.

Perhatikan di sini akan ditampilkan UTS, UAS, dan NA. Tadinya UTS, UAS, dan NA berturut-turut bernama Series2, Series3, dan Series5. Cara menggantinya adalah tekan Edit di bagian atas kotak Legend Entries dan ketik nama yang diinginkan. Lihat, Series yang tidak digunakan bisa diunchek atau remove. Jika sudah tekan OK untuk memperlihatkan grafik.

Edit bagian judul grafik dan jika ingin menambahkan elemen lain, misalnya legenda, masuk ke menu Add Chart ElementLegend Right. Pastikan di bagian kanan akan muncul penjelasan nilai yang ada pada grafik. Silahkan modifikasi sesuai dengan keinginan, misalnya mengganti design agar memunculkan score di bagian atas bar. Untuk jelasnya lihat video tutorial berikut ini.

Belajar Pengolahan Citra dari Sumber-Sumber di Internet

Mempelajari hal-hal baru, tidak hanya pengolahan citra, dapat dilakukan dengan memanfaatkan internet. Terlebih ketika kondisi pandemik seperti saat ini dimana perkuliahan dilaksanakan secara daring. Praktikum yang biasanya dilaksanakan secara offline di laboratorium, terpaksa memanfaatkan fasilitas pribadi milik mahasiswa, yakni laptop yang dilaksanakan secara online. Untungnya, salah satu bahasa pemrograman, yakni Python, diadposi oleh Google dengan meluncurkan aplikasi onlinenya untuk pemrograman, yakni Google Colab (silahkan lihat infonya di sini).

Semenjak kemunculannya, banyak peneliti, kampus, dan pemerhati artificial intelligent membagi kodingannya via Google Colab. Dengan menggunakan kata kunci: “Google Colab” <topik>, kita dapat menemukan sumber informasi yang diinginkan. Kalau pun tidak berupa link Google Colab, biasanya dalam situsnya disertakan juga link Google Colabnya. Nah, di situlah kita bisa belajar hal-hal yang terkait dengan teknologi yang kita inginkan.

Ada juga kontroversi terkait dengan belajar instan lewat internet, salah satunya adalah masalah ilmu dasar yang kurang diperhatikan mengingat biasanya hanya untuk aplikasi-aplikasi siap pakai saja. Menurut saya wajar, karena memang kaum milenial memiliki karakter “instant” yang harus dipenuhi oleh pengajar. Sebenarnya cukup membalik dari teori dan aplikasi menjadi aplikasi dan teori sudah mampu menarik minat mereka. Kalaupun ingin menerapkan teori dulu baru aplikasi, sebaiknya jangan terlalu panjang jedanya, syukur-syukur di pertemuan yang sama.

Beberapa dosen tidak menganjurkan menggunakan bahasa pemrograman dalam bentuk paket atau library-library seperti misalnya OpenCV untuk pengolahan citra. Alasannya tidak mendidik mahasiswa memahami dasar-dasar ilmu pengolahan citra. Mereka cenderung menggunakan Bahasa C++ dalam perkuliahan. Menurut saya baik, tetapi untuk mengejar ketertinggalan teknologi dengan negara-negara lain ada baiknya mengikuti trend teknologi terkini, apalagi jika mahasiswa ingin bekerja pada vendor/perusahaan yang memang cenderung menerapkan teknologi terkini baik dari bahasa, library, dan tools lainnya. Pembuat library pun menyediakan dasar-dasar ilmunya yang dapat diakses di situs resminya, misalnya OpenCV di link https://opencv.org/ atau pada dokumentasinya di sini, seperti contoh filter 2d dibahas pula dasar-dasar teorinya.

Tentu saja kita harus membaca buku teks standar pengolahan citra atau dasar-dasar matematika seperti kernel, matriks, dan lain-lain. Jika di era 90-an kita belajar ilmu dasar tanpa melihat langsung penerapannya, saat ini siswa lebih mudah melihat langsung penerapan ilmu dasar yang diajarkannya. Silahkan lihat video berikut untuk mengakses topik tertentu di Google Colab.

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.