Membuat Relasi Antar Kelas Sederhana dengan Ruby on Rails

 

Kita akan membuat dua kelas yaitu user dan mobil yang menghubungkan data user dengan mobil yang dimilikinya. Untuk yang baru pertama kali, sebaiknya lihat postingan sebelumnya, di mana menulis kode rails, cara instalasi, membuat program sederhana, dan lain-lain. Mudah-mudahan Anda juga berhasil membentuk apliksi sederhana seperti di bawah ini.

Ok, tiap user memiliki bisa lebih dari satu mobil, dan tiap mobil memiliki data pemiliknya.

rails new parkir

Artinya kita akan membuat suatu project dengan nama parkir. Jika Anda menggunakan database postgresql tambahkan –d postgressql di sebelah kanan parkir. Pindahkan folder pada command prompt Anda ke folder parkir yang baru saja terbentuk.

cd parkir

Buat model user dengan atribut nama dan alamat.

rails g scaffold user nama alamat

Kode di atas menghasilkan model user dengan atribut nama dan alamat, dan operasi diberikan oleh Scaffold (New, Show, Update, dan Delete). Bisa juga ditulis rails g scaffold user nama:string alamat:string. Tetapi secara default, RoR akan memberikan struktur data string.

rails g scaffold mobil user:belongs_to merek no_seri

Kode di atas akan menghasilkan model mobil dengan atribut merek dan no_seri dengan operasi langsung diberikan oleh scaffold. Migrasikan menjadi tabel:

rake db:migrate

Buka file \models\user.rb. Tambahkan:

has_many :mobils

Sedangkan pada file\models\mobil.rb, tambahkan:

belongs_to :user

Karena pada saat generate scaffold mobil kita sudah menambahkan user:belongs_to, maka tidak perlu menambah relasi di atas. Sekarang kita akan menghubungkan antara mobil dengan user, dimana pada tabel mobil memiliki foreign key user_id. User_id berada di tabel Users yang diberikan secara otomatis oleh RoR selain nama dan alamat.


Seperti biasa selalu migrasikan ke tabel dengan instruksi rake. Buka command prompt baru khusus untuk menjalankan server. Arahkan folder ke project.

rails server

Buka http://localhost:3000/users dan masukan satu data baru. Jalankan dan ketika menekan tombol show, kita akan menambahkan mobil milik user yang bersangkutan. Maka pada metode show, kita harus memanggil variabel mobil. Pada \controller\user_controller.rb tambahkan pada metode show (def show):

@mobil = Mobil.new(user_id: @user.id)

Artinya kita akan menambahkan mobil baru berdasarkan user_id dari pemilikinya yang saat ini sedang tampil. Jika tidak diisi, ketika akan menambahkan mobil pada users#show, akan muncul eror di form_for (cannot contain nil .. dst). Secara default, show pada daftar user tidak menyertakan data mobil, oleh karena itu sisipi kode pada \view\user\show.html.erb:

<% unless @user.mobils.empty? %>

<h3><%= pluralize(@user.mobils.size, Mobil) %></h3>

<% end %><div id=”mobils”>

<% unless @user.mobils.empty? %>

<%= render @user.mobils %>

<% end %>

</div>

 

<h3>Add a Car:</h3>

 

<%= render partial: ‘mobils/form’ %>

Letakkan kode di atas sebelum link_to. Di sini render partial: bemaksud menyisipi form menambahkan mobil baru pada form menampilkan (show) user.

Buat satu file baru di \views\mobils\ dengan nama _mobil.html.erb. Isi dengan kode berikut:

<div class=”mobil” data-time=”<%= mobil.created_at.to_i %>”>

<strong><%= mobil.merek %></strong>

<em>on <%= mobil.created_at.strftime(‘%b %d, %Y at %I:%M %p’) %></em>

<%= simple_format mobil.no_seri %>

</div>

File _mobil.html.erb merupakan file template untuk render @user.mobil. Jika tidak ada ini maka akan ada pesan “Missing Templat Users#show”. Jalankan Server, Anda harus menghasilkan aplikasi sederhana yang menambah user disertai dengan kendaraannya.

Coba masukan satu user dengan satu mobil. Pastikan berjalan dengan baik.

Setelah ditambahkan Mobil, ketika suatu user dilihat, akan tampak daftar mobil yang dimilikinya (has_many :mobils). Yang sedikit janggal adalah konsep jamak dan singuler pada RoR, yakni jamak mobil menjadi mobils.

Algoritma Genetik dengan Toolbox Matlab

Salah satu hal yang tersulit dari algoritma genetik adalah menentukan persamaan tujuan (objective function). Baik buruk model yang kita buat tergantung dari persamaan tujuan ini. Sebagai contoh ingin menentukan letak terjauh dari beberapa titik tetapi tetap berada di sepanjang jalan tertentu, misalnya untuk menentukan letak optimal SPBU. Setelah kita merancang Sistem Informasi Geografis (SIG) berikutnya kita menentukan layer-layernya, yaitu layer raster data (peta) layer persamaan jalan, layer lokasi-lokasi vital yang harus sejauh mungkin dari SPBU, dan terakhir letak optimal SPBU. Berikut ini contoh penerapannya.

Pada Matlab, untuk membuat model algoritma genetik sangat mudah karena sudah disiapkan toolbox yang dapat dibuka lewat start – toolboxes – dan seterusnya. Cari optimasi toolbox, dan Anda pilih GA toolbox. Ada sedikit pemanggilan fungsi, pertama pada jendela toolbox GA Anda memanggil fungsi tujuan, sementara pada fungsi tujuan, Anda memanggil fungsi jalan. Fungsi jalan adalah persamaan matematis yang mewakili garis jalan, persamaan ini sangat sulit saya kerjakan, tetapi dengan merubah menjadi orde -1, sedikit lebih mudah, walaupun hasilnya jalan menjadi segmen patah-patah.

Selain untuk mencari letak optimal SPBU, GIS yang terbentuk bisa digunakan untuk menentukan letak optimal lainnya yaitu persawahan, perumahan, perkebunan, perkantoran, hingga mendeteksi sebaran penyakit. Tentu saja sekali lagi, persamaan tujuan menjadi penentu baik buruk hasil optimasi.

Mengaktifkan Save Mode Windows 8

Kemarin karena menginstall plugin untuk mempercantik tampilan windows bernama valentin pack yang ternyata untuk windows 7, ketika login, laptop istri saya hang dengan tampilan layar hitam dan mouse yang memang berubah menjadi gambar love. Untuk memperbaikinya tentu saja meng-uninstall aplikasi tersebut, tapi bagaimana? Ketika start windows langsung mengakitfkan plugin tersebut.

Salah satu caranya adalah dengan masuk ke save mode, kemudian menguninstallnya. Oke, langsung saja, untuk masuk ke pilihan Save Mode, windows 8 mengharuskan kita menekan Shift + F8. Beberapa kali ketika saya pandu istri saya terlambat menekan dan masuk ke menu login windows lagi, oleh karena itu harus diulang dengan restart. Jika berhasil (biasanya ada pesan waiting ..), maka Anda akan masuk ke menu sebagai berikut:

Pilih saja See andvanced repair options. Pilih yang tengah, troubleshoot.

Berikutnya akan muncul tampilan menu di bawah ini:

Untuk lanjut ke Save Mode, dapat anda tekan Windows Startup. Untuk kasus istri saya, cara termudah adalah masuk ke System Restore dan memilikih set point waktu yang lampau. Jika dijalankan akan meng-uninstall beberapa program yang diinstall setelah waktu set point. Satu kali istri saya gagal (ada pesan bahwa system restore tidak berhasil). Itu mungkin karena waktu setpoint yang dipilih terlalu lama. Akhirnya setelah memilih set point pada waktu yang tidak jauh dari saat ini, berhasil dan plugin yang terinstall dan menyebabkan windows 8 error berhasil di-uninstall. Ok, jika akan masuk ke Save Mode, pilih saja Windows Startup Settings. Pada beberapa versi windows sedikit berbeda, ada yang langsung restart, ada pula yang diminta setelah restart menekan tombol F1 – F9. Pilihan untuk save mode adalah F4. Jadi ketika restart, Anda harus siap-siap menekan save mode.

Restart, dan Anda siap masuk save mode.

Problem Error Controller Create di Rails 4 (ActiveModel::ForbiddenAttributesError)

Lagi asyik mengikuti tutorial pembuatan simple application di rails, tiba-tiba saat dirunning, ada masalah. Sudah saya teliti, tidak ada sintax yang error, hampir saja saya putus asa dan meninggalkan kerjaan saya. Untungnya saya iseng searching di google, dan ternyata ada yang bernasib sama dengan saya. Ternyata masalah muncul perbedaan kompatibilitas antara rails yang lama dengan yang terbaru. Berikut problema yang terjadi ketika melakukan proses penambahan record dengan controller method create. Jika script ini dijalankan:

def create

    @movie = Movie.new(params[:movie]) dst

Muncul error yang menunjuk pada baris kode tersebut. Ternyata solusinya berdasarkan yang saya searching adalah untuk rails 4 tidak bisa dengan menggunakan params seperti itu. Ganti dengan seperti ini:

@movie = Movie.new(movie_params)

Tetapi harus didefinisikan di bawah end method dengan baris seperti ini (bullets tidak ikut diketik):

  • private
    • def movie_params
    • params.require(:movie).permit(:title, :year)
    • end

Ketika dijalankan langsung, OK.

Rails on Windows .. Layak kah?

Ingin sekali saya mengembangkan Ruby on Rails (RoR) setelah saya selesai kuliah di sini karena karakternya yang cocok dengan materi yang sering saya ajar yaitu “Pemrograman Berorientasi Obyek”. Biasanya saya menggunakan Java sebagai bahasa untuk prakteknya, tetapi saya memiliki kesulitan ketika membuat koneksi antara kelas dengan sistem basis data yang berkarakter non obyek.

Berbeda dengan PHP yang sangat kompatibel dengan windows walaupun lebih cocok dengan linux, RoR sangat disarankan menggunakan linux. Tetapi untuk meningkatkan jumlah penggemar jenis bahasa baru ini mau tidak mau harus menggandeng windows mengingat jumlah pengguna windows yang masih menggurita di Indonesia. Berikut ini pengalaman saya menggunakan RoR yang berbasis windows.

Pertama-tama kita harus berkomunikasi dengan situs resmi RoR untuk memperoleh informasi dan software open source-nya. Untuk yang berplatform Windows kita dapat mengunduh dari: http://railsinstaller.org/en. Klik pada link download untuk Windows:

Jika Anda masih pemula, jangan khawatir dengan link-link di bawahnya karena dengan mengunduh Windows Ruby 1.9 Anda berarti mengunduh semua perlengkapan di bawahnya tersebut. Setelah di download, Anda tinggal mengekstrak dan menginstall dengan single click ala Microsoft, di mana untuk instalasi tinggal mengklik langsung jadi. Beda jika Anda menginstall lewat ubuntu misalnya. Anda harus menginstall apache dulu, menginstall postgresql atau mysql dulu, tetapi dengan download untuk windows, Anda tinggal menjalankan saja.

Saya sudah mencobanya, sedikit ada masalah ketika melakukan proses routing. Routing adalah proses yang mengarahkan suatu page ke arah tertentu. Misalnya Anda membuka situs http://rahmadya.com, maka Anda akan diarahkan ke mana oleh route aplikasi tersebut. Ternyata routing tidak berjalan, setelah saya selidiki ternyata Anda harus mengupgrade ke Rails versi terakhir (ketika saya buat tulisan ini masih berversi 4.0.0). Untuk apgrade, hubungi situs resmi rails yang menyediakan GEM. Gem adalah fasilitas rails seperti library di Windows. Situsnya: http://rubygems.org/gems/rails. Search saja di kolom searching, isi dengan kata kunci “rails”, maka Anda akan menjumpai rails versi terakhir. Ikuti cara downloadnya.

Ternyata ada rails terbaru versi 4.0.1. Untuk mengecek versi rails Anda, masuk ke command promt (Start – run – cmd), ketik saja ‘rails –v‘.

Ternyata versi rails saya masih 4.0.0. Anda tidak diharuskan mengupgrade, tetapi ada baiknya diupgrade untuk memperoleh hasil yang maksimal dari RoR. Untuk menginstallnya ada dua pilihan:

  1. Pada command windows ketik: ‘gem install rails’
  2. Pada Gemfile yang terletak di <folder_project>, tambahkan: ‘gem “rails”, “~> 4.0.1”

Tampak proses upgrade dari rails 4.0.0 ke rails 4.0.1. Berikutnya kita tinggal membuat aplikasi dengan rails, sangat mudah dan tidak membutuhkan banyak waktu.

Screen Record Free dengan Microsoft Expression 4

Sehubungan dengan presentasi penelitian yang harus dilaksanakan, mau tidak mau harus merekam running programnya dengan bentuk video layaknya youtube. Namun saya tidak memiliki software untuk merekam, kalaupun ada itu bajakan. Namun untungnya windows menggratiskan salah satu software untuk merekam aktivitas kita di sistem operasinya yaitu Microsoft Expression 4. Untuk mendownloadnya dapat Anda buka situs resminya: http://www.microsoft.com/expression/eng/

Tentu saja ketika download, windows Anda sebaiknya bukan windows bajakan, karena sama saja dengan lapor diri. Jika sudah selesai mendownload, Anda tinggal mengklik ganda file sumber, tinggal ikuti perintahnya. Oiya, ketika ditanyakan serial number, lewati saja, karena tidak apa-apa tanpa mengisi kode sumber. Karena free kita hanya diperbolehkan merekam selama 10 menit, tetapi tidak apa-apa, karena 10 menit lumayan lama menurut saya.

Selain merekam gambar, dengan menekan icon mic, kita dapat merekam suara juga, tentu saja harus tersedia mic (biasanya tiap laptop ada). Ketika tombol merah (record) ditekan, Anda diminta membuat range yang akan direkam pada layar monitor Anda. Setelah itu dengan sekali tekan tombol record lagi Anda siap merekam apapun yang terjadi di layar. Berikut ini contoh hasil rekam saya yang saya upload di Youtub. http://www.youtube.com/watch?v=XFTOnXSR3eg

Membuat Diagram Alir

Terkadang kita memiliki masalah ketika akan membuat diagram kita tidak memiliki software seperti vision, rational rose, dan sejenisnya. Untungnya saat ini kita bisa memanfaatkan fasilitas dari web yang menyediakan sarana untuk menggambar diagram tersebut, salah satunya adalah www.draw.io. Silahkan mencoba, hasilnya lumayan bagus dan dapat dikonversi menjadi xml, jpg, gif, dan lain-lain. Berikut ini contoh hasilnya:

Berikutnya tinggal klik File – Eksport – pilih filenya, jika kita akan melanjutkan gambar di lain waktu, simpanlah dalam format XML. Jika akan menjadikan picture di word, pilih JPG, GIF, dan file gambar lainnya. Berikut ini hasil create menjadi GIF.

Aplikasi Firebug pada Mozilla

Bagi anda yang gemar mengutak-atik pemrograman berbasis web, alangkah baiknya Anda menginstall plugin firebug yang secara gratis dapat diunduh. Aplikasi ini membantu anda mencari letak kesalahan program yang telah Anda buat. Berikut ini contoh pencarian letak kesalahan aplikasi yang sedang saya test. Pemrogram yang saya buat menggunakan Ajax yang memasukan fungsi Autocompletion pada isian form. Ketika tombol search ditekan, tampak ada kesalahan pada salah satu koomponen ajax tersebut.

Tampak di bagian bawah browser muncul kolom yang menunjukkan letak kesalahannya. Searching saja di google jika Anda ingin memanfaatkan fasilitas gratis ini. Tersedia untuk beragam versi.

Membuat Database Objek dengan Scaffolding pada Ruby on Rails

Beberapa lama saya mencari cara untuk mengimplementasikan UML terutama masalah diagram kelas, dimana suatu kelas terdiri dari atribut, dan operation di dalamnya. Beberapa rekan mengatakan kelas dapat diwakili oleh tabel pada sistem database relasional. Tentu saja ini bertentangan dengan konsep UML yang berbasis objek. Tetapi dengan bahasa Ruby, hal ini dapat dibuat mudah, karena kita dapat membuat objek dengan mudah dan menghubungkannya dengan sistem database yang kita inginkan. Buka Ubuntu Anda, masuk ke Terminal (jika sulit mencarinya, ketik aja terminal di menu “search”):

Berikut ini akan kita ambil contoh membuat suatu objek daftar aktivitas (to do list) yang pernah dijadikan ujian Mid Term di kampus saya sekarang kuliah AIT Thailand. Baiklah, tidak perlu basa-basi kita buka saja Ruby on Rails (RoR). Pertama-tama kita buat terlebih dahulu suatu project, misalnya kita namakan todo, ketik pada console RoR:

$ rails new todo –d postgresql

Tampak RoR akan membuat (Create) file-file yang diperlukan dan diakhiri dengan Bundle Install. Setelah itu kita buat satu objek dengan nama task. Sebelumnya Anda harus terlebih dahulu masuk ke direktori project anda (dalam hal ini todo):

$ cd todo

Buka file Gemfile di /app dan hilangkan # pada therubyracer yang artinya, kita akan menggunakan fasilitas tersebut.

Lakukan bundle install

$ bundle install

Kita menggunakan sistem database postgresql, buka file /app/config/database.yml, edit super user yang akan mengakses (ada tiga editan). Jangan lupa menekan tombol save.

Jangan lupa siapkan databasenya dengan mengetik

$ rake db:create:all

Berikutnya adalah membuat objek task.

Di sini kita memanfaatkan fasilitas yang ada pada RoR yaitu Scaffold. Dimana instruksi ini akan membuat suatu objek dengan nama task dan atribut nama:string dan status boolean. Bagaimana dengan operation? Jangan khawatir, RoR akan membuatkan secara otomatis tujuh default operation yang dapat kita hapus beberapa dari operation itu jika kita tidak menginginkannya. Seperti biasa, lakukan migrasi, dimana objek yang dibuat dengan RoR dimigrasikan ke database dengan instruksi:

$ rake db:migrate

Sebelumnya buka file database.yml yang secara default akan dibuatkan user todo. Ganti dengan superuser yang pernah Anda buat. Dalam hal ini saya menggunakan user csim.

 

Sebenarnya masalah sudah selesai, tinggal melakukan sedikit seting pada route.rb yang terletak di folder /app/config. Tambahkan:

root to: “task#index”

Jangan lupa jalankan:

$ rake routes

Artinya saya akan mengarahkan server ke task#index tiap project todo dijalankan. Oleh karena itu rename folder index anda yang terletak di views dengan nama lain, karena tidak akan kita gunakan. Jalankan server:

$ rails s

Jangan khawatir, setelah server dihidupkan, tampak seperti Hang. Sebenarnya server sudah berfungsi dan sedang aktif. Buka browser, ketikan alamat server http://localhost:3000

Ternyata mudah. Tampak operation yang diberikan antara lain NewTask(), Show(), Edit(), Destroy(), dan lain-lain. Coba klik New Task, isi task baru. Maka akan muncul list task baru. Mudah bukan?

Membuat Aplikasi Authentikasi dengan Ruby and Rails – 1

Berikut ini sedikit tip n trik untuk membuat aplikasi Ruby and Rails (RoR) yang berjalan di platform Linux Ubuntu 13. Masuk ke Terminal:

rails new simple-auth -d postgresql

Maksudnya adalah membuat project baru RoR dengan nama simple-auth dan database postgresql. Jika selesai, nanti di folder /home akan muncul folder simple-auth. Masuk ke folder tersebut dengan mengetik:

cd simple-auth

Di sana anda akan menjumpai folder Gemfile yang harus sedikit diedit untuk mengaktifkan bahasa ruby. Cara mengaktifkannya adalah dengan menghapus symbol “#”.

SImpan dan jangan lupa setiap melakukan perubahan pada file Gem, kita harus melakukan bundle install. Masuk ke terminal, jalankan:

bundle install

Sekarang kita harus melakukan perubahan pada postgresql, yakni pada file database.yml yang terletak di folder Config pada folder aplikasi kita (Simple-Auth). Ganti seluruh user dengan nama superuser postgresql, misalnya csim. Setelah itu jangan lupa menekan tombol simpan ‘save’. (Note: ada tiga yang harus dirubah).

Jangan lupa setiap melakukan perubahan pada configurasi database.yml, lakukan rake:

rake db:create:all

rake db:migrate

Berikutnya kita akan membuat controller dengan nama ‘new’. Rails termasuk framework Model View Controller (MVC). Buat dengan cara mengetik:

rails g controller users new

Akan terbentuk controller dengan nama new. Begitu juga untuk model user, buat:

rails g model user email:string password_hash:string password_salt:string

Lakukan migrate database

rake db:migrate

Cari file UsersController di folder /app/controller. Ekstensinya adalah ‘.rb’. Isi program seperti contoh berikut ini:

Berikutnya masukan kode berikut untuk views pada new.html

  • <h1>Sign Up</h1>
  • <%= form_for @user do |f| %>
  • <% if @user.errors.any? %>
  • <div class=”error_messages”>
  • <h2>Form is invalid</h2>
  • <ul>
  • <% for message in @user.errors.full_messages %>
  • <li><%= message %></li>
  • <% end %>
  • </ul>
  • </div>
  • <% end %>
  • <p>
  • <%= f.label :email %><br />
  • <%= f.text_field :email %>
  • </p>
  • <p>
  • <%= f.label :password %><br />
  • <%= f.password_field :password %>
  • </p>
  • <p>
  • <%= f.label :password_confirmation %><br />
  • <%= f.password_field :password_confirmation %>
  • </p>
  • <p class=”button”><%= f.submit %></p>
  • <% end %>

Untuk masalah enkripsi, kita tinggal memakai bundel yang ada pada file Gem, buka kembali Gemfile, masukan gem “bcrypt-ruby”, :require => “bcrypt”

Jangan lupa, lakukan lagi bundle install setiap kali melakukan perubahan pada Gemfile.

bundle install

Buka file user.rb pada folder /app/models/ dan isikan kode berikut ini:

  • before_save :encrypt_password
  • def self.authenticate(email, password)
  • user = find_by_email(email)
  • if user && user.password_hash == BCrypt::Engine.hash_secret(password, user.password_salt)
  • user
  • else
  • nil
  • end
  • end
  • def encrypt_password
  • if password.present?
  • self.password_salt = BCrypt::Engine.generate_salt
  • self.password_hash = BCrypt::Engine.hash_secret(password, password_salt)
  • end
  • end

Tambahkan pula attribute berikut (dibawah before save):

  • attr_accessor :password
  • before_save :encrypt_password
  • validates_confirmation_of :password
  • validates_presence_of :password, :on => :create
  • validates_presence_of :email
  • validates_uniqueness_of :email

Hal yang berikut ini sangat penting, yaitu routing, di sini kita mengarahkan user ketika menekan tombol tertentu. Tambahkan code ini pada folder route.rb yang terletak di folder /app/models. Sisipkan di bawah get “users/new” tiga baris berikut ini:

Coba jalankan RoR dengan melakukan instruksi di bawah ini:

rails server

Biarkan console seolah-oleh hang, yang tandanya server sedang bekerja. Jika ingin mematikannya tinggal menekan Ctrl-C. Buka browser dan link pada http://localhost/3000

Coba klik Create user, lihat apa yang terjadi. Coba masuk ke database. Apakah sudah tersimpan? Misalnya saya masukan email: rahmadya@yahoo.com

Kuliah Web Application

Untuk jurusan Computer Science (Ilmu Komputer), tiap mahasiswa diwajibkan mengambil mata kuliah web application yang diasuh oleh Dr. Matthew M. Dailey. Doktor asal Amerika Serikat ini ahli di bidang pengembangan web.

Sempat ikut kuliah perdana, saya terpaksa harus kembali ke Indonesia karena tiap penerima beasiswa diwajibkan mengikuti serangkaian acara hingga penandatanganan kontrak dengan DIKTI. Dimulai dengan pengurusan Visa di kedutaan Thailand, dilanjutkan dengan Lokakarya pra keberangkatan yang dihadiri oleh hampir seratus orang. Setelah hampir 3 minggu menunggu SP Setneg, akhirnya dokumen selesai, ditandai dengan penandatangan kontrak di DIKTI, gedung D lt 4.

Setelah kembali ke AIT, saya dihadapkan dengan beberapa kesulitan akibat absen perkuliahan selama hampir sebulan. Beberapa dosen memberi keringanan, dari komposisi yang Mid : Final = 40 : 60 menjadi 20 : 80 hingga adanya kelas tambahan.

Berbekal tanya sana sini, akhirnya sedikit demi sedikit saya mampu mengikuti alur kuliah Web yang sangat ditakuti oleh sebagian besar mahasiswa CS di AIT. Terpaksa saya harus ikuti handout lab hingga yang saat ini dipelajari (Ajax). Cukup sulit, terutama karena laptop saya yang harus VMWare karena kapasitas C yang minim, sementara Laptop dari AIT belum tiba.

Diawali dengan install ubuntu 13, saya mulai mengeksplore bahasa yang baru saya kenal yaitu “Ruby on Rails (RoR)”. Bahasa ini lumayan ampuh dari security, terbukti telah digunakan di Yellow Page dan Twitter, dibanding PHP yang diterapkan di Facebook dan banyak di hack orang.

Masih ada waktu dua minggu untuk persiapan Mid Term. Semoga bisa mengikuti dan menjawab soal-soal yang diujikan, Amiiin.

Paten pada Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak (Software Engineering) merupakan bidang baru yang banyak diminati oleh anak-anak muda kita. Bahkan menjadi jurusan yang laris di tingkat Sekolah Menengah Kejuruan. Berbeda dengan perangkat keras yang jelas terlihat hasil jadinya, pada perangkat lunak, hasil kreasi kita tidak tampak secara langsung sehingga muncul pertanyaan bagaimana bentuk hak cipta-nya? Mengingat saat ini mudah sekali dibajak/digandakan.

Tuntutan Apple terhadap Samsung dan Google terhadap aplikasi yang dibuatnya membuat saya ingin mengetahui lebih jelas seluk beluk Paten, yang dijadikan dasar tuntutan. Paten sendiri dengan mudah dapat kita searching di Google. Sebagai contoh Paten terhadap bidang yang saya tekuni, yaitu Soft Computing. Gambar berikut salah satu contoh sketsa paten yang diajukan oleh Dingding Chen, Syed Hamid, Harry Smith tentang Jaringan Syaraf Tiruan dengan Neuron yang disusun berdasarkan Optimasi oleh Algoritma Genetik.

(Sumber: Paten US 20050246297 A1 http://patentimages.storage.googleapis.com/US20050246297A1/US20050246297A1-20051103-D00000.png )

Sementara itu, dijelaskan pula angka-angka tersebut, misalnya 18 yang berisi rangkaian Algoritma Genetika, sebagai berikut:

18. Apparatus for producing as outputs synthetic values of at least one geophysical parameter for a well in response to inputs of actual values of geophysical parameters measured in the well, comprising a neural network ensemble selected by:

training a set of individual neural networks to produce one or more synthetic output values of at least one geophysical parameter for a well in response to a plurality of inputs of actual values of geophysical parameters measured in the well, and

using a genetic algorithm having a multi-objective fitness function to select at least one ensemble, comprising a subset of the set of individual neural fnetworks, having a desirable fitness function value.

Terlihat sederhana tetapi di dalamnya terkandung riset yang telah dilakukan oleh peneliti bidang Rekayasa Perangkat Lunak. Yang terpenting adalah kita tidak boleh seenaknya mengaku penemu jika belum mematenkan apa yang telah kita temukan. Gambar di atas, sebaiknya tidak kita copas langsung tanpa referensi.

Menangkap Masukan dari Keyboard pada JAVA

Berhubung computer yang ada di lab Software Engineering kebanyakan terinstall Eclipse, maka untuk melakukan basic input output sementara menggunakan console lewat keyboard. Berikut ini cara penulisan listing di class main.

Ada tiga komponen yang harus kita import guna mendapatkan fasilitas input output dengan keyboard antara lain:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

Seperti biasa untuk membuat instan baru di main.java kita panggila kelas yang sebelumnya telah kita buat (persegiPanjang.java). Beri nama instan tersebut misalnya p. Untuk kelas persegiPanjang dapat dilihat pada tulisan saya terdahulu. Perhatikan listingnya sebagai berikut di IDE Eclipse (saya menggunakan versi Juno):


Sebenarnya kita bisa langsung mengetik BufferedReader tanpa perlu mengetik import di kepala program karena ketika selesai Eclipse akan memberikan peringatan kalau kita harus mengimport suatu komponen. Kita tinggal mengklik ganda pilihan yang ada dan instruksi import langsung berjalan.

Untuk menangkap data, berarti kita memanggil operation setPanjang dan setLebar dari kelas persegiPanjang, dalam hal ini direpresentasikan dengan objek “p”. Sedangkan untuk mengeluarkan hasil perhitungan luasnya dilakukan dengan memanggil operasion getLuas dari kelas persegiPanjang. Berikut hasilnya jika program di atas di running:


Perhatikan bagian bawah IDE Eclipse. Anda diminta memasukan panjang dan lebar yang kemudian disusul dengan hasil perhitungan Luasnya.

Compiling the m-file

Compiling the m-file means we convert the source code of matlab into executable file, so the other computer can run it although there is no matlab software being installed. Of course if the computer which run the application has matlab software we don’t need to compile it.

Because there are a lot of file which build matlab-based application, we must prepare them first. Application with Graphic User Application (GUI) need at least two files: the fig-file for interface and m-file for source code. If you use some toolbox on it, you must include that files to your deployment project. For example, if you create fuzzy-based application, you mast include the fis-file to your deployment project.

Let’s open your matlab software and I suggest you to change the current directory into the same directory as your programming file. Matlab provide project for compiling by clicking the file, new and deployment project in the menu bar. This figure shows you deployment project window.


Please try to compile your own matlab application. As an information, matlab use Matlab Compile to C (mcc) to convert code in matlab into c++ first before converting to exe.

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.