You are on page 1of 14

Contoh Konversi Data dari ISIS ke Senayan

Jangan-jangan kau menolak cintaku Jangan-jangan kau hiraukan pacarmu Putuskanlah saja pacarmu Lalu bilang I love you, padaku Putuskan Saja Pacarmu ST 12 Pendahuluan Salah faktor yang sering ditanyakan dan penulis alami jika seseorang atau sebuah institusi mencoba beralih menggunakan aplikasi perpustakaan Open Source Senayan (http://senayan.diknas.go.id) adalah bagaimana memindahkan data dari basisdata yang lama ke basisdata Senayan yang menggunakan MySQL (http://dev.mysql.com) sebagai back-end-nya. Sebenarnya tidaklah sulit dan seorang pustakawan seharusnya punya kecakapan yang cukup untuk itu. Karena terkait dengan penguasaan text processing dan basisdata. There is more than one way to do it! Ada banyak cara untuk melakukan konversi data dari ISIS ke Senayan. Bisa dengan format XML, CSV, SQL, atau dipadukan dengan bahasa pemrogaman lain untuk advanced parsing seperti Perl dan PHP. Tulisan ini akan memberikan contoh konversi senayan dalam format yang verbose sehingga terkadang terlihat bertele-tele karena terlalu panjang. Akses ke basisdata dilakukan secara langsung menggunakan interface phpMyAdmin (yang sudah tersedia di portable senayan) dan command-line, tidak menggunakan interface yang disediakan dalam aplikasi Senayan. Tentu jadinya lebih sulit dipelajari. Tapi menawarkan pembelajaran yang lebih baik mengenai struktur basisdata Senayan. Oiya, diasumsikan bahwa di komputer anda sudah terinstall portable senayan dengan aplikasi Senayan3-stable5 yang berjalan dengan baik. Juga ada software WinISIS (versi yang digunakan 1.5 build 3). Juga diasumsikan basisdata bibliografi Senayan anda masih kosong, belum bercampur dengan data lain. Back-up Data Terlebih Dahulu Sebelum melakukan proses konversi jangan pernah berasumsi semuanya akan berjalan lancar. Biasanya selalu ada masalah (besar dan kecilnya masalah sangat tergantung beragam kondisi). Karena itu jangan pernah begitu saja membuang basisdata lama anda. Manajemen waktu juga penting. Jika aplikasi lama anda bersistem sewa, jangan melakukan konversi setelah masa sewa habis. Lakukan sebelum masa sewa habis. Atau sebelum deadline pindah aplikasi (ke senayan tentunya). Sebelum eksekusi proses konversi, biasakan back-up data terlebih dahulu. Di ISIS, proses backup data relatif mudah dilakukan. Kalau dari sisi aplikasi, misalnya dengan WinISIS, bisa dengan melakukan Database Export dan menyimpannya dalam format iso. Cara lain dengan melakukan copy folder data (jika anda menyimpan data isis sesuai dengan default instalasi ISIS) dan menyimpan di tempat lain. Atau sekalian semua folder WinISIS nya di copy dan disimpan di tempat lain. Usul saya, lakukan saja semuanya. Untuk berjaga-jaga. Bukankah sesal kemudian tiada berguna. :)

Pembersihan Data Salah satu kekurangan ISIS adalah belum jika pengguna menghapus suatu record, maka record tersebut tidak akan otomatis hilang dan tidak bisa digunakan untuk record lain. Dengan WinISIS record yang dihapus masih bisa dilihat tapi tidak dengan aplikasi lain. Misalnya Igloo (http://senayan.diknas.go.id/igloo), akan gagal membaca data tersebut karena diasumsikan sudah dihapus. Sehingga seringkali pengguna Igloo komplain, kok di WinISIS jumlahnya tidak sama dengan di Igloo. Dalam proses konversi usahakan agar nomor urut record (MFN) berurutan. Karena itu data record yang sudah dihapus wajib dibersihkan terlebih dulu. Untuk membersihkannya, pertama lakukan

Export) dan simpan file iso-nya. Kemudian hapus semua record ( Utils Erase Database). Kemudian import (Database Import) kembali file iso hasil
export data terlebih dulu (Database eksport. Mudah-mudahan sekarang data isis anda telah bersih. Struktur Basisdata ISIS Untuk mulai melakukan konversi, maka kita harus mempelajari terlebih dahulu mempelajari struktur basisdata-nya. Untuk kemudahan penulisan mari kita mempelajari basisdata yang sama. Silahkan download basisdata ISIS untuk penulisan ini di [link_ke_file_isis_zip_atau_rar]. Nama basisdata-nya adalah buku.

File di ISIS yang mendefinisikan struktur field ada di *.fdt yang isinya teks biasa. Coba buka file buku.fdt dengan editor teks, akan tampak seperti dibawah ini: W:BUKU F:BUKU JUDUL KIRIM SELFLTPNR1 CBUKU BUKUEKCEK F:WIN SUBYEKPGBK CKBK OPR CKBK2 S:BUKU RUBAH TES *** 008/35-37 Bahasa 008/005 Tanggal ISBN ab No. Kendali a Kode Bahasa abh No. Panggil a No. Panggil Setempat lab Entri Utama [Orang] aq Entri Utama Badan Korporasi ab Entri Utama Nama Pertemuan andc J u d u l abc E d i s i ab Penerbit dan Distribusi abc Deskripsi Fisik abce S e r i anvx Catatan Umum ab Entri Tambahan Subyek axyz Jenis Koleksi Kata Kunci a Entri Tambahan [Orang] aq Entri Tamb. Badan Korporasi ab Entri Tamb. Konperensi andc Badan Pemilik a Jumlah Eksemplar abc Kode Operator Nomor Induk a Nomor Registrasi a Barcode Lokasi Cover Buku File Harga Buku

CIRCK1OPAC

990 15 0 0 980 20 0 0 20 100 0 0 35 20 0 0 41 30 0 0 80 50 0 1 99 50 0 0 100 100 0 0 110 200 0 0 111 200 0 0 245 200 0 0 250 150 0 0 260 200 0 0 300 100 0 0 440 150 0 0 500 200 0 1 650 200 0 1 550 100 0 0 695 200 0 1 700 200 0 1 710 200 0 1 711 200 0 1 850 150 0 1 985 50 0 1 986 10 0 0 998 50 0 1 999 200 0 1 900 1000 0 1 901 1000 0 0 911 1000 0 0 912 1000 0 0 913 1000 0 0

Oke, setelah mempelajari struktur basisdata isis-nya, sekarang saatnya kita mulai satu persatu melakukan konversi. MFN dan Judul Mari kita berasumsi bahwa pada setiap record pasti field Judul (245) mempunyai value alias terisi. Dengan begitu yang paling mudah adalah memindahkan judul ke basisdata Senayan. Dan setiap record di ISIS pasti mempunyai MFN. MFN itu kalau di MySQL mirip field dengan jenis integer yang diset auto increment atau autonumber kalau di MS Access. Model format apa yang akan digunakan untuk konversi-nya? Untuk mudahnya kita akan menggunakan format yang kita definisikan sendiri. Yaitu antara MFN dengan Judul dipisahkan dengan 3 karakter pipe (|). Tabel di basisdata Senayan untuk menyimpan judul adalah biblio dengan field title. Formatnya kira-kira akan seperti ini:

mfn_disini|||judul_disini Sekarang pada WinISIS lakukan proses pencetakan (Database Print). Isi bagian MFN Range (misal: 1-10000), Output diarahkan ke file dengan format ASCII File dan uncheck Pre-defined Format. Pada bagian Print Format, isi dengan: mfn,'|||',v245^a,": ",v245^b,"; ",v245^c/ Kemudian klik print. Berikutnya tentukan nama dan letak file hasil print. Kemudian klik OK.

Jika proses print selesai, klik Close. Hasil konversi akan tampak seperti berikut ini: 000001|||Assessment tools: for practitioners, managers and trainers; Armand Lauffer 000002|||NEEDS assessment: a model for community planning; Keith A. Neuber 000003|||PLANNING for change; by Ray Bard, et.al 000004|||Program implementation: the organizational context; Mary Ann Scheirer 000005|||EVALUATION of complex system; Ronald J. Wooldridge, editor 000006|||Science and technology: promise and dangers in the eighties; Panel on Science and Technology Promise and Dangers 000007|||ASSESSING and interpreting outcomes; by Samuel Ball, guest editor 000008|||TOWARD reform of program evaluation: aims, methods and institutional arrangements 000009|||Benefit-cost analysis for program evaluation; Mark S. Thompson 000010|||Evaluating with validity; Ernest R. House Lebih detail silahkan file file [url_ke_file] Untuk memasukkan MFN dan judul hasil konversi, kita akan membuat sepotong skrip PHP yang fungsinya membaca file hasil konversi, membaca baris perbaris, melakukan parsing, kemudian memasukkan ke dalam basisdata senayan.
<?php /* /* /* /* /* /* ----------------------------------------------------Skrip PHP untuk melakukan konversi data MFN dan Judul License under GNU/GPL http://www.gpl.org Copyright Hendro Wicaksono 2008 Nama File: mfn_jdul_parser.php ----------------------------------------------------*/ */ */ */ */ */

/* Class untuk koneksi ke MySQL */ class mysqldb { # Variabel yang dibutuhkan public $host = "localhost"; # ubah sesuai kondisi public $user = "root"; # ubah sesuai kondisi public $pwd = "psenayan"; # ubah sesuai kondisi public $dbname = "senayan"; # ubah sesuai kondisi public $connection = ""; public $selection = ""; public $sql = ""; public $query = ""; # Konstruktor function __construct($mfn, $title) { $this->connection = mysql_connect ($this->host, $this->user, $this->pwd); $this->selection = mysql_select_db($this->dbname); $this->sql = "INSERT INTO biblio (biblio_id, title) VALUES (\"$mfn\", \"$title\")"; $this->run_query(); } function run_query() { $this->query = mysql_query($this->sql); } } # mendefinisikan letak file hasil konversi # ubah sesuai kondisi $file_hasil_konversi = "c:\winisis\work\mfn_jdul.txt";

# membuka file dan membaca read-only $handle = @fopen("$file_hasil_konversi", "r"); if ($handle) { # membaca perbaris, berhenti pada end of line while (!feof($handle)) { # menyimpan record perbaris $buffer = fgets ($handle, 4096); # menghilangkan spasi dll diawal & akhir $buffer = trim($buffer); # memotong antara mfn dengan judul dengan pemisah "|||" $record = explode ("|||", $buffer); if ($buffer != "") { # menghilangkan spasi dll diawal & akhir $record[0] = trim ($record[0]); # menghilangkan spasi dll diawal & akhir $record[1] = trim ($record[1]); # menambahkan backslash pada karakter quote $record[1] = addslashes($record[1]); if ($record[1] == "") { $record[1] = 'Judul tidak tersedia. Lihat database ISIS dengan MFN '.$record[0]; } echo 'Memasukkan data dengan:'."\n"; echo 'MFN: '.$record[0]."\n"; echo 'Judul: '.$record[1]."\n"; $insert_data = new mysqldb($record[0], $record[1]); } } fclose ($handle); } ?>

Untuk kemudahan proses, jalankan skrip PHP ini dari command-line. Diasumsikan portable senayan diinstall di drive D dan anda sedang berada di dalam folder yang sama dengan skrip PHP yang dibuat, maka perintahnya: d:\psenayan\php\php.exe mfn_jdul_parser.php Silahkan dilihat basisdata Senayan menggunakan phpMyAdmin atau OPAC di Senayan untuk melihat apakah proses input telah berhasil.

Field Lain-lain di Tabel biblio Oke, jika konversi judul dan mfn sudah berjalan baik, sekarang kita mengkonversi field lain yang letaknya hanya di tabel biblio, tidak terkait dengan tabel-tabel lain. Antara lain: Field di basisdata ISIS ISBN (v20) No Panggil (v80) No Panggil Setempat (v99) Edisi (v250) Penerbit dan Distribusi (tahun terbit, v260^c) Deskripsi Fisik (v300) Seri (v440) Catatan Umum (v500) Field di basisdata Senayan (tabel biblio) isbn_issn classification call_number edition publish_year collation series_title notes

Seperti sebelumnya, antar field akan dipisahkan dengan 3 karakter pipe (|). Outputnya nanti kembali akan di parsing dengan skrip PHP. Sekarang pada WinISIS lakukan proses pencetakan (Database Print). Isi bagian MFN Range (misal: 1-10000), Output diarahkan ke file dengan format ASCII File dan uncheck Pre-defined Format. Pada bagian Print Format, isi dengan: mfn,'|||', v20^a,'|||', v80^a,'|||', v99^l," ",v99^a," ",v99^b,'|||', v250^a,", ",v250^b,'|||', v260^c,'|||', v300^a,", ",v300^b,", ",v300^c,", ",v300^e,'|||', v440^a,": ",v440^n,", ",v440^v,", ",v440^x,'|||', v500^a,"; ",v500^b/ Kemudian klik print. Berikutnya tentukan nama dan letak file hasil print. Kemudian klik OK.

Jika proses print selesai, klik Close. Hasil konversi akan tampak seperti berikut ini:
001811||||||||| 001812||||||||| 001813||||||||| 001814||||||||| 001815||||||||| 001816||||||||| 001817||||||||| 001818||||||||| 001819||||||||| 001820||||||||| 808.82 DRA||||||1973|||xi, 258lm., 24 cm.|||||| 820 ADV||||||1973|||xviii, 867 hlm., 24 cm.|||||| 821.008 CIA h|||2 nd.ed|||1975|||xxiii, 408 hlm., 24 cm.|||||| 808 MOO h|||2 nd.ed|||1971|||vii, 276 hlm., 23 cm.|||||| 907 NAT t||||||1988|||1 paket (1 buku + lamp), 30 cm.|||||| 907.2 ILM||||||1985|||xxiv, 327 hlm., ill., 21 cm.|||||| 909 ISR w||||||1976|||xi, 566 hlm., ill., 26 cm.|||||| 910.02 ABR e||||||1975|||267 hlm., ill., 27 cm.|||||| 910.021 ABR h||||||1977|||vii, 407 hlm., ill., 26 cm.|||||| 910.03 SCH n||||||1975|||viii, 595 hlm., ill., 26 cm.||||||

Lebih detail silahkan file file [url_ke_file] Untuk memasukkan hasil konversi, kita akan membuat sepotong skrip PHP yang fungsinya membaca file hasil konversi, membaca baris perbaris, melakukan parsing, kemudian memasukkan ke dalam basisdata senayan.
<?php /* /* /* /* /* /* ----------------------------------------------------Skrip PHP untuk melakukan konversi data bibliografi License under GNU/GPL http://www.gpl.org Copyright Hendro Wicaksono 2008 Nama File: lain2_parser.php ----------------------------------------------------*/ */ */ */ */ */

/* Class untuk koneksi ke MySQL */ class mysqldb { # Variabel yang dibutuhkan public $host = "localhost"; # ubah sesuai kondisi public $user = "root"; # ubah sesuai kondisi public $pwd = "psenayan"; # ubah sesuai kondisi public $dbname = "senayan"; # ubah sesuai kondisi public $connection = ""; public $selection = ""; public $sql = ""; public $query = ""; # Konstruktor function __construct($mfn, $isbn, $np, $nps, $ed, $tt, $df, $seri, $cat) { $this->connection = mysql_connect ($this->host, $this->user, $this->pwd); $this->selection = mysql_select_db($this->dbname); $this->sql = "UPDATE biblio SET isbn_issn=\"$isbn\", classification=\"$np\", "; $this->sql .= "call_number=\"$nps\", edition=\"$ed\", publish_year=\"$tt\", "; $this->sql .= "collation=\"$df\", series_title=\"$seri\", "; $this->sql .= "notes=\"$cat\" WHERE biblio_id=\"$mfn\"";

$this->run_query();

function run_query() { $this->query = mysql_query($this->sql); }

# mendefinisikan letak file hasil konversi # ubah sesuai kondisi $file_hasil_konversi = "c:\winisis\work\lain2.txt"; # membuka file dan membaca read-only $handle = @fopen("$file_hasil_konversi", "r"); if ($handle) { # membaca perbaris, berhenti pada end of line while (!feof($handle)) { # menyimpan record perbaris $buffer = fgets ($handle, 4096); # menghilangkan spasi dll diawal & akhir $buffer = trim($buffer); # memotong antara mfn dengan judul dengan pemisah "|||" $record = explode ("|||", $buffer); if ($buffer != "") { # menghilangkan spasi dll diawal & akhir $record[0] = trim ($record[0]); # MFN $record[1] = trim ($record[1]); # ISBN -> isbn_issn $record[2] = trim ($record[2]); # no panggil -> classification $record[3] = trim ($record[3]); # no panggil setempat -> call_number $record[4] = trim ($record[4]); # edisi -> edition $record[5] = trim ($record[5]); # tahun terbit -> publish_year $record[6] = trim ($record[6]); # deskripsi fisik -> collation $record[7] = trim ($record[7]); # seri -> series_title $record[8] = trim ($record[8]); # catatan umum -> notes # menambahkan backslash pada karakter quote $record[1] = addslashes($record[1]); $record[2] = addslashes($record[2]); $record[3] = addslashes($record[3]); $record[4] = addslashes($record[4]); $record[5] = addslashes($record[5]); $record[6] = addslashes($record[6]); $record[7] = addslashes($record[7]); $record[8] = addslashes($record[8]); $record[1] = intval($record[1]); echo 'Memasukkan data dengan:'."\n"; echo 'MFN: '.$record[0]."\n"; echo 'ISBN: '.$record[1]."\n"; echo 'No Panggil: '.$record[2]."\n"; echo 'No Panggil Setempat: '.$record[3]."\n"; echo 'Edisi: '.$record[4]."\n"; echo 'Tahun Terbit: '.$record[5]."\n"; echo 'Deskripsi Fisik: '.$record[6]."\n"; echo 'Seri: '.$record[7]."\n"; echo 'Catatan Umum: '.$record[8]."\n"; $insert_data = new mysqldb($record[0], $record[1], $record[2], $record[3], $record[4], $record[5], $record[6], $record[7], $record[8]); } } fclose ($handle); } ?>

Untuk kemudahan proses, jalankan skrip PHP ini dari command-line. Diasumsikan portable senayan diinstall di drive D dan anda sedang berada di dalam folder yang sama dengan skrip PHP yang dibuat, maka perintahnya: d:\psenayan\php\php.exe lain2_parser.php

Silahkan dilihat basisdata Senayan menggunakan phpMyAdmin atau OPAC di Senayan untuk melihat apakah proses input telah berhasil.

One-to-many relationship (part 1: GMD) Oke sekarang kita melangkah ke konversi yang lebih kompleks. Yaitu melakukan konversi data ke field yang di aplikasi Senayan disimpan dalam tabel terpisah dari tabel biblio dan mempunyai jenis hubungan satu-ke-banyak (one-to-many). Mari kita coba konversi field GMD (General Material Designation) yang di contoh data ISIS terletak pada field Jenis Koleksi (v550). Di aplikasi Senayan, detail GMD disimpan di tabel mst_gmd dan di tabel biblio dihubungkan melalui field gmd_id. Ada 3 field yang harus jadi perhatian kita di tabel mst_gmd. Yaitu: gmd_id. Berjenis integer dan di set auto increment. Kita tidak perlu pusing mengenai isinya, tapi yang penting nanti di parser nilai didalam field ini akan diambil dan dimasukkan di field gmd_id yang terdapat di tabel biblio. gmd_code. Berjenis string biasa, tetapi dibatasi maksimal hanya bisa menyimpan 3 karakter serta di set unik sehingga tidak dimungkinkan menyimpan value yang sama didalamnya. Field ini harus diisi. Untuk kemudahan proses konversi, kita akan mengisi field ini dari 3 karakter pertama dari Jenis Koleksi. gmd_name. Berjenis string biasa, tetapi dibatasi maksimal hanya bisa menyimpan 30 karakter. Field ini harus diisi. Dalam konversi nanti, kita akan mengisi dengan value dari Jenis Koleksi. Seperti sebelumnya, antar field akan dipisahkan dengan 3 karakter pipe (|). Outputnya nanti kembali akan di parsing dengan skrip PHP. Sekarang pada WinISIS lakukan proses pencetakan (Database Print). Isi bagian MFN Range (misal: 1-10000), Output diarahkan ke file dengan format ASCII File dan uncheck Pre-defined Format. Pada bagian Print Format, isi dengan: mfn,'|||',v550/

Kemudian klik print. Berikutnya tentukan nama dan letak file hasil print. Kemudian klik OK.

Jika proses print selesai, klik Close. Hasil konversi akan tampak seperti berikut ini: 000001|||BUKU 000002|||BUKU 000003|||BUKU 000004|||BUKU 000005|||BUKU 000006|||BUKU 000007|||BUKU 000008|||BUKU 000009|||BUKU 000010|||BUKU Lebih detail silahkan file file [url_ke_file]

Untuk memasukkan hasil konversi, kita akan membuat sepotong skrip PHP yang fungsinya membaca file hasil konversi, membaca baris perbaris, melakukan parsing, kemudian memasukkan ke dalam basisdata senayan.
<?php /* /* /* /* /* /* ----------------------------------------------------Skrip PHP untuk melakukan konversi data GMD License under GNU/GPL http://www.gpl.org Copyright Hendro Wicaksono 2008 Nama File: gmd_parser.php ----------------------------------------------------*/ */ */ */ */ */

/* Class untuk koneksi ke MySQL */ class mysqldb { # Variabel yang dibutuhkan public $host = "localhost"; # ubah sesuai kondisi public $user = "root"; # ubah sesuai kondisi public $pwd = "psenayan"; # ubah sesuai kondisi public $dbname = "senayan"; # ubah sesuai kondisi public $connection = ""; public $selection = ""; public $sql = ""; public $query = ""; public $gmd_status = ""; public $avail_gmd_id = ""; # Konstruktor function __construct() { $this->connection = mysql_connect ($this->host, $this->user, $this->pwd); $this->selection = mysql_select_db($this->dbname); } function run_query() { $this->query = mysql_query($this->sql); }

/* ----------------------------------------------------- */ class cek_gmd extends mysqldb { function __construct($tgmd_name) { parent::__construct(); $this->sql = "SELECT gmd_id, gmd_name FROM mst_gmd WHERE gmd_name=\"$tgmd_name\""; $this->run_query(); if (mysql_num_rows ($this->query) == FALSE) { $this->gmd_status = "0"; } else { $this->gmd_status = "1"; while ($data = mysql_fetch_array($this->query)) { $this->avail_gmd_id = $data[0]; } } } } /* ----------------------------------------------------- */ class insert_gmd extends mysqldb { function __construct($tgmd_code, $tgmd_name) { parent::__construct(); $this->sql = "INSERT INTO mst_gmd (gmd_code, gmd_name) "; $this->sql .= "VALUES (\"$tgmd_code\", \"$tgmd_name\")"; $this->run_query(); $this->avail_gmd_id = mysql_insert_id(); $this->gmd_status = "1"; } } /* ----------------------------------------------------- */ class update_biblio extends mysqldb {

function __construct($tmfn, $tgmd_id) { parent::__construct(); $this->sql = "UPDATE biblio SET gmd_id=\"$tgmd_id\" "; $this->sql .= "WHERE biblio_id=\"$tmfn\""; $this->run_query(); }

# mendefinisikan letak file hasil konversi # ubah sesuai kondisi $file_hasil_konversi = "c:\winisis\work\gmd.txt"; # membuka file dan membaca read-only $handle = @fopen("$file_hasil_konversi", "r"); if ($handle) { # membaca perbaris, berhenti pada end of line while (!feof($handle)) { # menyimpan record perbaris $buffer = fgets ($handle, 4096); # menghilangkan spasi dll diawal & akhir $buffer = trim($buffer); # memotong antara mfn dengan judul dengan pemisah "|||" $record = explode ("|||", $buffer); if ($buffer != "") { # menghilangkan spasi dll diawal & akhir $record[0] = trim ($record[0]); # MFN $record[0] = intval ($record[0]); # MFN # menghilangkan spasi dll diawal & akhir $record[1] = trim ($record[1]); # Jenis Koleksi $gmd_code = substr ($record[1], 0, 3); $gmd_code = strtoupper ($gmd_code); $record[1] = strtoupper ($record[1]); if ($record[1] != "") { echo 'Memasukkan data dengan:'."\n"; echo 'MFN: '.$record[0]."\n"; echo 'GMD: '.$record[1]."\n"; echo 'GMD CODE: '.$gmd_code."\n"; $cek_gmd = new cek_gmd($record[1]); echo 'GMD STATUS: '.$cek_gmd->gmd_status."\n"; # DEBUG echo 'GMD ID: '.$cek_gmd->avail_gmd_id."\n"; # DEBUG if ($cek_gmd->gmd_status == "0") { $insert_gmd = new insert_gmd($gmd_code, $record[1]); $update_biblio = new update_biblio($record[0], $cek_gmd->avail_gmd_id); } elseif ($cek_gmd->gmd_status == "1") { $update_biblio = new update_biblio($record[0], $cek_gmd->avail_gmd_id); }

} }

} ?>

} fclose ($handle);

Untuk kemudahan proses, jalankan skrip PHP ini dari command-line. Diasumsikan portable senayan diinstall di drive D dan anda sedang berada di dalam folder yang sama dengan skrip PHP yang dibuat, maka perintahnya: d:\psenayan\php\php.exe gmd_parser.php Silahkan dilihat basisdata Senayan menggunakan phpMyAdmin atau OPAC di Senayan untuk melihat apakah proses input telah berhasil.

One-to-many relationship (part 2: Penerbit dan Tempat Terbit) Konversi berikutnya masih terkait dengan hubungan one-to-many, yaitu untuk field Penerbit. Pada contoh database ISIS yang digunakan dalam tulisan ini, penerbit terletak pada tag 260^b. Di aplikasi Senayan, detail penerbit dan tempat terbit disimpan di tabel mst_publisher dan di tabel biblio dihubungkan melalui field publisher_id. Ada 5 field di tabel mst_publisher, tetapi dalam contoh proses konversi ini, ada 2 field yang patut diperhatikan, yaitu: publisher_id. Berjenis integer dan di set auto increment. Kita tidak perlu pusing mengenai isinya, tapi yang penting nanti di parser nilai didalam field ini akan diambil dan dimasukkan di field publisher_id yang terdapat di tabel biblio. publisher_name berjenis string biasa yang variabel dan maksimal bisa menyimpan 100 karakter. Field ini harus diisi. Seperti sebelumnya, antar field akan dipisahkan dengan 3 karakter pipe (|). Outputnya nanti kembali akan di parsing dengan skrip PHP. Sekarang pada WinISIS lakukan proses pencetakan (Database Print). Isi bagian MFN Range (misal: 1-10000), Output diarahkan ke file dengan format ASCII File dan uncheck Pre-defined Format. Pada bagian Print Format, isi dengan:

You might also like