Beralih dari GUI ke Kode Program Pada Matlab

Graphic User Interface (GUI) atau yang sering diistilahkan dengan pemrograman visual saat ini menjadi keharusan suatu program komputer. Dengan GUI, pengguna mendapatkan kemudahan dalam menggunakan program yang dibuat. Sehingga tingkat keinginan penggunaan dalam menggunakan aplikasi tersebut menjadi tinggi (attitute toward usage). Maka tuntutan programmer terhadap bahasa pemrograman yang mudah dalam pembuatan GUI sangat tinggi saat ini. Matlab sendiri memiliki kemudahan tersebut. Berikut ini kemudahan-kemudahan yang disediakan Matlab.

Menambahkan Komponen-Komponen

Matlab memiliki banyak komponen-komponen untuk membantu dalam pembuatan GUI seperti tombol button (pushbutton), edit text, dan lain-lain. Pembuatannya sederhana, yaitu hanya dengan drag dengan mouse.

Beralih ke Kode

Untuk beralih dari jendela GUI ke pemrograman (coding) pada Matlab tinggal klik kanan pada komponen yang kita tambahkan di rancangan GUI. Pilih view callback lalu pilih salah satu pilihan, misalnya Callback, maka akan muncul jendela kode. Tentu saja harus disimpan terlebih dahulu project yang dikerjakan.

Silahkan masukan kode program di M-file editor yang baru dibuka. Cukup mudah, hanya saja untuk input teks agak sedikit ribet yaitu saat menangkap dengan membuat objek. Untungnya ada bantuan dari M-file untuk menangkap inputan.

Debug

Ketika uji coba program yang baru saja dibuat, terkadang dijumpai kesalahan-kesalahan sintaks. Matlab memberitahu lokasi baris tempat kesalahan. Cara mengetahuinya adalah dengan mengklik “line” di command window yang berwarna merah.

 

Iklan

Steganografi Untuk Menyembunyikan Pesan

Steganografi adalah teknik menyisipkan pesan ke dalam suatu media agar kerahasiaan pesan tersebut terjaga. Berbeda dengan kriptografi yang tampak ada pesan yang ditutupi, pada steganografi bahkan orang lain tidak tahu kalau ada pesan yang dirahasiakan karena menempel pada suatu media, misalnya gambar, musik, dan lain-lain.

Untuk mencoba fungsi steganografi pada Matlab, silahkan unduh M-file dari situs berbagi fungsi di sini. Sebaiknya login terlebih dahulu jika ingin mengunduh file lengkapnya. Jika tidak punya akun, bisa signup terlebih dahulu dengan mengisi data. Jika sudah diunduh, siapkan dua gambar, satu gambar rahasia dan sisanya untuk penutup (cover). Gunakan imresize terlebih dahulu agar kedua gambar berukuran sama.

Untuk menerapkan ada baiknya menggunakan citra hitam-putih, sebab jika menggunakan RGB harus dimodif m-filenya agar ukuran matriksnya MxN tanpa ada tambahan MxNxt. Gambar kiri adalah gambar penutup, sementara yang kanan yang akan disembunyikan.

Selanjutnya gambar 2 (kanan) akan disisipkan ke dalam gambar 1 agar gambar tanda tangan tidak tampak. Perhatikan gambar berikut yaitu gambar yang berisi tanda-tangan di dalamnya.

Pada gambar di atas tidak tampak gambar tanda-tangan, padahal jika gambar tersebut diekstrak (dikurangkan dengan cover image) akan menghasilkan ekstrak gambar seperti di bawah ini.

Siapa sangka gambar foto saya memiliki gambar rahasia (tanda tangan) di dalamnya. Sekian semoga bermanfaat.

Menyimpan Data dalam Bentuk Struktur (Struct)

Ketika mengimpor data dari sistem basis data (biasa atau spasial), biasanya berbentuk struktur. Misalnya mengimpor data spasial dari sebuah shapefile berikut ini.

>> a=shaperead(‘Commercial.shp’)

a =

344×1 struct array with fields:

Geometry

X

Y

Id

Name

Untuk melihat isi dari “Name” cara melihatnya adalah dengan titik antara nama struktur (“a”) dan nama field-nya.

>> [a.Name]

ans =

Kimia FarmaBlue Bird PoolPusat Arsip JAMSOSTEKBaliku Agung PerkasaSiantar ….. dst

Sedikit berbeda dengan tabel, struktur memiliki bentuk sebaliknya, yaitu baris untuk field dan kolom untuk record. Jadi jika ingin “mengutak-atik” perlu dilakukan proses transpose terlebih dahulu.

Menyimpan Data dalam Format Struktur

Untuk mengetahui caranya, silahkan mengetik “help save” di command window. Di bagian bawah ada penjelasan bagaimana membuat file mat dengan tipe struct (struktur). Coba saja “copas” kode berikut ini:

s1.a = 12.7;

s1.b = {‘abc’, [4 5; 6 7]};

s1.c = ‘Hello!’;

save(‘newstruct.mat’, ‘-struct’, ‘s1’);

Perhatikan di folder, muncul satu file baru bernama ‘newstruct.mat’ yang berisi tiga variabel yaitu a, b, dan c. Bagaimana memanggilnya? Mudah saja ketik di command window “load newstruct”. Beberapa function membutuhkan bentuk struktur ini, so semoga bermanfaat.

Update: 14/2/2018

Ternyata bisa juga dengan format:

save(‘newstruct.mat’,’s1′)

Konversi UTM ke Latitude – Longitude (Terapan)

Ada tugas revisi buku, dan rencananya ada tambahan di bagian implementasi Matlab dengan sistem basis data (Access dan MySQL) yaitu data spasial dan pemrosesan teks. Cukup menarik ternyata Matlab memiliki banyak fasilitas, bahkan sistem informasi geografis (SIG) pun dilayani. Postingan singkat ini (lanjutan dari post yang lalu) menggambarkan bagaimana mengutak atik SIG dengan Matlab.

Salah satu komponen penting dari SIG adalah proyeksi. Salah satu proyeksi yang terkenal adalah Universal Transverse Mecartor (UTM) yang membagi bumi menjadi zona-zona. Untuk komputasi lebih mudah menggunakan jenis koordinat desimal ini, dibanding dengan jam, menit, detik atau lintang dan bujur. Repotnya ketika selesai melakukan kalkulasi dengan Matlab terkadang untuk menampilkan ke SIG berbasis web (Web SIG) perlu dikonversi ke latitude (lintang) dan longitude (bujur).

Setelah searching seharian dari situs yang remeh temeh hingga yang serius, ternyata situs Matlab sudah menyediakannya (lihat link ini). Karena tidak tersedia di instalasi Matlab, mau tidak mau harus membuat M-file yang dikopi dari situs tersebut. Untuk teori dasar silahkan lihat link ini (sebaiknya jangan deh, ntar pusing he he).

Jadi prinsipnya setelah matlab mengolah data spasial, kemudian hasilnya sebelum dikirim ke Web SIG dikonversi terlebih dahulu dari UTM ke lintang bujur karena Google Map API (lihat caranya) memerlukan data lintang bujur bukan UTM (kabarnya ada juga gmap4 yang bisa menggunakan UTM). Walau singkat semoga bermanfaat.

Deep learning, Machine Learning & Artificial Intelligent

Tiga istilah yang mirip tetapi sejatinya berbeda. Untuk menjawabnya tidak ada salahnya membaca buku tentang deep learning karangan (Kim, 2017). Dalam buku tersebut, secara gampangnya dijelaskan, deep learning adalah salah satu bagian dari machine learning, sedangkan machine learning sendiri merupakan salah satu subjek dari artificial intelligent (AI).

Machine Learning

Machine Learning (ML) bukanlah mengajari seorang murid yang berupa mesin. Kalaupun iya, itu adalah AI. ML di sini adalah membuat sebuah model dengan melatihnya lewat suatu data. Dengan demikian model tersebut bisa menjawab inputan tertentu sesuai dengan hasil pembelajaran dari data yang dikenal dengan istilah data training. Dari data dapat dibuat dua model yang terkenal yaitu regresi dan klasifikasi. Yang saat ini banyak diteliti adalah klasifikasi yang terdiri dari supervised, unsupervised, dan reinforcement.

Deep Learning

Saat ini pemodelan yang terkenal adalah artificial neural network (JST). Metode ini sempat mengalami pasang surut. Setelah McCulloch – Pitt menemukan model JST pertama, terjadi kevakuman karena metode ini tidak mampu menyelesaikan masalah sederhana, misalnya logika XOR. Namun setelah 30 tahun kemudian, munculnya backpropagation, sebuat metode learning baru yang bisa diterapkan dalam multilayer perceptron, akhirnya JST mulai menggeliat lagi, namun kemudian redup lagi karena masalah performa. Setelah 20 tahun kemudian, yaitu pertengahan 2000-an, diperkenalkanlah Deep Learning yang berfokus dalam meningkatkan performa Hidden Layer, yaitu beberapa layer antara input dan output. Sehingga riset tentang JST semarak lagi. Yuk, baca bareng buku itu.

Ref

Kim, P. (2017). MATLAB Deep Learning. New York: Apress. https://doi.org/10.1007/978-1-4842-2845-6

 

Matlab dan Penerapannya

Matlab merupakan software untuk komputasi yang dibuat oleh sebuah vendor software bernama Mathworks. Software yang biasa digunakan kampus/lembaga pendidikan ini cukup ampuh untuk mengimplementasikan suatu metode tingkat lanjut. Prinsip yang berbasis matrix menjadi keunggulan tersendiri dibanding bahasa pesaing lainnya. Oiya, Matlab itu singkatan dari “Matrix Laboratory” lho, bukan “Mathematic Laboratory”.

Harga

Software ini merupakan software yang berbayar, lihat link ini untuk mengetahui informasi resminya. Untungnya, bagi kampus, seperti yang saya gunakan di kampus tempat kuliah, harganya bisa sangat murah, sekitar 7 jutaan rupiah.

Tentu saja itu harga standar, jika ingin menggunakan fasilitas tambahan khusus lainnya, seperti: simulink, control design, dan lainnya sesuai jurusan yang menggunakannya, ada biaya tambahan. Khusus untuk pengguna yang seorang mahasiswa tidak sampai satu juta. Hanya saja untuk dipakai pribadi (non pendidikan), harganya lumayan mahal, sekitar 30-an juta rupiah. Hal inilah yang membuat banyak yang beralih ke bahasa pemrograman lainnya, bahkan ada yang mirip yaitu Octave dengan sintaks yang tidak berbeda dengan matlab, baik dari sisi pemrograman (for-next, while, dll) hingga ekstensi file programmnya (*.m).

Alat Ukur dalam Riset

Seperti halnya riset fisika yang membutuhkan akurasi alat ukurnya, seperti timbangan, alat ukur tekanan, dan lain-lain, ketika membandingkan metode pun diperlukan alat ukur yang ter-kalibrasi. Jadi ketika membandingkan satu metode dengan metode lainnya Matlab dapat dikatakan terjamin, terutama toolbox yang digunakannya. Error dan berapa iterasi yang digunakan juga cukup dapat diandalkan. Karena tidak akurat jika membandingkan dua metode dengan software yang berbeda, misalnya satu metode dibuat dengan bahasa C++ sementara yang akan dibandingkan dibuat dengan dengan VB.

Begitu juga dengan Jurnal-jurnal tentang metode-metode yang melibatkan algoritma-algoritma tertentu. Biasanya dengan menyebutkan parameter-paramter yang digunakan dalam toolbox Matlab, peneliti lainnya dapat mereplika penelitiannya, sehingga kebenaran suatu riset bisa terjamin dan diulangi. Bandingkan jika menggunakan program “Custom”, apalagi tidak disertakan kode programnya yang bisa digunakan oleh pembaca/peneliti lainnya. Rekan-rekan saya banyak juga yang mengatakan Matlab kurang baik karena karakternya yang lamban dalam mengeksekusi instruksi dibanding dengan java apalagi c++. Khusus untuk Anda yang ingin lulus doktoral dengan cepat, Matlab bisa diandalkan. Saya jadi ingat cerita rekan saya yang membuat aplikasi dengan C++ dalam waktu setahun dengan Matlab hanya dalam waktu kira-kira sebulan saja. Namun jika untuk production, baru lain lagi ceritanya.

Untuk Membangun Aplikasi

Walaupun Matlab menyediakan fasilitas deployment yang bisa meng-generate
executable program, untuk mendevelop program, sepertinya software ini kalah pamor dengan bahasa lainnya, seperti c++ dan java yang cepat, php, ruby dan lainnya yang berbasis web. Tentu saja ketika implementasi, kecepatan dan efisiensi compiler bahasa pemrograman sangat menentukan kualitas produk software yang dibangun. Walaupun terkadang faktor lain seperti kemudahan dan kecepatan memrogram penting juga.

Harga lisensi yang mahal membuat bahasa pemrograman lainnya, terutama yang berbasis linux sering jadi pilihan utama para pengembang. Namun satu hal yang terpenting adalah, bagi seorang praktisi IT sebaiknya tidak mengandalkan satu tool saja. Lagi pula, jika bos Anda menuntut dengan bahasa “x”, tidak mungkin kita melawan, mangkir, protes, demo, karena menganggap bahasa “y” idola kita dirasa lebih powerfull, kecuali kalo memang mau dipecat. Idealis boleh saja, tetapi kalau tidak bisa memuaskan pelanggan di era informasi ini bakal ditinggalkan walau secanggih apapun karyanya.

Menyelesaikan masalah “Architecture Mismatch Driver & Application” ketika mengakses Database di Matlab

Melanjutkan postingan yang lalu tentang problematika explore database di Matlab yang melibatkan versi 64 atau 32 bit. Masalah incompatible ini sepertinya tidak direspon dengan baik. Baik oleh Windows maupun Matlab. Sepertinya ada sedikit “paksaan” bagi pengguna versi 32 bit untuk beralih ke versi 64 bit. Padahal banyak yang masih menerapkan versi 32 bit di sistem yang sedang berjalan.

Install Microsoft Access Versi 64 Bit

Pengguna Matlab 64 bit sepertinya sudah harus beralih ke versi 64 bit untuk semua hal yang terlibat dengan Matlab (environment), seperti OS dan sistem basis data-nya. Jika tidak maka akan muncul peringatan adanya ketidaksesuaian dari sisi arsitektur antara driver ODBC dan aplikasi. Perbedaan arsitektur merupakan perbedaan yang tidak sepele dalam suatu sistem perangkat lunak.

Repotnya untuk Microsoft Access, tidak bisa langsung memasang yang 64 bit tanpa meng-uninstall versi yang sebelumnya. Perlu diperhatikan jika ada visio versi 32 bit, windows meminta uninstall juga. Jadi kalau sayang dengan visio yang 32 bit atau tidak punya installer visio yang 64 bit, sebaiknya difikirkan terlebih dahulu, atau siapkan dulu visio versi 64 bitnya.

Tadinya saya masih ragu, jangan-jangan ketika uninstall yang 32 bit dan install yang 64 bit tetap saja database tidak bisa diakses Matlab 64 bit, tetapi ternyata Alhamdulillah bisa. Mungkin ini bisa menjawab pertanyaan dari pembeli buku saya tentang database di Matlab yang tidak bisa terkoneksi dengan access karena beda versi “bit”nya. Oiya, jangan khawatir, semua settingan di office 32 bit yang lalu tetap otomatis terbawa di versi 64 bit yang baru.

Mengecek Koneksi Database di Matlab

Ketika sudah menginstall versi 64 bit, pastikan di ODBC yang 64 bit terisi driver dan platform-nya yang baru (64 bit). Selalu gunakan driver untuk kedua versi access (*.mdb dan *.accdb). Pastikan ketika mengklik Configure… tida ada pesan “architecture mismatch ..” lagi.

Tambahkan satu User DSN baru dan coba buka dengan Matlab 64 bit. Setelah mengetik dexplore di command window Matlab, cari ODBC yang baru saja dibuat. Pastikan database yang dibuat dengan Access dapat dilihat isinya.

Sekian dulu info singkat ini, semoga bermanfaat dan semoga pula naskah tentang data spasial dan bigdata dengan Matlab dapat rampung secepatnya.