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.

Menggunakan Graphics Processing Unit (GPU) Google Colab

Google Colab selain menyediakan Integrated Development Environment (IDE) yang diserta kompiler Python juga menyediakan CPU dan GPU-nya. Untuk membuktikannya Google Colab memberikan link tersendiri di sini.

Jika langsung dijalankan sel pertama akan muncul pesan kesalahan sebagai berikut.

Hal ini terjadi karena kita belum mengeset accelerator GPU. Pilih accelerator dengan masuk ke menu Edit Notebook Setting.

Berikutnya Anda diminta memilih acceleratornya. Ada dua pilihan: 1) Graphics Processing Unit (GPU) dan 2) Tensor Processing Unit (TPU). Pilih saja sesuai pokok bahasan kita yaitu GPU.

JIka dijalankan sel pertama program contoh pengaksesan GPU akan muncul keluaran sebagai berikut yang memastikan bahwa GPU ditemukan.

Jalankan sel berikutnya yang menguji kecepatan tensorflow menggunakan CPU dan GPU. Pastikan tidak ada error.

Perhatikan kecepatan eksekusi menggunakan GPU yang lebih cepat kira-kira 20 kali lebih dari CPU. Sekian semoga membuat tertarik memanfaatkan hardware GPU Google.

Django, Flask dan Jinja2 Untuk Python di Web

Biasanya programer Python menggunakan fasilitas Graphic User Interface (GUI) dari library Tkinter (lihat post yang lalu). Namun tren aplikasi berbasis web membuat programer Python membuat aplikasi berbasis web. Postingan ini menggambarkan bagaimana program Python bekerja di web. Pertama-tama yang dibutuhkan adalah donwload library. Di sini saya menggunakan cara tergampang, yaitu dari Anaconda Navigator

Untuk pembuatan aplikasi web skala besar, gunakan Django dengan fasilitas framework-nya yang lengkap. Caranya sama untuk mengunduh librarynya lewat Anaconda Navigator. Pastikan library tersebut terinstal di Anaconda agar nanti bisa digunakan di Jupyter Notebook lewat instruksi import.

Django Atau Flask? Jinja2 untuk Apa?

Sesuai dengan fungsinya, jika ingin membuat aplikasi besar gunakan saja Django. Tetapi untuk aplikasi ringan, flask lebih cepat. Bagaimana dengan Jinja2? Fungsi Jinja2 memang berbeda dengan Django dan Flask. Aplikasi ini berfungsi untuk membuat template yang nanti muncul di browser. Jika sudah ok, template tersebut dapat diterapkan baik di Django maupun Flask. Walaupun Django bisa juga untuk merancang template tetapi dengan Jinja2 programmer lebih senang karena cepat karena tidak membutuhkan fasilitas-fasilitas lain Django yang tidak ada hubungannya dengan template.

Mencoba Flask

Untuk membuat Python web dengan Flask kita harus memiliki template HTML. Gunakan template berikut ini.

Beri nama template.html, silahkan gunakan editor, misalnya notepad. Jangan lupa ekstensi harus html bukan txt. Buat folder baru di direktori Python, beri nama template. Posisi file kira-kira seperti ini. Dimana folder templates harus disediakan, berisi file HTML (lihat refernsi ini). Silahkan isi requirement.txt atau dengan nama lain misalnya readme.txt. Atau tidak ada juga tidak apa-apa karena hanya berisi penjelasan program.

Letakan template.html di folder tersebut. Sementara itu program utama tetap di direktori Python. Gunakan kode berikut.

  • from flask import Flask, render_template
  • app = Flask(__name__)
  • @app.route(“/”)
  • def template_test():
  • return render_template(‘template.html’, my_string=”Wheeeee!”, my_list=[0,1,2,3,4,5])
  • if __name__ == ‘__main__’:
  • app.run(debug=True)

Masuk ke Terminal dan jalankan dengan mengetik.

  • python run.py

Anda harus berhasil melihat hasilnya di http://127.0.0.1:5000 seperti instruksi di terminal. Di sini maksudnya kita diminta melihat localhost dengan port 5000, port yang diberikan oleh flask untuk mengakses via browser.

Silahkan lihat referensi di bawah untuk melihat bagaimana Jinja2 bekerja pada template. Di atas digunakan Flask, bisa juga dengan Django. Python saat ini sangat kuat dalam komputasi yang bekerja di back-end misalnya untuk mesin pembelajaran, dengan aplikasinya bisa jalan juga di web, berarti bahasa ini sangat diminati karena bisa bekerja selain di back-end maupun front-end, mengungguli bahasa-bahasa komputasi lainnya (lihat post yang lalu tentang tren bahasa pemrograman).

Referensi: https://realpython.com/primer-on-jinja-templating/

 

Object Not Found – Error 404 pada XAMPP

XAMPP merupakan paket berisi Apache server dengan PHP dan MySQL untuk membuat pemrograman web. Keunggulan paket aplikasi ini adalah sifatnya yang ringan karena server hanya aktif ketika Apache server di jalankan (running). Jika tidak dijalankan maka server tidak aktif sehingga meminimalkan penggunaan memori, biasanya jika dijalankan di laptop dan hanya untuk testing program.

Karena sifatnya yang aktif jika dijalankan, maka perlu setting khusus ketika beralih dari satu folder ke folder lainnya. Oiya, XAMPP berbasis folder dimana untuk mematikan dan menghidupkan server Apache dengan cara mengklik xampp_start dan begitu pula untuk mematikannya (xampp_stop). Masalah yang dijumpai ketika berganti folder adalah “Object Not Found” seperti tampilan di bawah ini.

Prinsip dari kesalahan ini adalah server Apache tidak berhasil menemukan “Link” yang dituju, biasanya index.php jika ada. Jika tidak ada index.php biasanya akan menampilkan folder-folder yang berada di folder htdocs. Folder ini merupakan folder induk php ketika server (localhost) dijalankan. Biasanya kasus ketika fodler XAMPP dipindah ke folder lain dan “xampp_start” hanya dijalankan tanpa diset ulang. Untuk mengeset ulang perlu dilakukan dengan menekan setup_xampp.bat.

Oiya, jangan lupa dimatikan dulu server Apache jika sekiranya masih hidup. Pilih (1) dilanjutkan dengan menekan sembarang tombol ketika diperintahkan.

Sekarang refresh browser yang sebelumnya error. Pastikan aplikasi berjalan, minimal menampilkan folder kosong jika tidak ada index.php di dalam folder tersebut seperti tampilan di bawah ini. Sekian, semoga bermanfaat.

Pemrograman Matlab

Matlab sudah lama dikenal sebagai bahasa pemrograman untuk teknik. Bahasa ini dibutuhkan oleh para insinyur yang merasa perlu bantuan komputer dalam melakukan komputasi. Salah satu keunggulan dari bahasa ini adalah kesederhanaannya dimana alur logika menjadi hal utama dibanding prosedur dan tata tulis yang terkadang membuat frustasi. Beberapa baris pada bahasa Matlab mungkin bila dikerjakan dengan bahasa yang lain membutuhkan jumlah baris yang lebih banyak.

Berikut ini contoh program sederhana untuk menghitung faktorial sebuah bilangan. Kita diminta memasukkan bilangan yang akan dicari faktorialnya, kemudian setelah menekan enter, diperoleh hasil perhitungan faktorialnya. Program masih berbasis text based. Buka M-file editor, dengan cara mengklik file-new-Blank M-file. Ketik instruksi berikut ini:

Gambar di atas merupakan program menghitung faktorial menggunakan M-file editor. Jalankan dengan mengetik faktorial pada command window. Jika dijalankan anda diminta memasukkan bilangan dan hasilnya adalah hasil faktorial dari bilangan itu.

>> faktorial

Masukkan Bilangan =4

 

faktorial =

 

24

 

Mengambil data dari Excel ke MATLAB

Selain mengambil data dari file berekstensi DAT, Matlab juga bisa mengambil data dari Microsoft Excell (baik 2007 maupun 2002/2003). Fungsi yang digunakan adalah “open”. Untuk mempraktekannya coba buka Microsoft Excell kemudian coba buat satu field berisi dua buah field (kolom) berikut ini.

Perhatikan Nama Sheet perlu diganti karena nama ini akan menjadi nama variabel data di workspace Matlab. Ganti Sheet1 menjadi Data misalnya. Simpan dengan nama bebas, misalnya tabel, tidak perlu disave as menjadi word 2002/2003. Buka Command Window Matlab, lakukan instruksi:

>>Open tabel.xlsx

Klik “Finish” saat jendel “Import Wizard” terbuka, centang isian M-Code, jika akan diaplikasikan dalam bentuk Script M-File. Klik tombol radio “Other” terlebih dahulu.

Berikutnya akan muncul satu variabel baru Data, yang jika kita ketik variabel tersebut akan memunculkan data yang sama dengan data excell.

>> Data

Data =

1 11

2 12

3 111

4 14

5 25

6 56

7 67

8 86

9 54

10 67

Berikut ini hasil generati kode –M.

function importfile(fileToRead1)
%IMPORTFILE(FILETOREAD1)
% Imports data from the specified file
% FILETOREAD1: file to read
% Auto-generated by MATLAB on 08-Aug-2011 13:50:26
DELIMITER = ' ';
HEADERLINES = 0;
% Import the file
newData1 = importdata(fileToRead1, DELIMITER, HEADERLINES);
% Create new variables in the base workspace from those fields.
vars = fieldnames(newData1);
for i = 1:length(vars)
assignin('base’, vars{i}, newData1.(vars{i}));
end

 

Coba sendiri untuk akses ke GUI-nya ya.

Insert Database Access via Java

A. MEMBUAT DATABASE DI MYSQL

Jalankan server Apache pada folder Xamp


Jangan diclose console DOS yang mengindikasikan Apache sudah running. Berikutnya buka browser (Mozilla, IE, dsb). Ketik: localhost/phpmyadmin


Create sebuah database, misalnya database penjualan. Pada kolom “Create new Database” isikan “Penjualan”. Klik Create, maka akan terbentuk satu database penjualan. Berikutnya kita buat satu tabel, misalnya “barang”. Isi nama tabel beserta jumlah field (nanti bias diedit), misalnya field.


Setelah di klik “Go”, MySQL akan membentuk tabel “barang”. Perhatikan juga tipe data yang akan dimuat pada tiap-tiap Field.


Klik “Go” agar Mysql segera membentuk tabel tersebut dilanjutkan dengan “Save“. Jika tidak ada kesalahan, maka tabel barang sudah terbentuk. Tinggal kita memasukan beberapa barang. Pastikan muncul tabel barang pada phpmyadmin.


Database dan tabel akan muncul pada folder Xampplite/Mysql/Data pada windows explorer.


Untuk backup, copy saja subfolder data, ke media lain seperti cdrw/flashdisk. Isikan data pada tabel barang. Klik Insert untuk mengisi data.


Kemudian isikan dua record (tupple).


Maka kita telah berhasil mengisi tabel barang pada database penjualan. Berikutnya kita akan mencoba mengkoneksikan database Mysql tersebut dengan Java disertai operasi Insert Data.

B. MEMBUAT FRAME INSERT DATA

Buka Netbeans 6.0.1 atau 6.9.1. Buat sebuah project baru dengan nama, misalnya penjualan. Jangan lupa arahkan folder di tempat yang kita inginkan, missal di drive D.


Klik “Finish” jika sudah diisi. Maka Netbeans akan menyediakan tempat project kita. Klik kanan pada paket Penjualan > new > JFrame Form.


Beri nama kelas tersebut, misalnya insert. Rancang tampilan Graphic User Interface (GUI) sebagai berikut:


Perhatikan jangan sampai tertukar antara label dengan Text Field. Lalu ganti tampilan dengan klik kanan > edit Text. Kosongkan tulisan jTextField1, jTextField2, jTextField3.


Untuk membuat kode program dobel klik “INSERT” kemudian isikan dengan terlebih dahulu mengkoneksikan database ke java.


Klik symbol lampu, jika muncul karena Java membutuhkan kelas tambahan.

try

{

Class.forName(“com.mysql.jdbc.Driver”);

Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/penjualan,”root”,””);

java.sql.PreparedStatement stat = con.prepareStatement(“insert into barang(kode,nama,harga) values(?,?,?)”);

stat.setString(1,jTextField1.getText());

stat.setString(2,jTextField2.getText());

stat.setString(3,jTextField3.getText());

stat.executeUpdate();

javax.swing.JOptionPane.showMessageDialog(null,”berhasil”);

jTextField1.setText(“”);

jTextField2.setText(“”);

jTextField3.setText(“”);

}

catch(Exception e)

{

System.out.println(“gagal” +e);

}

}

Lalu jalankan.

Koneksi VB dengan Database Gambar

A. MERANCANG DATABASE

Terkadang data yang ditampilkan pada VB berupa gambar seperti tanda tangan, foto, dan sebagainya. Bagaimana cara membuat database tersebut? Berikut cara yang sederhana dengan Microsoft Access 2007. Cara ini menggunakan file text pada database yang merupakan link ke file gambar. Berbagai macam cara dapat Anda cari di situs vb, misalnya forum vb-bego. Seperti biasa, buatlah database baru berformat Access 2002-2003.


Buat dua buah field, dengan salah satunya yang akan berisi hyperlink dari gambar yang akan ditayangkan pada Visual Basic 6. Klik kanan pada tabel (signature), pilih Open, setelah konfirmasi untuk menyimpan, masukan nama file-file gambar beserta ekstensinya.


Masukan sekitar empat atau lima data tanda tangan, atau file gambar lain jika tidak punya gambar tanda tangan. Berikutnya kita mulai membuat GUI dalam bentuk Form di Visual Basic. Jangan lupa file gambar juga diletakan di tempat path pada database. Jika sudah tutup Microsoft Access 2007 anda.

B. MERANCANG FORM

Lihat kembali tata cara mengkoneksikan database access ke visual basic (https://rahmadyatrias.wordpress.com/2011/06/06/memasukan-database-melalui-microsoft-visual-basic-6/ ).


Kemudian buat script sederhana sebagai berikut, lalu jalankan.


Hasilnya adalah sebagai berikut


Selamat Mencoba


Rahmadya Trias

Memasukan Database Melalui Microsoft Visual Basic 6

A. Membuat Database dengan Access 2007

Buka Start > All Programs >Microsoft Office > Microsoft Office Access 2007. Klik Blank Database.


Arahkan ke Folder tempat program VB yang akan dibuat. Jangan lupa ganti file Access 2007 menjadi 2002-2003


Jika sudah klik “Create” untuk mulai membuat database tersebut. Buat sebuah tabel baru dengan klik kanan “Table1:Table” dilanjutkan dengan klik Design View.


Anda akan diminta membuat nama dari tabel tersebut. Isi, misalnya kursi. Dalam satu database dapat lebih dari satu tabel. Jadi database kita adalah kursi dengan satu tabel kursi. Buat tiga buah field beserta tipe datanya.


Berikutnya kita tinggal mengisi data pada tabel tersebut. Klik kanan pada nama tabel yang dituju dilanjutkan dengan klik “Open“. Klik “Yes” saat diminta menyimpan.

 


Isikan tiga buah data, bebas.


Jika sudah, tutup Microsoft Access Anda, kemudian kita siap mengakses Database tersebut lewat Microsoft Visual Basic 6.

 

B. Mengakses Database Lewat Micorosoft VB 6

Klik Start > All Programs > Micorosft Visual Studio > Microsoft Visual Basic 6. Buat sebuah project baru, pilih Standard Exe.


Klik kanan pada Toolbar Object > Components. Karena kita akan menambah dua komponen baru yang tidak terdapat secara default pada VB 6.


Centang dua komponen tambahan yakni Microsoft Access Data Control 6 dan Microsoft dataGrid. Klik “Ok“.


Drag dua komponen tersebut ke Form yang akan dirancang. Kemudian kita akan mengeset ADO.


Pilih Build,


Pilih Microsoft Jet 4.0 OLE DB Provider, Klik “Next“.


Pilih Database yang telah Anda buat.


Lakukan test Connection, sampai ada pesan Sukses. Tutup terlebih dahulu Microsoft Access 2007 jika masih terbuka.


Berikutnya, arahkan ke Recorod Source, masih di ADODC.


Klik ” … “. Pilih Command Type: 1 – adCmdText. Kemudia ketik instruksi SQL di Command Text (SQL). SQL adalah singkatan dari Structured Query Language, yaitu bahasa standar internasional untuk akses ke database.


Klik “Apply” dan “OK”. Berikutnya kita pindah ke Data Grid. Pilih Data Source, yaitu Adodc1.


Jika sudah, cek dengan me-running program. Klik simbol , pada Data Grid harus muncul isi tabel kursi pada Database kursi.mdb.


 

C. MEMBUAT TOMBOL SIMPAN

Rancang Form untuk memasukan, kode, panjang dan lebar kursi.


Jangan sampai salah antara “label“, “Text Box” dan “Command Button“. Isikan instruksi pada Command Button Simpan dengan dobel klik pada “SIMPAN“.


Adodc1.Recordset.AddNew bermaksud meminta VB agar menambah satu item yang isi Fieldnya dari Text1, Text2, dan Text3 (lihat baris 2 sampai 5. Dilanjutkan dengan Update pada kode baris ke 6 (Adodc1.Recordset.Update). Jalankan hingga Anda dapat mengisi satu Field ke tabel kursi dan muncul pada Data Grid. Biasanya programmer menambahkan tombol “New” / “Baru” untuk mengosongkan isian, jika akan menambah Field berikutnya. Tambah CommandButton baru, beri nama “Baru“.


Dobel klik, dan isikan kode berikut:


Saat tombol “Baru” ditekan, maka seluruh isian akan kosong karena instruksi Text1.Text = “”. Baris terakhir bermaksud agar kursor berada di Text1 untuk memudahkan pengguna mengisi data. Coba jalankan program Anda.


Selamat Mencoba,


Rahmadya Trias Handayanto


 

Pertemuan IX: Generalisasi dan Inheritance

Salah satu teknik pemrograman berbasis objek adalah generalisasi dan inheritance. Konsep ini dapat dianalogikan dengan induk dan anak dimana anak akan mewarisi sifat induknya. Untuk mempermudah pemahaman ada baiknya kita coba untuk mempraktekkannya dengan bahasa Java dengan IDE Netbeans.


Buat project baru dengan cara File – New Project. Pilih kategori Java dan pilih Java Application pada kolom yang kanan.


Anda akan diminta memberi nama serta lokasi tempat penyimpanan dengan cara mengklik “Browse“. Jika direktori tidak muncul klik “Desktop” agar memunculkan seluruh direktori yang ada di komputer.


Setelah diklik “Computer” akan terlihat seluruh direktori yang ada. Cari folder yang Anda inginkan. Jika sudah, beri nama project Anda, misalnya “Generalisasi“.


Setelah di klik “Finish” berarti Anda telah siap membuat project. Perhatikan Netbeans memberikan satu kelas secara default dengan nama “Main“. Berikutnya kita akan membuat dua kelas baru yaitu kelas persegiPanjang dan kelas Balok. Cara membuat kelas baru adalah sebagai berikut:


Pada paket “Generalisasi” klik kanan kemudian pilih New – Java Class. Beri nama “persegiPanjang“. Dengan cara yang sama buat juga kelas berikutnya yaitu kelas “Balok“.


Dobel klik kelas persegiPanjang dan tulis program yang menghitung luas persegi panjang dari masukan panjang dan lebar dengan cara objek. Walaupun beberapa literatur bisa juga membuat program Java secara terstruktur, alangkah baiknya Java dibuat dengan basis Objek. Perlu diketahui bahwa tiap objek memeliki nama, atribut dan operasi. Lihat listing persegiPanjang berikut ini.


Perhatikan, pada kelas persegiPanjang terdapat dua atribut yaitu panjang dan lebar yang bertipe double. Script baris ke 15 bermaksud merubah variabel panjang yang diterima lewat masukan tertentu (nanti menggunakan form) menjadi double, dilanjutkan dengan script ke 18 yang menangkap variabel itu ke kelas yang bersangkutan lewat mekanisme “this“. Diakhiri dengan methode getPanjang yang menginstruksikan Java bahwa variabel panjang harus disimpan. Penjelasan yang sama untuk setLebar dan getLebar. Operasi terakhir adalah getLuas yang memerintahkan Java untuk menyimpan hasil perkalian panjang dan lebar.


Berikutnya kita membuat kode program balok. Karena balok merupakan anak dari persegi panjang (Inheritance) maka pada awal program perlu ditambahkan extends dan dilanjutkan nama kelas induknya (lihat baris ke-12). Saat menghitung volume, kita tinggal memanggil “getLuas” dari induknya (persegi panjang) dengan mengetik instruksi “super“. Perhatikan, saat diketik titik, harusnya ada bantuan getLuas, jika tidak, mungkin Anda belum menulis “extends” di awal program, atau getLuas di persegiPanjang bertipe “private“, oleh karena itu ganti menjadi “public“.


Buat kelas baru dengan nama formBalok dengan tipe Jframe Form. Buat rancangan Graphic User Interface (GUI) seperti gambar di atas. Buat programnya dengan mendobel klik “Hitung“.


Perhatikan, baris pertama bermaksud membuat suatu instance baru bernama “b“. Instance adalah objek yang dibuat dari suatu kelas, dalam hal ini kelas “Balok“. Karena dibuat dari kelas balok maka seluruh operasi pada kelas balok diterapkan juga di objek “b” tersebut, seperti setPanjang, setLebar, dan setTinggi. Methode getText() sudah tersedia di Java, yang bermaksud menangkap text dari inputan pada Text Field (jTextField1, jTextField2, dan jTextField3). Disarankan untuk memberi nama baru pada variabel tersebut, karena nama tersebut merupakan nama bawaan Netbeans. Instruksi “setText” merupakan kebalikan dari getText, yaitu mengirimkan Text ke Text Field tertentu (dalam hal ini jTextField4). Klik kanan pada Form Balok, pilih Run File, hasilnya harus seperti ini.


Selamat Mencoba


Rahmadya Trias Handayanto

Mengkoneksikan Database Ke Matlab – Bagian 3

Mengambil data dari database lewat GUI membutuhkan sedikit pengetahuan mengenai sistem kerja GUI dan M-File pada Matlab. Jika tulisan ini pertama kali Anda baca sebaiknya Anda lihat materi sebelumnya di: BAG 1 dan BAG 2 . Jika sudah Anda mengerti, barulah bisa mengikuti tulisan ini, tentu saja sambil membuka Matlab Anda. Berhubung ActiveX  antara satu komputer dengan komputer lainnya berbeda, di sini untuk melihat data yang kita ambil saya menggunakan objek “Table” pada GUI. Coba kita mulai dari awal, buka GUI dengan mengetik guide di command window atau dengan cara File – New – GUI di pulldown menu. Pilih Blank GUI karena kita akan membuat GUI dari nol. Karena hanya sekedar mengakses database, coba rancang bentuk berikut ini yang rencananya nanti tabel tersebut akan berisi data yang dipanggil oleh GUI tersebut.


Untuk mengisi nama kolom, klik kanan pada tabel tersebut pilih Properti Editor … Isikan nama-nama kolom sesuai dengan tabel yang anda miliki. Untuk menambah kolom ketikkan klik insert, lalu isi nama pada kolom kosong seperti berikut ini.


Klik Apply dan OK jika sudah selesai, maka Anda telah berhasil membuat tabel kosong yang nantinya akan kita isikan datanya lewat script. Jika tabel dan ODBC sudah Anda buat, mari kita mencoba mengakses data dari database tersebut dengan toolbox database yang disediakan oleh matlab. Perhatikan ujung kanan bawah Matlab Anda, ada tulisan Start bukan? Banyak pengguna Matlab baru yang tidak “ngeh” dengan tombol tersebut. Coba tekan, arahkan ke toolbox, lalu pilih Visual Query Builder pada database. Gunakan cara seperti pada tulisan saya terdahulu . Berikutnya agar bisa diterapkan di GUI yang baru kita buat, maka kita mau tidak mau harus mengkonversi menjadi bahasa Matlab dengan cara mengklik: Query – Generate M-File. Oiya, pilih seluruh Fields (kode, nama dan harga) dan isikan databrg pada MATLAB workspace variable.


Hasilnya adalah serangkaian kode Matlab yang berisi koneksi database dilanjutkan dengan script SQL ambil data (Select). Simpan dan beri nama dengan nama ambildata. Sekarang kembali ke GUI yang telah Anda buat, coba jalankan (RUN) sehingga Anda akan diminta mengisi nama file GUI itu, beri nama, misalnya data. Masih kosong? Tentu saja karena belum kita isi programnya. Pada grid_opening function isikan dengan script m-file hasil generasi dari querybuilder. Bingung? Coba anda klik simbol “f” di M-file editor anda, maka akan muncul grid_openingfunction, klik maka anda diarahkan ke function tersebut. Function itu dieksekusi saat GUI dijalankan. Coba edit script berikut ini, dengan menginsert script ambildata ke data_openingfcn:


Oke, kembali ke command window, coba ketik ambildata agar variabel databrg muncul di workspace. Mengapa? Nanti Anda akan tahu sendiri maksudnya. Di fasilitas help mungkin tidak ada, tetapi jika Anda memiliki bakat “utak-atik” tentu akan menemukannya. Buka GUI dan klik kanan pada tabel dan pilih table property editor. Ribet ya bolak balik? Kalau tadi anda mengedit kolom untuk mengisi kode, nama dan harga, di sini anda klik Data untuk mengisikan data. Nah, karena Anda sudah menjalankan script ambildata, muncul dah di sana variable databrg, klik pada variabel tersebut, lanjutkan dengan apply dan OK.


Harusnya Anda melihat ada isian pada list data (conn, databrg, e dan s). Jika tidak berarti Anda belum menjalankan instruksi yang saya berikan di atas. Jika sudah, coba Anda jalankan GUI yang telah anda buat, hasilnya adalah GUI tersebut berhasil mengakses database kemudian diambil datanya dan diletakkan di objek tabel pada GUI.


Selamat mencoba, pusing dikit ga pa pa kan? Sumpah .. itu cara paling gampang !!!


Rahmadya Trias Handayanto

MENULIS KALIMAT DENGAN TURBO ASSEMBLER

Hari/M.Kul/Ruang/Dosen: Jumat-24-12-2010/B.Assembly/L.Software/Rahmadya TH

Berbeda dengan debug yang alamat offset-nya ditunjuk dengan jelas (berupa angka). Pada Turbo Assembler offset ditunjuk berupa variabel yang nantinya akan dirubah secara otomatis oleh sistem (DOS). Berikut ini program contoh menulis satu kalimat:


Kemudian kita akan buat dengan Turbo Assembler. Buka kembali Notepad, ketik instruksi berikut ini:


Dengan Turbo Assembler, “Mov DX, 300″ diubah menjadi ” MOV DX, OFFSET Kal” dimana Kal merupakan variabel berisi data (DB) RAHMADYA. Perhatikan teknik pembuatan data “Kal Db …” dan lompatan (JUMP). Coba kompilasi dengan Turbo Assembler dan lanjutkan dengan linking.


Selamat Mencoba !!!


Rahmadya Trias Handayanto

MEMBUNYIKAN SPEAKER DENGAN DEBUG & TURBO ASSEMBLER

A. MEMBUNYIKAN SPEAKER DENGAN DEBUG

Buka DOS lalu ketik debug, maka Anda akan masuk mode debug berbasis dos. Ketik a100 untuk memulai menulis program. Ketik program berikut ini:


Hasilnya adalah speaker berbunyi dan akan berhenti setelah sembarang tuts ditekan. Untuk menghasilkan program executable (com/exe) ketik instruksi berikut ini:


Maka akan dihasilkan satu file baru bernama bunyi.com di direktori d.

 

B. MEMBUNYIKAN SPEAKER DEGNAN TURBO ASSEMBLER

Turbo assembler tidak menyediakan fasilitas editor, oleh karena itu kita harus menggunakan editor dos (ketik edit <nama>.asm pada dos prompt). Atau gunakan notepad bawaan windows. Ketik program berikut ini:

 

;/=======================================================\;

; Program : SPEAKER.ASM ;

; BY : RAHMADYA ;

; Fungsi : membunyikan speaker dan ;

; mematikannya ketika inputan keyboard diketik ;

;\=======================================================/;

 

    .MODEL SMALL

    .CODE

    ORG 100h

 

Proses :

    MOV AL,33H

    OUT 61H,AL

    MOV AL,01H

    OUT 42H,AL

    OUT 42H,AL

    MOV AH,01H

    INT 21H

    MOV AL,00H

    OUT 61H,AL

    INT 20H

END Proses

 

Simpan dengan nama speaker.asm. Lakukan tahap kompilasi berikut ini:

TASM speaker

Dilanjutkan dengan :

TLINK/T speaker.

Hasilnya adalah program speaker.com yang terletak pada direktori kerja. Selamat mencoba !!!

NOTE: Jangan sampai lupa “H” pada setiap angka, misal INT 21H jangan hanya INT 21 saja.


Rahmadya Trias Handayanto

Mengkoneksikan Microsoft Access 2007 dengan Visual Basic 6

A. MEMBUAT DATABASE DENGAN MICROSOFT ACCESS 2007

Buka program Microsoft Access untuk membuat database yang akan digunakan oleh program VB nantinya. Buat database dengan nama bebas, misalnya: “material”. Klik kanan pada tabel, pilih Design View.


Maka Anda akan diminta menyimpan tabel, beri nama bebas, misalnya: “barang”. Tetapi karena menggunakan jenis file Access 2007 yang tidak disupport oleh program VB, maka kita harus mengklik “Sava AS” menjadi file Access 2002-2003.


Buat tiga Field yaitu kode, nama dan harga. Lanjutkan dengan mengisi beberapa data. Sehingga menghasilkan data yang akan dioleh lebih lanjut oleh Microsoft Visual Basic 6.


B. MEMBUAT FORM MATERIAL

Buka Microsoft Visual Basic, buat project baru dengan sebuah form. Karena kita akan mengkoneksikan VB dengan Access 2002-2003 yang tidak disupport oleh VB 6, maka kita harus menambahkan komponen baru dengan cara mengklik kanan toolbar komponen.


Pilih Microsoft ADO Data Control 6.0 (SP3) dan Microsoft DataGrid Control 6.0 dengan cara mengklik kotak di sebelah kiri tulisan tersebut. Sehingga pada toolbar akan muncul icon ADO Control dan DBGrid. Drag ke arah FORM Anda, buat seperti gambar berikut ini.


Klik Adodc1, pada toolbar Properties, cari “ConnectionString“, klik “…” untuk mengisi form yang harus kita isi.


Klik BUILD, pilih provide: Microsoft Jet 4.0 OLE DB Provider dilanjutkan dengan mengklik NEXT. Cari Lokasi database yang akan kita akses. Klik “Test Connection” untuk mengecek apakah database sudah terkoneksi dengan baik. Klik OK, Apply, dan OK lagi.

Kembali ke toolbar Properties, sekarang pilih ” RecordSource“, klik “…” sehingga menampilkan form berikut ini.


Pilih Command Type 1-addCMD Text. Kemudian di Command Text SQL ketik: select * from material pada Command Text (SQL). Klik OK jika sudah diketik.

Sorot DBGrid dengan cara mengkliknya. Pada toolbar Properties, cari DataSource, Pilih “AdoDC1“. Jika tidak muncul berarti Anda belum membuat Koneksi dengan benar pada databasenya. Cek kembali. Sehingga jika di-Running akan muncul tampilan sebagai berikut.


Jika pada DBGrid menampilkan data pada Microsoft Access yang kita buat sebelumnya, maka Selamat, Anda telah berhasil mengkoneksikan Access ke Visual Basic 6.

WARNING: Jangan lupa mengkonversi “SAVE AS” tipe file Access 2007 menjadi Access 2002-2003.


Rahmadya Trias Handayanto