Selasa, 28 Februari 2012

Reportase Kegiatan Pelatihan SLiMS di SMP 1 Bocor Kebumen

Kebumen. Sabtu 25 Februari 2012 Salah satu personil Komunitas SLiMS Jogja Tarto dan TIM Fasilitator Perpustakaan UNY diberi kesempatan untuk mengenalkan slims dan pelatihan SLiMS di SMP N 1 Bocor Kebumen, Peserta 46 orang dari  perpustakaan sekolah disekitar Kebumen. Materi yang diajarkan install Psenayan dan menu system, membership, bibliografi, sirkulasi, pelaporan.

Peserta yang ikut pelatihan sebagian besar Kepala Sekolah dan Guru setempat. Dengan peserta sangat antusias untuk diadakan pelatihan lagi serupa dengan durasi yang lama. Tr

Senin, 27 Februari 2012

Modifikasi Kartu Anggota SLIMS (Senayan versi 3.14)

sumber: di sini

Secara default SLIMS memberikan fasilitas kartu anggota dengan gambar yang terkesan biasa. Agar tampilan kartu anggota lebih baik, caranya adalah sebagai berikut:

1. Modifikasi file member_card_generator.php (file ini berada di folder \admin\modules\membership\)

2. Edit file tersebut dengan source di bawah ini:
<?php
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/

/* Member card print */

// main system configuration
require ‘../../../sysconfig.inc.php’;
// start the session
require SENAYAN_BASE_DIR.’admin/default/session.inc.php’;
require SENAYAN_BASE_DIR.’admin/default/session_check.inc.php’;
require SIMBIO_BASE_DIR.’simbio_GUI/table/simbio_table.inc.php’;
require SIMBIO_BASE_DIR.’simbio_GUI/form_maker/simbio_form_table_AJAX.inc.php’;
require SIMBIO_BASE_DIR.’simbio_GUI/paging/simbio_paging.inc.php’;
require SIMBIO_BASE_DIR.’simbio_DB/datagrid/simbio_dbgrid.inc.php’;
require SIMBIO_BASE_DIR.’simbio_DB/simbio_dbop.inc.php’;

// privileges checking
$can_read = utility::havePrivilege(‘membership’, ‘r’);

if (!$can_read) {
die(‘<div class=”errorBox”>You dont have enough privileges to view this section</div>’);
}

// local settings
$max_print = 10;

// clean print queue
if (isset($_GET['action']) AND $_GET['action'] == ‘clear’) {
// update print queue count object
echo ‘<script type=”text/javascript”>parent.$(\’queueCount\’).update(\’0\’);</script>’;
utility::jsAlert(__(‘Print queue cleared!’));
unset($_SESSION['card']);
exit();
}

if (isset($_POST['itemID']) AND !empty($_POST['itemID']) AND isset($_POST['itemAction'])) {
if (!$can_read) {
die();
}
if (!is_array($_POST['itemID'])) {
// make an array
$_POST['itemID'] = array($_POST['itemID']);
}
// loop array
if (isset($_SESSION['card'])) {
$print_count = count($_SESSION['card']);
} else {
$print_count = 0;
}
// card size
$size = 2;
// create AJAX request
echo ‘<script type=”text/javascript” src=”‘.JS_WEB_ROOT_DIR.’prototype.js”></script>’;
echo ‘<script type=”text/javascript”>’;
// loop array
foreach ($_POST['itemID'] as $itemID) {
if ($print_count == $max_print) {
$limit_reach = true;
break;
}
if (isset($_SESSION['card'][$itemID])) {
continue;
}
if (!empty($itemID)) {
$card_text = trim($itemID);
echo ‘new Ajax.Request(\”.SENAYAN_WEB_ROOT_DIR.’lib/phpbarcode/barcode.php?code=’.$card_text.’&encoding=’.$sysconf['barcode_encoding'].’&scale=’.$size.’&mode=png\’, { method: \’get\’, onFailure: function(sendAlert) { alert(\’Error creating card!\’); } });’.”\n”;
// add to sessions
$_SESSION['card'][$itemID] = $itemID;
$print_count++;
}
}
echo ‘</script>’;
if (isset($limit_reach)) {
$msg = str_replace(‘{max_print}’, $max_print, __(‘Selected items NOT ADDED to print queue. Only {max_print} can be printed at once’)); //mfc
utility::jsAlert($msg);
} else {
// update print queue count object
echo ‘<script type=”text/javascript”>parent.$(\’queueCount\’).update(\”.$print_count.’\');</script>’;
utility::jsAlert(__(‘Selected items added to print queue’));
}
exit();
}

// card pdf download
if (isset($_GET['action']) AND $_GET['action'] == ‘print’) {
// check if label session array is available
if (!isset($_SESSION['card'])) {
utility::jsAlert(__(‘There is no data to print!’));
die();
}
if (count($_SESSION['card']) < 1) {
utility::jsAlert(__(‘There is no data to print!’));
die();
}
// concat all ID together
$member_ids = ”;
foreach ($_SESSION['card'] as $id) {
$member_ids .= ‘\”.$id.’\',’;
}
// strip the last comma
$member_ids = substr_replace($member_ids, ”, -1);
// send query to database
$member_q = $dbs->query(‘SELECT m.member_name, m.member_id, m.birth_date, m.member_image, mt.member_type_name FROM member AS m
LEFT JOIN mst_member_type AS mt ON m.member_type_id=mt.member_type_id
WHERE m.member_id IN(‘.$member_ids.’)');
$member_datas = array();
while ($member_d = $member_q->fetch_assoc()) {
if ($member_d['member_id']) {
$member_datas[] = $member_d;
}
}

// include printed settings configuration file
include SENAYAN_BASE_DIR.’admin’.DIRECTORY_SEPARATOR.’admin_template’.DIRECTORY_SEPARATOR.’printed_settings.inc.php’;
// check for custom template settings
$custom_settings = SENAYAN_BASE_DIR.’admin’.DIRECTORY_SEPARATOR.$sysconf['admin_template']['dir'].DIRECTORY_SEPARATOR.$sysconf['template']['theme'].DIRECTORY_SEPARATOR.’printed_settings.inc.php’;
if (file_exists($custom_settings)) {
include $custom_settings;
}
// chunk cards array
$chunked_card_arrays = array_chunk($member_datas, $card_items_per_row);
// create html ouput
$html_str = ‘<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>’.”\n”;
$html_str .= ‘<html xmlns=”http://www.w3.org/1999/xhtml”><head><title>Member card Label Print Result</title>’.”\n”;
$html_str .= ‘<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />’;
$html_str .= ‘<meta http-equiv=”Pragma” content=”no-cache” /><meta http-equiv=”Cache-Control” content=”no-store, no-cache, must-revalidate, post-check=0, pre-check=0″ /><meta http-equiv=”Expires” content=”Sat, 26 Jul 1997 05:00:00 GMT” />’;
$html_str .= ‘<style type=”text/css”>’.”\n”;
$html_str .= ‘body { padding: 0; margin: 1cm; font-size: 9pt; font-family: ‘.$card_fonts.’; background: #fff; }’.”\n”;
// $html_str .= ‘body { padding: 0; margin: 1cm; font-size: ‘.$card_font_size.’pt; font-family: ‘.$card_fonts.’; background: #fff; }’.”\n”;
$html_str .= ‘.labelStyle { width: ‘.$card_box_width.’cm; height: ‘.$card_box_height.’cm; text-align: center; margin: ‘.$card_items_margin.’cm; border: ‘.$card_border_size.’px solid #666666; background:#bcf48b url(card.png)no-repeat; background-align: bottom; padding: 5px; overflow: hidden;}’.”\n”;
// $html_str .= ‘.labelHeaderStyle { background-color: #CCCCCC; font-weight: bold; padding: 5px; margin-bottom: 5px; }’.”\n”;
$html_str .= ‘#photo { border: 1px solid #666666; float: left; width: ‘.$card_photo_width.’cm; height: ‘.$card_photo_height.’cm; overflow: hidden; }’.”\n”;
$html_str .= ‘#photo img { width: 100%; }’.”\n”;
$html_str .= ‘#bio { float: left; padding-left: 5px; text-align: left; overflow: hidden; width: ‘.($card_box_width-$card_photo_width-0.3).’cm; }’.”\n”;
$html_str .= ‘</style>’.”\n”;
$html_str .= ‘</head>’.”\n”;
$html_str .= ‘<body>’.”\n”;
$html_str .= ‘<a href=”#” onclick=”window.print()”>Print Again</a>’.”\n”;
$html_str .= ‘<table style=”margin: 0; padding: 0;” cellspacing=”0″ cellpadding=”0″>’.”\n”;
// loop the chunked arrays to row
foreach ($chunked_card_arrays as $card_rows) {
$html_str .= ‘<tr>’.”\n”;
foreach ($card_rows as $card) {
$html_str .= ‘<td valign=”top”>’;
$html_str .= ‘<div class=”labelStyle”>’;
if (trim($card_header_text) != ”) { $html_str .= ‘<div class=”labelHeaderStyle”></div>’; }
// if (trim($card_header_text) != ”) { $html_str .= ‘<div class=”labelHeaderStyle”>’.$card_header_text.’</div>’; }
$html_str .= ‘<br>&nbsp;</br>’;
$html_str .= ‘<br>&nbsp;</br>’;
$html_str .= ‘<div id=”photo”>’;
$html_str .= ‘<div style=”text-align: center;”><img src=”‘.SENAYAN_WEB_ROOT_DIR.IMAGES_DIR.’/persons/’.$card['member_image'].’” border=”0″ /></div>’;
// $html_str .= ‘<img src=”‘.SENAYAN_WEB_ROOT_DIR.IMAGES_DIR.’/persons/’.$card['member_image'].’” border=”0″ />’;
$html_str .= ‘</div>’;
$html_str .= ‘<div id=”bio”>’;
$html_str .= ‘<div>’.( $card_include_field_label?__(‘Member ID’).’ : ‘:” ).’<strong>’.$card['member_id'].’</strong></div>’;
$html_str .= ‘<div>’.( $card_include_field_label?__(‘Member Name’).’ : ‘:” ).’<strong>’.$card['member_name'].’</strong></div>’;
$html_str .= ‘<div>’.( $card_include_field_label?__(‘Membership Type’).’ : ‘:” ).’<strong>’.$card['member_type_name'].’</strong></div>’;

$html_str .= ‘<div style=”text-align: left;”><img src=”‘.SENAYAN_WEB_ROOT_DIR.IMAGES_DIR.’/barcodes/’.str_replace(array(‘ ‘), ‘_’, $card['member_id']).’.png” style=”width: 40%; margin-top: 10px;” border=”0″ /></div>’;
// $html_str .= ‘<div style=”text-align: center;”><img src=”‘.SENAYAN_WEB_ROOT_DIR.IMAGES_DIR.’/barcodes/’.str_replace(array(‘ ‘), ‘_’, $card['member_id']).’.png” style=”width: ‘.$card_barcode_scale.’%; margin-top: 10px;” border=”0″ /></div>’;
$html_str .= ‘</div>’;
$html_str .= ‘</div>’;
$html_str .= ‘</td>’;
}
$html_str .= ‘<tr>’.”\n”;
}
$html_str .= ‘</table>’.”\n”;
$html_str .= ‘<script type=”text/javascript”>self.print();</script>’.”\n”;
$html_str .= ‘</body></html>’.”\n”;
// unset the session
unset($_SESSION['card']);
// write to file
$print_file_name = ‘member_card_gen_print_result_’.strtolower(str_replace(‘ ‘, ‘_’, $_SESSION['uname'])).’.html’;
$file_write = @file_put_contents(FILES_UPLOAD_DIR.$print_file_name, $html_str);
if ($file_write) {
// update print queue count object
echo ‘<script type=”text/javascript”>parent.$(\’queueCount\’).update(\’0\’);</script>’;
// open result in window
echo ‘<script type=”text/javascript”>top.openHTMLpop(\”.SENAYAN_WEB_ROOT_DIR.FILES_DIR.’/’.$print_file_name.’\', 800, 500, \”.__(‘Member Card Printing’).’\')</script>’;
} else { utility::jsAlert(‘ERROR! Cards failed to generate, possibly because ‘.SENAYAN_BASE_DIR.FILES_DIR.’ directory is not writable’); }
exit();
}

?>
<fieldset class=”menuBox”>
<div class=”menuBoxInner printIcon”>
<?php echo __(‘Member Card Printing’); ?> – <a target=”blindSubmit” href=”<?php echo MODULES_WEB_ROOT_DIR; ?>membership/member_card_generator.php?action=print” class=”notAJAX headerText2″><?php echo __(‘Print Member Cards for Selected Data’); ?></a>
&nbsp;<a target=”blindSubmit” href=”<?php echo MODULES_WEB_ROOT_DIR; ?>membership/member_card_generator.php?action=clear” class=”notAJAX headerText2″ style=”color: #FF0000;”><?php echo __(‘Clear Print Queue’); ?></a>
<hr />
<form name=”search” action=”<?php echo MODULES_WEB_ROOT_DIR; ?>membership/member_card_generator.php” id=”search” method=”get” style=”display: inline;”><?php echo __(‘Search’); ?>:
<input type=”text” name=”keywords” size=”30″ />
<input type=”submit” id=”doSearch” value=”<?php echo __(‘Search’); ?>” class=”button” />
</form>
<div style=”margin-top: 3px;”>
<?php
echo __(‘Maximum’).’ <font style=”color: #FF0000″>’.$max_print.’</font> ‘.__(‘records can be printed at once. Currently there is’).’ ‘; //mfc
if (isset($_SESSION['card'])) {
echo ‘<font id=”queueCount” style=”color: #FF0000″>’.count($_SESSION['card']).’</font>’;
} else { echo ‘<font id=”queueCount” style=”color: #FF0000″>0</font>’; }
echo ‘ ‘.__(‘in queue waiting to be printed.’); //mfc
?>
</div>
</div>
</fieldset>
<?php
/* search form end */
/* ITEM LIST */
// table spec
$table_spec = ‘member AS m
LEFT JOIN mst_member_type AS mt ON m.member_type_id=mt.member_type_id’;
// create datagrid
$datagrid = new simbio_datagrid();
$datagrid->setSQLColumn(‘m.member_id’,
‘m.member_id AS \”.__(‘Member ID’).’\”,
‘m.member_name AS \”.__(‘Member Name’).’\”,
‘mt.member_type_name AS \”.__(‘Membership Type’).’\”);
$datagrid->setSQLorder(‘m.last_update DESC’);
// is there any search
if (isset($_GET['keywords']) AND $_GET['keywords']) {
$keyword = $dbs->escape_string(trim($_GET['keywords']));
$words = explode(‘ ‘, $keyword);
if (count($words) > 1) {
$concat_sql = ‘ (‘;
foreach ($words as $word) {
$concat_sql .= ” (m.member_id LIKE ‘%$word%’ OR m.member_name LIKE ‘%$word%’”;
}
// remove the last AND
$concat_sql = substr_replace($concat_sql, ”, -3);
$concat_sql .= ‘) ‘;
$datagrid->setSQLCriteria($concat_sql);
} else {
$datagrid->setSQLCriteria(“m.member_id LIKE ‘%$keyword%’ OR m.member_name LIKE ‘%$keyword%’”);
}
}
// set table and table header attributes
$datagrid->table_attr = ‘align=”center” id=”dataList” cellpadding=”5″ cellspacing=”0″‘;
$datagrid->table_header_attr = ‘class=”dataListHeader” style=”font-weight: bold;”‘;
// edit and checkbox property
$datagrid->edit_property = false;
$datagrid->chbox_property = array(‘itemID’, __(‘Add’));
$datagrid->chbox_action_button = __(‘Add To Print Queue’);
$datagrid->chbox_confirm_msg = __(‘Add to print queue?’);
$datagrid->column_width = array(’10%’, ’70%’, ’15%’);
// set checkbox action URL
$datagrid->chbox_form_URL = $_SERVER['PHP_SELF'];
// put the result into variables
$datagrid_result = $datagrid->createDataGrid($dbs, $table_spec, 20, $can_read);
if (isset($_GET['keywords']) AND $_GET['keywords']) {
echo ‘<div class=”infoBox”>’.__(‘Found’).’ ‘.$datagrid->num_rows.’ ‘.__(‘from your search with keyword’).’: “‘.$_GET['keywords'].’”</div>’; //mfc
}
echo $datagrid_result;
/* main content end */

?>

3. Buat desain kartu anggota berukuran 468×237 px menggunakan corel draw, adobe photoshop atau yang lainnya, kemudian save dengan nama card.png (ingat, format file harus *.png untuk menyesuaikan script di atas).

4. Simpan file card.png tersebut di folder files.

5. Semoga berhasil.

Minggu, 26 Februari 2012

Reportase: Sinau Bareng Linux dan SLiMS, 25 Februari 2012

Sebagai kelanjutan dari Seminar minggu sebelumnya, panitia dari KSL UIN Sukijo menyelenggarakan sinau bareng Linux dan SliMS. Kegiatan ini kembali didampingi oleh tim KSL dan Komunitas SLiMS Jogja. Peserta yang datang pada acara ini sangat bervariasi; mulai dari mahasiswa, pustakawan serta umum. Bahkan tampak mahasiswa Ilmu Perpustakaan UNDIP, UNS dan juga UIN SUKA. Tampak pula pegiat SLiMS dari Jepara (Hartoyo) dan para pustakawan sekolah di Jogja yang tertarik dengan SLiMS.

Sesi pertama, sekitar pukul 08.00 sd 13.00 (12.00-13.00 break sholat dhuhur) diisi oleh KSL UIN Sukijo dengan materi instalasi Linux Ubuntu 10.04 (Lucyd Linx) dengan menggunakan Wubi. Ubuntu dipilih karena mudah digunakan dan merupakan distro paling banyak digunakan pegiat Linux. Pada sesi ini, KSL juga menyediakan repo lokal yang dipakai oleh peserta sebagai sarana repo untuk update paket dan install paket. Pada sesi install paket, peserta diberi penjelasan sekaligus praktek bersama instalasi apache, mysql, php dan phpmyadmin pada linux. Tidak hanya peserta yang menjadi audiens sesi ini, beberapa pegiat SLiMS Jogja juga ikut nimbrung. Hal ini disebabkan oleh keinginan mereka untuk ikut juga belajar Linux secara mendalam. Salah satu pegiat SliMS jogja bahkan mengakui bahwa ada beberapa hal terkait Linux yang baru diketahui setelah ikut acara ini.

Sesi berikutnya adalah instalasi SLiMS pada linux Ubuntu 10.04. Sesi ini diampu oleh para pegiat SliMS Jogja: Heri Abiburachman Hakim, Muhtarom, Eddy Subratha, dan juga Abdoel Aziz. Karena para peserta bervariasi sistem operasi yang digunakannya, maka sesi SLiMS dibagi dua. Pertama adalah instalasi SLiMS di Linux dan pada bagian lain ada belajar bersama SLiMS pada Windows.

Pada sesi install SliMS di Linux muncul beberapa masalah yang justru diharap dapat membuat peserta memahami apa itu Linux dan bagaimana instalasi SLiMS di Linux. Misalnya masalah hak akses file dan folder serta hak kepemilikan file dan folder. Peserta dikenalkan dengan perintah konsole CHOWN, CHMOD, LS dan lain sebagainya. Pengenalan ini sebelumnya juga dibahas pada sesi Linux secara lebih jauh.

Alhamdulillah, sesi instalasi SLiMS di Linux selesai dan semua peserta yang membawa laptop yang sebelumnya diinstall Linux berhasil diinstall SLiMS. Pada bagian lain, belajar bersama SLiMS pada windows juga berjalan lancar.

Slide presentasi pelatihan Linux silakan unduh di: [download id="6"]
Untuk cara install SLiMS di Linux, silakan unduh dokumentasi SLiMS di http://slims.web.id


Kamis, 23 Februari 2012

Belajar Bareng Linux & SLiMS 25 Feb 2012

Ayo ikutan..

Sebagai rangkaian dari acara seminar linux dan slims pada tanggal 18 Feb 2012 yang lalu (http://blog.jogjalib.net/2012/02/reportase-kegiatan-seminar-dan-pelatihan-18-feb-2012/), panitia kembali melaksanakan acara serupa namun dalam bentuk pelatihan.

Pelatihan ini terbagi menjadi pelatihan Linux dan pelatihan SliMS, dilaksanakan tanggal 25 Feb 2012 jam 09.00 sd 15.30 WIB.

Undangan terlampir:

Minggu, 19 Februari 2012

Reportase Kegiatan: Seminar dan Pelatihan 18 Feb 2012

Sabtu 18 Februari 2012 komunitas SLiMS Jogja punya dua gawe. Pertama adalah seminar Linux+SLiMS di Fakultas Adab UIN SUnan Kalijaga (http://blog.jogjalib.net/2012/02/seminar-linuxslims/), dan kedua adalah pelatihan SLiMS untuk pustakawan di Stikes Bethesda Jogjakarta.

Acara pertama merupakan gawean bareng antara KSL UIN Sunan Kalijaga, BEM IPI UIN SUnan Kalijaga dan juga Komunitas SLiMS Jogja. KEgiatan ini berlangsung di Ruang Teatrikal Fakultas Adab. Hadir dalam acara ini mahasiswa, pustakawan, pegiat Linux baik dari Jogja maupun luar Jogja. Tercatat mahasiswa Prodi Ilmu Perpustakaan UNDIP Semarang turut serta dalam acara ini.

Sesi pertama diisi pengenalan Linux dan Opensource oleh Mas Setia Budi dan Estu. Beliau berdua berasal dari KPLI Jogja dan KSL UIN SUnan Kalijaga. Pada sesi ini disampaikan kenapa memilih opensource, khususnya kenapa Linux? Aspek yang ditekankan adalah legal dan halal, serta stabil dan bebas virus.

Sesi kedua adalah pengenalan SLiMS oleh Purwoko. File presentasi Purwoko dapat diunduh di sini [download id="1"].

Acara kedua adalah pelatihan SLiMS di Perpustakaan Stikes Bethesda Jogjakarta. Kebetulan Stikes Bethesda hendak migrasi dari sistem automasi perpustakaan sebelumnya ke SLiMS. Materi pada pelatihan ini adalah instalasi, bibliografi, membership dan sirkulasi. Dilanjutkan dengan perawatan, backup data dan juga audit migrasi.

Foto lengkap ada di FB Komunitas SLiMS Jogja

Selasa, 14 Februari 2012

Tawaran Baju SLiMS

Komunitas SLiMS Jogja menawarkan pembuatan baju seragam SLiMS. Seperti terlampir pada gambar.


UPDATE
Logo menggunakan maskot Tarsius, Batik di depan dari atas ke bawah.
Penawaran khusus dari SLiMS Jogjakarta
Kisaran harga : Rp. 130.000,- + ongkos kirim
Informasi lebih lanjut silahkan hubungi Komunitas SLiMS Jogjakarta.
Keuntungan dari pembuatan baju ini juga akan dialokasikan untuk pengelolaan JogjaLib.Net. So dari komunitas untuk komunitas....

Pemesanan: http://jogjalib.net/pesan

Minggu, 05 Februari 2012

Reportase Rembug Bareng bersama ATPUSI+LKPI+ALUS+Komunitas SLiMS

Pada tanggal 4 Februari 2012 yang lalu, empat organisasi dan juga komunitas yang berkaitan dengan perpustakaan di Jogja duduk bersama, berembug bersama para audiens tentang bagaimana mengembangkan minat baca di perpustakaan sekolah pada era informasi. Acara ini merupakan rangkaian acara Jogja Itoe Boekoe yang digelar oleh IKAPI di Mandala Bhakti Wanitatama, 1-7 Februari 2012.





Keempat komunitas mengirimkan wakilnya menjadi narasumber pada acara ini, ATPUSI di wakili oleh Pak Halim, Heri Abi dari SLiMS, Muklis dari ALUS dan LKPI diwakili oleh Supriyanto. Semua membahas "membaca" dikaitkan dengan peran organisasinya masing masing. Acara ini dimoderatori oleh Arsidi, SIP yang merupakan ketua ATPUSI Jogjakarta.





Dengan lihat, sang moderator juga mengajak audiens untuk ikut menyampaikan uneg-unegnya. Tercatat beberapa audiens ikut berkomentar, baik dari perpustakaan perguruan tinggi, mahasiswa, perpustakaan SD dan lain sebagainya.

Ada peserta yang menyatakan bahwa ketika ingin mengembangkan perpustakaan terbentur pada aspek kebijakan pimpinan, adapula yang menyayangkan terputusnya keberlangsungan pengelolaan perpustakaan pada tiap tingkatan di sekolah. Ketika SD murid mendapatkan perpustakaan yang "hidup" namun ketika SMP mereka kaget karena perpustakaannya tidak berjalan sebagaimana mestinya.




Pada sesi akhir, panitia pameran berkenan ikut bicara. Panitia menanggapi selentingan tentang mahalnya buku. Beliau mengatakan bahwa buku belum menjadi kebutuhan pokok, masih kalah dengan bensin atau pulsa. Hal ini disampaikan sambil mengajak untuk menjadikan buku sebagai kebutuhan pokok.

Pada kesempatan ini, melalui moderator juga dibagi doorprize berupa 10 CD master SLiMS. Para peserta juga mendapatkan stiker SLiMS dan JogjaLib.NET. Peserta datang dari berbagai pelosok daerah, mulai dari kawasan Jogjakarta sendiri, Bantul, Sleman, Klaten, Magelang bahkan dari Purworejo.

Para peserta juga dipersilakan untuk mengunjungi stand perpustakaan yang dihuni oleh beberapa komunitas di atas.

Para Pembicara+Moderator
Para Peserta
Suasana Stand
Akhir Acara



Foto: Eddy Subratha
Video: Purwoko

Sabtu, 04 Februari 2012

Seminar Linux+SliMS, 18 Februari 2012

Pegiat SLiMS Jogja, Purwoko diberi kesempatan untuk berbicara pada seminar yang diselenggarakan oleh KSL UIN + BMJ IPI UIN Sukijo. Acara akan dilangsungkan pada Sabtu, 18 Februari 2012 di Teatrikal F. Adab UIN Sunan Kalijaga Jogjakarta.Pendaftaran online dapat dilakukan melalui http://jogjalib.net/seminar dari 6-16 Februari 2012, dengan arga tiket Rp15.000 (mahasiswa) dan Rp30.000 (umum) dengan berbagai fasilitas.
Tema yang diangkat adalah:

"Linux dan SLiMS, paduan apik opensource untuk kemajuan dunia perpustakaan"


Pada seminar ini akan diisi oleh Setia Budi (KSL UIN), Estu Fardani (KPLI Jogja) dan Purwoko (SLiMS Jogja).


Selain semiar, pada tanggal 25 Februari juga akan diadakan belajar bersama instalasi Linux menggunakan wubi, sehingga para peserta yang masih takut menginstall linux tidak ada alasan untuk merasa takut. Dengan wubi, instalasi Linux dapat dilakukan dengan mudah dan tanpa membuat partisi baru, serta dapat dihapus dengan mudah.

Bagi yang tertarik, daftar di http://jogjalib.net/seminar

Poster kegiatan di bawah ini:
Poster Seminar Linux+SLiMS

Kamis, 02 Februari 2012

Sejarah Pengembangan SLiMS

sumber http://id.wikipedia.org

Senayan pertamakali digunakan di Perpustakaan Departemen Pendidikan Nasional [1]. Pengembangan Senayan dilakukan oleh SDC (Senayan Developers Community). Di koordinir oleh Hendro Wicaksono [2], dengan Programmer Arie Nugraha [3], Wardiyono. Sementara dokumentasi dikerjakan oleh Purwoko [4], Sulfan Zayd, M Rasyid Ridho, Arif Syamsudin. Pada Januari 2012, developer SLiMS bertambah 2 orang, yaitu: Indra Sutriadi Pipii (GOrontalo) dan Eddy Subratha (Jogjakarta).

Selain itu, ada pula programmer Tobias Zeumer (tzeumer@verweisungsform.de), dan Jhon Urrego Felipe Mejia (ingenierofelipeurrego@gmail.com).

Situs resmi SLiMS, saat ini ada di http://slims.web.id

Menurut Hendro Wicaksono dan Arie Nugraha, anggota tim pengembang Senayan, program manajemen perpustakaan ini pertama kali dikembangkan pada November 2006. Waktu itu, para pengelola Perpustakaan Departemen Pendidikan Nasional di Jakarta tengah kebingungan karena program manajemen perpustakaan Alice habis masa pakainya. Alice adalah perangkat lunak bikinan Softlink sumbangan Pusat Kebudayaan Inggris, British Council.

Departemen tak memiliki anggaran untuk memperpanjang masa pakai Alice. Selain itu, Alice adalah produk tidak bebas (proprietary) yang serba tertutup. Staf perpustakaan sulit mempelajari program tersebut. Alice bahkan tak dapat dipasang di server atau komputer lain, sehingga tidak dapat didistribusikan ke perpustakaan di lingkungan departemen tersebut.

Hendro lantas mengusulkan ke Pusat Informasi dan Hubungan Masyarakat, yang memayungi perpustakaan di departemen itu, untuk membuat program baru sebagai pengganti Alice. ”Karena awalnya dikembangkan dengan uang negara, harus bisa diperoleh secara bebas oleh masyarakat,” katanya.

Software baru itu kemudian dikembangkan dengan General Public License, sistem perizinan yang lazim digunakan dalam perangkat lunak berbasis sumber terbuka. Perizinan ini mensyaratkan agar software tersebut harus dapat digunakan, dipelajari, diubah, dan didistribusikan ke pihak lain secara bebas.

Pada awalnya Hendro dan Arie Nugraha, pustakawan lain di sana, mencari perangkat lunak yang sudah jadi, tapi terbentur sejumlah masalah. Beberapa peranti lunak, seperti PHP MyLibrary dan OpenBiblio, ternyata kurang serius menerapkan prinsip pengembangan aplikasi dan basis data. Dalam basis data yang bagus, misalnya, tabel pengarang dan buku harus terpisah. ”Nah, software yang ada waktu itu menggabungkan keduanya, sehingga tabel itu jadi lebih rumit karena memuat data pengarang 1, pengarang 2, dan seterusnya,” kata Hendro.

Teknologi yang digunakan dalam software itu pun umumnya memakai bahasa pemrograman Perl dan C++ yang relatif lebih sulit dipelajari oleh para pustakawan departemen yang tak punya latar belakang ilmu teknologi informasi. Selain itu, beberapa perangkat lunak tersebut sudah tidak aktif atau lama sekali tidak muncul versi terbarunya.

Dengan berbagai pertimbangan itu, mereka memutuskan membuat perangkat lunak yang baru sama sekali dengan memanfaatkan bahasa pemrograman PHP dan basis data MySQL, yang mereka pelajari secara otodidak. ”Kami semua berlatar belakang pustakawan. Kebetulan kami suka pada teknologi informasi dan sama-sama mempelajarinya,” kata Arie.

Karena awalnya dikembangkan di perpustakaan yang berlokasi di kawasan Senayan dan nama itu dirasa cocok dan punya nilai pasar yang bagus, aplikasi sistem perpustakaan itu pun dinamai seperti tempat kelahirannya.

Senayan berukuran kecil dan sangat mudah dipasang di komputer, baik yang memakai sistem operasi Linux maupun Windows. ”Besar seluruh file program, termasuk program Linux, kurang dari 1 gigabita,” kata Arie saat menjaga gerai Senayan di pameran Global Conference on Open Source di Hotel Shangri-La Jakarta, 27 Oktober lalu.

Meski dibangun di atas platform GNU/Linux, Senayan bisa berjalan hampir di semua sistem operasi komputer, termasuk Windows dan Unix. Untuk memudahkan interaktivitas pengguna, aplikasi ini juga memakai teknologi AJAX (Asynchronous JavaScript and XML) untuk tampilannya di peramban. Beberapa software bersumber terbuka lain juga dipasang di Senayan untuk memperkaya fiturnya, seperti genbarcode untuk pembuatan barcode, PhpThumb untuk menampilkan gambar, dan tinyMCE untuk penyuntingan teks berbasis web.

Yang terpenting, Senayan dirancang sesuai dengan standar pengelolaan koleksi perpustakaan, misalkan standar pendeskripsian katalog berdasarkan ISBD yang juga sesuai dengan aturan pengatalogan Anglo-American Cataloging Rules. Standar ini umum dipakai di seluruh dunia. ”Karena yang mengembangkan adalah para pustakawan, kami berani menjamin bahwa aplikasi ini sesuai dengan standar yang dibutuhkan pustakawan di dalam dunia kerjanya,” kata Hendro.

Untuk mengembangkan Senayan, Hendro dan Arie mengajak anggota di mailing list ISIS (ics-isis@yahoogroups.com)—kelompok diskusi para pustakawan pengguna perangkat lunak manajemen perpustakaan milik UNESCO—bergabung. Beberapa pustakawan lain menanggapi rencana mereka, bahkan turut membantu mengembangkan peranti lunak itu.

Jadilah Senayan versi beta yang hanya beredar di kalangan pustakawan di kelompok diskusi itu. Merekalah yang menguji dan kemudian memperbaiki bolong-bolong dalam program tersebut. Akhirnya, setelah program itu dirasa cukup stabil, Senayan dirilis ke publik pada November 2007, bertepatan dengan ulang tahun Perpustakaan Departemen Pendidikan Nasional yang ketiga.

Sebenarnya Senayan belum sempurna saat itu, tapi Hendro merasa bahwa program ini harus segera digunakan, terutama agar pustakawan di kantornya terbiasa dengan program baru ini dan mempercepat migrasi dari Alice. ”Semula kami pakai program Senayan dan Alice secara bersamaan, tapi ketika pengunjung sedang ramai, para pustakawan cenderung memakai Alice. Akhirnya kami matikan Alice sama sekali, dan mereka terpaksa hanya memakai Senayan,” kata Hendro.

Seperti yang mereka perkirakan sebelumnya, beberapa kegagalan terjadi ketika program itu dijalankan. Arie, yang bertugas menjaga kelancaran migrasi itu, mendapat keluhan bertubi-tubi dari para pengguna dan harus langsung memperbaiki program itu. ”Bugs (gangguan pada program) memang masih banyak pada program awal ini,” kata Arie, yang kini menjadi dosen teknologi informasi di almamaternya, Universitas Indonesia.

Tiga bulan berikutnya, Hendro mengundang beberapa pustakawan yang aktif di mailing list ISIS untuk menghadiri Senayan Developer’s Day—acara perekrutan tenaga pengembang program itu. Dari acara tersebut, terpilihlah empat nama: Purwoko, pustakawan Fakultas Geologi Universitas Gadjah Mada, Yogyakarta; Wardiyono, programer sebuah organisasi lingkungan; Sulfan Zayd, pustakawan di Sekolah Mentari; dan Arif Syamsudin, pustakawan di Sekolah Internasional Stella Maris.

Selama tiga hari para pustakawan terpilih itu berkumpul dan berkonsentrasi dalam penambahan fitur, perbaikan, dan pembaruan dokumen Senayan. Hasilnya, mereka meluncurkan Senayan versi yang lebih stabil dan dokumen program. Maret tahun berikutnya mereka berkumpul kembali dengan kegiatan yang sama.

Belakangan, mereka mendapat bantuan dari Tobias Zeumer, programer di Jerman. Zeumer mengganti program multibahasa Senayan dengan PHP Gettext, standar program multibahasa di lingkungan peranti lunak sistem terbuka. ”Dia peduli pada pengembangan Senayan dan salah satunya adalah menambahkan fitur bahasa Jerman pada Senayan,” kata Hendro.

Selain terus memperkaya Senayan, tim pengembang terus membuat paket program untuk memudahkan pemasangan. Paket yang disebut Portable Senayan (psenayan) ini berisi program Senayan, Apache (program untuk server), PHP, dan MySQL. Pengguna tinggal mengopi, mengekstrak, dan langsung menggunakannya pada komputer atau server masing-masing.

Ketika dirilis pertama kali, Senayan baru diunduh 704 kali. Angka ini melonjak menjadi 6.000 kali lebih pada Desember 2007 dan 11 ribu lebih Januari 2008. Adapun pada Oktober lalu program itu sudah diunduh hampir 27 ribu kali. Dengan demikian, total sudah 250 ribu kali lebih program itu diunduh.

Karena dapat diunduh secara bebas, Hendro dan kawan-kawan tak tahu persis berapa banyak pengguna aplikasi ini. Tapi sedikitnya ada sekitar 218 perpustakaan dan lembaga lain yang mengaku memakai Senayan, seperti Pusat Studi Jepang UI, Perpustakaan Kedokteran Tropis UGM, Sekolah Indonesia-Kairo di Mesir, Perpustakaan Indonesian Visual Art Archive, Lembaga Bantuan Hukum Jakarta, Rumah Sakit PKU Muhammadiyah Yogyakarta, Rumah Sakit M.H. Thamrin Cileungsi, Institut Bisnis dan Informatika Indonesia, serta Perpustakaan Umum Kabupaten Pekalongan.

Senayan kini sudah berkembang jauh. Ia tak hanya menampilkan data buku, tapi juga dapat menampilkan gambar, suara, buku elektronik, dan bahkan video. Hendro dan timnya juga sedang mengembangkan agar setiap server pengguna Senayan dapat saling ”bicara”, sehingga nanti dapat dibangun sebuah gerbang pencarian data buku dalam jaringan yang dapat menelusuri semua katalog. ”Nanti akan ada sebuah gerbang agar pencarian buku cukup melalui satu situs saja,” kata Arie.


[sunting] Lisensi

Karena pertama kali dikembangkan dengan dana APBN, maka untuk menjamin agar SLiMS bisa digunakan, didistribusikan dan dimodifikasi dengan bebas oleh seluruh rakyat Indonesia, SLiMS dirilis dengan lisensi GNU General Public License versi 3.


[sunting] Union Catalog Server

Untuk memenuhi kebutuhan pembuatan katalog induk, maka sejak versi Senayan 3 Stable14, ditambahkan fitur Union Catalog Server (UCS). Katalog induk adalah katalog yang rekod katalog-nya merupakan gabungan dari dua perpustakaan atau lebih. Dengan UCS maka perpustakaan-perpustakaan bisa menggabungkan rekod katalog mereka ke dalam sebuah katalog besar yang memudahkan pemustaka dalam menemukan koleksi yang mereka butuhkan. Beberapa contoh dari katalog induk online yang sudah berjalan dengan menggunakan UCS adalah:

* Jogjalib
* Makassarlib
* Primurlin


[sunting] Pranala luar

* Situs resmior http://slims.web.id/web/
* "Inilah Para Pemenang INAICTA 2009". KOMPAS. http://tekno.kompas.com/read/xml/2009/07/30/08065299/inilah.para.pemenang.inaicta.2009. Diakses pada 19 Oktober 2009.
* "Kelola Perpustakaan Lebih Baik dengan SENAYAN Library Automation". Teknopreneur. http://www.teknopreneur.com/content/kelola-perpustakaan-lebih-baik-dengan-senayan-library-automation.
* Daftar Perpustakaan Pengguna Senayan
* Menata Kitab dengan Senayan