5 BAB II TINJAUAN PUSTAKA Bab ini membahas mengenai teori dan konsep dasar penunjang topik pembahasan, permodelan data, dan topik lainnya yang memiliki relevansi dengan Rancang Bangun Sistem Terdistribusi Pada Apotek. 2.1 State of the art Perancangan basis data terdistribusi untuk barang dan peralatan di Balai Riset dan Standardisasi Indrustri Palembang dilakukan oleh Aman Eriko pada Tahun 2013. Penelitian dilakukan oleh Aman Eriko untuk mempelajari dan menganalisis database yang sedang berjalan dan merancang sebuah sistem database untuk mendukung kebutuhan data dalam proses pencatatan administrasi pada laboratorium dengan sistem database yang lebih terstruktur dan terdistribusi. Metode penelitian yang digunakan diantaranya metode pengumpulan data dan metode implementasi. Metode pengumpulan data meliputi studi pustaka, wawancara dengan pihak-pihak yang terlibat pada Balai Riset dan Standardisasi Indrustri Palembang dan observasi secara langsung proses bisnis yang terjadi dan implemenetasi yang digunakan. Metode implementasi yang digunakan adalah metode System Development Life Cycle atau biasa disebut Macro Life Cycle. Hasil yang dicapai dari perancangan ini adalah menghasilkan sebuah database yang terstruktur dan terdistribusi dengan masing-masing bagian, membantu perusahaan untuk memperoleh informasi tentang permasalahan dan menyelesaikan masalah yang ada dalam sistem pengolahan penjualan, persediaan, pembelian, dan produksi. Penelitian dan Perancangan Implementasi Fragmentasi Horizontal Sistem Basis Data Terdistribusi pada Modul Penjualan Hasil Produksi Unit Usaha Pabrik Gula Cinta Manis Palembang yang ditulis oleh Robiantoro pada Tahun 2013 menggunakan metode deskriptif dan pengembangan sistem dengan metode Prototyping. Kesimpulan dari penelitian dan perancangan tersebut adalah membuatan Sistem Informasi Modul Penjualan Hasil Produksi di Unit Usaha 5 6 Pabrik Gula Cinta Manis dengan menggunakan Fragmentasi Horisontal. Sistem Basis Data Terdistribusi dapat meningkatkan kinerja staff penjualan untuk melakukan pengolahan data, selain itu dapat menghemat waktu dan tenaga untuk pengolahan data serta meminimalkan resiko kehilangan data atau informasi. Perancangan Sistem Replikasi Basis Data Terdistribusi Data Center yang dilakukan oleh Abdul Mubarak, Armin Lawi dan Muhhamad Niswar pada Tahun 2012. Mereka berpendapat bahwa sistem yang mereka rancang berbasis jaringan untuk replikasi basis data masing-masing SKPD sehingga dapat membantu dan mempermudah dalam akses data dan informasi, sistem ini mampu melakukan replikasi basis data antara SKPD dan Data Center sehingga terjadi penyetaraan data serta pemusatan data dalam satu server. Sistem ini memudahkan pihak pelaksana tugas dalam SKPD dan juga pihak eksekutif dalam membuat keputusan karena dengan satu akses dapat mencari semua data yang dibutuhkan bisa tersedia. Diharapkan kepada pihak Pemerintah Daerah untuk menyiapkan sebuah server yang berkapasitas besar baik dalam hal media penyimpanan maupun processor, juga diharapkan dapat menyediakan infrastruktur dan layanan jaringan komputer yang berkapasitas besar sehingga proses transfer data bisa lebih cepat. Sistem ini masih memiliki kekurang dalam hal keamanan sistem jaringan, jadi diharapkan pada peneliti selanjutnya dapat fokus pada bagaimana sistem keamanan dari sistem tersebut, sehingga nantinya sistem ini bisa digunakan lebih baik dan sepenuhnya mendukung e-Government di Indonesia. Penelitian Implementasi Basis Data Terdistribusi Menggunakan MySQL pada PT Thamrin Brothers Palembang Tahun 2012 yang ditulis oleh Efri Darwis, S.Kom., Merry Agustina, M.M., M.Kom., dan A. Mutaqin Bakti, M.M., M.Kom., menggunakan metode penelitian Action Research dan Decision Maker. Implementasi basis data terdistribusi pada penelitian ini mendistribusikan beberapa data dari pusat ke cabang atau sebaliknya. Pendistribusian data dilakukan guna menyamakan persepsi dan sinkronisasi data sehingga antara data yang di pusat dan cabang akan selalu sama. Data yang didistribusikan yaitu seluruh data yang selalu mengalami update setiap hari. Metode distribusi data yang dilakukan dalam penelitian ini yaitu dengan replikasi. Replikasi dilakukan 7 untuk menyamakan struktur data komputer pusat dengan data komputer cabang sehingga antara pusat dan cabang memiliki persepsi data yang sama. Output dari penelitian adalah basis data terdistribusi yang digunakan PT Thamrin Brothers Palembang yang saling terintegrasi secara terdistribusi antara cabang-cabang di seluruh wilayah Sumatera Selatan dan dapat dikembangkan untuk kepentingan operasional perusahaan. Penelitian Sistem Basis Data Terdistribusi juga dilakukan oleh Felix Andreas Sutanto dan Jeffry Alfa Razak pada Tahun 2010 dalam jurnalnya yang berjudul Model Fragmentasi Sistem Basis Data Terdistribusi Studi Kasus Sistem Member Warnet. Penelitiannya membahas mengenai penerapan sistem terdistribusi pada sistem member warnet, sehingga member warnet dapat menggunakan keanggotaannya untuk mendapatkan potongan harga pada semua warnet cabang yang dimiliki oleh pengusaha warnet tersebut. Penerapan sistem basis data terdistribusi didasarkan atas pemikiran skalabilitas dan perkembangan dimasa yang akan datang, baik perkembangan jumlah member maupun perkembangan jumlah cabang pada bisnis warnet tersebut. Sistem terdistribusi merupakan suatu bentuk arsitektur dimana komputer-komputer yang berdiri secara otonom dapat saling berkomunikasi dan berbagi resource tanpa memperdulikan di mana komputer itu berada dan platform yang digunakan. Penelitian ini menerapkan metode fragmentasi horizontal dengan basis data homogen yang untuk selanjutnya akan dikembangkan kembali dengan fragmentasi vertikal atau replikasi dengan menggunakan basis data yang heterogen. Perancangan Sistem Informasi Managemen Apotek yang ditulis oleh Ngurah Budiartha pada Tahun 2007. Perancangan Sistem Informasi Managemen Apotek dibuat menggunakan bahasa pemrograman PHP dan basis data MySQL. Rancangan sistem yang dirancang digunakan untuk internal perusahaan. Sistem membahas mengenai pengolahan data master obat, data transaksi penjualan, transaksi pembelian, transaksi pemesanan, transaksi peracikan obat, transaksi pembuatan resep, dan transaksi retur. Keuntungan diterapkannya Sistem Informasi Manajemen Apotek adalah didapatkannya keuntungan dalam proses pelaporan 8 dan pencarian informasi stok yang lebih cepat dan akurat. Pelaporan dan pencarian yang lebih cepat dapat meningkatkan mutu pelayanan kepada konsumen. Peningkatan mutu pelayanan tersebut membuktikan pentingnya sistem informasi manajemen apotek di dalam megelola sebuah apotek. 2.2 Pengertian Apotik Apotek adalah tempat menjual dan membuat atau meramu obat. Apotek merupakan tempat apoteker melakukan praktik profesi farmasi sekaligus menjadi peritel. Apotek berasal dari kata bahasa Yunani apotheca yang secara harfiah berarti penyimpanan. Tugas dan fungsi utama dari apotek adalah. 1. Tempat pengabdian profesi apoteker yang telah mengucapkan sumpah jabatan. 2. Sarana farmasi yang telah melakukan peracikan, pengubahan bentuk, pencampuran dan penyerahan obat atau bahan obat. 3. Sarana penyalur kebutuhan farmasi yang menyebarkan obat yang diperlukan masyarakat secara meluas dan merata. Pengelolaan apotek dapat beroprasi setelah mendapat ijin Kemenkes. Pengelolaan dan perizinan apotek diatur oleh Permenkes No.26/Menkes/Per/11/1981. Terdapat kegiatan rutin yang berlangsung secara terus menerus dalam pengolahan data obat pada apotek. Kegiatan tersebut adalah pembelian, penjualan, retur beli dan retur jual serta pelaporan. Apotek berkewajiban menyediakan, menyimpan dan menyalurkan hasil farmasi yang bermutu baik dan terjamin mutu kualitasnya. Hasil farmasi yang disalurkan oleh apotek meliputi obat, bahan obat, obat asli Indonesia atau impor. 2.2.1 Penyimpanan Obat Pada Apotek Kegiatan penyimpanan difokuskan pada tujuan agar tetap terjaminnya kualitas obat sekaligus mendukung jalannya proses pelayanan sesuai dengan yang ditetapkan. Kegiatan penyimpanan barang ditetapkan menjadi dua sistem, yaitu: 1. First In First Out (FIFO) dimana barang yang baru diterima disimpan dibagian belakang dari barang yang diterima sebelumnya. 9 2. First Expired First Out (FEFO) barang ditempatkan dan dikelompokkan berdasarkan tanggal kadaluarsa barang. Barang disimpan pada tempat yang bersih, tidak lembab, tidak terkena matahari langsung, dan disusun sistematis (cair atau padat, sesuai alphabet). 2.3 Pengertian Sistem Sistem berasal dari bahasa Yunani (sustema) yang memiliki arti bermacam-macam hal menjadi suatu keseluruhan dengan bagian-bagian yang tersusun. Sistem yaitu masing-masing unit dan keseluruhannya yang merupakan kesatuan yang saling bergantung, saling menentukan, dan membutuhkan. Menurut Jogiyanto H.M (2006) Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu. Menurut Djekky Djoht (2000) Sistem adalah agregasi atau pengelompokan beberapa objek-objek yang dipersatukan oleh beberapa bentuk interaksi yang tetap atau saling tergantung, sekelompok unit yang berbeda yang dikombinasikan sedemikian rupa oleh alamat atau oleh seni sehingga membentuk suatu keseluruhan yang integral dan berfungsi, beroperasi, atau bergerak dalam satu kesatuan. Sedangkan menurut Umar Fahmi Achmadi (2008) sistem adalah tatanan yang menggambarkan adanya rangkaian berbagai komponen yang memiliki hubungan serta tujuan bersama secara serasi yang bekerja atau berjalan dalam jangka waktu tertentu dan terencana. 2.4 Blok Elemen Sistem Sistem terdiri dari kompenen-komponen yang disebut dengan istilah Blok Bangunan (Building Block), Blok Masukan (Input Blok), Block Model (Model Block), Block Keluaran (Output Block), Blok Teknologi, (Tecnology Block), Blok Basisdata (Database Block), dan Blok Kendali (Controls Block). 10 1. Blok Masukan (Input Block) Masukan (input) mewakili data yang masuk ke dalam sistem informasi, input merupakan metode-metode dan media untuk menangkap data yang akan dimasukkan yang berupa dokumen-dokumen dasar. 2. Blok Model (Model Block) Terdiri dari kombinasi prosedur, logika model matematika yang akan memanipulasi data input dan data yang tersimpan di basis data dengan cara yang sudah tertentu untuk menghasilkan keluaran yang diinginkan. 3. Blok Keluaran (Output Block) Produk dari sistem informasi adalah keluaran yang merupakan informasi yang berkualitas dan dokumentasi yang berguna untuk semua tingkatan manajemen serta semua pemakai sistem. 4. Blok Teknologi (Technology Block) Teknologi merupakan kotak alat (tool box) dalam sistem informasi, Teknologi digunakan untuk menerima input, menjalankan model, menyimpan, dan mengakses data, menghasilkan dan mengirimkan keluaran dan membantu pengendalian dari sistem secara keseluruhan. Teknologi terdiri dari tiga bagian utama, yaitu teknisi (humanware atau brainware), perangkat lunak (software) dan perangkat keras (hardware). 5. Blok Basis Data (Database block) Merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan dalam perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya dengan menggunakan perangkat lunak paket yang disebut dengan DBMS (Database Management Sistem). 6. Blok Kendali (Controls Block) Mengendalikan sistem agar terhindar dari hal-hal yang tidak diinginkan (kesalahan-kesalahan, tidak efisien, dan lain sebagainya) dengan merancang pengendalian untuk meyakinkan bahwa hal-hal yang dapat merusak sistem dapat dicegah dan diatasi. 11 Gambar 2.1 Blok Sistem Informasi 2.5 Klasifikasi Sistem Sistem dapat diklasifikasikan dari beberapa sudut pandang diantaranya adalah. 1. Sistem Abstrak dan Sistem Fisik Sistem Abstrak adalah sistem yang berupa pemikiran atau ide-ide yang tidak tampak secara fisik. Sistem Fisik adalah sistem yang ada secara fisik. 2. Sistem Alamiah dan Sistem Buatan Manusia Sistem Alamiah adalah sitem yang terjadi melalui proses alam. Sistem Buatan Manusia adalah sistem yang dirancang oleh manusia. Sistem buatan manusia yang melibatkan interaksi antara manusia dengan mesin disebut dengan human machine system atau ada yang menyebut dengan machine system. 3. Sistem Tertentu dan Sistem Tak Tentu Sistem Tertentu beroperasi dengan tingkah laku dengan tingkah laku yang sudah banyak diprediksi. Sistem Tak Tentu adalah sistem yang kondisi masa depannya tidak dapat diprediksi karena mengandung unsur probabilitas. 4. Sistem Terbuka dan Sistem Tertutup Sistem Tertutup adalah sistem yang tidak berhubungan dan tidak terperngaruh dengan lingkungan luar. Sistem Terbuka adalah sistem yang berhubungan dan terpengaruh oleh lingkungan luar. 12 2.6 Sistem Terdistribusi Informasi dalam sebuah perusahaan atau instansi merupakan sesuatu yang sangat penting guna mendukung perkembangan perusahaan. Kurangnya mendapatkan informasi dalam waktu tertentu mengakibatkan perusahaan atau instansi akan mengalami ketidakmampuan mengontrol sumber daya yang pada akhirnya akan mengalami kekalahan dalam persaingan dengan lingkungan persaingannya. Hampir semua sistem berbasis komputer yang besar saat ini menggunakan sistem terdistribusi (sistem tersebar). Sistem terdistribusi adalah sistem dimana pemrosesan informasi didistribusiikan pada beberapa komputer dan tidak terbatas hanya pada satu mesin saja. Sistem terdistribusi memiliki banyak kesamaan dengan rekayasa perangkat lunak lainnya tetapi ada isu-isu khusus yang harus diperhitungkan ketika merancang tipe sistem terdistribusi. Dewasa ini, masih banyak sistem besar yang masih menggunakan sistem tersentral yang berjalan pada satu mainframe dengan terminal-terminal yang terhubung kepadanya. Sistem tersebut banyak memiliki kelemahan karena terminal-terminal hanya sedikit memiliki kemampuan pemrosesan data dan semua tergantung pada komputer di sentral. Menurut Harsiti (2009), ciri-ciri basis data terdistribusi yaitu: 1. Data disimpan di sejumlah tempat. 2. Prosessor pada tempat yang berbeda tersebut dihubungan dengan jaringan komputer. 3. Sistem basis data terdistribusi bukan terdiri dari sekumpulan file yang berada pada berbagai tempat tetapi pada sebuah basis data di berbagai tempat. 4. Setiap tempat secara mandiri memproses permintaan user yang membutuhkan akses ke data di tempat tersebut dan juga mampu untuk memproses data yang tersimpan di tempat lain. Hingga saat ini terdapat 3 tipe sistem utama dalam basis data terdistribusi, yaitu: 1. Sistem personal yang tidak terdistribusi dan dirancang untuk satu workstation saja. 13 2. Sistem Embedded yang berjalan pada satu prosessor atau pada kelompok prosessor yang terintegrasi. 3. Sistem Terdistribusi di mana perangkat lunak sistem berjalan pada kelompok prosessor yang bekerja sama dan terintegrasi secara fleksibel, dengan dihubungkan oleh jaringan. Contohnya sistem ATM Bank atau Sistem penjualan tiket. Menurut Coulouris et.al (1994), enam karakteristik yang penting untuk sistem terdistribusi yaitu: 1. Resource Access and Sharing Kemampuan menggunakan hardware, software atau data di mana dan kapanpun. Karakteristik ini juga yang menentukan siapa saja yang dapat mengakses sebuah resource dalam sebuah sistem terdistribusi. Salah satu contohnya dalam sebuah web, terdapat htaccess yang hanya dapat diakses oleh user yang telah memiliki grant access terhadap file tersebut. 2. Openness (Keterbukaan) Sebuah keterbukaan dalam sistem terdistribusi memiliki pengertian kemampuan sebuah sistem dalam mengembangkan fleksibilitas terhadap peningkatan kinerja sebuah sistem. Seperti penambahan module baru dan ketersediaan extension/plugin yang dapat terkoneksi dengan sistem lain. Contoh karakteristik ini misalkan sebuah aplikasi web banking yang dapat terhubung dengan sistem web milik perusahaan finance. 3. Concurrency Semua proses dalam sistem terdistribusi dilakukan secara concurrency (secara bersama). Concurrency yang dimaksud dalam hal ini dilakukan untuk mencegah inkonsistensi dan ketidakpastian sebuah data dan proses. Sebagai contoh dalam sebuah aplikasi web yang diakses oleh banyak user. Ketika server melakukan sebuah update. Maka semua user yang mengakses halaman web tersebut akan langsung mendapatkan update terbaru tersebut. 14 4. Scalability Scalabilitas memiliki pengertian bahwa sebuah sistem terdistribusi harus dapat ditingkatkan kinerjanya tanpa mengubah komponen-komponen di dalamnya. Sebagai contoh sebuah aplikasi web yang digunakan oleh user yang terlalu banyak, maka untuk meningkatkan kinerja dari web tersebut agar tidak terjadi overload atau down system maka perlu dilakukan upgrade processor dan RAM. Ketika proses upgrade tersebut, komponen dalam web tidak perlu diubah. 5. Fault Tolerance (Toleransi Kesalahan) Kesalahan pasti terjadi dalam sebuah sistem. Kesalahan disebabkan karena masalah jaringan, power supply, bencana alam atau human error. Sebuah sistem terdistribusi dirancang memliki kemampuan untuk menangani halhal tersebut. Contoh dalam hal ini adalah dibangunnya sebuah clustering server. Ketika server utama mengalami down karena beberapa penyebab kesalahan, maka extended server langsung membackup sistem utama dan menggantikannya. 6. Transparency Transparansi secara umum tidak berlaku untuk user biasa yang mengutamakan fungsionalitas, apakah ia sedang menggunakan sistem yang terdistribusi atau tidak, namun secara khusus bagi seorang pengelola baik itu developer atau administrator sistem sangat perlu untuk mengetahui arsitektur dari sistem yang sedang digunakan karena untuk mempermudah bagi mereka dalam mengembangkan dan memelihara sistem tersebut. 2.7 Arsitektur Sistem Terdistribusi Terdapat dua pendekatan alternatif untuk membagi fungsi pada proses DBMS yang berbeda. Dua arsitektur alternatif DBMS terdistribusi adalah ClientServer dan Collaboration Server. 15 2.7.1 Client Server Sistem client server mempunyai satu atau lebih proses client dan satu atau lebih proses server, sebuah proses client dapat mengirim query ke sebuah proses server seperti pada Gambar 2.2. Client bertanggung jawab pada antar muka untuk user, sedangkan server mengatur data dan mengeksekusi transaksi sehingga proses client berjalan pada sebuah personal komputer dan mengirim query ke sebuah server yang berjalan pada mainframe. Gambar 2.2 Arsitektur Client Server Arsitektur ini relatif sederhana untuk diiplemetasikan karena adanya pemisahan fungsi yang jelas dan server yang tersentralisasi, sehingga pengguna akan lebih nyaman menggunakan antarmuka grafis pada client. Caching pada server diperlukan untuk memperlancar layanan server dan mengurangi overhead komunikasi. 2.7.2 Collaboration Server Arsitektur client-server tidak mengijinkan satu query mengakses banyak server karena proses client harus dapat membagi sebuah query ke dalam beberapa subquery untuk dieksekusi pada tempat yang berbeda dan kemudian membagi jawaban ke subquery. Proses client cukup komplek dan terjadi overlap dengan server, sehingga perbedaan antara client dan server menjadi jelas. Alternatif yang digunakan untuk mengurangi perbedaan tersebut yaitu dengan sistem Collaboration Server. Arsitektur sistem ini terdapat sekumpulan server basis data 16 yang menjalankan transaksi data lokal yang bekerjasama mengeksekusi transaksi pada beberapa server seperti pada Gambar 2.3. Server menerima query yang membutuhkan akses ke data pada server lain, sistem membangkitkan subquery yang dieksekusi server lain dan mengambil hasilnya bersama-sama untuk menggabungkan jawaban menjadi query asal. Gambar 2.3 Arsitektur Collaboration Server 2.8 Tipe Basis Data Terdistribusi Terdapat dua tipe dalam basis data terdistribusi. Tipe basis data terdistribusi yaitu: 1. Homogen yaitu sistem dimana setiap tempat menjalankan tipe DBMS yang sama. 2. Heterogen yaitu sistem dimana setiap tempat yang berbeda menjalankan DBMS yang berbeda, baik Relational DBMS (RDBMS) atau non relational DBMS. Gambaran basis data terdistribusi yang heterogen dapat dilihat pada Gambar 2.4. 17 Gambar 2.4 Database Terdistribusi Heterogen 2.9 Penyimpanan Data Sistem Terdistribusi Penyimpanan data pada DBMS terdistribusi, relasi disimpan pada beberapa tempat. Pengaksesan relasi yang disimpan pada remote side mengakibatkan mahalnya biaya untuk melewatkan pesan tersebut dan untuk menguranginya maka sebuah relasi dipartisi atau difragmentasi ke beberapa tempat dengan fragmen dikirim ke tempat di mana fragmen tersebut sering diakses atau replika pada setiap tempat di mana relasi tersebut menjadi kebutuhan yang utama. 2.9.1 Fragmentasi Fragmentasi terdiri dari relasi yang dibagi ke relasi atau fragmen yang lebih kecil dan mengirim fragmen ke beberapa tempat. Terdapat dua macam fragmentasi, fragmentasi horizontal dan fragmentasi vertikal. Fragmentasi horisontal, setiap fragmen terdiri dari sebuah subset baris dari relasi asal. Fragmentasi vertikal, setiap fragment terdiri dari sebuah subset kolom dari relasi asal. Fragmentasi horisontal dan vertikal diilustrasikan pada Gambar 2.5. Gambar 2.5 Ilustrasi Fragmentasi Vertikal dan Horizontal Sebuah relasi bila difragmentasi, harus meliputi relasi asal dari fragmen, yaitu: 18 1. Fragmentasi Horisontal yaitu union dari fragmen horisontal harus sama dengan relasi asal. Fragmen biasanya dibutuhkan disjoint. 2. Fragmentasi Vertikal yaitu koleksi fragmen vertikal dekomposisi losslessjoin. Sistem harus menyediakan id_tupel yang unik untuk setiap tupel dalam relasi asli untuk menjamin fragmentasi vertikal lossless-join. Field ini ditambahkan ke setiap fragmen vertikal jika relasi asal tambahan idtupel sebagai kunci, sehingga dekomposisinya lossless-join. 2.9.2 Replikasi Replikasi berarti menyimpan beberapa copy sebuah relasi atau fragmen relasi. Keseluruan relasi dapat direplikasi pada satu atau lebih tempat. Sebagai contoh, jika relasi R difragmentasi ke R1, R2 dan R3, kemungkinan terdapat hanya satu copy R1, di mana R2 adalah replikasi pada dua tempat lainnya dan R3 replikasi pada semua tempat. Replikasi dapat diilustrasikan pada Gambar 2.6 di bawah ini. Gambar 2.6 Ilustrasi Replikasi Kegunaan replikasi antara lain adalah: 1. Meningkatkan ketersediaan data, jika sebuah tempat yang berisi replika melambat, maka dapat menemukan data yang sama pada tempat lain. Demikian juga jika copy lokal dari relasi yang di remote tersedia, maka tidak terpengaruh saluran komunikasi yang gagal. 2. Evaluasi query yang lebih cepat, query dapat mengeksekusi lebih cepat menggunakan copy local dari relasi termasuk ke remote site. 19 2.10 Replikasi Data Raplikasi Data dapat dicontohkan jika Table A direplikasi dan salinan dari table tersebut tersimpan dalam dua atau lebih server. User dapat memiliki replikasi penuh (full replication), jika salinan dari table A tersebut disimpan pada semua server yang ada di dalam sistem. Keuntungan dan kerugian metode replikasi antara lain: 1. Ketersediaan yang tinggi (Availability) Ketersediaan yang tinggi jika sebuah server yang berisi tabel A mengalami kerusakan, maka table yang sama masih dapat kita peroleh dari server yang lain. 2. Peningkatan proses paralel (Increased Parallelism) Peningkatan proses paralel pada kasus di mana pengaksesan ke table A pada umumnya hanya berupa proses pembacaan data, maka pemrosesan query pada server-server yang melibatkan tabel A tersebut dapat di eksekusi secara paralel (bersamaan). 3. Peningkatan beban pengubahan data (Increased Overhead On Update) Sistem harus dapat menjaga konsistensi semua salinan dari tabel A tersebut. Artinya jika table A diubah, maka perubahan tersebut harus di jalankan ke semua lokasi yang memiliki salinan tabel A. Replikasi akan memperbaiki performansi dari operasi query (pembacaan data) dan meningkatkan ketersediaan data khususnya untuk transaksi-transaksi pembacaan (read-only). 2.11 MYSQL MySQL adalah aplikasi open source multi threaded sistem manajemen basis data relasional yang dibuat oleh Michael Monty Widenius pada Tahun 1995. Tahun 2000 MySQL dirilis di bawah model dual lisensi yang mengijinkan masyarakat untuk menggunakan secara gratis di bawah GNU General Public Lisensi (GPL). Fitur yang menonjol adalah kecepatan. Perbandingan dari beberapa basis data termasuk MySQL, Oracle, MsSQl, IBM DB2, dan Sybase ASEMySQL seluruhnya terkait kerja untuk skalabilitas terbesar. SQL atau Structur 20 Query Language merupakan bahasa query standar yang digunakan untuk mengakses basis data relasional (Kadir,2003:101), sedangkan MySQL adalah sebuah sistem database. Kelebihan dari MySQL adalah dapat berjalan di berbagai sistem operasi, dapat digunakan secara gratis, bersifat multi-user, memiliki kecepatan dalam menangani query sederhana, memiliki tipe data yang banyak, keamanan data, dapat menangani basis data dalam skala besar, dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, UNIX, dan NT, serta memiliki struktur tabel yang fleksibel. 2.12 Data Flow Diagram (DFD) Data Flow Diagram atau diagram alir data (DFD/DAD) adalah sebuah teknis grafis yang mengambarkan aliran informasi dan transformasi yang di aplikasikan pada saat bergerak dari input menjadi output. DFD dikenal sebagai grafik aliran data atau bubble chart (Pressman, 2002 : 364). Tujuan perancangan Data Flow Diagram (DFD) yaitu: a. Untuk memberikan indikasi mengenai bagaimana data ditransformasikan pada saat data bergerak melalui sistem. b. Untuk mengambarkan fungsi-fungsi (subsistem) yang mentransformasikan aliran data. 21 Gambar 2.7 Simbol DFD atau DAD 1.13 Standard Operational Procedure (SOP) Standard Operating Procedure (SOP) adalah dokumen tertulis yang memuat prosedur kerja secara rinci, tahap demi tahap, dan sistematis. SOP memuat serangkaian instruksi secara tertulis tentang kegiatan rutin atau berulangulang yang dilakukan oleh sebuah organisasi. SOP juga dilengkapi dengan referensi, lampiran, formulir, diagram dan alur kerja. SOP sering juga disebut sebagai manual SOP yang digunakan sebagai pedoman untuk mengarahkan dan mengevaluasi suatu pekerjaan. Fungsi dari SOP adalah untuk menjelaskan secara detail mengenai proses kerja yang berlangsung secara rutin yang harus diikuti dalam suatu perusahaan atau organisasi. Tujuan dari SOP adalah sebagai berikut: 22 1. Menjaga konsistensi dan tingkat kinerja petugas atau tim dalam organisasi atau unit. 2. Mengetahui dengan jelas peran dan fungsi setiap posisi dalam organisasi. 3. Memperjelas alur tugas, wewenang dan tanggung jawab dari petugas terkait. 4. Melindungi organisasi dan staf dari malpraktek atau kesalahan administrasi lainnya. 5. Menghindari kegagalan atau kesalahan, keraguan, duplikasi dan inefisiensi. Bentuk simbol flowchart yang digunakan dalam pembuatan SOP dapat dilihat pada Tabel 2.1. Tabel 2.1 Simbol Flowchart No Lambang Nama Keterangan 1. Terminal Menunjukkkan awal atau akhir suatu proses 2. Manual Operation Melakukan proses secara manual 3. Manual Input Menunjukan proses masukan data manual 4. Display Menampilkan data Process Menunjukkan proses pelaksanaan instruksi 6. Decision Menunjukkkan proses pemilihan alternatif atau pengecekan kondisi 7. Predefined Process Menunjukkan proses yang telah didefinisikan 5. 23 8. On-page Connector Merupakan penghubung pada satu halaman 9. Off-page Connector Merupakan penghubung pada halaman lain 10. Document Merupakan dokumen (arsip) dari hasil proses 11. Arrow Merupakan arah aliran proses Flowchart merupakan gambaran dengan menggunakan simbol. Berdasarkan Tabel 2.1 setiap simbol menggambarkan proses tertentu. Flowchart dapat memperjelas urutan poses suatu kegiatan, sehingga ketika ada penambahan proses maka dapat dilakukan dengan lebih mudah. 2.14 Perancangan Basis Data Perancangan basis data merupakan proses menciptakan perancangan untuk basis data yang akan mendukung operasi dan tujuan perusahaan. Perancangan suatu basis data menggunakan metodologi-metodologi yang membantu dalam tahap perancangan basis data. Metodologi perancangan adalah pendekatan struktur dengan menggunakan prosedur, teknik, alat, serta bantuan dokumen untuk membantu dan memudahkan dalam proses perancangan. Penggunaan teknik metode disain ini dapat membantu dalam merencanakan, mengatur, mengontrol, dan mengevaluasi database development project. Perancangan basis data dilakukan melalui 3 tahap, yaitu konseptual, logikal dan fisikal. 2.14.1 Perancangan Basis Data Konseptual Perancangan basis data konseptual adalah proses membangun model informasi yang digunakan di dalam perpustakaan, bebas dari semua pertimbangan 24 fisikal. Menurut Connolly dan Begg (1998), perancangan konseptual basis data adalah proses membangun sebuah model dari informasi yang digunakan oleh perusahaan. Langkah-langkah perancangan basis data konseptual yaitu: 1. Identifikasi tipe entity Tipe entity adalah sekumpulan objek yang diindentifikasi oleh sebuah perusahaan atau perorangan yang mempunyai sifat-sifat yang sama dan mempunyai keberadaan yang independent, entitas tersebut bisa berupa entitas strong dan weak. 2. Identifikasi tipe relationship. 3. Identifikasi dan hubungan atribut dengan tipe Entity atau Relationship. 4. Menentukan atribut domain. 5. Menentukan kandidat dan atribut primary key. 6. Mempertimbangkan kegunaan dari konsep Enhanced Modeling. Penggunaan konsep Enchaned Modeling seperti spesialisasi, generalisasi, agregasi, dan komposisi. 7. Periksa model untuk redundancy. 8. Validasikan model konseptual lokal yang bertentangan dengan transaksi pengguna. 9. Mengulang model data konseptual lokal dengan pengguna. 2.14.2 Perancangan Basis Data Logikal Perancanan basis data logikal adalah proses membangun model informasi yang dibangun perusahaan berdasarkan dari beberapa model data yang spesifik, tetapi bebas dari fakta DBMS dan pertimbangan fisikal lainnya. Menurut Connolly dan Begg (1998), perancangan logikal basis data merupakan proses membangun sebuah model informasi yang digunakan dalam sebuah perusahaan berdasarkan pada sebuah model data yang spesifik, tetapi tidak bergantung pada sebuah DBMS tertentu dan pertimbangan-pertimbangan fisik lainnya. Langkah pokok dari perancangan basis data logikal untuk relational model mencakup: 1. Membuat dan memvalidasi model data logikal lokal untuk setiap bagian, membuat dan memvalidasi model data logikal global. Sebuah model data 25 logikal termasuk Entity Relationship Diagram (ERD), skema relational, dan dokumen pendukung, seperti kamus data yang terbentuk dalam pengembangan model. 2. Membangun dan memvalidasi model data logikal global. Menggabungkan tiap model data logikal lokal ke dalam satu model data logikal global yang menggambarkan keseluruhan perusahaan. 2.14.3 Perancangan Basis Data Fisikal Perancangan basis data fisikal adalah proses memproduksi sebuah deskripsi mengenasi implementasi dari basis data yang berada di secondary storage, mendeskripsikan relasi dasar, organisasi file, dan indeks yang digunakan untuk pengaksesan data yang efisien dan penggabungan beberapa batasan dan sistem keamanan. Perancangan fisik basis data merupakan proses yang menghasilkan sebuah deskripsi implementasi dari basis data pada secondary storage yang menggambarkan relasi dasar, organisasi file, dan indeks yang digunakan untuk mencapai akses yang efisien ke data, dan penggabungan batasan integritas dan ukuran keamanan. 6 tahap secara gasir besar dalam membangun desain fisik basis data yaitu: 26 1. Mengubah model data logikal global untuk target DBMS Bertujuan menghasilkan sebuah sistem basis data relational dari model data logikal global yang dapat diimplementasikan dalam target DBMS. 2. Merancang representasi fisik Bertujuan menentukan organisasi file yang optimal untuk menyimpan relasi dasar dan indeks yang diperlukan untuk mencapai performance yang diinginkan, untuk itu akan ditentukan relasi dan tuple mana yang ada pada secondary storage 3. Perancangan user view Bertujuan merancang user view yang diidentifikasikan selama pengumpulan kebutuhan-kebutuhan dan tahap analisis dari siklus aplikasi basis data relational. 4. Perancangan mekanisme keamanan Bertujuan merancang mekanisme keamanan untuk basis data seperti yang ditentukan oleh user. Relational DBMS secara umum menyediakan dua tipe keamanan basis data yaitu: a. Keamanan sistem yang mencakup akses dan penggunaan basis data pada level sistem, seperti username dan password. b. Keamanan data yang mencakup akses dan penggunaan objek basis data (seperti relasi dan view) dan aksi yang dapat dilakukan user terhadap objek. 5. Mempertimbangkan adanya pengontrolan redundancy Bertujuan untuk menentukan apakah redundancy dalam batasan yang terkendali dengan menggunakan teknik normalisasi akan meningkatkan performance dari sistem. 6. Memonitor dan menyesuaikan sistem operasi Bertujuan untuk mengawasi sistem operasional dan meningkatkan kinerja dari sistem untuk memperbaiki kebutuhan perancangan yang tidak sesuai atau merefleksikan perubahan. 27 2.15 Derajat Relasi Perancangan basis data mengenal istilah ratio cardinalitas yang mengatur tentang hubungan atau relasi antar entitas. Hubungan antar entitas tersebut terdiri dari tiga buah relasi, yaitu sebagai berikut: 1. Relasi Satu Ke Satu (one to one) Relasi satu ke satu yaitu hubungan satu entitas A dihubungkan dengan maksimum satu entitas B saja, peleburan ini didasarkan pada penyertaan atribut ke salah satu tabel yang entitasnya memiliki derajat minimum paling besar. Relasi satu ke satu ditunjukan pada Gambar 2.8. Gambar 2.8 Relasi One to One 2. Relasi Satu ke banyak (one to many) Relasi dikatakan one-to-many bila setiap entitas pada himpunan entitas A1 dapat berhubungan dengan banyak entitas pada himpunan entitas B1 dan B2, tetapi tidak sebaliknya, di mana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A. Relasi ini merupakan relasi yang paling umum terjadi dalam database. Relasi one-to-many ini boleh membentuk tabel baru dan boleh juga tidak. Relasi one to many dapat digambarkan pada Gambar 2.9. 28 Gambar 2.9 Relasi One to Many 3. Relasi Banyak ke Banyak (many to many) Merupakan hubungan saling memiliki lebih dari satu dari setiap instansi entitas terhadap instansi entitas lainnya. Selain relasi antara dua entitas, terdapat juga hubungan terhadap entitasnya sendiri yang disebut dengan recursive relationship (self-relation). Hubungan ini dapat mempunyai tipe biner. Relasi dikatakan many-to-many bila sebuah record pada tabel A berhubungan dengan lebih dari satu record di tabel B dan record di tabel B berhubungan dengan lebih dari satu record di tabel A seperti yang ditunukan oleh Gambar 2.10. Gambar 2.10 Relasi many to many 29 2.16 Key Key adalah sebuah atau gabungan dari beberapa atribut atau field yang dapat membedakan semua record dalam table secara unik. Key artinya apabila suatu atribut dijadikan sebagai key maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama untuk atribut tersebut. Pembuatan program basis data harus disertai dengan penentuan kunci di mana kunci tersebut sangat berperan penting dalam menentukan keunikan dari suatu atribut dalam tabel atau entitas yang berelasi. Beberapa jenis kunci dalam basis data adalah sebagai berikut: 1. Super Key Super Key merupakan satu atau lebih atribut yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. 2. Candidate Key Candidate Key merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Sebuah Cadidate Key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi super key yang lain. Candidate Key pastilah Super Key, tetapi belum tentu sebaliknya. 3. Primary Key Primary Key adalah satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasi secara unik suatu kekadian spesifik, tetapi juga dapat mewakili setiap kejadian dari suatu entity. Setiap kunci kandidat dapat menjadi kunci primer tetapi sebaliknya sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entity yang ada. 4. Alternate Key Alternate Key adalah Candidate Key yang tidak dijadikan Primary Key dan merupakan kunci kandidat yang tidak dipakai sebagai kunci primer. Kunci alternatif ini sering digunakan untuk kunci pengurutan misalnya dalam laporan. 30 5. Composite Key Composite Key adalah Key yang terdiri dari dua atribut atau lebih, dimana atribut-atribut tersebut bila berdiri sendiri tidak menjadi indentitas record, namun bila dirangkaikan menjadi satu kesatuan yang dapat mengidentifikasikan record secara unik. 6. Foreign Key Foreign Key adalah non-key pada sebuah relasi yang juga menjadi primary key atribut pada relasi lainnya. Foreign Key biasanya digunakan sebagai penghubung antara record-record dari kedua relasi tersebut.kunci tamu ditempatkan pada entity anak dan sama dengan kunci primer induk yang direlasikan. Hubungan antara entity induk dengan anak adalah hubungan satu lawan banyak (one to many relationship). 2.17 Normalisasi Normalisasi adalah suatu proses untuk mengubah suatu tabel yang memiliki masalah tertentu ke dalam dua buah tabel atau lebih, yang tidak lagi memiliki masalah tersebut. Masalah tersebut biasanya merupakan suatu ketidakkonsistenan (tidak normal) apabila dilakukan penghapusan (delete), pengubahan (update) dan pembacaan (retrieve) pada suatu basis data. Tahapan Normalisasi yaitu: 1. Tahapan Normalisasi Bentuk Pertama Bentuk Normal ini dilakukan pada form tabel yang memiliki redudansi yang tinggi dan ada atribut yang memiliki nilai data null, sehingga normalisasi ini dilakukan untuk mengelompokkan setiap atribut yang bernilai tunggal untuk setiap baris dan menghilangkan field yang bernilai null. Tabel 2.2 Normalisasi Bentuk Pertama (1nf) id_barang Nama_barang Harga Jenis 76164217 Marlboro 14500 Rokok 89960013 Choki-choki 13000 Coklat 89970250 Big Cola 3000 Minuman 31 2. Tahapan Normalisasi Bentuk Kedua Syarat dilakukannya Normalisasi kedua adalah apabila tabel tersebut telah berada pada bentuk normal pertama dan semua atribut bukan kunci (key) memiliki dependensi sepenuhnya terhadap kunci primer. Tabel 2.3 Normalisasi Bentuk Kedua (2nf) (1) id_barang Nama_barang Harga Jenis 76164217 Marlboro 14500 Rokok 89960013 Choki-choki 13000 Coklat 89970250 Big Cola 3000 Minuman Tabel 2.4 Normalisasi Bentuk Kedua (2nf) (2) 3. id_barang Nama_barang 76164217 Marlboro 89960013 Choki-choki 89970250 Big Cola Tahapan Normalisasi Bentuk Ketiga Syarat dilakukannya Normalisasi bentuk kedua adalah apabila tabel tersebut telah berada pada bentuk normal kedua dan semua atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer. Tabel 2.5 Normalisasi Bentuk Ketiga (3nf) (1) id_barang Harga Jenis 76164217 14500 Rokok 89960013 13000 Coklat 89970250 3000 Minuman Tabel 2.6 Normalisasi Bentuk Ketiga (3nf) (2) id_barang Nama_barang 76164217 Marlboro 89960013 Choki-choki 89970250 Big Cola Tabel 2.7 Normalisasi Bentuk Ketiga (3nf) (3) Jenis Rokok Coklat Minuman 32 2.18 DDL (Data Definition Language) DDL MySQL termasuk dalam perintah membuat, merubah dan menghapus struktur dalam database. Statement DDL mendefinisikan struktur dari MySQL database dan menentukan tipe data apa saja yang dapat disimpan ke database serta bagaimana menyimpan data. Secara khusus statement DDL berfungsi untuk: 1. Membuat dan menghapus database (Create Database, Drop Database) 2. Membuat, memperbaiki atau merubah, dan menghapus tabel (Create Table, Alter Table, Rename Table, Drop Table) 3. Membuat dan menghapus index (Create Index, Drop Index) DDL digunakan untuk mendefinisikan kerangka database. Statement DDL antara lain yaitu Create, Alter, dan Drop. Berikut adalah penjelasan dari statement DDL. 2.18.1 Create Perintah Create digunakan untuk membuat database atau tabel baru pada suatu sintaks MySQL. Contoh penggunaan sintaks Create dalam membuat database baru adalah sebagai berikut. CREATE DATABASE nama_database; Kode Program 2.1 Sintaks Pembuatan Database contoh penggunaan sintaks Create adalah sebagai berikut: CREATE DATABASE db_kasir; Kode Program 2.2 Contoh Penggunaan Sintaks Pembuatan Database Sintaks lain yang menggunakan perintah Create adalah untuh membuat tabel baru. Sintaks yang digunakan adalah sebagai berikut: CREATE TABLE <nama_tabel>( <Nama_kolom_1><tipe_data(ukuran)>, <Nama_kolom_2><tipe_data(ukuran)>, ..., <Nama_kolom_n><tipe_data(ukuran)> ); Kode Program 2.3 Sintaks Pembuatan Tabel 33 Contoh penggunaan sintaks Create tabel adalah sebagai berikut: CREATE TABLE infoprib( NIPvarchar(10), Nama varchar(50), Tgl_lahir date, Alamat varchar(50) ); Kode Program 2.4 Contoh Sintaks Pembuatan Tabel 2.18.2 Alter Statement Alter digunakan untuk mengubah struktur tipe data suatu tabel ataupun nama kolom dari tabel tersebut. Sintaks yang digunakan adalah sebagai berikut: ALTER TABLE <nama_tabel> CHANGE<nama_kolom_lama><nama_kolom_baru> <tipe_data>; Kode Program 2.5 Sintaks Alter Tabel Contoh penggunaan sintaks Alter adalah: ALTER TABLE barang CHANGE Nama Stok Varchar(50); Kode Program 2.6 Contoh Sintaks Alter Tabel 2.18.3 Drop Statement Drop digunakan untuk menghapus tabel maupun menghapus database, perintah Drop dapat juga digunakan untuk menghapus kolom suatu tabel dengan digabungkan dengan statement alter. Statemen Drop memiliki banyak contoh sintaks diantaranya adalah untuk menghapus database seperti yang ditunjukkan oleh sintaks berikut: DROP <nama_database>; Kode Program 2.7 Sintaks Drop Database 34 Sintaks untuk menghapus tabel: DROP <nama_tabel>; Kode Program 2.8 Sintaks Drop Tabel 2.19 DML (Data Manipulation Language) DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data record pada tabel. Perintah dasar DML antara lain Select, Insert, Delete, Update. 2.19.1 Select Perintah Select berfungsi untuk mendapatkan daftar row (record) pada satu atau lebih tabel dan bisa diikutkan dengan sintaks query union dan subquery lainnya. Gambaran umum sintaks select sebagai berikut: SELECT [ALL | DISTINCT] [FROM table_references] [WHERE where_condition] [CHARACTER SET charset_name] Kode Program 2.9 Daftar Perintah Select Beberapa penjelasan dari sintaks Select di atas adalah: 1. Select Merupakan sintaks utama yang berfungsi untuk menerima daftar row (record) yang ada pada tabel dengan diikuti dengan nama field (column) dan parameter yang mengikutinya. SELECT * FROM `nama_tabel` Kode Program 2.10 Contoh Perintah Select 2. All Distinct Perintah All berfungsi menambahkan aturan khusus untuk menampilkan semua record. Perintah All adalah perintah default jika tidak memasukkan perintah Distinct. SELECT ALL `nama_kolom` FROM `nama_tabel` Kode Program 2.11 Contoh Perintah SELECT ALL 35 Perintah Distinct berfungsi untuk menambahkan aturan khusus untuk menampilkan daftar record dengan record unik saja (tidak ada record dengan nilai sama). Biasanya digunakan untuk menampilkan record pada field tertentu. SELECT DISTINCT `nama_kolom` FROM `nama_tabel` Kode Program 2.12 Contoh Perintah Select Distinct 3. From Perintah From berfungsi untuk memilih tabel yang digunakan sebagai referensi pada perintah Select. SELECT `nama_kolom` FROM `nama_tabel` Kode Program 2.13 Contoh Perintah Select From 4. Where Perintah Where berfungsi untuk menambahkan parameter tertentu pada sintaks yang diketik. SELECT `nama_kolom` =‘nilai’ FROM `nama_tabel` WHERE `nama_kolom` Kode Program 2.14 Contoh Perintah Select ... Where 5. Charset Perintah Charset berfungsi untuk menampilkan daftar baris (record) dengan character set tertentu yang dideklarasikan pada sintaks. SELECT `nama_kolom` FROM `nama_tabel` CHARSET Kode Program 2.15 Contoh Perintah Select Charset 2.19.2 Insert Perintah Insert berfungsi untuk memasukkan baris (record) baru ke dalam tabel. Gambaran umum sintaks Insert yaitu: INSERT[INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr [, col_name=expr] ... ] Kode Program 2.16 Daftar Lengkap Perintah Insert 36 Beberapa penjelasan pada sintaks INSERT adalah sebagai berikut: 1. Insert Merupakan sintaks utama pada sintaks memasukan baris atau kolom. Berfungsi untuk memasukkan data (record) pada tabel. INSERT INTO `nama_tabel` (`nama_kolom_1`, `nama_kolom_2`, …) VALUES (‘nilai_1’, ‘nilai_2’, …) Kode Program 2.17 Contoh Perintah Insert 2. Into Perintah Into berfungsi untuk menentukan tabel tujuan untuk memasukkan row (record) baru. INSERT INTO `nama_tabel` (`nama_kolom_1`, `nama_kolom_2`, …) VALUES (‘nilai_1’, ‘nilai_2’, …) Kode Program 2.18 Contoh Perintah Insert Into 3. Values Perintah Values berfungsi untuk menentukan nilai yang dimasukkan ke dalam tabel. Urutan nilai yang dimasukkan harus sesuai dengan urutan field pada perintah Into. INSERT INTO `nama_tabel` (`nama_kolom_1`, `nama_kolom_2`, …) VALUES (‘nilai_1’, ‘nilai_2’, …) Kode Program 2.19 Contoh Perintah Insert Values 4. On Duplicate Key Update Perintah On Duplicate Key Update berfungsi untuk melakukan update (penggantian) pada record sebelumnya jika ada record yang memiliki nilai primary key yang sama. Perintah ini harus menyertakan ekspresi untuk mengganti nilai primary key yang lama. INSERT INTO `nama_tabel` (`nama_kolom_1`, `nama_kolom_2`, …) VALUES (‘nilai_1’, ‘nilai_2’, …) ON DUPLICATE KEY UPDATE `nama_tabel` = `nama_tabel` + 3 Kode Program 2.20 Contoh Perintah Insert On Duplicate Key Update 37 2.19.3 Update Perintah Update berfungsi untuk melakukan pembaharuan (update) nilai pada baris (row) yang sudah ada pada tabel. Gambaran umum sintaks update adalah sebagai berikut: UPDATE table_references SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] Kode Program 2.21 Daftar Lengkap Perintah UPDATE Beberapa Penjelasan pada sintaks Update adalah sebagai berikut: 1. Update Merupakan sintaks utama dalam sintaks perubahan data. Berfungsi untuk melakukan pembaharuan (update) nilai pada baris (row) yang sudah ada pada tabel. UPDATE `nama_tabel` SET `nama_kolom` = `nilai_baru_1` Kode Program 2.22 Contoh Sintaks Update 2. Set Perintah Set berfungsi untuk menentukan kolom (field) mana saja yang akan di-update beserta nilai baru yang akan dimasukkan pada tabel. Perintah ini juga dapat melakukan update pada beberapa field sekaligus dalam sekali update. UPDATE `nama_tabel` SET `nama_kolom_1` = ‘nilai_baru_1’, `nama_kolom_2` = ‘nilai_baru_2’, ..., `nama_kolom_n` = ‘nilai_baru_n’ WHERE `nama_kolom_acuan` = ‘nilai_acuan’ Kode Program 2.23 Contoh Sintaks Update Set 3. Where Perintah Where berfungsi untuk menentukan kolom dan nilai acuan untuk menentukan update data. Perintah ini akan meng-update semua record dengan nilai yang ditentukan pada tabel dan field, jika tidak ada kolom dan nilai yang ditentukan. UPDATE `nama_tabel` SET `nama_kolom_1` = ‘nilai_baru_1’, `nama_kolom_2` = ‘nilai_baru_2’, ..., `nama_kolom_n` = ‘nilai_baru_n’ WHERE `nama_kolom_acuan` = ‘nilai_acuan’ Kode Program 2.24 Contoh Perintah Update Where 38 2.19.4 Delete Perintah Delete berfungsi untuk menghapus record dengan nilai dari field tertentu dari suatu tabel. Semua record akan terhapus jika tidak memasukkan nilai where tertentu pada perintah Delete. Gambaran umum sintaks Delete yaitu: DELETE FROM tbl_name[.*] [, tbl_name[.*]] ... [WHERE where_condition] Kode Program 2.25 Daftar Lengkap Perintah Delete Beberapa Pejelasan pada sintaks Delete adalah sebagai berikut: 1. Delete Merupakan sintaks utama dalam sintaks hapus data record. Berfungsi untuk melakukan penghapusan record dengan nilai dari field tertentu dari suatu tabel. DELETE FROM `nama_tabel` Kode Program 2.26 Contoh Perintah Delete 2. From Perintah From berfungsi untuk menentukan tabel mana yang record-nya akan dihapus. DELETE FROM `nama_tabel` Kode Program 2.27 Contoh Perintah Delete From 3. Where Perintah Where berfungsi untuk menentukan nilai acuan pada field untuk menentukan record mana yang akan dihapus. DELETE FROM `nama_tabel` WHERE `nama_kolom` `nilai_acuan` Kode Program 2.28 Contoh Perintah Delete Where 2.20 = DCL (Data Control Language) DCL merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel, maupun field. Perintah dasar DCL antara lain Grant dan Revoke. 39 2.21 Kontrol Replikasi Skenario replikasi kontrol harus memiliki algortima yang jelas karena algoritma tersebut harus menjaga konsistensi data yang terdapat pada database tersebut. Cara untuk meminimalisasi terjadinya inkonsistensi adalah dengan cara melihat apakah ada atau tidak salinan data yang identik satu sama lain. Dua pendekatan untuk mengontrol replikasi adalah. 2.21.1 Kontrol Replikasi Sinkron Mode replikasi sinkron memungkinkan pertukaran data secara real-time sehingga sinkronisasi suatu data akan terjaga, saat ada transaksi operasional yang sedang menulis sesuatu ke database sumber, maka saat yang bersamaan penulisan juga dilakukan terhadap database target yang ada di lokasi remote. Keseluruhan proses penulisan pada database sumber dan database target harus selesai terlebih dahulu sebelum beranjak ke transaksi operasional selanjutnya dan diberi acknowledge untuk keduanya jika telah selesai. Mode replikasi sinkron membutuhkan pertimbangan performansi sistem yang tinggi. Selain itu jarak antara database sumber dan database target juga menjadi prasyarat utama. Keuntungan dari mode replikasi ini adalah menyediakan recovery yang konsisten dan lengkap untuk semua jangka waktu. Kelebihan dan kekurangan menggunakan replikasi sinkron antara lain: 1. Semua copy data selalu teridentifikasi. 2. Data terkini secara cepat di-update ke seluruh replika melalui jaringan. 3. Baik digunakan untuk integritas data. Teknik dasar untuk menjamin transaksi menghasilkan satu hasil dan tidak bergantung pada akses terhadap data atau replika data yang digunakan dalam perhitungan transaksi. Teknik pertama disebut voting, transaksi harus menulis mayoritas data dan replikanya dan membaca minimal satu replika yang dianggap paling mutakhir. Replikasi Sinkron contoh jika 10 replika data dan 7 replika ditulis oleh transaksi update, maka 4 data lainnya juga harus ditulis. Setiap replika mempunyai nomor versi. Replika dengan nomor versi tertinggi dianggap paling 40 mutakhir. Teknik ini akan terjadi banyak proses pembacaan, padahal proses pembacaan sangat diperlukan pada transaksi berikutnya. Teknik kedua disebut read-any write-all, artinya untuk proses pembacaan cukup melibatkan satu replika, tetapi ketika proses tulis harus melibatkan semua replika. Proses pembacaan dapat dilakukan dengan cepat apalagi pembacaan data lokal, tetapi proses tulis lebih lama. Teknik ini lebih populer, karena proses baca lebih sering dibutuhkan dibandingkan proses tulis. 2.21.2 Kontrol Replikasi Asinkron Mode Replikasi Asinkron memungkinkan pertukaran data secara buffering dalam artian bahwa data akan diletakkan dalam sebuah penampung sementara terlebih dahulu, kemudian pada jangka waktu tertentu akan direplikasi ke disk target. Data yang direplikasi ke disk target tidak membutuhkan acknowledgement agar penulisan transaksi operasional pada disk sumber dapat berlangsung kembali, sehingga mode replikasi ini tidak menjamin sinkronisasi suatu data pada dua pihak yang terlibat karena jika suatu saat terjadi crash pada salah satu pihak dan data belum sempat direplikasi maka data yang terdapat pada kedua pihak tidak bisa dikatakan sebagai sebuah data yang sinkron. Performansi sistem dapat meningkatkan, namun lebih memiliki banyak risiko, jika hal ini terjadi maka recovery yang cukup rumit dilakukan, namun tidak menjamin data hasil recovery adalah data yang benar dan konsisten karena ada kemungkinan hilangnya beberapa data. Keuntungan dari mode replikasi ini adalah efektivitas biaya. Kelebihan dan kekurangan Replikasi Asinkron antara lain: 1. Mentoleransi data yang tidak konsisten. 2. Perkembangan data terkini yang tertunda tidak langsung terupdate. 3. Integritas data rendah. 2.22 Algoritma Replikasi Kontrol Algoritma replikasi kontrol telah dipelajari dan diusulkan dalam banyak literatur. Algoritma replikasi kontrol fokus pada pendekatan penyediaan kontrol replikasi sinkron. Algoritma dapat dikatergorikan dalam dua ketegori kontrol 41 yakni terpusat dan tersdistribusi. Dalam pendekatan tersentralistik atau terpusat, kontrol diberikan ke satu lokasi, sementara dalam pendekatan terdistribusi kontrol adalah bersama di antara lokasi. Definisi dari arsitekur replicated database environment (DBE) adalah sebagai berikut. 2.22.1 Pertimbangan Arsitekutural Database dapat sepenuhnya atau sebagian direplikasi. Sebuah database yang direplikasi menyimpan satu salinan lengkap dari database di setiap server database. Database yang sebagian direplikasi, di sisi lain tidak menyimpan dari beberapa tabel database pada setiap situs, sebaliknya beberapa tabel atau beberapa fragmen tabel akan disalin dan disimpan pada dua atau lebih situs. Gambar 2.11 Ilustrasi Penempatan Replikasi Data 2.22.2 Algoritma Replikasi Master-Slave Algortima Master-Slave diusulkan pertama kali oleh C. Ellis. Gambar 2.11 menunjukan ada satu lokasi yang berperan sebagai master server dan dan slave server. Algoritma Master berjalan hanya pada satu lokasi dan dia bertanggu jawab untuk mendeteksi adanya konflik data, sedangkan algoritma slave menyimpan salinan data dari master. Server slave atau cadangan terletak pada beberapa lokasi yang berbeda. Dua fase untuk menjalankan algoritma ini yaitu fase transaksi peneriman atau penolakan dan fase transaksi aplikasi. C. Ellis menggunakan diagram notasi yang dikenal sebagai net evaluation. Kotak mewaliki peristiwa, lingkaran mewaliki negara, panah besar mewakili tugas dan panah kecil mewakili transisi atau perpindahan. Sebuah titik di samping panah 42 besar menunjukan satu pesan yang di kiri sebagai salah satu tindakan dalam tugas, sementara itu tiga titik (elipsis) menunjukan broadcast seperti yang dapat dilihat pada Gambar 2.12 berikut. Gambar 2.12 Algoritma Replikasi Master-Slave 2.22.3 Tahap Transaksi Penerimaan atau Penolakan terpusat Transaksi lokal memonitoring dan mengirimkan permintaak ke slave atau cadangan saat suatu situs meminta untuk menjalankan transaksi. Slave mengirimkan permintaan untuk master dan bertanya apakah dapat menjalankan transaksi ini setelah menerima permintaan. Kotak Berlabel “Ext REQ” pada Gambar 2.12 menunjukan proses penerimaan atau penolakan. Pendeteksian konflik saat transaksi berjalan, master mempertahankan antrian tertunda dari tansaksi tersebut, antrian ini membuat master dapat memilih apakah transaksi tersebut dapat diterima atau tidak. Master menerima permintaan dari slave, maka master akan memeriksa konflik yang terjadi pada transaksi dan semua transaksi yang sudah diantriannya, jika permintaan baru tidak bertentangan atau konflik dengan transaksi yang sudah ada diantrian maka master memperbolehkan transaksi tersebut ke dalam antrian transaksi berikutnya dan mengirimkan “ACK +”. Master akan mersepon dengan mengirim “ACK-” ke pada slave jika terjadi konflik satu dengan yang lainnya maka slave akan menolak transaksi respon dari master tidak menguntukngkan atau bernilai minus. 43 2.23 Topologi Distribusi Data Sistem database terdistribusi hanya mungkin dibangun dalam sebuah jaringan komputer. Topologi dalam sebuah sistem jaringan komputer dikenal untuk menentukan bagaimana konfigurasi atau keterhubungan antara satu simpul jaringan (node/site) dengan simpul-simpul lainnya. Setiap simpul dalam kaitannya dengan sistem database terdistribusi mewakili sebuah server yang memiliki disk dengan sistem database sendiri (lokal). Setiap server akan membentuk sebuah LAN (Local Area Network) untuk mengakomodasi sejumlah workstation dan sekaligus user lokal. Bentuk dari Topologi Distribusi Data antara lain: 1. Fully Connected Network Fully Connected Network memiliki keuntungan jika salah satu node rusak, node yang lainnya masih dapat berjalan tetapi berbiaya mahal dalam membangun toplogi. Kerugian dari Fully Connected Network adalah kontrol management data tidak terjamin. Topologi Fully Connected Network dapat dilihat pada Gambar 2.13. Gambar 2.13 Fully Connected Network 2. Partialy Connected Network Partialy Connected Network memiliki keuntungan reliability yang rendah, dan biaya trafik jaringan dapat diminimalisasikan. Topologi Partialy Connected Network dapat dilihat pada Gambar 2.14. 44 Gambar 2.14 Partialy Connected Network 3. Tree Structured Network Tree Structured Network memiliki keuntungan yaitu bersifat tersentralisasi sehingga kontrol management lebih terjamin. Kerugiannya jika node pusat (A) rusak, semua akan rusak. Topologi Tree Structured Network dapat dilihat pada Gambar 2.15. Gambar 2.15 Tree Structured Network 4. Ring Network Ring Network memiliki keuntungan jika rusak satu node, node lain masih berjalan, tetapi memiliki kerugian kontrol management kurang terjamin karena bersifat desentralisasi. Topologi Ring Network dapat dilihat pada Gambar 2.16. 45 Gambar 2.16 Ring Network 5. Star Network Star Network memiliki keuntungan dalam hal control management yang lebih terjamin, karena bersifat sentral dan reliability yang rendah. Kerugian Star Network adalah jika pusat rusak, node lainnya juga rusak. Topologi Star Network dapat dilihat pada Gambar 2.17. Gambar 2.17 Star Network Perbedaan utama di antara topologi di atas terletak pada: 1. Biaya Instalasi, yaitu biaya dalam membangun hubungan (link) antar simpul. 2. Biaya Komunikasi, yaitu waktu dan biaya dalam pengoperasian sistem berupa pengiriman data dari satu simpul ke simpul lainnya. 3. Kehandalan, yaitu dalam hal frekuensi atau tingkat kegagalan komunikasi yang terjadi. 46 4. Ketersediaan, yaitu tingkat kesiapan data yang dapat diakses sebagai antisipasi kegagalan komunikasi. Sebagaimana yang ditunjukkan pada penjelasan di atas, dapat disimpulkan setiap simpul atau server memiliki basis data sendiri-sendiri, yang terpisah secara geografis tetapi harus menyatu secara fungsional. Terdapat 2 jenis transaksi dalam sebuah database terdistribusi yang mungkin terjadi yaitu: 1. Transaksi Lokal yaitu transaksi yang mengakses database di server yang sama dengan server dari mana transaksi tersebut dijalankan. 2. Transaksi Global yaitu transaksi yang membutuhkan pengaksesan data di server yang berbeda dengan server di mana transaksi tersebut dijalankan, atau transaksi dari sebuah server yang membutuhkan pengaksesan data ke sejumlah server lainnya. 2.24 PHP (Hypertext Preprocessor) PHP merupakan bahasa pemograman yang bersifat server script atau server side dan tersembunyi di dalam server. PHP pertama kali diciptakan oleh Rasmus Lerdorf pada Tahun 1994. PHP dapat digunakan pada semua sistem operasi antara lain Linux, Unix (termasuk variannya HP-UX, Solaris, dan Open BSD), Microsoft Windows, Mac OS, RICS OS. PHP juga mendukung banyak Webserver seperti Apache, Microsoft Internet Information Server (MIIS), Personal Web Server (PWS), Netcape and iPlanet servers, Oreilly Website Pro Server, audium, xitami, Omni HTTPD. 2.24 JavaScript Java Script adalah bahasa skrip yang populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman website dengan penggunaan tag SCRIPT. JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape dibawah nama Mocha, yang nantinya namanya diganti menjadi LiveScript, dan akhirnya menjadi JavaScript. Navigator sebelumnya telah mendukung Java untuk lebih bisa dimanfaatkan para 47 programmer nonjava. Maka dikembangkanlah bahasa pemrograman bernama LiveScript untuk mengakomodasi hal tersebut. Bahasa pemrograman inilah yang akhirnya berkembang dan diberi nama JavaScript. JavaScript bisa digunakan untuk banyak tujuan, misalnya untuk membuat efek rollover baik di gambar maupun teks, dan yang penting juga adalah untuk membuat AJAX. JavaScript adalah bahasa yang digunakan untuk AJAX. 2.25 JQuery JQuery adalah javascript library, JQuery mempunyai semboyan “write less, do more”. JQuery dirancang untuk memperingkas kode-kode Javascript. JQuery adalah javascript library yang cepat dan ringan untuk menangani dokumen HTML, menangani event, membuat animasi dan interakasi Ajax.