Mengakses Database MySQL Melalui Short Message Service (SMS) Menggunakan Pemrograman Java Suharnawi Abstract: An application made to produce an information usually require a database as data storage. Various databases can be used for the data container. One of the database that widely used is MySQL. Various data access can be execute to get information. The good information is it can be accessed easily and has a value of information such as what to expect. Computer technology, both software and hardware developed to make process easier . At the time this information also can be accessed via mobile phone. Many services that are often used with the use of this service. Whether the need for pooling, quizzes, and any consulting services can be accessed by mobile phone to get information processed by computer. There is a shift in the use of information presented through the Web switch to the information that can be accessed simply by using mobile SMS service. By the various considerations that many people use mobile phones more often than using the computer. With the proximity of this facility on mobile sms is one of the alternatives to access data processed by computer Keyword : connection, mysql, sms, database PENDAHULUAN Sekarang ini adalah suatu era dimana informasi merupakan suatu kebutuhan untuk dapat bertahan dan berkembang dalam berbagai bidang usaha. Pada era pendahulunya yaitu era industrialisasi dimana pada saat itu siapa yang dapat mengusai industri dan memproduksi suatu produk dapat memenangkan pasar, maka pada saat ini informasi mempunyai peran yang sangat menentukan produk tersebut dapat diterima oleh konsumen. Informasi yang dibutuhkan tentunya dalam penyajiannya tidak dapat lepas dari database.. Database dapat diartikan sekumpulan data yang terdiri dari satu table atau lebih yang saling berkaitan antara table yang satu dengan yang lainnya dalam menyajikan suatu informasi yang dibutuhkan oleh pengguna atau pengolah data tersebut.. Ada berbagai macam database yang bisa digunakan untuk menyimpan data. Ada yang yang harus membayar dan ada yang sifatnya gratis untuk digunakan. Salah satu database yang mempunyai sifat gratis diantaranya adalah MySQL. Tidak ada salahnya data yang digunakan untuk melakukan pengolahan data dibuat dengan menggunakan MySQL. Database Mysql mempunyai interface ( antarmuka ) dengan berbagai macam bahasa pemrograman yang berorientasi object. Bahasa Pemrograman yang mendukung Mysql antara lain adalah PHP,Visual Basic, Perl, Java, Python, C, C++ , dan lain-lain. Suharnawi adalah Dosen Fakultas Ilmu Komputer UDINUS Semarang 53 54 Techno.Com, Vol. 8 No. 1, Mei 2009 Database dalam pemrograman merupakan tempat penyimpanan data. Jika data tersebut tidak disimpan maka informasi yang pernah dimunculkan pada kesempatan lain tidak dapat dimunculkan kembali. Untuk mendapatkan informasi, sekarang ini banyak alat yang dapat digunakan. Salah satu alat yang banyak dimiliki adalah handphone. Hanphone mempunyai sifat sering dibawa kemana-mana karena bentuknya yang kecil dan mudah dioperasikan. Walaupun bentuknya kecil akan tetapi kemampuannya dapat dimaksimalakan untk mengakses informasi yang tidak kalah pentingnya informasi-informasi yang lain. Karena kemudahan mengoperasikan handphone, banyak suatu aplikasi yang dibuat untuk menyediakan informasi yang dapat diakses lewat handphone. Contoh aplikasi yang sering kita jumpai misalkan untuk kuis, pooling, dan banyak lagi acara menarik lainnya yang menggunakan handphone untuk berkomunilasi. PEMBAHASAN Database MySql yang digunakan pada Java tidak dapat secara langsung dihubungkan. Untuk menghubungkan antara database MySQL dengan Java dibutuhkan adanya JDBC. Dengan JDBC ini maka database yang tersimpan pada MySQL dapat dibaca atau dimodifikasi untuk proses pengolahan data.. Penggunaan MySQL dalam pemrograman tentunya akan memanfaatkan adanya suatu database. Database dapat diartikan sebagai sekumpulan data yang terdiri dapat lebih dari satu table yang saling berkaitan antara table yang satu dengan yang lainnya untuk mewujudkan suatu informasi yang dibutuhkan oleh pengguna atau pengolah data tersebut. Mysql merupakan sebuah proyek open source database dibawah lisensi GNU GPL (General Public License). Software Mysql dapat didapatkan secara gratis dengan cara mendownload pada http://dev.mysql.com/downloads/.. Database Mysql mempunyai interface ( antarmuka ) dengan berbagai macam bahasa pemrograman yang ada pada saat ini , Bahasa Pemrograman yang mendukung Mysql antara lain adalah PHP,Visual Basic, Perl, Java, Python, C, C++ , dan lain-lain. Ada beberapa cara yang dapat digunakan untuk membuat koneksi antara MySQL dengan Java. Masing-masing tentunya mempunyai bentuk atau urutan langkah yang berbeda walaupun hubungan yang terbentuk pada dasaranya sama. Berikut adalah bentuk koneksi yang dapat dilakukan : public LibraryManager() { try { Class.forName(“com.mysql.jdbc.Driver”); con = DriverManager.getConnection( “jdbc:mysql://localhost/perpustakaan”,”root”,”nawi”); System.out.println(“Koneksi database sukses”); } catch(ClassNotFoundException e) { e.printStackTrace(); Mengakses Database MySQL Melalui Short Message Service (SMS) (Suharnawii) 55 } catch(SQLException e) { e.printStackTrace(); } } Aplikasi yang dibuat pada tulisan ini adalah SMS Gateway dengan menggunakan java untuk mengakses database MySql. Beberapa persiapan untuk membuat aplikasi adalah penyusunan / pendefinisian struktur folder yang benar. Untuk membuatnya dapat dilakukan dengan memperhatikan susunan folder sebagai berikut : Kode program disimpan pada folder /perpusok/src Hasil kompilasi disimpan pada /perpusok/WEB-INF/classes Library file / file .jar disimpan pada folder /perpusok/WEB-INF/lib Gambar 1. Struktur Folder Kompilasi Program Setelah semua kode program telah dituliskan berikutnya lakukan kompilasi dengan menggunakan Apache ant. Perintah untuk melakukan kompilasi adalah sebagai berikut : prompt> ant deploy Dengan perintah tersebut maka proses kompilasi akan dimulai dengan mencari file built.xml dan sesuai isinya akan dilakukan proses kompilasi serta pengkopian file-file yang diperlukan kedalam folder webapps dari apachetomcate berada. Proses kompilasi yang berhasil akan ditunjukkan dengan adanya keterangan BUILD SUCCESSFUL Techno.Com, Vol. 8 No. 1, Mei 2009 56 Gambar 2. Tampilan kompilasi menggunakan apache ant Menjalakan Hasil Kompilasi Program Cobalah jalankan program yang telah dibuat dengan menggunakan browser dengan perintah sebagai berikut : http://127.0.0.1:8800/perpusok/Handler perlu diperhatikan bahwa hasil kompilasi yang telah ada akan disimpan juga ke dalam folder apache/webapps, dan dapat dicek dengan melihat daftar aplikasi yang sudah aktif dengan menggunakan tomcat manager, seperti tampilan berikut : Mengakses Database MySQL Melalui Short Message Service (SMS) (Suharnawii) 57 Gambar 3. Tampilan apache tomcat manager Hasil Eksekusi Program Hasil program SMS Interaktif dapat dilihat sebagai berikut : Gambar 4. Tampilan browser menjalankan aplikasi Techno.Com, Vol. 8 No. 1, Mei 2009 58 Persiapan Aplikasi Untuk diakses ke Handphone Setting Modem Hand Phone Agar aplikasi dapat berjalan perlu dilakukan pengaturan peralatan. Aplikasi SMS Gateway ini membutukan modem. Pada ujicoba aplikasi ini menggunakan modem Hp Nokia 6100. Langkah pengaturan yang dapat dilakukan adalah sebagai berikut : Dari Control Panel Pilih Phone and modem Option Pilih Tab Modem Pilih Add Pilihlah modem sesuai dengan modem yang akan digunakan Jika sudah selesai pilih OK Gambar 5. Tampilan Control Panel Mengakses Database MySQL Melalui Short Message Service (SMS) (Suharnawii) 59 Lakukan pengecekan Modem Untuk memastikan bahwa handphone yang dijadikan sebagai modem sudah benar-benar terpasang dengan baik, maka perlu dilakukan pengecekan modem dari Control Phanel, Modem, dan perhatikan bahwa modem yang dimaksud sudah benar-benar telah ditemukan. Perhatikan Gambar 6 berikut ini untuk proses pengecekan modem. Gambar 6. Jendela Phone and Modem Option Mengecek Port Port yang digunkan dapat dicek seperti tampak pada Gambar 7 sebagai berikut : 60 Techno.Com, Vol. 8 No. 1, Mei 2009 Gambar 7. Jendela Properties Modem Setting Software Now SMS Aplikasi SMS Gateway yang dibahas disini menggunakan software bantu Now SMS. Dengan beberapa pengaturan sebagai berikut : Jalankan Software Now SMS Tentukan Modem yang digunakan dengan memilih tab SMSC Pilih Add Modem agar tertampil pada SMSC Connections Cobalah Coneksinya dengan memilih pilihan Test Jika berhasil akan dimunculkan jendela yang menginformasikan Modem successfully tested ! Mengakses Database MySQL Melalui Short Message Service (SMS) (Suharnawii) 61 Gambar 8. Jendela Pengaturan Modem Koneksi Gambar 9. Jendela Modem tested Techno.Com, Vol. 8 No. 1, Mei 2009 62 Gambar 10. Jendela pengaturan alamat koneksi Aktifkan service SMS Gateway Untuk mengaktifkan layanan perlu dilakukan pengaturan pada pilihan SMS Gateway Service. Berilah tanda cek pada isian Rus as a service seperti tampak pada Gamabar 11 berikut ini : Mengakses Database MySQL Melalui Short Message Service (SMS) (Suharnawii) 63 Gambar 11. Pengaturan Service SMS Gateway Mencoba NOWSMS Perintah yang digunakan adalah http://127.0.0.1:8800 atau http://localhost:8800 64 Techno.Com, Vol. 8 No. 1, Mei 2009 Gambar 12. Jendela Layana Now SMS Databases Databases perlu disiapkan dengan nama perpustakaan, dan tabel yang perlu dibuat adalah katalog dengan atribut seperti tampilan berikut ini : Gambar 13. Jendela MySql Mengakses Database MySQL Melalui Short Message Service (SMS) (Suharnawii) 65 Jalankan Apache Tomcat Aplikasi yang sudah berhasil melakukan koneksi dengan database dapat dilihat keterangan yang dimunculkan pada consol Tomcat seperti baris paling bawah tampilan berikut : Gambar 14. Jendela aktifasi Server Apache Tomcat Kode Program SMS Interaktif Kode program sms interaktif menggunakan java terdiri dari beberapa file program sebagai berikut : HandlerServlet.java LibraryManager.java Sender.java ContentBean.java web.xml Berikut ini adalah rincian kode program dari masing-masing program tersebut di atas : 1. Program HandlerServlet.java Kode Program HandlerServlet.java adalah sebagai berikut : package sms.perpustakaan.http; import java.io.*; Techno.Com, Vol. 8 No. 1, Mei 2009 66 import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import sms.perpustakaan.service.*; public class HandlerServlet extends HttpServlet { Sender sender; LibraryManager lib; public void init() { try { lib = new LibraryManager(); sender = new Sender("http://127.0.0.1:8800/"); } catch(Exception e) { e.printStackTrace(); } } public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String sms = req.getParameter("sms"); String msisdn = req.getParameter("msisdn"); if (sms == null || msisdn == null) { res.getWriter().println("Aplikasi sudah OK"); } else { lib.smsParses(msisdn,sms); Properties prop = new Properties(); prop.setProperty("Text",lib.getResult()); prop.setProperty("PhoneNumber",msisdn); sender.send(prop); } } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doGet(req, res); } } 2. Program LibraryManager.java Kode Program LibraryManager.java adalah sebagai berikut : package sms.perpustakaan.service; Mengakses Database MySQL Melalui Short Message Service (SMS) (Suharnawii) 67 import java.sql.*; public class LibraryManager { public Connection con; private ContentBean cb = new ContentBean(); private static final String KODE_SALAH = "Kode yang Anda masukkan salah, ketik Buku<spasi>NO_ISBN"; private static final String BUKU_TIDAK_TERSEDIA = "Maaf, buku yang Anda maksud tidak terdapat dalam database kami"; //jika buku ditemukan……………………………………………………………… private String BUKU_TERSEDIA(String judul, String pengarang, String penerbit, String status) { return "Judul : " + judul + " Pengarang : " + pengarang + " Penerbit : " + penerbit + " Status : " + status; } public LibraryManager() { try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection( "jdbc:mysql://localhost/perpustakaan","root","nawi"); System.out.println("Koneksi database sukses"); } catch(ClassNotFoundException e) { e.printStackTrace(); } catch(SQLException e) { e.printStackTrace(); } } public void smsParses(String msisdn, String sms) { sms.trim(); String[] str = sms.split(" "); if(str[0].toUpperCase().startsWith("BUKU") == false) cb.setResult(KODE_SALAH); else cb.setResult(BUKU_TIDAK_TERSEDIA); System.out.println(getResult()); } private String findBook(String isbn) { try { Statement st = con.createStatement(); String sql = "SELECT * FROM katalog Techno.Com, Vol. 8 No. 1, Mei 2009 68 WHERE isbn = '"+isbn+"'"; String status = "TErsedia"; ResultSet rs = st.executeQuery(sql); if (rs.next()) { if (rs.getInt(5) != 1) status = "Dipinjam"; return BUKU_TERSEDIA(rs.getString(2), rs.getString(3),rs.getString(4), status); } } catch(SQLException e) { e.printStackTrace(); } return BUKU_TIDAK_TERSEDIA; } public String getResult() { return cb.getResult(); } } 3. Program Sender.java Kode Program Sender.java adalah sebagai berikut : package sms.perpustakaan.service; import java.io.*; import java.util.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; public class Sender { private final HttpClient gatewayClient = new HttpClient(); private String url; public Sender(String url) { this.url = url; method = new GetMethod(url); } HttpMethod method = null; public String send(Properties params) { int size = params.size(); NameValuePair[] param = new NameValuePair[size]; Enumeration keys = params.keys(); Mengakses Database MySQL Melalui Short Message Service (SMS) (Suharnawii) 69 int i = 0; while (keys.hasMoreElements()) { String key = keys.nextElement().toString(); String value = params.getProperty(key); param[i++] = new NameValuePair(key, value); } method.setQueryString(param); //Execute the methode.............. int statusCode = -1; //we will retry up to 3 times.......... for (int attempt = 0; statusCode == -1 && attempt < 3; attempt++) { try { statusCode = gatewayClient.executeMethod(method); System.out.println("\nSmsSender URL : " + url + "?" + method.getQueryString()); } catch(HttpRecoverableException e) { System.err.println(" a recoverable exception occured, retrying." + e.getMessage()); } catch(IOException e) { System.err.println("Failed to download file."); } } if (statusCode == -1) { System.err.println("Failed to recover from exception."); } byte[] responseBody = method.getResponseBody(); method.recycle(); String response = null; if (responseBody == null || responseBody.length == 0) { response = ""; } else { response = new String(responseBody); } return response; } } 4. Program ContentBean.java Techno.Com, Vol. 8 No. 1, Mei 2009 70 Kode Program ContentBean.java adalah sebagai berikut : package sms.perpustakaan.service; public class ContentBean { private String result; public String getResult() { return result; } public void setResult(String result) { this.result = result; } } 5. Program web.xml Kode Program web.xml adalah sebagai berikut : <?xml version="1.0" encoding="ISO-8859-1"?> <web-app> <display-name> .:. My Fist SMS Servlet .:. </display-name> <description> .:. SMS Servletku .:. </description> <servlet> <servlet-name>SmsServlet</servlet-name> <servlet-class>sms.perpustakaan.http.HandlerServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SmsServlet</servlet-name> <url-pattern>/Handler</url-pattern> </servlet-mapping> </web-app> KESIMPULAN Dari uraian di atas dapat ditarik beberapa kesimpulan sebagai berikut : 1. Informasi sangat dibutuhkan untuk pengambilan keputusan, tentunya informasi tersebut harus dapat diakses dengan menggunakan perangkat yang mudah digunakan. 2. Handphone dapat mengirimkan data ke aplikasi sebagai request, yang selanjutkan diproses (response) informasi akan diberikan sesuai dengan permintaan dari pengirim. 3. Banyaknya pemakai handphone yang sering membawa handphonenya kemana pemakai berada tentunya menjadikan informasi yang dibutuhkan akan mudah didapatkan dan dapat dilakukan dimana pemakai berada.. Mengakses Database MySQL Melalui Short Message Service (SMS) (Suharnawii) 71 4. Informasi yang dikirimkan melalui handphone juga sama validnya jika dibandingkan dengan informasi yang disampaikan lewat media yang lain. DAFTAR PUSTAKA 1. Rangsang Purnama, Tuntunan Pemrograman Java, Prestasi Pustaka, Jakarta, 2007 2. Supardi Yuniar, Sistem Informasi Penjualan dengan Java, PT. ElexMedia Komputindo, Jakarta, 2008 3. Utdirartatmo Firrar, Kiat Jitu Memberdayakan, mengamankan & Trobleshooting MySql, Ardana media, Yogyakarta, 2006