BAB II KAJIAN PUSTAKA

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB II KAJIAN PUSTAKA"

Transkripsi

1 BAB II KAJIAN PUSTAKA Pada bab dua ini akan dibahas mengenai definisi dan konsep dari fault tolerance, RDBMS, MySQL, database transaction, JDBC, database connection, dan database session, serta hasil eksplorasi terhadap MySQL Connector/J dan MySQL. Landasan teori ini akan memberikan pemahaman yang lebih mendalam mengenai topik-topik yang disebutkan sehingga akan mempermudah proses analisis penyelesaian masalah pada bab selanjutnya. 2.1 Fault Tolerance Fault tolerance merupakan properti yang memungkinkan suatu sistem dapat terus beroperasi ketika terjadi kegagalan pada salah satu atau lebih komponennya. Properti fault tolerance sangat diperlukan terutama pada highly available atau life critical system. Implementasi fault tolerance pada suatu sistem dapat dilakukan dengan beberapa strategi berikut [SHO87]: 1. Menyediakan beberapa instan identik dari sistem atau subsistem, mengarahkan task atau request ke seluruh instan secara paralel, lalu memilih hasil terbaik berdasarkan quorum. 2. Menyediakan beberapa instan identik dari sistem atau subsistem dan beralih ke instan lainnya ketika terjadi kegagalan pada instan utama (failover). 3. Menyediakan beberapa implementasi yang berbeda untuk suatu spesifikasi dan menggunakannya seperti sistem tereplikasi untuk mengatasi error pada implementasi tertentu. Pada MySQL Cluster, fault tolerance pada DBMS MySQL diimplementasikan dengan replikasi synchronous dengan mekanisme two-phase commit untuk menjamin penulisan data pada seluruh node ketika commit. Ketika terjadi kegagalan pada salah satu replika, sistem masih dapat menggunakan replika lainnya. II-1

2 II RDBMS (Relational Database Management System) RDBMS merupakan sebuah sistem kompleks yang mendukung penyimpanan dan retrieval data berdasarkan model relasional. Model relasional merepresentasikan data sebagai komponen informasi yang saling terkait (atribut) dari suatu entitas. Set nilai dari atribut-atribut sebuah entitas disimpan sebagai tuple yang akan dikumpulkan dalam sebuah tabel. Sebuah tabel dapat memiliki relasi dengan tabel lainnya dengan batasan (constraint) domain, key, atribut, atau tuple. Karakteristik utama database relasional adalah pemisahan mutlak antara data fisik dan data lojik. Akses terhadap data dilakukan melalui suatu model lojik seperti SQL (Structured Query Language) tanpa perlu menspesifikasikan lokasi fisik penyimpanan data. Salah satu faktor pendukung kemudahan akses data secara lojik tersebut adalah arsitektur RDBMS yang rumit. Umumnya RDBMS dikembangkan dengan arsitektur client/server, di mana aplikasi client dikembangkan sebagai program terpisah yang terhubung ke database melalui jalur komunikasi seperti socket atau pipe, misalnya MySQL. MySQL berjalan sebagai server yang menyediakan akses ke database bagi sejumlah client sekaligus secara konkuren. Aplikasi client MySQL dapat terhubung ke database melalui berbagai metode komunikasi yang ditangani secara identik, antara lain Unix domain socket (umumnya /tmp/mysql.sock atau /var/run/mysqld/mysql.sock), Windows named pipe (umumnya \\hostname\pipe\mysql), shared memory, atau port TCP (umumnya port 3306). Selain itu terdapat embedded database system yang memungkinkan client terhubung langsung ke database, karena database system merupakan bagian dari aplikasi client. Operasi terhadap database dilakukan oleh aplikasi dengan mengeksekusi prosedur tertentu. Embedded database system banyak digunakan untuk pengembangan sistem yang membutuhkan respon dan informasi dari database segera tanpa delay. RDBMS yang dikembangkan sebagai client/server umumnya memiliki protokol tertentu yang mendefinisikan metode komunikasi client dan dan database server. Protokol komunikasi tersebut menentukan data dan format yang harus dikirimkan

3 II-3 client untuk melakukan request koneksi ke suatu database, mengirimkan command ke database, dan melakukan pemutusan koneksi. Protokol komunikasi biasanya spesifik untuk setiap database. Pada protokol MySQL versi 10, setiap client message dikirim sebagai sebuah paket MySQL, sedangkan respon server bisa terdiri dari beberapa paket. Paket MySQL ini tidak berhubungan dengan paket network layer yang digunakan, bahkan banyak paket respon dari server yang hanya berupa sebuah IP datagram. Setiap paket memiliki header sepanjang empat byte. Tiga byte pertama header menunjukkan ukuran paket. Byte terakhir header menunjukkan nomor urut paket, diawali dengan 0. Secara garis besar terdapat dua jenis interaksi antara client dan server, yaitu interaksi handshake yang dilakukan pada saat client membentuk koneksi ke server dan interaksi perintah setelah terbentuk koneksi. Interaksi selengkapnya diilustrasikan pada Gambar II-4. Berikut langkah-langkah handshake setelah terbentuk koneksi di level transport: 1. Server mengirimkan Handshake Initialization Packet ke client yang berisi informasi mengenai versi protokol, versi server, dan thread id. 2. Client mengirimkan Client Authentication Packet ke server yang berisi informasi mengenai username, password, dan nama database yang akan digunakan. 3. Server mengirimkan OK packet atau Error packet kepada client. Setelah menerima OK packet, client dapat mulai mengirimkan Command Packet. Sebaliknya, jika client menerima Error packet, client akan menutup koneksi. Ketika memberikan perintah ke server, client akan mengirimkan Command Packet yang berisi satu byte perintah dan n byte argumen. Server akan mengirimkan simple response berupa OK Packet jika perintah berhasil dilakukan, tabular response berupa Result Set Packet jika perintah mengembalikan data, atau Error Packet jika ditemukan kesalahan. Untuk mempermudah client mengakses database tanpa perlu mengetahui detil protokol komunikasinya, biasanya vendor database menyediakan modul yang

4 II-4 berfungsi sebagai interpreter antara aplikasi client dan database server. Modul yang disebut database connector tersebut terdiri dari API, library pendukung API tersebut, dan database driver yang spesifik untuk setiap DBMS. Aplikasi client dapat mengirim perintah SQL ke database server melalui database connector, kemudian database connector akan mengirimkan perintah tersebut ke database server sesuai protokol network yang dispesifikasikan oleh driver dan mengembalikan hasil eksekusi perintah ke client. Gambar II-1 Komunikasi aplikasi client dan database server [BEL07] MySQL menyediakan konektivitas untuk aplikasi client yang dikembangkan dengan bahasa Java melalui JDBC driver, yang dikenal dengan nama MySQL Connector/J. MySQL Connector/J merupakan JDBC driver tipe 4, yaitu driver yang merupakan implementasi murni dari protokol MySQL dan tidak bergantung pada library client MySQL yang digunakan. Suatu RDBMS dapat menangani operasi atomik maupun transaksi. Transaksi memungkinkan eksekusi sekumpulan operasi seakan-akan sebagai sebuah operasi atomik. Suatu transaksi biasanya diawali dengan statement begin transaction dan diakhiri dengan statement end transaction. Operasi-operasi terkait transaksi berada di antara kedua statement tersebut. Transaksi merupakan salah satu cara untuk menjamin fault tolerance pada data management tier karena memiliki properti ACID (Atomicity, Consistency, Isolation, dan Durability) yang menjamin integritas dari data.

5 II-5 Database system harus mampu menjaga properti dari transaksi sebagai berikut: 1. Atomicity: Semua operasi dalam transaksi harus tereksekusi atau tidak sama sekali. 2. Consistency: Data yang akan disimpan di database hanyalah data yang valid. 3. Isolation: Jika terdapat beberapa transaksi yang berjalan secara konkuren, transaksi tersebut tidak boleh saling menginterferensi. 4. Durability: Setelah transaksi selesai dieksekusi, perubahan yang dilakukan oleh transaksi tersebut terhadap database permanen walaupun terjadi kegagalan sistem. Gambar II-2 State diagram transaksi [SIL02] Pada state diagram di atas (Gambar II-2), setiap transaksi akan berada di salah satu state berikut: 1. Active: Keadaan awal, setiap transaksi berada pada state ini ketika eksekusi. 2. Partially Commited: State di mana operasi terakhir dari sebuah transaksi telah dieksekusi. 3. Failed: State setelah ditemukan kegagalan pada transaksi. 4. Aborted: Transaksi telah di-roll-back dan database kembali ke kondisi sebelum transaksi dieksekusi. 5. Commited: Transaksi berhasil dan semua perubahan menjadi permanen.

6 II-6 MySQL mengelola dua jenis transaksi, yaitu transaksi statement yang memperlakukan setiap statement sebagai sebuah transaksi dan transaksi normal. Transaksi statement dimulai setiap kali sebuah statement diterima oleh database, akan commit jika statement tersebut berhasil dieksekusi atau roll-back jika statement gagal dieksekusi. Transaksi normal diawali dan diakhiri secara eksplisit oleh user, terdiri dari sejumlah statement di antara statement begin dan end transaksi. Penentuan commit atau rollback suatu transaksi normal ditentukan oleh user atau storage engine terkait. Pada mode autocommit, transaksi normal akan diperlakukan sebagai sejumlah transaksi statement. Untuk setiap koneksi client, MySQL menyimpan state transaksi statement dan transaksi normal di thd->transaction. Struktur thd->transaction memiliki dua atribut bertipe THD_TRANS, yaitu thd->transaction.stmt yang memuat list of engines yang terlibat pada suatu statement dan thd->transaction.all yang memuat list of engines yang terlibat pada seluruh statement pada transaksi normal. Setiap elemen list merupakan pointer ke storage engine, data transaksional, dan flag transaksi. Pada transaksi yang autocommit, data pada thd->transaction.all akan kosong. Sebaliknya, data pada thd->transaction.stmt diperlukan untuk menentukan commit/roll-back pada transaksi normal, sehingga transaksi nomal tidak akan pernah commit jika belum semua transaksi statement di dalamnya commit. Setiap kali suatu statement commit atau roll-back, list pada thd->transaction.stmt akan dikosongkan, siap untuk digunakan oleh statement berikutnya. List pada thd- >transaction.all akan dikosongkan setelah transaksi normal commit. Jika koneksi terputus saat transaksi normal sedang berjalan, maka transaksi tersebut akan di-rollback. 2.3 JDBC (Java Database Connectivity) JDBC merupakan teknologi yang memungkinkan program Java melakukan manipulasi data pada database. Terdapat empat komponen utama pada JDBC, yaitu:

7 II-7 1. JDBC API (Application Programming Interface) JDBC API merupakan API Java yang terdiri dari beberapa kelas dan interface untuk mengakses database relasional. JDBC API memudahkan suatu aplikasi Java untuk membentuk koneksi ke data source, mengirim statement query dan update ke data source, dan memproses hasil eksekusi statement tersebut dari data source. Dengan menggunakan JDBC API, aplikasi menjadi independen terhadap database yang digunakan, sebuah program dapat digunakan untuk mengakses berbagai jenis data source berbeda. Pada JDBC 4.0, terdapat dua jenis API, yaitu JDBC 4.0 Core API, dan JDBC 4.0 Standard Extension. JDBC 4.0 Core API wajib digunakan dalam pembentukan koneksi dan terdapat dalam package java.sql. Sedangkan JDBC 4.0 Standard Extension API terdapat dalam package javax.sql, merupakan alternatif lain dari JDBC 4.0 Core API karena memiliki fungsi tambahan yang bersifat opsional. 2. JDBC Driver Manager JDBC Driver Manager yang merupakan backbone dari arsitektur JDBC adalah sebuah kelas yang bekerja di antara user dan driver JDBC. Driver Manager berfungsi menghubungkan aplikasi Java dengan driver JDBC yang tepat saat pembentukan koneksi ke database. 3. JBDC Test Suite JDBC Test Suite bertugas menguji kemampuan suatu JDBC driver untuk menjalankan program user dengan mengeksekusi berbagai fitur esensial pada JDBC API. 4. JDBC-ODBC Bridge JDBC-ODBC Bridge memungkinkan penggunaan driver ODBC sebagai driver JDBC. JDBC-ODBC Bridge akan menerjemahkan method call JDBC menjadi function call ODBC, sehingga dapat digunakan untuk berkomunikasi dengan database apapun yang memiliki driver ODBC. Implementasi JDBC- ODBC Bridge terdapat dalam package sun.jdbc.odbc yang berisi native library untuk mengakses ODBC.

8 II-8 Gambar II-3 Arsitektur JDBC [HAE02] JDBC API JDBC API memungkinkan independensi pengembangan aplikasi terhadap database yang digunakan, karena implementasi dari interface yang didefinisikan di API tersebut disediakan oleh vendor database. Terdapat beberapa kelas dan interface utama pada JDBC API, antara lain: 1. java.sql.drivermanager Kelas yang mengelola JDBC driver pada list jdbc.drivers, digunakan untuk membentuk koneksi ke data source. Pembentukan koneksi dilakukan dengan menggunakan method getconnection. 2. javax.sql.datasource Interface yang merupakan alternatif dari java.sql.drivermanager, implementasinya disediakan oleh vendor JDBC driver. Terdapat beberapa tipe implementasi yang memungkinkan pembentukan objek Connection standar, objek Connection yang secara otomatis berpartisipasi dalam connection pooling, atau objek Connection yang dapat digunakan pada distributed transaction. Serupa dengan DriverManager, pembentukan koneksi ke data source dilakukan dengan menggunakan method getconnection.

9 II-9 3. java.sql.driver Interface yang merepresentasikan JDBC driver, implementasinya bergantung pada database. Sebelum pembentukan koneksi ke database, Driver harus diload dan di-register ke DriverManager terlebih dahulu dengan menggunakan method Class.forName. Untuk membentuk koneksi database ke suatu URL, digunakan method connect yang akan mengembalikan objek Connection atau null jika driver tersebut tidak sesuai. 4. java.sql.connection Interface yang merepresentasikan suatu koneksi (session) ke database. Eksekusi dan pengembalian hasil eksekusi statement SQL hanya dapat dilakukan dalam konteks ini dengan menggunakan method createstatement. 5. java.sql.statement Interface yang mendukung eksekusi statement SQL ke database. Untuk mengeksekusi statement SELECT, dapat digunakan method executequery yang menerima parameter statement SQL dan mengembalikan objek ResultSet. Method executeupdate yang menerima parameter statement DML (Data Manipulation Language) SQL atau statement DDL (Data Definition Language) SQL dapat digunakan untuk mengeksekusi statement INSERT, UPDATE, atau DELETE. 6. java.sql.resultset Interface yang merepresentasikan sebuah tabel data hasil eksekusi sebuah statement SQL. ResultSet memiliki sejumlah method getter yang dapat digunakan untuk me-retrieve data dari setiap baris tabel JDBC Driver Agar suatu program Java yang menggunakan JDBC dapat berkomunikasi dengan database diperlukan suatu driver yang berfungsi mengubah request dari program menjadi format yang sesuai dengan protokol yang dimengerti oleh database. Translation layer inilah yang mendukung dependensi suatu aplikasi terhadap database. Jika database di back-end berubah, hanya diperlukan penggantian driver JDBC dengan driver yang sesuai dan sedikit perubahan pada kode aplikasi. Terdapat empat tipe implementasi driver JDBC, yaitu:

10 II JDBC-ODBC Bridge plus ODBC Driver Driver tipe 1 ini menyediakan akses JDBC melalui driver ODBC (Open Database Connectivity). Pada driver tipe ini, method call JDBC akan dikonversi menjadi function call ODBC. JDBC-ODBC Bridge plus ODBC Driver bersifat platform-independent, namun sangat bergantung pada native library dari sistem operasi. 2. Native-API Partly-Java Driver Driver tipe 2 ini mengubah JDBC call menjadi database specific call dengan memanfaatkan client-side library dari database. Driver tipe ini bersifat platform-dependent. 3. JDBC-Net Pure Java Driver Driver tipe 3 ini mengubah JDBC call menjadi format yang sesuai dengan suatu protokol network yang independen terhadap DBMS untuk selanjutnya diubah menjadi format yang sesuai protokol DBMS oleh middleware server. JDBC-Net Pure Java Driver merupakan tipe driver yang paling fleksibel karena dapat menghubungkan client ke berbagai database berbeda. 4. Native-Protocol Pure Java Driver Driver tipe 4 ini mengubah JDBC call menjadi format yang sesuai protokol network yang digunakan oleh DBMS. Implementasi seperti ini memungkinkan client berhubungan langsung dengan database server, sehingga lebih cepat dibandingkan driver tipe lainnya. Kekurangannya, Native-Protocol Pure Java Driver merupakan tipe driver yang sangat bergantung kepada database Connection Connection merupakan sebuah objek pada JDBC yang merepresentasikan koneksi ke sebuah database, yaitu metode yang memungkinkan client software berkomunikasi dengan database server pada mesin yang sama atau berbeda. Koneksi fisik ke database umumnya menggunakan socket atau pipe. Suatu aplikasi dapat memiliki beberapa koneksi sekaligus ke sebuah database atau ke sejumlah database berbeda. Untuk menghidupkan objek Connection, biasanya digunakan method com.mysql.jdbc.drivermanager.getconnection. Sebelumnya, driver JDBC yang

11 II-11 sesuai harus di-load dan di-register terlebih dahulu dengan mengeksekusi method Class.forName. Method tersebut menerima parameter sebuah nama driver dan mengembalikan objek com.mysql.jdbc.driver. // load MySQL Connector/J Driver Class.forName( com.mysql.jdbc.driver ).newinstance(); Kode II-1 Proses load dan register MySQL Connector/J driver Terdapat tiga overload method getconnection yang dapat digunakan, yaitu: 1. getconnection(string url) yang menerima parameter JDBC URL (Uniform Resource Locator). 2. getconnection(string url, Properties info) yang menerima parameter JDBC URL dan properti. 3. getconnection(string url, String user, String password) yang menerima parameter JDBC URL, username, dan password. // connection to MySQL using DriverManager Connection conn = DriverManager.getConnection( jdbc:mysql://hostname/databasename, username, password ); Kode II-2 Pembentukan koneksi ke MySQL dengan DriverManager JDBC URL merupakan metode pengalamatan data source yang memiliki sintaks standar sebagai berikut. jdbc:[subprotocol]://[host][,failoverhost ][:port]/[database][?proper tyname1=propertyvalue1][&propertyname2=propertyvalue2] subprotocol host Komponen Tabel II-1 Komponen JDBC URL Fungsi menspesifikasikan nama driver atau nama mekanisme konektivitas database menspesifikasikan nama host (localhost jika server berada pada komputer lokal)

12 II-12 Komponen failoverhost :port /database?propertyname1=propertyvalue1 &propertiname2=propertyvalue2 Fungsi menspesifikasikan nama host opsional yang akan digunakan jika koneksi ke host sebelumnya tidak berhasil menspesifikasikan nomor port (port default adalah 3306) menspesifikasikan nama database default menspesifikasikan parameter opsional terkait koneksi dan otentikasi seperti user, password, usecompression; terkait jaringan seperti tcprcvbuf, tcpsndbuf; terkait availabilitas dan clustering seperti autoreconnect, roundrobinloadbalance; terkait keamanan seperti allowmultiqueries, usessl; terkait performansi seperti metadatacachesize, usefastintparsing; terkait debugging dan profiling seperti logger, maxquerysizetolog; atau lainnya seperti useunicode, maxrows. Seluruh parameter opsional beserta nilai default-nya dilampirkan di lampiran A. menspesifikasikan parameter opsional tambahan Selanjutnya, kelas DriverManager yang merupakan management layer pada JDBC akan memeriksa setiap driver pada list jdbc.drivers yang dikelolanya sampai menemukan driver yang mampu membentuk koneksi ke database yang direpresentasikan oleh JDBC URL tersebut. Pembentukan koneksi dilakukan dengan memanggil method connect dari setiap objek Driver pada list tersebut. Selain menggunakan kelas DriverManager, objek Connection dapat diperoleh dengan menggunakan interface javax.sql.datasource. DataSource merupakan

13 II-13 metode pembentukan koneksi untuk mendukung fungsi yang lebih rumit seperti connection pooling 1 dan transaksi terdistribusi. Berbeda dengan DriverManager, DataSource memiliki properti yang mengidentifikasikan dan mendeskripsikan data source yang direpresentasikannya, sehingga meningkatkan portabilitas data source tanpa perlu melakukan perubahan pada kode yang mengakses data source tersebut. Dari properti yang telah di-set, DataSource akan membentuk JDBC URL yang terdiri dari servername, portnumber, dan databasename. JDBC URL tersebut, bersama dengan user dan password, akan digunakan sebagai parameter method connect dari JDBC driver. Penggunaan DataSource pada MySQL dilakukan pertama kali dengan menginstansiasi kelas com.mysql.jdbc.jdbc2.optional.mysqldatasource, lalu memanggil method untuk menspesifikasikan properti data source seperti setservername dan setdatabasename. Koneksi akan dibentuk setelah pemanggilan method getconnection yang menerima parameter username dan password dan mengembalikan objek Connection. // connection to MySQL using DataSource com.mysql.jdbc.jdbc2.optional.mysqldatasource ds; Connection conn; ds = new com.mysql.jdbc.jdbc2.optional.mysqldatasource(); ds.setservername( hostname ); ds.setdatabasename( databasename ); conn = ds.getconnection( username, password ); Kode II-3 Pembentukan koneksi ke MySQL dengan DataSource Tabel II-2 Properti standar data source Nama properti Tipe Deskripsi databasename String nama database datasourcename String nama lojik yang digunakan pada implementasi connection pooling atau transaksi terdistribusi 1 Connection pooling merupakan mekanis me manajemen sejumlah koneksi yang memungkinkan suatu koneksi yang sedang idle dimanfaatkan oleh thread yang memerlukan.

14 II-14 Nama properti Tipe Deskripsi description String deskripsi data source networkprotocol String password String password user portnumber int protokol network yang digunakan untuk berkomunikasi dengan server nomor port yang digunakan server untuk menangani request koneksi rolename String nama role servername String nama database server user String nama user Konfigurasi objek Connection dapat dilakukan melalui method yang tersedia, seperti setautocommit atau settransactionisolation. Aktifnya mode autocommit dari objek Connection akan mengakibatkan setiap statement SQL dieksekusi dan dicommit seakan-akan sebuah transaksi individual. Sebaliknya, pada objek Connection yang tidak autocommit, seluruh statement SQL pada konteks tersebut dianggap sebagai sebuah transaksi yang hanya akan berakhir setelah pemanggilan method commit atau method rollback. Method commit akan menjadikan seluruh perubahan pada konteks tersebut menjadi permanen, sedangkan method rollback akan membatalkan seluruh perubahan. Kedua method tersebut akan melepaskan lock terhadap database yang digunakan oleh objek Connection terkait Session Eksekusi statement SQL terhadap database hanya bisa dilakukan dalam suatu session. Oleh karena itu, user perlu membuka session dari suatu koneksi yang telah terbentuk dengan cara melakukan login ke database. JDBC merepresentasikan koneksi dan session sebagai objek Connection, yang didapat dengan memanggil method getconnection. Setelah user memperoleh objek Connection, maka secara otomatis session untuk user tersebut telah terbentuk. Session dapat diakhiri secara manual oleh user dengan melakukan logout atau oleh DBMS ketika telah melampaui timeout.

15 II-15 Setelah terbentuk session atas nama suatu user, user tersebut dapat mengirimkan statement SQL ke database dengan menggunakan salah satu dari tiga interface berikut: 1. Statement, dihidupkan dengan method Connection.createStatement. Objek Statement digunakan untuk mengirim statement SQL tanpa parameter. 2. PreparedStatement, dihidupkan dengan method Connection.prepareStatement. Objek PreparedStatement digunakan untuk statement SQL yang precompiled. 3. CallableStatement, dihidupkan dengan method Connection.prepareCall. Objek CallableStatement digunakan untuk mengeksekusi stored procedures. Untuk setiap session umumnya DBMS akan menyimpan data terkait transaksi, database yang digunakan, koneksi, lock terhadap data, dan query. MySQL menyimpan data tersebut pada objek THD. 2.4 Interaksi MySQL Connector/J dan MySQL pada Pembentukan Koneksi JDBC4C onnection My sqlio my sqld sql_parse 2 : createnewio () 1 : handle_connections_sockets() <<create>> 3 : My sqlio () 7 : dohandshake Hands hake Initialization Packet Client Authentication 4 : create_new _thread 5 : handle_one_connection() 6 : check_connection Packet 8 : check_user Gambar II-4 Interaksi MySQL Connector/J dan MySQL pada pembentukan koneksi

16 II-16 Pembentukan koneksi ke database MySQL melalui MySQL Connector/J dilakukan melalui mekanisme berikut. 1. Program utama MySQL server yaitu mysqld mengeksekusi fungsi handle_connections_socket untuk menangani pembentukan koneksi dari client. 2. Objek Connection dari MySQL Connector/J membentuk channel Input/Output ke MySQL server melalui pemanggilan method createnewio. 3. Method createnewio menghidupkan objek MysqlIO yang bertanggung jawab terhadap pembentukan koneksi TCP melalui java.net.socket. 4. Setelah mendeteksi adanya koneksi dari client, MySQL server akan menyediakan sebuah thread untuk menangani koneksi tersebut dengan memanggil fungsi create_new_thread. Setiap koneksi yang telah terbentuk selanjutnya akan ditangani oleh fungsi handle_one_connection. 5. Fungsi handle_one_connection akan mengeksekusi fungsi check_connection yang bertugas melakukan handshaking dan otentikasi koneksi dari client. 6. Pada fungsi check_connection, MySQL server akan mengirimkan Handshake Initialization Packet ke client sebagai identifikasi server. 7. Objek Connection akan memanggil method dohandshake untuk menerima Handshake Initialization Packet dari server dan mengirimkan Client Authentication Packet ke server. 8. Setelah MySQL server menerima Client Authentication Packet, akan dilakukan parsing terhadap paket tersebut dan otentikasi client dengan mengeksekusi fungsi check_user. 9. Koneksi yang berhasil diotentikasi selanjutnya siap digunakan untuk mengirimkan perintah ke database. Tabel II-3 Body dari Handshake Initialization Packet Bytes Nama Deskripsi Versi protokol, diambil dari 1 protocol_version PROTOCOL_VERSION pada /include/mysql_version.h.

17 II-17 Bytes Nama Deskripsi n (null terminated) server_version 4 thread_number 8 scramble_buff 1 (filler) always 0x00 - Versi MySQL server, diambil dari MYSQL_SERVER_VERSION pada /include/mysql_version.h, diakhiri dengan byte 0x00. Id dari thread server yang menangani koneksi ini. Bagian pertama dari salt yang digunakan pada mekanisme enkripsi password. 2 server_capabilities Kapabilitas server, diambil dari /include/mysql_com.h, meliputi CLIENT_LONG_PASSWORD, CLIENT_FOUND_ROWS, CLIENT_LONG_FLAG, CLIENT_CONNECT_WITH_DB, CLIENT_NO_SCHEMA, CLIENT_COMPRESS, CLIENT_ODBC, CLIENT_LOCAL_FILES, CLIENT_IGNORE_SPACE, CLIENT_PROTOCOL_41, CLIENT_INTERACTIVE, CLIENT_SSL, CLIENT_IGNORE_SIGPIPE, CLIENT_TRANSACTIONS, CLIENT_RESERVED, CLIENT_SECURE_CONNECTION, CLIENT_MULTI_STATEMENTS, dan CLIENT_MULTI_RESULTS. 1 server_language Character set yang digunakan. 2 server_status 13 (filler) always 0x00 - Status autocommit server, meliputi SERVER_STATUS_IN_TRANS dan SERVER_STATUS_AUTOCOMMIT. 13 rest of scramble_buff Bagian terakhir dari salt. Tabel II-4 Body dari Client Authentication Packet Bytes Nama Deskripsi Kapabilitas server yang ingin digunakan 4 client_flags oleh client, meliputi server_capabilities pada Handshake Initialization Packet.

18 II-18 Bytes Nama Deskripsi 4 max_packet_size Jumlah byte maksimum dalam setiap paket untuk client. 1 charset_number Character set yang digunakan. 23 (filler) always 0x00 - n (null terminated) user (1 + x) scramble_buff 1 (filler) always 0x00 - y (null terminated) databasename Identifikasi, maksimal 16 byte, diakhiri dengan byte 0x00. Password yang telah dienkripsi dengan salt dari server (opsional). Nama database yang akan digunakan (opsional), maksimal 64 byte, diakhiri dengan byte 0x Implementasi Pembentukan Koneksi pada MySQL Connector/J Pada MySQL Connector/J yang merupakan connector untuk program Java ke database MySQL, mekanisme pembentukan koneksi secara garis besar adalah sebagai berikut. 1. Kelas com.mysql.jdbc.driver akan memanggil method connect untuk menginstansiasi kelas com.mysql.jdbc.connectionimpl yang merepresentasikan koneksi ke MySQL server. 2. Pada instansiasi tersebut, dilakukan pula instansiasi kelas turunannya, yaitu com.mysql.jdbc.jdbc4connection. Kelas ini mencakup fitur tambahan yang disediakan oleh JDBC Selanjutnya dilakukan pembentukan koneksi TCP ke MySQL server oleh kelas com.mysql.jdbc.mysqlio. Kelas ini juga menangani handshaking antara client dan MySQL server, dengan menerima Handshake Initialization Packet dari MySQL server dan merespon dengan Client Authentication Packet.

19 II-19 Penjelasan mekanisme pembentukan koneksi pada MySQL Connector/J secara detil terdapat pada lampiran B Penanganan Koneksi pada MySQL Penanganan koneksi dari client pada MySQL dilakukan oleh program utama yang bernama mysqld. Mekanisme penanganan koneksi tersebut secara garis besar adalah sebagai berikut. 1. Program utama melakukan initial check, menginisialisasi komponen, melakukan listen di port yang ditentukan, serta menunggu koneksi dari client. 2. Setiap mendeteksi koneksi dari client, akan dibuat thread baru dan objek THD yang akan mengelola informasi mengenai thread tersebut. 3. Selanjutnya dilakukan handshaking dengan mengirimkan Handshake Initialization Packet dan otorisasi client dengan membaca respon dari client berupa Client Authentication Packet. 4. Setelah handshaking berhasil, akan dilakukan pemeriksaan user dan password yang diberikan oleh client. Penjelasan mekanisme penanganan koneksi oleh MySQL secara detil terdapat pada lampiran C.

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN Fault tolerance merupakan properti sistem yang memungkinkan sistem tersebut tetap beroperasi walaupun terjadi kegagalan pada satu atau beberapa komponennya. Properti fault

Lebih terperinci

BAB IV ANALISIS DAN PERANCANGAN

BAB IV ANALISIS DAN PERANCANGAN BAB IV ANALISIS DAN PERANCANGAN Bab ini akan membahas mengenai permasalahan yang terjadi pada aplikasi yang menggunakan arsitektur 3 tier dan strategi penanganan masalahnya. 4.1 Identifikasi Masalah Arsitektur

Lebih terperinci

BAB II KAJIAN PUSTAKA

BAB II KAJIAN PUSTAKA BAB II KAJIAN PUSTAKA Pada bab dua ini akan dibahas mengenai definisi dan konsep dari three tier architecture, replikasi, transaksi pada database, TCP, dan JDBC. Landasan teori ini akan memberikan pemahaman

Lebih terperinci

Langkah-Langkah Pemrograman JDBC MENGIMPOR PACKAGE JAVA.SQL MEMANGGIL DRIVER JDBC

Langkah-Langkah Pemrograman JDBC MENGIMPOR PACKAGE JAVA.SQL MEMANGGIL DRIVER JDBC Langkah-Langkah Pemrograman JDBC Pada pemrograman Java dengan menggunakan JDBC, ada beberapa langkah yang secara umum harus dilakukan sehingga aplikasi tersebut dapat berinteraksi dengan database server.

Lebih terperinci

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY) MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY) TUJUAN PRAKTIKUM 1. Praktikan mengetahui definisi JDBC dan langkah-langkah standar koneksi database dengan JDBC 2. Praktikan mampu menganalisis suatu kasus dan

Lebih terperinci

BAB IX KONEKSI POSTGRESQL PADA JAVA (Netbeans)

BAB IX KONEKSI POSTGRESQL PADA JAVA (Netbeans) BAB IX KONEKSI POSTGRESQL PADA JAVA (Netbeans) 9.1 Bahasan dan Sasaran 9.1.1 Bahasan - Pada bab kali ini akan membahas tentang koneksi PostgreSQL dengan bahasa pemrograman java. - Selain hal itu akan dibahas

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN BAB IV IMPLEMENTASI DAN PENGUJIAN Bab ini membahas tentang implementasi dan pengujian perangkat lunak yang dibangun pada tugas akhir ini. Implementasi akan dibahas pada Subbab 4.1, sedangkan pengujian

Lebih terperinci

Arsitektur Aplikasi Perangkat Enterprise JDBC. Antonius Rachmat C, S.Kom, M.Cs

Arsitektur Aplikasi Perangkat Enterprise JDBC. Antonius Rachmat C, S.Kom, M.Cs Arsitektur Aplikasi Perangkat Enterprise JDBC Antonius Rachmat C, S.Kom, M.Cs JDBC Java Database Connectivity? Java menyediakan JDBC yang berfungsi untuk berhubungan dengan database. Database yang didukung

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Arsitektur software three tier berkembang pada tahun 1990an untuk mengatasi keterbatasan arsitektur two-tier(client-server). Pada gambar I-1 dapat dilihat bahwa arsitektur

Lebih terperinci

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB V IMPLEMENTASI DAN PENGUJIAN BAB V IMPLEMENTASI DAN PENGUJIAN Bab ini membahas mengenai implementasi dan pengujian perangkat lunak yang dibangun pada Tugas Akhir ini. Pembahasan mengenai implementasi dipaparkan pada subbab 5.1 sedangkan

Lebih terperinci

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs. Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs. Komunikasi aplikasi dengan database Aplikasi dan sistem database tidak menggunakan bahasa dan mekanisme yang sama. Sehingga program

Lebih terperinci

TUGAS FRAMEWORK 2 FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA UNIVERSITAS DR. SOETOMO SURABAYA MOCHAMMAD ANNAS FAHRUDIN

TUGAS FRAMEWORK 2 FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA UNIVERSITAS DR. SOETOMO SURABAYA MOCHAMMAD ANNAS FAHRUDIN TUGAS FRAMEWORK 2 NAMA NIM MOCHAMMAD ANNAS FAHRUDIN 2013425004 FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA UNIVERSITAS DR. SOETOMO SURABAYA Tugas FRAMEWORK buatlah resume yang berisi pembahasan berikut:

Lebih terperinci

BAB III PEMBANGUNAN API MYSQL

BAB III PEMBANGUNAN API MYSQL BAB III PEMBANGUNAN API MYSQL Setelah dilakukan studi mendalam tentang hal-hal teknis yang berhubungan dengan pengerjaan Tugas Akhir ini maka langkah selanjutnya adalah membangun API MySQL dengan menggunakan

Lebih terperinci

MINGGU XI : SQL SERVER

MINGGU XI : SQL SERVER MINGGU XI : SQL SERVER Kompetensi Khusus - Setelah mengikuti perkuliahan ini mampu mengelola data dalam SQL Server melalui C# Persyaratan Khusus - Telah mengambil mata kuliah Sistem Basis Data atau Perancangan

Lebih terperinci

Pemrograman Database Java

Pemrograman Database Java Pemrograman Database Java Java Database Connectivity ODBC Native Driver Endy Muhardin Materi Koneksi dengan ODBC Koneksi dengan Native Driver Koneksi dengan Hibernate Koneksi Database

Lebih terperinci

Pemrograman Jaringan 8.

Pemrograman Jaringan 8. Pemrograman Jaringan 8 [email protected] Outline HTTP Client Socket Oriented Multithreading Sisipan: Manipulasi JAR file JDBC HTTP Socket Client HTTP Client yang akan menggunakan perintah HTTP untuk mengambil

Lebih terperinci

J2ME GUI dan Interkoneksi Client Server

J2ME GUI dan Interkoneksi Client Server J2ME GUI dan Interkoneksi Client Server Muhammad Zen S. Hadi, ST. MSc. Arsitektur Jaringan dgn J2ME 2 Introduction J2ME menyediakan fitur jaringan ke perangkat mobile Sehingga memungkinkan untuk selalu

Lebih terperinci

MODUL 10 TRANSACTION

MODUL 10 TRANSACTION MODUL 10 TRANSACTION A. TUJUAN Memahami konsep dan urgensi transaksi dalam kehidupan sehari-hari Mampu mengimplementasikan transaksi basis data Mampu menyelesaikan operasi-operasi sensitif dengan memanfaatkan

Lebih terperinci

JDBC. Imam Fahrur Rozi

JDBC. Imam Fahrur Rozi JDBC Imam Fahrur Rozi Pokok Bahasan Pengantar JDBC Langkah Penggunaan JDBC Pengantar JDBC JDBC Java Data Base Conec;vity JDBC menyediakan library yang digunakan untuk mengakses RDBMS Class- class dari

Lebih terperinci

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java TUJUAN Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java 2 TODAY S MENU Pengenalan library JDBC Diagram pengaksesan database melalui JDBC Step-by-step

Lebih terperinci

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64 10 BAB X PENGAKSESAN DATABASE 101 IDENTITAS Kajian Relasi Antar Kelas 2, Exception Handling, Akses Database Topik Pengaksesan Basis Data MySQL Kompetensi Utama 1 Mahasiswa memahami konsep pengaksesan basis

Lebih terperinci

BAB III LANDASAN TEORI

BAB III LANDASAN TEORI BAB III LANDASAN TEORI III.1. Sistem Informasi Sistem informasi adalah suatu sistem yang dibuat oleh manusia yang terdiri dari komponen komponen dalam organisasi untuk mencapai suatu tujuan yaitu menyajikan

Lebih terperinci

BAB 5 Koneksi Database : SQL dan JDBC

BAB 5 Koneksi Database : SQL dan JDBC BAB 5 Koneksi Database : SQL dan JDBC 5.1 Pengenalan Perintah perintah dalam lingkungan databases adalah : 5.1.1 SELECT Pernyataan SELECT digunakan untuk query database tentang informasi database yang

Lebih terperinci

LINGKUNGAN BASIS DATA

LINGKUNGAN BASIS DATA LINGKUNGAN BASIS DATA Tujuan utama dari sistem basis data adalah menyediakan pemakai melalui suatu pandangan abstrak mengenai data, dengan menyembunyikan detail dari bagaimana data disimpan dan dimanipulasikan.

Lebih terperinci

BAB 1 PENDAHULUAN. satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi

BAB 1 PENDAHULUAN. satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi BAB 1 PENDAHULUAN 1.1 Latar Belakang Di era globalisasi ini, perkembangan teknologi informasi sudah merupakan satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi merupakan suatu kebutuhan

Lebih terperinci

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata Pemrograman Web Koneksi dan Manipulasi Basis Data 7 Adam Hendra Brata Pokok Bahasan MySQL Pengenalan MySQL Dasar SQL pada MySQL Koneksi dan Manipulasi MySQL dengan PHP Koneksi dan Eksekusi Query MySQL

Lebih terperinci

Administrasi Basis Data. Transaksi dan Lock. Yoannita

Administrasi Basis Data. Transaksi dan Lock. Yoannita Administrasi Basis Data Transaksi dan Lock Yoannita Mengenal Transaksi dan Lock Transaksi dan lock dipakai untuk menjamin konsistensi dan integritas data. Transaksi adalah sebuah unit kerja logis yang

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI. maka diperlukan suatu jaringan LAN yang terhubung antara komputer yang satu

BAB 4 IMPLEMENTASI DAN EVALUASI. maka diperlukan suatu jaringan LAN yang terhubung antara komputer yang satu 179 BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Arsitektur Database Agar komputer client dapat mengakses database pada komputer server, maka diperlukan suatu jaringan LAN yang terhubung antara komputer yang satu

Lebih terperinci

Bab 6. Basis Data Client / Server POKOK BAHASAN: TUJUAN BELAJAR: 6.1 PENDAHULUAN

Bab 6. Basis Data Client / Server POKOK BAHASAN: TUJUAN BELAJAR: 6.1 PENDAHULUAN Bab 6 Basis Data Client / Server POKOK BAHASAN: Pendahuluan Arsitektur Client-Server Pengaksesan Query pada Basis Data Client-Server TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa

Lebih terperinci

BAB III LANDASAN TEORI

BAB III LANDASAN TEORI BAB III LANDASAN TEORI III.1. Sistem Informasi Sistem presensi menggunakan QRCode dan ijin berbasis web dan mobile merupakan sistem informasi yang digunakan untuk menyelesaika masalah presensi dan ijin

Lebih terperinci

JDBC. Oleh: Kholid Fathoni

JDBC. Oleh: Kholid Fathoni JDBC Oleh: Kholid Fathoni Pembahasan Sistem Database Pengantar teknologi JDBC Sejarah JDBC Desain JDBC JDBC Driver Arsitektur aplikasi JDBC Petunjuk langkah penggunaan JDBC Retrieve data dari ResultSet

Lebih terperinci

KA2173 Pemrograman Berorientasi Objek. 9 BAB IX PEMROGRAMAN GUI: SWING. H a l 56

KA2173 Pemrograman Berorientasi Objek. 9 BAB IX PEMROGRAMAN GUI: SWING. H a l 56 9 BAB IX PEMROGRAMAN GUI: SWING 91 IDENTITAS Kajian Relasi Antar Kelas 2, Exception Handling, Akses Database Topik Pemrograman GUI (IDE tools) Kompetensi Utama 1 Menggunakan GUI pada bahasa pemrograman

Lebih terperinci

Praktikum Sistem Basis Data. MySQL. Gentisya Tri Mardiani, M.Kom

Praktikum Sistem Basis Data. MySQL. Gentisya Tri Mardiani, M.Kom Praktikum Sistem Basis Data MySQL Gentisya Tri Mardiani, M.Kom Pengenalan RDBMS MySQL Kebanyakan dari database tergantung pada Database Management System (DBMS) untuk mengelola data yang tersimpan dalam

Lebih terperinci

Praktikum Basis Data 2. BAB 1 : Pendahuluan

Praktikum Basis Data 2. BAB 1 : Pendahuluan BAB 1 : Pendahuluan 1.1. Sasaran Memahami fitur-fitur Oracle9i Dapat menjelaskan aspek teori maupun fisik dari database relasional Menggambarkan Implementasi Oracle pada RDBMS dan ORDBMS 1.2. Oracle9i

Lebih terperinci

Basis Data 2. Database Client / Server. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Basis Data 2. Database Client / Server. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS Basis Data 2 Database Client / Server Arif Basofi, S.Kom. MT. Teknik Informatika, PENS Tujuan Memahami bentuk-bentuk arsitektur aplikasi dalam database. Memahami konsep arsitektur: Single-Tier Two-Tier:

Lebih terperinci

APPLICATION LAYER. Oleh : Reza Chandra

APPLICATION LAYER. Oleh : Reza Chandra APPLICATION LAYER Oleh : Reza Chandra Sebagian besar dari kita berpengalaman menggunakan Internet melalui World Wide Web, layanan e-mail, dan file-sharing. Aplikasi ini, dan banyak lainnya, menyediakan

Lebih terperinci

MERANCANG WEB DATA BASE UNTUK CONTENT SERVER

MERANCANG WEB DATA BASE UNTUK CONTENT SERVER MODUL XIX DEPAN MERANCANG WEB DATA BASE UNTUK CONTENT SERVER DEPAN MERANCANG WEB DATA BASE UNTUK CONTENT SERVER MENENTUKAN KEBUTUHAN SISTEM PETA KEDUDUKAN KOMPETENSI Dasar Kejuruan Level I ( Kelas X )

Lebih terperinci

MENGAKSES DATABASE DENGAN JDBC

MENGAKSES DATABASE DENGAN JDBC MENGAKSES DATABASE DENGAN JDBC November 2009 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Pendahuluan Agar sebuah program Java dapat mengakses database, dibutuhkan sebuah antar muka aplikasi yang

Lebih terperinci

BAB III ANALISIS MASALAH

BAB III ANALISIS MASALAH BAB III ANALISIS MASALAH Bab ketiga ini berisi penjelasan analisis permasalahan serta solusi dalam penanganan masalah dalam tugas akhir ini. Solusi penanganan masalah tersebut berupa langkah-langkah lojik

Lebih terperinci

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle. 1 2 3 Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle. 4 Isilah konfigurasi instalasi yang akan dibuat. Oracle Home Location : biasanya terisi otomatis dgn drive yang paling banyak

Lebih terperinci

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata Pemrograman Web Koneksi dan Manipulasi Basis Data 7 Adam Hendra Brata Pokok Bahasan MySQL Pengenalan MySQL Dasar SQL pada MySQL Koneksi dan Manipulasi MySQL dengan PHP Koneksi dan Eksekusi Query MySQL

Lebih terperinci

BAB 3 PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM 29 BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Sistem Blok diagram sistem absensi ini dapat dilihat pada gambar 3.1 di bawah ini. Gambar 3.1. Diagram Blok Sistem Fungsi fungsi dari blok diatas adalah sebagai

Lebih terperinci

DATABASE SQL SERVER. Database SQL Server Halaman 1

DATABASE SQL SERVER. Database SQL Server Halaman 1 1 DATABASE SQL SERVER Objektif: Mengetahui sejarah SQL Server 7.0 Mengengetahui perbedaan SQL Server dengan Microsoft Access Mengenal program bantu yang ada di SQL Server 7.0 Mengetahui cara membuat database

Lebih terperinci

Pemrograman Web. Koneksi dan Manipulasi Basis Data. Adam Hendra Brata

Pemrograman Web. Koneksi dan Manipulasi Basis Data. Adam Hendra Brata Pemrograman Web Koneksi dan Manipulasi Basis Data Adam Hendra Brata Pokok Bahasan Koneksi Database pada Aplikasi Berbasis Web MySQLi Pengenalan MySQL dan MySQLi Dasar SQL pada MySQLi Koneksi dan Manipulasi

Lebih terperinci

Basis Data Relational

Basis Data Relational Basis Data Relational Kebanyakan model yang digunakan adalah Model basis data relasional dengan menggunakan Relational Database Management System (RDBMS). RDBMS menyediakan layanan pengorganisasian data

Lebih terperinci

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 3 DATABASE LINK DENGAN HETEROENOUS SERVICE

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 3 DATABASE LINK DENGAN HETEROENOUS SERVICE PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 3 DATABASE LINK DENGAN HETEROENOUS SERVICE LABORATORIUM REKAYASA PERANGKAT LUNAK TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2011-2012 I.

Lebih terperinci

Database Terdistribusi. by: Ahmad Syauqi Ahsan

Database Terdistribusi. by: Ahmad Syauqi Ahsan 14 Database Terdistribusi by: Ahmad Syauqi Ahsan Konsep Basis Data Terdistribusi (1) 2 Sistem Komputasi Terdistribusi adalah sejumlah elemen proses yang terkoneksi melalui jaringan komputer dan saling

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI. yang sulit untuk diimplementasikan dalam RDBMS (Relational Data Base Management

BAB 4 IMPLEMENTASI DAN EVALUASI. yang sulit untuk diimplementasikan dalam RDBMS (Relational Data Base Management BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Implementasi Penelitian melakukan pengembangan terhadap opsi-opsi pemecahan masalah yang sulit untuk diimplementasikan dalam RDBMS (Relational Data Base Management System)

Lebih terperinci

Koneksi Java ke MySQL Database. Edi Sugiarto, S.Kom, M.Kom

Koneksi Java ke MySQL Database. Edi Sugiarto, S.Kom, M.Kom Koneksi Java ke MySQL Database Edi Sugiarto, S.Kom, M.Kom Pendahuluan Mysql adalah RDBMS yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Mysql dimiliki dan disponsori perusahaan

Lebih terperinci

Microsoft Data Access Components (MDAC) Oleh : Edi Sugiarto, S.Kom, M.Kom

Microsoft Data Access Components (MDAC) Oleh : Edi Sugiarto, S.Kom, M.Kom Microsoft Data Access Components (MDAC) Oleh : Edi Sugiarto, S.Kom, M.Kom Apa Itu MDAC? Microsoft Data Access Component merupakan framework dari Microsoft Teknologi yang saling terkait yang memungkinkan

Lebih terperinci

SISTEM BASIS DATA By Novareza Klifartha

SISTEM BASIS DATA By Novareza Klifartha SISTEM BASIS DATA By Novareza Klifartha Konsep Sistem Basis Data SISTEM sebuah keterpaduan yang terdiri atas sejumlah komponen fungsional dengan satuan fungsi / tugas tertentu, yang saling berhubungan

Lebih terperinci

BAB II. KAJIAN PUSTAKA

BAB II. KAJIAN PUSTAKA BAB II. KAJIAN PUSTAKA A. MYSQL MySQL merupakan sistem basis dataopen source paling populer. MySQL adalah sebuah implementasi dari sistem manajemen basis data relasional (Relational Database Management

Lebih terperinci

Pemrograman Basis Data dan SQL

Pemrograman Basis Data dan SQL Pemrograman Basis Data dan SQL Genap 2015-2016 Alen Boby Hartanto, S alen.boby@mercubua INTRO omata Kuliah : Pemrograman Sistem Basis Data dan SQL osks : 3 ojenis : Mata Kuliah Wajib opertemuan : 14 Pertemuan

Lebih terperinci

Pertemuan XI Database Connectivity Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT.

Pertemuan XI Database Connectivity Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT. Pertemuan XI Database Connectivity Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Caca E. Supriana, S.Si.,MT. [email protected] id 2014 Database Connectivity Database Connectivity

Lebih terperinci

BAB III LANDASAN TEORI

BAB III LANDASAN TEORI BAB III LANDASAN TEORI 3.1 Sistem Informasi Sistem informasi adalah suatu sistem yang dibuat oleh manusia yang terdiri dari komponen - komponen dalam organisasi untuk mencapai suatu tujuan yaitu menyajikan

Lebih terperinci

Sistem Basis Data Terdistribusi Arif Basofi

Sistem Basis Data Terdistribusi Arif Basofi Sistem Basis Data Terdistribusi Arif Basofi Sumber: Fundamentals of Database Systems, Third Edition ch.24, Elmasri Sumber Material: tanzir.staff.gunadarma.ac.id, T. Darmanto & Y. H. Chrisnanto, AmikBandung

Lebih terperinci

MODUL VIII BASIS DATA TRANSACTION

MODUL VIII BASIS DATA TRANSACTION MODUL VIII BASIS DATA TRANSACTION A B C TUJUAN Memahami konsep dan urgensi transaksi dalam kehidupan sehari-hari, Mampu mengimplementasikan transaksi basis data, Mampu menyelesaikan operasi-perasi sensitif

Lebih terperinci

Generated by Foxit PDF Creator Foxit Software For evaluation only. 17/09/ :46

Generated by Foxit PDF Creator Foxit Software  For evaluation only. 17/09/ :46 Waktu Sisa : 0:53:10 1. Kegunaan JavaBean dalam aplikasi web Java adalah (pilih 2)... Sebagai data transfer object Sebagai object helper dalam mengakses data Sebagai penyedia akses ke database Sebagai

Lebih terperinci

DASAR-DASAR SQL SERVER 2005

DASAR-DASAR SQL SERVER 2005 DASAR-DASAR SQL SERVER 2005 SQL SQL (Structured Query Language) adalah salah satu bahasa generasi level ke-4 yang awalnya dikembangkan oleh IBM di San Jose Research Laboratory. Berbeda dengan bahasa pemrograman

Lebih terperinci

MODUL PRAKTIKUM PEMROGRAMAN BASIS DATA

MODUL PRAKTIKUM PEMROGRAMAN BASIS DATA MODUL PRAKTIKUM PEMROGRAMAN BASIS DATA MYSQL Disusun Oleh : Adri Priadana, S.Kom Fakultas Bisnis Dan Teknologi Informasi Universitas Teknologi Yogyakarta 2014 DAFTAR ISI DAFTAR ISI... 2 BAB I MENGENAL

Lebih terperinci

BAB I PENDAHULUAN. I.1 Latar Belakang

BAB I PENDAHULUAN. I.1 Latar Belakang BAB I PENDAHULUAN I.1 Latar Belakang Basisdata telah banyak digunakan untuk menghimpun data. Sistem manajemen basisdata / Database Management System (DBMS) adalah perangkat lunak untuk mengelola dan memanipulasi

Lebih terperinci

BAB II LANDASAN TEORI. dihubungkan untuk berbagi sumber daya (Andi Micro, 2011:6). Jaringan Komputer

BAB II LANDASAN TEORI. dihubungkan untuk berbagi sumber daya (Andi Micro, 2011:6). Jaringan Komputer BAB II LANDASAN TEORI 2.1 Jaringan Komputer Jaringan komputer adalah sekumpulan peralatan atau komputer yang saling dihubungkan untuk berbagi sumber daya (Andi Micro, 2011:6). Jaringan Komputer terbagi

Lebih terperinci

Koneksi PHP -ODBC Persiapan

Koneksi PHP -ODBC Persiapan Koneksi PHP -ODBC Beberapa waktu yang lalu ada salah seorang pembaca Sony AK Knowledge Center yang bertanya mengenai cara koneksi dari PHP ke database SQL Server. Kedengarannya mungkin aneh karena biasanya

Lebih terperinci

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono INTEGRITAS BASIS DATA OLEH : Slamet Sn Wibowo Wicaksono Integrity Constraint (Batasan Integritas) Constraint (batasan) merupakan aturan yang diberikan pada suatu tabel agar data yang dimasukkan terjamin

Lebih terperinci

Modul Praktikum Sistem Basis Data S1-TI

Modul Praktikum Sistem Basis Data S1-TI 1 MODUL 1 PENGENALAN SQL Tujuan Mengetahui konsep Bahasa SQL Mampu mengoperasikan dasar-dasar perintah SQL Server Mampu mendefinsikan obyek-obyek basis data dalam SQL Server Teori singkat SQL (Structured

Lebih terperinci

KEKURANGAN KELEBIHAN APLIKASI DATA BASE

KEKURANGAN KELEBIHAN APLIKASI DATA BASE KEKURANGAN KELEBIHAN APLIKASI DATA BASE No Nama aplikasi data base Kekurangan kelebihan 1 ORACLE Merupakan software DMBS yang paling mahal, paling rumit, dan paling sulit untuk dipelajari. Membutuhkan

Lebih terperinci

Analisis Perbandingan Performansi Server VoIP. berbasis Parallel Processing

Analisis Perbandingan Performansi Server VoIP. berbasis Parallel Processing Analisis Perbandingan Performansi Server VoIP antara Asterisk dan FreePBX berbasis Parallel Processing JOANA SIBORO 2206100080 Dosen Pembimbing: Dr.Ir. Achmad Affandi, DEA NIP: 196510141990021001 PERANCANGAN

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Dalam perkembangan Teknologi Informasi yang semakin meluas ini sistem informasi berperan penting untuk menunjang kredibilitas perusahaan dan pengguna jaringan lainnya.

Lebih terperinci

Bab II Landasan Teori

Bab II Landasan Teori Bab II Landasan Teori Pada bab landasan teori, akan dijelaskan mengenai teori yang menunjang didalam penulisan skripsi ini antara lain mengenai basis data, teknologi basis data, definisi clustering (distribusi

Lebih terperinci

TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT)

TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT) TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT) 1. Installah terlebih dahulu Database MYSQL. Untuk latihan, dapat menginstal aplikasi XAMPP yang didalamnya tersedia banyak modul, salah satunya

Lebih terperinci

Minggu 6 Transport Layer

Minggu 6 Transport Layer Minggu 6 Transport Layer 1 Overview Layer Transport bertugas melakukan sesi komunikasi antara komputer dalam jaringan. Menenirukan bagaimana data ditransmisikan. Dua Protocol Transport Layer yang dipakai

Lebih terperinci

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB V IMPLEMENTASI DAN PENGUJIAN BAB V IMPLEMENTASI DAN PENGUJIAN Pada bab ini akan dilakukan implementasi dan pengujian terhadap Aplikasi Power Control. Tahapan ini dilakukan setelah analisa dan perancangan selesai dilakukan dan akan

Lebih terperinci

BAB II LANDASAN TEORI. Data adalah deskripsi tentang benda, kejadian, aktifitas, dan transaksi, yang

BAB II LANDASAN TEORI. Data adalah deskripsi tentang benda, kejadian, aktifitas, dan transaksi, yang 9 BAB II LANDASAN TEORI 2.1.1 Pengertian Data Pengertian data adalah : Data adalah deskripsi tentang benda, kejadian, aktifitas, dan transaksi, yang tidak mempunyai makna atau tidak berpengaruh langsung

Lebih terperinci

HTTP Protocol Ketika sebuah alamat web (atau URL) yang diketik ke dalam web browser, web browser melakukan koneksi ke web service yang berjalan pada

HTTP Protocol Ketika sebuah alamat web (atau URL) yang diketik ke dalam web browser, web browser melakukan koneksi ke web service yang berjalan pada Application Layer Application layer adalah lapisan yang menyediakan interface antara aplikasi yang digunakan untuk berkomunikasi dan jaringan yang mendasarinya di mana pesan akan dikirim. Layer ini berhubungan

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Pustaka Berdasarkan dengan judul penelitian oleh penulis mengenai Pengembangan Web api Pada Sistem Assesmen Dan Berbasis Tag Sebagai Pembantu Penyusunan Strategi Pembelajaran

Lebih terperinci

Bab 2 Tinjauan Pustaka

Bab 2 Tinjauan Pustaka Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu Pembahasan mengenai clustering dengan skema load balancing pada web server sudah banyak ditemukan. Salah satu pembahasan yang pernah dilakukan adalah Perancangan

Lebih terperinci

ARSITEKTUR SISTEM. Alif Finandhita, S.Kom, M.T. Alif Finandhita, S.Kom, M.T 1

ARSITEKTUR SISTEM. Alif Finandhita, S.Kom, M.T. Alif Finandhita, S.Kom, M.T 1 ARSITEKTUR SISTEM Alif Finandhita, S.Kom, M.T Alif Finandhita, S.Kom, M.T 1 Sistem Terpusat (Centralized Systems) Sistem Client Server (Client-Server Systems) Sistem Server (Server Systems) Sistem Paralel

Lebih terperinci

SISTEM BASIS DATA 2. WAHYU PRATAMA, S.Kom., MMSI.

SISTEM BASIS DATA 2. WAHYU PRATAMA, S.Kom., MMSI. SISTEM BASIS DATA 2 WAHYU PRATAMA, S.Kom., MMSI. PERTEMUAN 7 SBD 2 Database Control Transaksi. Security Database. Transaksi Transaksi adalah sebuah aksi /serangkaian aksi, yang dilakukan oleh pengguna

Lebih terperinci

PRAKTIKUM SISTEM INFORMASI MANAJEMEN

PRAKTIKUM SISTEM INFORMASI MANAJEMEN MODUL 2 DATABASE Tujuan Praktikum Adapun tujuan dari praktikum modul 2 ini adalah sebagai berikut: a. Mahasiswa diharapkan memahami tentang MySQL b. Mahasiswa dapat membuat database menggunakan MySQL c.

Lebih terperinci

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA TUGAS JARINGAN KOMPUTER Nama : Yonatan Riyadhi NIM : 09011181419009 Kelas : SK 5A Nama Dosen : Dr. Deris Stiawan M.T JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA 2016 CAPTURE DAN

Lebih terperinci

www.tokohpku.info www.klikmyshop.com www.it-webstore.web.id www.it-blog.web.id www.tokohpku.web.id MANUAL VRE GATEWAY

www.tokohpku.info www.klikmyshop.com www.it-webstore.web.id www.it-blog.web.id www.tokohpku.web.id MANUAL VRE GATEWAY MANUAL VRE GATEWAY 1. Buat data kartu misal dengan nama MENTARI GATEWAY 2. Input data produk misal NAMA KARTU MENTARI GATEWAY 3. Kemudian klik simpan II. Setting Data Supplier Vre gateway NAMA= Disesuaikan

Lebih terperinci

BAB II LANDASAN TEORI. konsep dasar dan definisi-definisi yang berkaitan dengan perangkat lunak yang

BAB II LANDASAN TEORI. konsep dasar dan definisi-definisi yang berkaitan dengan perangkat lunak yang BAB II LANDASAN TEORI Pada landasan teori ini diuraikan sejumlah teori untuk membantu dan memecahkan permasalahan yang ada. Beberapa landasan teori tersebut meliputi konsep dasar dan definisi-definisi

Lebih terperinci

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI.

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI. SISTEM BASIS DATA 1 WAHYU PRATAMA, S.Kom., MMSI. PERTEMUAN 6 SBD 1 Structure Query Language (Bagian 1) Pengenalan SQL. Pengelompokkan Perintah SQL. Pengenalan SQL Structure Query Language (SQL) merupakan

Lebih terperinci

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Bab keempat ini berisi penjelasan analisis dan perancangan perangkat lunak yang dibangun dalam tugas akhir ini. Analisis perangkat lunak meliputi deskripsi

Lebih terperinci

BAB III ANALISIS PERMASALAHAN

BAB III ANALISIS PERMASALAHAN BAB III ANALISIS PERMASALAHAN Hal-hal yang dianalisis pada bab ini meliputi: 1. Aspek waktu yang akan digunakan. 2. Fungsi agregasi pada relasi bitemporal. 3. Jenis query retrieval yang mengandung fungsi

Lebih terperinci

BAB 2 LANDASAN TEORI. disebut HTML (HyperText Markup Langauge). Pada perkembangan berikutnya,

BAB 2 LANDASAN TEORI. disebut HTML (HyperText Markup Langauge). Pada perkembangan berikutnya, BAB 2 LANDASAN TEORI 2.1 Aplikasi Web Pada awalnya aplikasi web dibangun dengan hanya menggunakan bahasa yang disebut HTML (HyperText Markup Langauge). Pada perkembangan berikutnya, sejumlah skrip dan

Lebih terperinci

MySQL J A M K E T I G A

MySQL J A M K E T I G A J A M K E T I G A MySQL l Apa itu MySQL? l Membuat User Baru l Membuat Database l Tipe Data MySQL l Membuat Tabel l Structured Query Language l Latihan Jam Ketiga l Soal Jam Ketiga Jam Ketiga Apa itu MySQL?

Lebih terperinci

MANAJEMEN TRANSAKSI. Alif Finandhita, S.Kom

MANAJEMEN TRANSAKSI. Alif Finandhita, S.Kom MANAJEMEN TRANSAKSI Alif Finandhita, S.Kom Konsep Transaksi State Transaksi Implementasi Atomik dan Durabilitas Eksekusi Konkuren Serializability Recoverability Implementasi Isolasi Definisi Transaksi

Lebih terperinci

MODUL I PENGENALAN MYSQL

MODUL I PENGENALAN MYSQL MODUL I PENGENALAN MYSQL A. TUJUAN Mengenal DBMS MySQL dan penggunaannya untuk pengelolaan basis data. Mampu memanfaatkan command-line (client) MySQL. Memahami operasi-operasi DDL dan DML di MySQL B. PETUNJUK

Lebih terperinci

Tujuan Instruksional Khusus :

Tujuan Instruksional Khusus : Tujuan Instruksional Khusus : Mahasiswa dapat menjelaskan tingkatan arsitektur basis data Mahasiswa dapat menjelaskan konsep data independence, komponen DBMS, fungsi DBMS serta bahasa yang digunakan didalam

Lebih terperinci

BAB 2 LANDASAN TEORI. fakta mentah mengenai orang, tempat, kejadian, dan hal-hal yang penting dalam

BAB 2 LANDASAN TEORI. fakta mentah mengenai orang, tempat, kejadian, dan hal-hal yang penting dalam BAB 2 LANDASAN TEORI 2.1 Teori Umum 2.1.1 Database 2.1.1.1 Pengertian Data Menurut Whitten, Bentley, dan Dittman (2004, p23), pengertian dari data adalah fakta mentah mengenai orang, tempat, kejadian,

Lebih terperinci

WEB DINAMIS 1 MANAJEMEN DATABASE MYSQL. Agustina Purwatiningsih., S.Kom

WEB DINAMIS 1 MANAJEMEN DATABASE MYSQL. Agustina Purwatiningsih., S.Kom WEB DINAMIS 1 MANAJEMEN DATABASE MYSQL Agustina Purwatiningsih., S.Kom 1 Pendahuluan Seperti yang dijelaskan pada pertemuan pertama, web dinamis merupakan web yang di desain agar konten yang terdapat dalam

Lebih terperinci

Manajemen Transaksi A. Konsep Transaksi 1. Membuat Tabel account dengan type Innodb

Manajemen Transaksi A. Konsep Transaksi 1. Membuat Tabel account dengan type Innodb Manajemen Transaksi A. Konsep Transaksi Transaksi adalah sebuah unit dari eksekusi program yang mampu mengakses dan mengupdate berbagai data yang memiliki kaitan logika transaksi itu sendiri dimana dalam

Lebih terperinci

Java Database Connectivity (JDBC)

Java Database Connectivity (JDBC) Java Database Connectivity (JDBC) Java Database Connectivity (JDBC) merupakan API yang digunakan untuk mengkoneksikan aplikasi Java dengan DBMS, baik itu MySQL, Oracle, Microsoft ODBC dan DBMS lainnya.

Lebih terperinci

BAB III METODE PENELITIAN. ini, diantaranya adalah dengan langkah-langkah sebagai berikut :

BAB III METODE PENELITIAN. ini, diantaranya adalah dengan langkah-langkah sebagai berikut : BAB III METODE PENELITIAN 3.1 Metode Penelitian Beberapa metode penelitian dilakukan dalam penyelesaian Tugas Akhir ini, diantaranya adalah dengan langkah-langkah sebagai berikut : 3.1.1 Model Model diperlukan

Lebih terperinci

TCP dan Pengalamatan IP

TCP dan Pengalamatan IP TCP dan Pengalamatan IP Pengantar 1. Dasar TCP/IP TCP/IP (Transmision Control Protocol/Internet Protocol) adalah sekumpulan protokol komunikasi (protocol suite) yang sekarang ini secara luas digunakan

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 62 BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Kebutuhan Sistem Hal pertama yang perlu dilakukan dalam analisis kebutuhan sistem adalah menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem

Lebih terperinci