Akses API dari Google Sheet lewat HTML

Lanjutan dari post yang lalu [link], kita akan mencoba memanfaatkan Google Sheet untuk data yang akan dikelola lewat aplikasi web. Biasanya yang sering kita lihat adalah aplikasi PHP-Mysql dengan koneksinya. Biasanya dibutuhkan sebuah server khusus, misalnya Apache untuk PHP. Masalahnya adalah server tersebut perlu dihosting serius, apalagi kalau aplikasinya besar (enterprise application). Nah, untuk data yang sederhana, dan bisa digunakan oleh pengguna internal, kita bisa menggunakan server dari Google Sheet.

Google sheet merupakan aplikasi terkenal Google, sering disebut Excel Online. Formatnya sangat mudah karena sebagian besar manusia di bumi pernah menggunakan Microsoft Excel atau spreedsheet merek lain, open office, dan lain-lain. Google Sheet menyediakan aplikasi Google Script (GS) untuk mengelolanya seperti pada postingan sebelumnya [link], namun untuk digunakan dalam script html perlu perlakuan khusus. Nah, di sini kita butuh bantuan sheet.best [link] untuk mengkonversi Google Sheet menjadi Application Programming Interface (API) yang dapat digunakan langsung via kode html (tentu saja ada javascript di dalamnya).

Jadi hanya dengan menempatkan file HTML di server web statis seperti spaces.w3spaces.com atau github page, dan sebuah file Google Sheet, aplikasi database sederhana dapat berjalan. Tentu saja untuk database kompleks harus memanfaatkan server database, seperti MySQL, postGres, dan lain-lain walaupun saat ini jenis database no-sql kian diminati.

Ikuti saja langkah-langkah pada video ini dan saat ini ChatGPT [link] merupakan sarana belajar sekaligus menghasilkan kode. Untuk belajar karena kita bisa bertanya penjelasan line-code di tiap-tiap baris kode sehingga bisa menjalankan kode sendiri nantinya. Sekian, semoga bermanfaat.

Relasi Antar Tabel dengan Fasilitas Designer Pada Phpmyadmin

Biasanya kita membuat tabel di MySql dengan kode SQL lewat fungsi CREATE TABLE dan seterusnya. Sementara untuk relasi antar tabel menggunakan fungsi ALTER TABLE dilanjutkan dengan FOREIGN KEY dan REFERENCES. Nah untuk versi-versi terbaru Phpmyadmin menyediakan fasilitas designer jika ingin melihat diagram tabel-tabel dalam satu basis data. Postingan ini mungkin bermanfaat bagi kita yang malas mengetik kode sql seperti saya.

Pertama-tama klik basis data yang ingin dibuat relasi antar tabelnya. Perhatikan di bagian paling kanan ada tombol “designer” yang disediakan oleh Phpmyadmin untuk mengelola tabel-tabel yang terlibat. Tekan tombol tersebut untuk membuat relasi antar tabelnya.

Misalnya tabel pinjam memiliki field NPM yang merupakan foreign key dari tabel siswa. Oleh karena itu perlu membuat relasi antara tabel pinjam dengan tabel siswa. Tekan simbol relasi pada icon di jendela designer.

Pilih NPM pada tabel siswa sebagai referenced key. Field ini merupakan primary key tabel siswa.

Berikutnya pilih foreign key pada tabel pinjam.

Pilih “on update” pilih “Cascade” agar ketika NPM berubah di tabel siswa, di tabel pinjam ikut berubah juga.

Jika sudah, tekan OK. Maka selesai sudah pembuatan relasi. Untuk melihat kode SQL lengkapnya bisa dengan mengekspor database tersebut. Caranya dengan menakan tombol “eksport”.

Setelah itu kita diminta menentukan lokasi penyimpanan. Jika dibuka kode SQL tampak ada kode untuk menambah relasi, lengkap dengan “on update cascade”. Selamat mencoba.

 

 

Menggunakan RDBMS untuk Pemrograman Berbasis Obyek

Di ruangan tampak buku-buku analisa disain yang lumayan tebal. Kebanyakan tentang analisa dan disain sistem berorientasi obyek. Buku yang ternyata milik rekan yang digunakan ketika ambil S2 belasan tahun yang lalu itu cukup menarik dan “wajib” dibaca oleh pemerhati mata kuliah analisa dan disain sistem informasi, khususnya yang tertarik dengan pemrograman berbasis obyek.

 

Ada satu bab yang menarik yaitu pembahasan mengenai penggunaan RDBMS ketika mengimplementasikan pemrograman berbasis obyek. Ivar Jacobson, pengarang buku berjudul “Object Oriented Software Engineering” sekaligus salah satu pencetus UML menyarankan beberapa teknik berikut ini.

  • Problem utama ketika menerapkan konsep obyek ke sistem basis data relasional adalah masalah impedansi. Di sini aplikasi berbasis obyek harus melekat dengan basis data. Padahal konsep RDBMS bebas platform aplikasi. Untuk itu perlu mengurangi kelekatannya dengan sedikit mengatur pentabelannya.
  • Konversikan atribut menjadi field atau kolom dalam tabel. Jika tidak cukup, buat satu tabel baru yang mengakomodasi atribut yang kompleks yang dimiliki oleh aplikasi berbasis obyek.
  • Instansiasi pada aplikasi berbasis obyek dikonversikan menjadi record atau baris pada tabel RDBMS.
  • Ketika dijumpai satu relasi [0..N], buat satu tabel baru dengan kunci diambil dari bagian yang bukan “many”. Kasus ini sering dijumpai ketika membuat tabel “detil pemesanan” ketika dijumpai jumlah pesanan yang lebih dari satu untuk satu orang pelanggan.
  • Kasus yang terberat adalah masalah inheritance dimana ada sedikit sudut pandang dalam mengkonversikan menjadi RDBMS. Dua pilihan yang mungkin diambil antara lain: 1) membuat kelas abstrak dalam satu tabel, dan 2) tidak membuat kelas abstrak. Masing-masing punya kelemahan dan kelebihan. Untuk kecepatan akses, pembuatan kelas abstrak menjadi tabel tersendiri (pilihan 1), mengakibatkan lambatnya proses ketika melakukan proses “join” pada instruksi SQL.

Memang dari sudut pandang pemrograman berbasis obyek, RDBMS terlihat sangat primitif karena membatasi kelas dalam tipe data tertentu, ditambah lagi tidak bisa menyimpan method/operasi dalam suatu tabel, dan mengandalkan aplikasi. Demikian, resensi singkat, semoga bermanfaat.

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.

Basis Data di Matlab

Tahun 2000 merupakan tahun perkenalan saya dengan Matlab. Dosen pengajar pengenalan pengaturan (dulu namanya mekanisme servo dan kontrol) rencananya akan memberikan seminar khusus di kampus. Sayangnya ternyata acara itu karena satu lain hal di-cancel. Rencananya saya akan menggunakan software itu untuk tugas akhir saya dalam mensimulasikan sistem suspensi. Apa boleh buat, terpaksa belajar sendiri.

Setelah membuka-buka Matlab ternyata banyak fasilitas-fasilitas menarik yang bisa diexplore, apalagi waktu itu Matlab 6 sudah muncul. Versi ini jauh lebih menarik dibanding Matlab 5, versi sebelumnya. Dari kedokteran, sains, bahkan ekonomi pun bisa memanfaatkan Matlab, walaupun orang informatika waktu itu kurang menyukai karena “terlalu mudah” atau “hanya mengandalkan toolbox” dibanding dengan bahasa c++, visual basic, pascal (sekarang Delphi) yang lebih laris dipasaran dan banyak dipakai pengembang. Efeknya, buku-buku terbitan Matlab waktu itu masih amat langka, ditambah lagi waktu itu internet masih barang mahal dibanding sekarang. Tapi bagi pengembang metode (bukan terapan) Matlab sangat menarik karena dengan cepat bisa mengeksekusi metode-metode rumit buatannya, karena kelamaan jika terlalu berfokus ke coding. Salah satu kelemahan Matlab sehingga dijauhi pengembang waktu itu adalah sulit diterapkan ke sistem basis data (DBMS). Sempat membuka sampel penggunaan basis data ternyata basis data yang digunakan tersimpan dalam format “mat” khusus Matlab, tidak dengan Access, MySql, dan sejenisnya. Untuk menghubungkannya harus mengkonversi dari DBMS tersebut ke Excel atau “dat” file agar bisa dimanipulasi Matlab.

Dengan Matlab saya banyak menerima dana hibah penelitian dari DIKTI untuk mengutak-atik Soft Computing dengan metode-metode terbarunya baik penerapan atau memodifikasi metode tersebut. Dari Jaringan Syaraf Tiruan hingga Algoritma genetika sudah saya gunakan, hingga akhirnya saya dipaksa melibatkan DBMS karena data yang besar (big data) dengan ukuran dua giga byte ke atas. Apalagi jika data yang akan dimanipulasi real time yang harus berubah-ubah terus. Untungnya Matlab 7 sudah memberikan fasilitas menghubungkan Matlab dengan basis data, waktu itu saya menggunakan ruby on rail sebagai interface yang menampilkan hasil manipulasi genetic algorithms ke web lewat PostgreSQL

Karena banyak yang menanyakan cara menghubungkan Matlab dengan DBMS, plus pemrograman visualnya (GUI) akhirnya saya tulis ke dalam buku yang baru terbit Februari 2016 kemarin.

Entah sudah tersedia di toko-toko buku terdekat atau belum saat ini. Kebanyakan pembeli menggunakan situs online dari penerbit informatika, link-nya berikut ini. Ada beberapa contoh kasus seperti enkripsi sederhana terhadap database, pengolahan citra digital (digital image processing) dan clustering dengan Fuzzy C-Mean. Kali ini saya menambahkan dengan CD. DBMS yang saya gunakan adalah Microsoft Access sebagai perwakilan aplikasi desktop dan MySQL sebagai perwakilan aplikasi berbasis Web dengan ODBC sebagai jembatan penghubung dari Matlab ke DBMS lewat windows.

Untuk membuat buku yang sempurna mungkin membutuhkan waktu yang cukup panjang, sementara para mahasiswa yang sedang menyelesaikan tugas akhir/skripsi/tesis dikejar waktu, ada baiknya buku yang ringkas dan sesuai kebutuhan tersedia di pasaran. Semoga bermanfaat, Amiin.

Bikin Buku Lagi .. “Pemrograman Database dengan Matlab”

Menganggur saat bulan puasa ternyata enak juga buat menulis. Saat berada di “dunia” sendiri tiba-tiba adzan maghrib pertanda waktu berbuka puasa. Setelah berbuka, refresh lagi, dan siap meracik tulisan lagi. Setelah lebaran, jadilah satu buku “Pemrograman Basis Data dengan Matlab”. Belum tentu itu judulnya karena terkadang penerbit menyarankan untuk mengganti judul dengan judul yang menarik dari sisi pemasaran. Begitulah, harus terjadi kerjasama yang baik antara penulis dengan pemasaran, jika tidak, sudah dapat dipastikan buku tersebut tidak laku.

Sebenarnya buku yang sedang direview oleh penerbit (semoga lolos) tersebut berawal dari pertanyaan-pertanyaan di blog ini. Lalu muncul ide bagaimana jika dibuat dalam satu paket buku beserta contoh-contoh aplikasinya. Apalagi banyak yang masih sangsi bahwa Matlab bisa menghasilkan aplikasi yang terhubung dengan basis data seperti bahasa-bahasa yang lain seperti visual basic, java, dan bahasa pemrograman visual lainnya. Matlab selama ini dipuji karena tangguh di sisi komputasi. Bukan tangguh sih sebenarnya, tetapi mudah dan user friendly. Jadi jika bisa mengelola database, maka perancang bisa dengan baik menghubungkan komputasi teknis, soft computing, data mining, dengan basis data yang dimiliki. Database Management System (DBMS) yang dipilih adalah Microsoft Access sebagai perwakilan DBMS desktop dan MySQL untuk DBMS berbasis web. Sepertinya cukup karena keduanya merupakan DBMS yang paling banyak digunakan saat ini, terutama mahasiswa.

Untuk contoh aplikasi, dipilih kasus-kasus yang sering dijadikan tugas akhir (skripsi atau thessis) para mahasiswa yaitu data mining dengan clustering, enkripsi database, pengolahan citra, yang dirakit tentu saja dengan GUI. Tulisan diakhiri dengan lampiran-lampiran yaitu pembuatan executable program dan teori dasar struktur data di Matlab yang sangat penting karena proses perpindahan dari DBMS ke Matlab untuk diproses dan sebaliknya.

Seperti biasa, operasi dasar pada pemrograman basis data dipelajari yang dikenal dengan istilah CRUID (create, read, update, insert, dan delete). Pembuatan grafik setelah proses clustering dan pengolahan citra digital yang kemudian disimpan ke database dibahas dengan sederhana. Jika tombol “clustering” ditekan maka tiap record di database data langsung terupdate masuk kluster yang mana (kluster 0 atau 1). Tentu saja Anda bisa mengembangkan menjadi lebih dari dua kluster. Tanda tangan yang tadinya image kini dirubah menjadi biner (0 dan 1) yang bermanfaat untuk mengurangi kapasitas penyimpanan (dibandingkan penyimpanan dalam bentuk image utuh) yang biasanya diterapkan di perbankan.

Sepertinya pengolahan data dengan notepad atau excel yang bersifat offline dari database sudah mulai diganti dengan sistem yang online karena perubahan data terjadi secara cepat dengan jumlah yang besar (big data). Semoga buku seharga beberapa bungkus rokok tersebut segera terbit (whee lah …). Amiin.

How to Draw a Diagram using Draw IO?

Draw IO is a free web-based tool for drawing a model such as Entity Relation Diagram (E-R Diagram), Flow chart, Data Flow Diagram (DVD), Unified Modeling Language (UML), etc. You can access it at www.draw.io in start using it without installation. Immediately you will be asked the location for saving the xml file, for example you use your harddrive, so yo have to choose Device.

And please click the “create a new diagram” or “open existing diagram” if you want to open a xml file of your diagram that have drawn before. Before drawing, this application will ask you to create the name of your diagram.

And let your creativity flows, and for exercise, try to draw E-R diagram like this.

Save your figure by clicking the menu save and if you want to capture for your document (word, power point, etc) you have to download it into image, xml, and other file support. So far, I like to download as GIF than JPEG or others. Because it give a good resolution that you can see below. Ok .. good luck.

Georeferencing dengan Matlab – bagian 2

Untuk memastikan bahwa hasil Georeferencing kita sesuai dengan koordinat latitude dan longitude, kita bandingkan hasil optimasi dengan google map. Pertama-tama buat koneksi dengan database WebGIS, misalnya dengan nama ODBC ‘aphb’. Lihat cara-cara buat ODBC di postingan yang lalu.

Di baris 131 dan 132 diperoleh titik optimum yang berhasil dihitung dengan algoritma genetik. Selanjutnya di baris 133 dikonversi menjadi koordinat global latitude dan longitude yang akan dikirim ke database postgreSQL. Baris 135 membuat koneksi yang dilanjutkan dengan mempersiapkan lokasi field yang akan di-insert. Terakhir di baris 140 dilakukan proses inserting ke database.

Perhatikan hasil running optimasi di DesktopGIS dengan Algoritma Genetik, diperoleh beberapa titik optimum. Di sini kita baru mengkonversi satu titik optimum karena belum diketahui akurasinya. Jika sudah akurat, baru diterapkan di seluruh titik optimum.

Di sini diperlukan kejelian mata untuk mengarahkan lokasi google map dengan lokasi di DesktopGIS. Setelah itu diketahui akurasinya. Perhatikan gambar di bawah, tampak titik di google map sedikit meleset dari lokasi optimum hasil hitungan di desktopGIS dan ini harus diperbaiki dengan mengeset kembali fungsi konversi.

Jika diperhatikan, sepertinya base latitude dan longitude terlalu jauh sehingga harus digeser kekiri dan ke bawah agar tepat di lokasi yang ditunjukkan oleh panah merah di atas. Lihat video di bawah ini untuk lebih jelasnya:

Ok .. done.

Instruksi SELECT pada SQL – Bagian 2

WHERE Clause

Seperti pada tulisan sebelumnya (bagian 1), jika kita akan melakukan query terhadap nama belakang dimana huruf keduanya ‘a’ maka dapat kita lakukan dengan bantuan garis bawah ‘_’. Gunakan WHERE dengan kata LIKE untuk lebih spesifik lagi.

Kita juga bisa menambahkan logika boolean seperti AND atau OR untuk dua kondisi LIKE seperti misalnya nama belakang di huruf kedua ‘a’ dan nama depan diawali ‘r’.

query_where

CONCATENATION

Syntax ini berfungsi untuk menggabungkan beberapa kolom menjadi satu kolom. Simbol yang digunakan adalah ||. Misalnya kita akan menggabungkan nama pertama dengan nama belakang dari tabel student.

GROUP BY dan COUNT()

Syntax ini untuk melakukan proses agregasi dari aksi filter sebelumnya. Misalnya kita ingin mengetahui berapa banyak Course yang diambil oleh seorang siswa, misalnya siswa dengan ID ‘st115996’.

HAVING Clause

Jika hasil proses GROUP BY ingin difilter lagi dapat kita gunakan klausa HAVING. Misalnya kita diminta menarik data jumlah Course yang memiliki jumlah kredit = 3. Jadi setelah yang punya kredit = 3 diperoleh dilakukan proses ‘count’ berapa jumlah course-course tersebut.

SUB-QUERY

Sub query adalah query di dalam query, biasanya dalam klause:

  1. WHERE
  2. FROM
  3. SELECT

Kata kunci yang digunakan adalah IN. Misal kita ingin mengetahui student_ID yang mengambil course. Dengan kata lain yang tidak mengambil course tidak kita ambil.

Ada satu soal latihan nih,

EXERCISE

  • A student is required to take 2 courses (4 credits) in the field of Technology
  • Management and should be offered by SET or SOM only.
  • Typically the courses for Technology Management have the word Management or
  • Technology or Technologies mentioned in the course name.
  • What choices does the student have? List Department, CourseName, Credits.
  • Use group by and having clause

Selamat Mencoba !

Delete SQL dengan Matlab

Mudah-mudahan mas yang menanyakan masalah DELETE data dengan Matlab sudah menemukan jawaban. Kalau belum, semoga postingan ini bermanfaat.

Berbeda dengan instruksi INSERT dan SELECT yang memasukkan data dan menampilkannya, instruksi DELETE harus didefinisikan dengan jelas record yang akan didelete. Untuk instruksi INSERT dan SELECT telah diuraikan pada postingan saya yang lalu ‘Koneksi Matlab dengan Sistem Basis Data‘. Berikutnya kita coba dengan instruksi DELETE.

Pastikan Anda sudah mengkoneksikan ODBC dengan tabel yang berisi X, dan Y yang berisi bilangan numerik.

Jika masih kosong, tambahkan tabel tersebut dengan instruksi ini:

>> insert(Conn,’lokasi’,data,[1,3])

>> insert(Conn,’lokasi’,data,[1,4])

>> insert(Conn,’lokasi’,data,[2,4])

>> insert(Conn,’lokasi’,data,[3,4])

>> Results=fetch(Conn,’select * from lokasi’)

Results =

[1] [3]

[1] [4]

[2] [4]

[3] [4]

Saya menggunakan tabel ini untuk menyimpan koordinat longitude dan latitude suatu lokasi. Dengan instruksi SELECT diketahui data sebagai berikut:

Database membutuhkan lokasi mana yang ingin dihapus. Misal kita ingin menghapus data pada tabel lokasi yang memiliki field x = 1, maka kita membutuhkan instruksi SQL Query ini:

>> deleteQuery = [‘delete from ‘,Conn.Instance,’ where’,’ x’,’ =’,’1′,’;’];

Dilanjutkan dengan mengeksekusinya:

>> hapus=exec(Conn,deleteQuery);

Jika Anda melihat isi dari lokasi diperoleh data bahwa seluruh record dengan field x =1 hilang.

>> Results=fetch(Conn,’select * from lokasi’)

Results =

[2] [4]

[3] [4]

Bagaimana jika field y yang dihapus? Mudah saja ganti saja ‘x’ dengan ‘y’, misal y=4 akan dihapus.

>> deleteQuery = [‘delete from ‘,Conn.Instance,’ where’,’ y’,’ =’,’4′,’;’];

Dilanjutkan dengan mengeksekusinya:

>> hapus=exec(Conn,deleteQuery);

>> Results=fetch(Conn,’select * from lokasi’)

Results =

[]

Tampak data dengan y=4 terhapus. Bagaimana jika ingin mengosongkan seluruh isi tabel? Gunakan Query: DELETE FROM <nama_tabel>;

 

 

Instruksi SELECT pada SQL – Bagian 1

Hari kedua tutorial Oracle membahas tentang instruksi SELECT untuk mengambil data dari database yang telah dibuat lewat mekanisme Data Definition Language (DDL). Instruksi SELECT sendiri masuk dalam kategori Data Manipulation Language (DML). Untuk yang belum meninstal SQL dapat dilihat pada tulisan sebelumnya untuk instalasi dan juga cara mengoperasikan DDL.

Perlu diketahui Oracle Database versi Express hanya memiliki satu database saja, oleh karena itu kita bersihkan terlebih dahulu tabel-tabel yang telah dibuat pada praktek sebelumnya. Gunakan erase_table untuk membersihkannya. Jangan jalankan semua, melainkan perblock dengan cara setelah copy-paste, sorot/blok instruksi yang baru saja dipindahkan, klik tombol atau dengan menekan F5.

Instruksi SELECT *

Jika sudah lanjutkan dengan membuat tiga tabel yaitu Student, Course, dan Student_Course add_tables_and_records Perhatikan setiap menjalankan instruksi SQL pastikan berjalan dan tanpa pesan kesalahan. Jika sudah maka Anda telah berhasil membuat tiga tabel yang akan kita utak-atik dengan instruksi terkenal SQL SELECT. Untuk melihat isi seluruh tabel, gunakan instruksi SELECT *;

  • SELECT * from Student;
  • SELECT * from Course;
  • SELECT * from Student_Course;

Jika tidak ingin seluruh Field ditampilkan, pada instruksi SELECT, ganti * dengan field-field yang Anda inginkan dengan disekat koma.

SELECT Student_ID, Last_name FROM Student;

CONDITIONAL CLAUSE

Terkadang kita ingin menampilkan yang lebih spesifik lagi, tidak hanya sekedar field-fieldnya. Oleh karena itu kita memerlukan Conditional Clause yang tersedia di SQL yakni:

  • WHERE
  • GROUP BY
  • HAVING
  • ORDER BY

Berikut ini kita akan mengambil data dari tabel Student yang memiliki nama belakang diawali ‘W’ dan memiliki nama tengah (Middle Initial).

SELECT * FROM Student WHERE (Last_Name LIKE ‘W%’) AND (MI IS NOT NULL);

Cek apakah ada error, oiya, jangan lupa gunakan tanda petik satu (‘) dari keyboard Anda, entah mengapa jika copas dari blog dianggap bukan tanda petik satu oleh SQL. Gunakan teknik garis bawah untuk menentukan letak huruf ke berapa dari field yang kita inginkan.

(Bersambung).

Many to Many Relationship Example

After installing oracle database and oracle sql developer (https://rahmadya.com/2014/09/05/instal-oracle11g/), now we try to use it. Many to many relationship sometimes said M:N is happened if every member of an entity has many members related to other entity. For example we have relation Student and Course. We have relationship Student with Course that every student could take more than one courses and every course has a lot of student who take it.

Open your SQL Developer to practice how to create that kind of relation. First create the Student and Course entity respectively. Use CREATE table:

  • CREATE TABLE Student(
  • Student_ID CHAR(10) CONSTRAINT StudentID_PK PRIMARY KEY,
  • First_Name CHAR(20) NOT NULL,
  • MI CHAR(1) NULL,
  • Last_Name CHAR(20) NOT NULL);

This will create a Student table with attribute/field Student_ID, First_Name, and Last_Name. The number inside the bracket “(” is number of character (look at Middle Name that only limited to one character). There some constraint such as PRIMARY KEY and NOT NULL. Add some record using INSERT statement:

  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115995’, ‘Rahmadya’,’T’,’Handayanto’);
  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115996′,’James’,’D’,’Brynt’);
  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115997’, ‘John’,”,’Travis’);
  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115998′,’Brian’,’L’,’Walk’);
  • INSERT INTO Student (Student_ID, First_Name, MI, Last_Name) VALUES (‘st115999’, ‘Susan’,”,’Tarson’);

If we want to retrieve the record that we have just insert, try to use SELECT * from Student;

Use the similar SQL Command to create a Course table with attribute Course_ID, CourseName, Credit, and Department. Use Course_ID as a primary key.

  • CREATE TABLE Course(
  • Course_ID CHAR(10) CONSTRAINT CourseID_PK PRIMARY KEY,
  • CourseName Char(50) NOT NULL,
  • Credits INTEGER NOT NULL,
  • Department CHAR(20) NOT NULL);

Then, Add some records e.g:

  • INSERT INTO Course (Course_ID, CourseName, Credits, Department) VALUES (‘AT72.01′,’Database Management System’, 3,’CSIM’);
  • INSERT INTO Course (Course_ID, CourseName, Credits, Department) VALUES (‘AT72.03′,’E-Business Development’, 3,’CSIM’);
  • INSERT INTO Course (Course_ID, CourseName, Credits, Department) VALUES (‘AT72.04′,’Decision Support Technologies’, 3,’CSIM’);

Because M:N relationship, when we convert from ER-Diagram into Relational Table we have to create one relation that connect the student to course, for example we name it Student_Course table.

  • CREATE TABLE Student_Course (Student_ID CHAR(10), Course_ID CHAR(10));
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115996′,’AT72.01’);
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115996′,’AT72.03’);
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115997′,’AT72.01’);
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115997′,’AT72.04’);

We have a simple Student_Course table with four students who enroll the class. This table has not used relation between student and course. Therefore we have to add foreign key from Student and Course table using ALTER statement.

  • ALTER TABLE Student_Course ADD CONSTRAINT CourseID_FK FOREIGN KEY (Course_ID) REFERENCES Course (Course_ID);
  • ALTER TABLE Student_Course ADD CONSTRAINT StudentID_FK FOREIGN KEY (Student_ID) REFERENCES Student (Student_ID);

Do we been allowed to insert duplicate foreign key? For example a student takes many courses? Test using this INSERT example:

  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115996′,’AT72.01’);
  • INSERT INTO STUDENT_COURSE (Student_ID, Course_ID) VALUES (‘st115996′,’AT72.04’);

We need a primary key to identify the transaction of student who make an enrollment.

ALTER TABLE Student_Course ADD CONSTRAINT Student_ID_Course_ID_PK PRIMARY KEY (Student_ID, Course_ID);

The unique attribute sometimes needed if we avoid the similar record that different primary key. For example we make the course_name unique.

  • ALTER TABLE Course ADD CONSTRAINT CourseName_uk UNIQUE(CourseName);

For example we add record that violate this Unique constraint.

  • INSERT INTO Course (Course_ID, CourseName, Credits, Department) VALUES (‘AT72.10′,’Database Management System’, 3,’CSIM’);

You will see an error on it. That’s it.

Google Map Street View in Bekasi

Google map is free web-based application that serve the geographical position all over the world. It serves map, satellite view (via landsat satellite), and now serves with street view. What is street view? The street view is a function that send the user a picture around some points. They are captured by a car with a special camera.

After our capital city, Jakarta, now my lovely place, Bekasi District, also has been surveyed by this car. Therefore, we can accessed picture behind the street similar to we directly drive a vehicle along the street. For example, my university where I work as a lecturer: https://www.google.co.th/maps/@-6.256911,107.005114,3a,75y,114.85h,87.48t/data=!3m4!1e1!3m2!1sCPhxI8TQG3qCR3IEiLwHdw!2e0

I think it is very useful especially for one who wants to visit an object. Some road may be one direction only, there are some road overlapping, underpass and fly over, etc. For me it is very useful for my research that optimizing a location based on some point that must far away because dangerous if near these object such as hospitals, electrical substations, rivers, schools, and so forth.

Instal Oracle11g

Tak dapat dipungkiri Oracle merupakan software system basis data yang terkenal dan banyak digunakan oleh institusi-institusi baik swasta maupun pemerintah yang menginginkan keamanan, kecepatan, dan kemudahan dalam mengorganisirnya. Software ini bukan software yang open source, biaya lisensi pun berdasarkan prosesor, bukan server. Jika server Anda punya 4 prosesor dan semuanya menjalankan oracle, maka Anda harus membayar empat lisensi. Sementara jika kita hanya ingin belajar, dan tidak menggunakan Oracle untuk production, maka kita bias mendownload secara gratis dengan kualitas software yang sama dengan yang lisensi (baca lembar lisensinya). Download di situs resminya: http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html.

Jalankan file yang telah didownload.

Klik next

Centang “I accept the terms in the license agreement”

Klik Next, dan Anda diminta untuk memasukkan password

Berikutnya sebelum diinstall oracle akan memberikan informasi apa saja yang akan diinstal

Berikutnya tunggu beberapa saat hingga Oracle selesai diinstal.

Berikutnya kita tinggal belajar menggunakannya. Syarat minimal adalah kita memahami dasar-dasar Standard Query Language (SQL).

SQL DEVELOPER

Instal terlebih dahulu Java

Tunggu hingga aplikasi selesai diinstal dan siap dijalankan

Ok, selamat ber-query ria:

‘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.