‘Password crypt authentication not supported’ Problem di ODBC postgreSQL

Berhubung aplikasi WebGIS menggunakan Ruby on Rail dengan database PostgreSQL mau tidak mau Matlab menggunakan dua metode koneksi ke database tersebut:

  1. Dengan JDBC
  2. Dengan ODBC

Berhubung error ketika menggunakan JDBC dimana ada pesan kesalahan pada driver, akhirnya saya memutuskan untuk menggunakan ODBC. Buka ODBC di Administrative Tools yang sesuai (32 bit atau 64 bit), dilanjutkan dengan membuat database-nya.

Ketika selesai dibuat, check apakah sudah terbaca di Matlab dengan instruksi di command window:

getdatasources

Jika datasource ODBC Anda berhasil dibuat, akan muncul namanya di antara tanda petik pada variabel ans. Jika tidak, maka Anda harus mengulangi langkah pembuatan ODBC tersebut. Lakukan pembuatan koneksi.

Perhatikan pesan kesalahan (Message) : Password crypt authentication not supported. Pesan ini terjadi karena Windows tidak menerapkan encrypt password. Hal ini terjadi karena ketika membuat ODBC saya memilih PostgreSQL saja (default). Harusnya saya memilih PostgreSQL dengan unicode:

Disable SSL Mode kemudian lakukan ‘Test‘ dengan menekan tombol Test dilanjutkan dengan ‘Save‘. Buat koneksi conn lagi ke PostgreSQL (lihat help untuk koneksi database dengan Matlab). Pastikan tidak ada pesan kesalahan, serta jika Anda ketik isconnection(conn) di command window jawabannya satu bukan nol.

Cek dengan mengambil data:

Tampak isi tabel Projects saya di Ruby on Rail.

Koneksi Matlab dengan Sistem Basis Data

Lama tidak ngeblog tidak enak juga. Banyak hal-hal yang bisa saya sharing ke orang lain yang siapa tahu membutuhkan informasi tertentu yang saya miliki. Terkadang sedih juga membaca komentar-komentar di tulisan saya yang mengatakan “sotoy”, jangan asal tulis, dan lain-lain, bahkan ada yang mengatakan saya asal “copas”. Tapi sesuai dengan prinsip situs saya “just a Little Kindness”, saya coba untuk memberi kebaikan walau hanya sedikit.

Saya dulu pernah membuat tulisan mengenai akses database dengan Visual Query Builder, dan banyak yang tidak puas dengan koneksi seperti itu. Lama saya tidak mencoba “ngoprek” hal itu karena belum merasa perlu karena akses dapat dilakukan dengan menggunakan excel atau notepad. Untuk data kecil sebenarnya tidak ada masalah, tetapi jika data yang berukuran besar, Excel tentu saja tidak sanggup menanganinya. Saya pernah mencoba mengkonversi file CSV ke dalam Access kemudian saya kembalikan lagi menjadi TXT untuk diolah Matlab dalam rangka Data Mining (waktu itu tugas Text Mining dari dosen saya). Tetapi tentu saja tidak efektif. Perlu dilakukan koneksi data langsung dari DBMS ke Matlab.

Berawal dari Hibah Penelitian dari Dikti (Hibah Bersaing) dimana tahun ketiga saya harus mengkoneksikan GIS desktop dengan Web GIS, mau tidak mau saya membutuhkan sistem basis data. Terpaksa saya harus mengkoneksikannya langsung. Cari paling mudah adalah lewat mekanisme Open Data Base Connectivity (ODBC) yang tersedia di Windows. ODBC ini memiliki keunggulan dalam hal fleksibilitas, dimana jika kita sudah merakit ODBC maka program yang telah dibuat dengan Matlab tidak tergantung dengan software DBMS yang telah ada karena koneksi antara program dengan database lewat ODBC, beda jika kita mengkoneksikan Matlab dengan Software DBMS langsung (Access, MysQL, Oracle, PostgreSQL, dll). Jika kita mengganti software DBMS, kita harus mengeset lagi program yang telah kita buat. Dengan DBMS, jika kita akan mengganti Software DBMS, tinggal menghubungkan Software DBMS dengan ODBC lagi, termasuk user dan password jika diperlukan.

Untuk membuat ODBC Anda dapat membaca literatur yang membahas tata caranya. Yang penting Anda ketahui adalah Windows yang Anda miliki, 64 Bit atau 32 Bit. Jika 32 bit sepertinya tidak ada masalah. Nah, masalah muncul jika windows yang digunakan versi 64 bit, karena ODBC yang digunakan harus mundur yang 32 bit karena software DBMS kebanyakan masih berversi 32 bit. Untuk windows 8 dengan searching di control panel, akan ditemukan dua pilihan, ODBC 32 bit atau ODBC 64 bit. Sedangkan jika Windows 7 64 bit, maka Anda harus masuk ke folder SysWOT di C: dan menjalankan file odbcad32.exe. Jika Anda memaksa menggunakan ODBC 64 bit padahal program yang Anda gunakan versi 32 bit, akan memunculkan pesan kesalahan saat melakukan koneksi Matlab dengan ODBC (mismatch .. bla bla).

Untuk menghubungkan Matlab dengan ODBC dapat Anda lakukan dengan langkah sebagai berikut. Misalkan Anda telah memiliki ODBC dari database Anda, misalnya bernama “lokasi” dengan user ID “user” dan password “123”, lakukan koneksi dengan instruksi:

Conn=database(‘lokasi’,’user’,’123)

Cukup sederhana. Cek koneksi dengan instruksi isconnection(Conn). Jika jawabannya 1 maka koneksi berjalan dengan baik, sebaliknya jika jawabannya nol, maka Anda harus mengecek error-nya. Ketik saja Conn.Message untuk melihat instruksi kesalahannya. Jika Database telah terisi, Anda dapat mengecek dengan instruksi sql “select”.

Results=fetch(conn,’select * from lokasi’)

Misalnya tabel yang ada di database kita lokasi. Anda akan menerima data dari database dengan nama Results yang siap Anda olah dengan Matlab. Bagaimana dengan input data ke database? Mudah saja, gunakan instruksi insert. Hanya saja sedikit rumit karena ada tata cara penulisan nama field yang ada di tabel. Misal ada dua field yaitu x dan y. Kemudian akan saya isi data dengan x=1 dan y=2, maka gunakan instruksi sebagai berikut:

Insert(Conn,’lokasi’,[{‘x’} {‘y’}],[1 2])

Jika tidak ada pesan kesalahan sintax di Matlab, cek apakah data sudah masuk di database Anda. Selamat mencoba.

RDBMS dan MySQL

Oleh: Rahmadya Trias H., ST, MKom & Herlawati, S.Si, MM.

Selama bertahun-tahun, dikenal MySQL server sebagai sistem basis data dengan Connecter /J JDBC Driver-nya yang bersifat open source bersama dengan software database lainnya seperti mSQL dan PostgreSQL. Sedangkan perusahaan besar yang memiliki dana yang cukup untuk membeli lisensi menggunakan Microsoft SQL Server atau ORACLE, dan Microsoft Access atau database Foxpro untuk kelas menengah.

Sekarang, dengan meningkatnya penggunaan internet, aplikasi berbasis open source makin diminati. Kemampuannya pun cukup memadai dalam menangani pengelolaan database dengan fungsi-fungsi yang lumayan lengkap. Dan yang terpenting adalah database open source cenderung mudah dirawat karena sistemnya yang transparan.

RDBMS

Diantara ODBMS (Object Database Management Systems), ORDBMS (Object Relational Database Management Systems) dan RDBMS (Relational Database Management Systems), RDBMS paling banyak digunakan karena alur logikanya yang sederhana dan cocok untuk sistem yang membutuhkan integrasi, multi user dan konsisten. Berikut ini adalah beberapa keuntungan yang diperoleh jika menggunakan RDBMS sebagai sistem basis data.

1. Multi User Access

Multi User berarti mengijinkan lebih dari satu user mengakses tabel yang sama. Untuk menghindari kesalahan akibat ketidakkonsistenan dibutuhkan strategi penguncian saat seorang user merubah database. Dengan RDBMS strategi penguncian sangat lengkap dibandingkan sistem flat file (comma atau tab-separated) yang hanya menggunakan single lock. Single lock mengakibatkan antrian yang lama saat seorang user akan merubah (insert/edit) data.

2. Storage Transparancy

Transparansi storage sangat menguntungkan karena software aplikasi tidak perlu tahu bagaimana sistem basis data menyimpan data secara fisik. Sehingga jika lokasi tempat penyimpanan data barubah tidak perlu merubah software aplikasinya. Transparansi storage sangat dibutuhkan untuk sistem yang membutuhkan protokol jaringan dalam bekerjanya.

3. Transaction

Ketika lebih dari satu user yang akan mengakses database kita, maka dikatakan seorang user untuk melakukan transaksi. Untuk menjelaskan contoh transaksi, ada baiknya mengambil sampel sistem perbankan. Misalnya dua orang yang melakukan join account dan tiap orang bisa melakukan transaksi, katakanlah penarikan tunai Rp. 20 juta. Diperlukan testing yang dinamakan ACID test, singkatan dari Atomicity, Concistency, Isolation and Durability. MySQL belum memenuhi syarat test ACID, akan tetapi setelah dimunculkannya fungsi new BDB dan InnoDB tables type, MySQL memenuhi syarat test ACID.

4. Sortir, Modifikasi dan Analisa Data

Tanpa ada fungsi tambahan, misalnya dalam flat file, diperlukan waktu yang lama untuk mensortir, misal dengan algoritma B-trees, hashes dan sebagainya. Sedangkan dengan RDBMS kita dengan mudah memanfaatkan fungsi indexing (sebagai informasi, Windows 7 saat ini telah menggunakan fungsi idexing dalam mencari suatu file). Intinya, dengan RDBMS kita telah diberikan fasilitas untuk menangan seluruh fungsi sortir, modifikasi dan analisa data.

5. Ad Hoc Queries

Ad Hoc Queries dibutuhkan saat kita akan menerima data dengan parameter tertentu. Flat file tida bisa digunakan karena tiap data memiliki karakteristik yang berbeda. Kebanyak RDBMS menggunakan standar Structure Query Language (SQL) dalam mengakses databasenya. SQL mengintruksikan “apa” data yang akan diolah bukan “bagaimana” mengolah datanya.