Simpan Gambar Cover Buku dari LibraryThing ke server sendiri

Salam Sejahtera dan Selamat Maju Jaya

Hari ini saya hendak bercerita tentang sedikit programming language iaitu PHP. Semasa saya bekerja di Open University Malaysia dahulu kala, saya ada menulis script untuk Drupal untuk dapatkan image dari server LibraryThing dan muat-turun gambar tersebut ke server kita. Adapun tujuan ini adalah untuk mengurangkan tekanan bandwidth kepada pengguna ketika itu. Umumnya pada waktu ini, mungkin tidak relevan lagi kerana rata² masyarakat mempunyai akses kepada internet super.

Namun pada hari ini, API LibraryThing telah dihentikan sehingga diberitahu kelak (tak tahu la sampai bila). Takper, script ini adalah bebas untuk kita tukar source server kepada servis yang lain.

API LibraryThing dihentikan buat sementara waktu

Sebagai penambahbaik servis Perpustakaan Digital OUM ketika itu, saya telah menulis script untuk mendapatkan data² dari Syndetics untuk memperkayakan atau enrich Katalog OUM mereka dengan Muka Buku, Ringkasan Buku dan sebagainya.

Pengkayaan Katalog dengan Servis Syndetics

Script yang saya tulis untuk Perpustakaan Digital Tan Sri Abdullah Sanusi akan menyimpan Book Summary, Publisher, Author dan juga Imej Muka Buku ke dalam sistem secara dinamik.

Buku di Perpustakaan Digital Tan Sri Abdullah Sanusi

Melalui script ini, pengguna hanya perlu memasukkan No ISBN buku tersebut dan yang lain² akan dilakukan secara dinamik oleh server. Mudah bukan? Masukkan ISBN, semua data² akan diambil dan disimpan di dalam database.

Muat-turun Book Cover ke Server

Hari ini, saya ingin berkongsi maklumat atau script tentang cara² mendapatkan gambar dari server lain dan seterusnya menyimpan gambar tersebut ke dalam server kita. Script ini juga akan menyusun dan menyimpan gambar² buku mengikut jumlah askara ISBN samada 10-askara atau 13-askara.

Dalam erti kata lain, script ini akan create folder kepada beberapa bahagian kecil di dalam format 3/3/3/3/1. Sebagai contoh, jika ISBN yang diberikan adalah 978-0735210967, maka script ini akan create folder dan subfolder seperti berikut:

978/073/521/096/7

Ini adalah untuk mengelakkan daripada server mempunyai ribuan folder dengan no ISBN yang banyak yang pasti akan membebankan server apabila pengguna browse folder ini menggunakan SFTP atau FTP.

Langkah yang bijak adalah dengan memecahkannya kepada beberapa cluster. Ini akan membantu untuk mengurangkan pengunaan folder yang banyak apabila koleksi buku anda lebih dari 100,000.00.

Memecahkan ISBN kepada beberapa kluster

Kita ambil contoh ISBN untuk buku² di bawah:

  1. 978-1621001539
  2. 978-9971693367
  3. 978-0415834841 
  4. 978-1840760378

Di dalam keadaan biasa, selalunya adalah mudah untuk kita terus create folder (4 Folder) untuk setiap ISBN di atas. Jika kita berbuat demikian, sekiranya buku yang kita serve adalah kurang dari 1,000, ini mungkin tidak menjejaskan prestasi server. Namun Perpustakaan jarang sekali ada buku dengan jumlah seperti itu. Selalunya pasti lebih daripada 10,000 judul dan jika kita teruskan juga, tidak ada salahnya, tapi nanti di dalam 1 folder akan ada beribu folder yang pastinya tidak baik untuk kesihatan Server Admin (sian pada dia).

Perasan tak kebanyakan ISBN ada mempunyai prefix yang sama seperti berikut:

  1. 9780415778299 
  2. 9780415820349 
  3. 9780415809771 
  4. 9780415442060 
  5. 9780415579841 

Dengan menggunakan kaedah clustering ini, mereka boleh kongsi folder yang sama dibawah “/978/041/”. Ini akan membantu untuk mengurangkan kepada pembentukkan folder di dalam jumlah yang banyak.

Fungsi di bawah ini yang memecahkan folder kepada beberapa cluster, Lihat $parts = Array.

function BikinFolder($KEPALA, $isbn, $TestingCode) {
		$parts = Array ($KEPALA, 
			substr($isbn, 0, 3), 
			substr($isbn, 3, 3), 
			substr($isbn, 6, 3), 
			substr($isbn, 9, 3));		
		
		if (13 == strlen($isbn))
			array_push($parts, substr($isbn, 12, 3));
		$dirName = join('/', $parts);
		if (file_exists($dirName))
			return $dirName;
		$path = $KEPALA;
		for ($i = 1; $i < count($parts); $i++)
		{
			$path .= '/' . $parts[$i];
			if ($TestingCode)
				print "<p>Buat Folder di directory: $path</p>\n";
			@mkdir($path);
		}
		return $dirName;
	}

Test Run (Gambar dan Folder Tak Pernah Ada)

Di bawah adalah Print Out dari script tersebut sekiranya TestingCode = True serta gambar dan folder tersebut tidak wujud di dalam server.

Buat Folder di directory: muka-buku/978
Buat Folder di directory: muka-buku/978/041
Buat Folder di directory: muka-buku/978/041/557
Buat Folder di directory: muka-buku/978/041/557/984
Buat Folder di directory: muka-buku/978/041/557/984/1

creating/serving local file muka-buku/978/041/557/984/1/9780415579841-mc.jpg

Gambar Tiada di server. Jom kita ambil dari Syndetics. Source Gambar: https://secure.syndetics.com/index.aspx?isbn=9780415579841/mc.jpg&client=RAHSIA

Berjaya. Gambar dari Syndetics sudah disimpan di dalam server

Gambar kita ada simpan disini: www.munmon.com/main2/muka-buku/978/041/557/984/1/9780415579841-mc.jpg

Test Run (Gambar dan Folder Ada)

Script yang sama tapi gambar serta folder itu wujud. Berikut adalah Print Out dari script jika kita on kan setting TestingCode.

Create atau Load Gambar dari Local Server: muka-buku/978/041/557/984/1/9780415579841-mc.jpg

Gambar ini ada di dalam Server. Yeay!

Gambar kita ada simpan disini: www.munmon.com/main2/muka-buku/978/041/557/984/1/9780415579841-mc.jpg

Di bawah adalah keseluruhan script sekiranya berminat untuk guna. Saya lesenkan code ini dibawah dilesenkan di bawah CC BY-NC 4.0. Download Script di bawah jika mahu details dan description functionnya.

//Masukkan Nama Folder di sini
define('KEPALA', 'muka-buku');
// Masukkan Nama Lesen Library	
define('LESEN', 'RAHSIA-XXXXX-RAHSIA');
// Ini gambar default jika tak ada Gambar (
define('GAMBAR-TIADA', 'muka-buku/transparent.gif');
	
$TestingCode = False;
	
if ($TestingCode)
header("Content-type: text/html");	
$size = strtolower($_REQUEST['size']);	
if ('sc' != $size && 'mc' != $size && 'lc' != $size)
{
print "<p>ERROR - Illegal size. Must be either LC (Small), MC (Medium) or LC (Large). Please refer Syndetics Documentation </p>";
exit;
}
		
$isbn = strtoupper(preg_replace('/[^0-9Xx]/', '', $_REQUEST['isbn']));
if (10 != strlen($isbn) && 13 != strlen($isbn))
{
print "<p>Error - ISBN must be either 10 or 13 Characters</p>";
exit;
}
	
$directory = BikinFolder(KEPALA, $isbn, $TestingCode);	
	
$GambarMukaBuku = "${directory}/${isbn}-${size}.jpg";
if ($TestingCode)
print "<p>Create atau Load Gambar dari Local Server: $GambarMukaBuku</p>\n";
	
if ( ! file_exists($GambarMukaBuku) )
{
$sourceURL = 'https://secure.syndetics.com/index.aspx?isbn=' . "$isbn" . "/mc.jpg&client=" . LESEN;
		
if ($TestingCode)
print "<p>Gambar Tiada di server. Jom kita ambil dari Syndetics. Source Gambar: $sourceURL</p>\n";
		
if ($remote = fopen($sourceURL, 'r') )
{
$image = '';
while ( ! feof($remote) )
$image .= fread($remote, 8192);
fclose($remote);
if (strlen($image) >= 100  &&  $local = fopen($GambarMukaBuku, 'w'))
{
fwrite($local, $image);
fclose($local);
if ($TestingCode)
print "<p>Berjaya. Gambar dari Syndetics sudah disimpan di dalam server</p>\n";
}
}
}
else
{
if ($TestingCode)
print "<p>Gambar ini ada di dalam Server. Yeay!</p>\n";
}
$GambarKitaSimpan = file_exists($GambarMukaBuku) ? $GambarMukaBuku : GAMBAR-TIADA;
if ($TestingCode)
{	
print "<p>Gambar kita ada simpan disini: ";
print $_SERVER['SERVER_NAME'] . "/" . basename(getcwd()) ."/" . $GambarKitaSimpan;
print "</p>\n";
;
		
}
else
{
header("Content-Type: image/jpeg");
header("Content-Length: " . filesize($GambarKitaSimpan));
header("X-Pad: avoid browser bug");
}
		
print "<img class=thumber3 src='{$GambarKitaSimpan}'>";

function BikinFolder($KEPALA, $isbn, $TestingCode)
{
$parts = Array ($KEPALA, 
substr($isbn, 0, 3), 
substr($isbn, 3, 3), 
substr($isbn, 6, 3), 
substr($isbn, 9, 3));		
		
if (13 == strlen($isbn))
array_push($parts, substr($isbn, 12, 3));
$dirName = join('/', $parts);
if (file_exists($dirName))
return $dirName;
$path = $KEPALA;
for ($i = 1; $i < count($parts); $i++)
{
$path .= '/' . $parts[$i];
if ($TestingCode)
print "<p>Buat Folder di directory: $path</p>\n";
@mkdir($path);
}
return $dirName;
}

This work is licensed under CC BY-NC 4.0

The Core Values of Librarianship

While sorting out old images, I came across with this picture, the core values of Librarianship. These are the blocks and stones that define us… Librarians.

Generally, there are 11 values that each librarian should believe and uphold. These are our commandments; our values; our honour; our codes… our sacred codes. By these lines, every librarian must believe.

  • Access
  • Confidentiality/Privacy
  • Democracy
  • Diversity
  • Education and Lifelong Learning
  • Intellectual Freedom
  • Preservation
  • The Public Good
  • Professionalism
  • Service
  • Social Responsibility

No! I am not going to explain these word by word. Head up to ALA: Core Values of Librarianship to learn more.

Until then.

May you be a learned Person

Interim Survey on Malaysian Reading Habit 2014

Update : The Survey has been closed.

The National Library of Malaysia in collaboration with the Department of Statistics Malaysia (DOSM), Educational Technology Division of the Ministry of Education Malaysia, Librarians Association of Malaysia, the Malaysian Public Library Directors Council (MPAM) and Conference of Academic Libraries and National Library of Malaysia (PERPUN) is conducting an Interim Survey on Malaysians Reading Habit 2014. The objectives of this survey are to identify number of books read by Malaysians based on demographic and the trend of reading habit among Malaysians.

Click Here to participate.

This photo, “Evening Read” is copyright (c) 2011  Roxanne Ready and made available under a Attribution 2.0 license.

The New PULSE

This is the new Millennium Webpac Pro Interface for Petroleum Resource Centre. It seems like every workplace I have served, the very first thing I change is the Web Catalogue Interface. This is perhaps, the easiest and the most obvious task during initiation period.

I am so used with VTLS iPortal but this is something new. This is the Innovative Interfaces Inc. Millennium Webpac Pro, so much alien and very different. Alhamdulillah to be able to learn and understand its jargon and functions with limited timeline.

So… This is the new PETRONAS Ubiquitous Search Engine or PULSE.

Belajar menggunakan Millennium ILS

Bulan ini merupakan bulan ke-dua saya berkhidmat di Petroleum Resource Centre (PRC). Sebagai pekerja yang baharu, macam-macam benda harus dipelajari, dari budaya kerja sehinggalah benda-benda remeh seperti akronim dan sebagainya. Ini termasukkalah mempelajari menggunkan sistem library yang sedikit asing untuk saya iaitu Millennium ILS.

8 tahun saya menggunakan Virtua ILS dan saya amat senang dengannya. Dari create record, replace record dan produce report semuanya dah ada didalam kepala. Makna kata, dengan Virtua ILS, tidak lagi perlu melihat dan membaca manual. Mungkin ada juga merujuk manual untuk kepastian. Namun, itu semua sudah ditinggalkan, kerana sekarang bukan lagi Virtua ILS tetapi Millennium ILS.

Memang sangat asing Millennium ILS ini kepada saya. Dari client sehinggalah kepada sistem. Akses kepada server pun berbeza. Dahulu saya boleh pegang dan sentuh server, malah saya boleh masuk ke dalam bilik server. Tidak lagi sekarang. Di tempat baharu ini, library tidak menjaga server dan tidak mempunyai akses secara physical kepada server. Nampak pun tidak.

Sungguhpun begitu, mana-mana sistem perpustakaan adalah sama sahaja dari segi konsep dan matlamat. Cuma jalan kerja dan istilahnya sahaja yang berbeza. Yang menariknya, kebanyakan kerja-kerja menggunakan client. Penggunaan terminal atau cmd hanya terhad kepada kerja-kerja Administration. Itupun jarang-jarang sekali berlaku.

Dah dekat 2 bulan saya belajar menggunakan Millennium ILS dan sekarang sudah tahu cara-cara add record secara batch, replace dan update record secara batch dan macam-macam lagi. Nasib baik ada pemahaman dengan sistem library. Kalau tidak, jangan kata 2 bulan, 2 tahun pun belum tentu boleh paham.

Itulah kita, hari-hari sentiasa kena belajar. Kerana setiap hari ada sahaja ilmu yang baharu. Walaupun dengan pengalaman 8 tahun… belum tentu cukup untuk mengetahui kesemuanya. Oleh itu, sentiasalah bersedia untuk belajar.

Last Day di Open University Malaysia

Hari ini adalah hari terakhir saya di Open University Malaysia sebagai seorang Senior Librarian di Unit Automasi (org kampung saya kata: System Librarian). Dalam tak sedar, rupanya tanggal 1 August 2012 saya telah dinaikkan pangkat dari seorang Librarian ke Senior Librarian. (kiranya macam S41 jadi S44. Ini Gomen pahamla). Kebetulan pula 1 August 2013 saya akan sertai Petronas sebagai Librarian juga di PETT, Tower 1, Level 4, PRC. Takde la tinggi-tinggi gunung Kinabalu, tapi ok la tuh. Ini kira ultimate punya tukar kerja.

Yea. Naik Pangkat di OUM telah memberi suntikan motivasi untuk memberikan yang terbaik lagi kepada OUM. Habis macam2 diperah untuk kemudahan Staff di Perpustakaan Digital OUM. Dalam erti kata lain, reward atau anugerah bisa memberikan seseorang semangat yang positif. Jom kita review apa yang telah saya buat di OUM sepanjang tahun sebagai Senior Librarian.

Post this book to my Learning Centre
Satu Pinjaman Antara Perpustakaan automatik bagi pelajar yang jauh. Fungsi ini akan memudahkan permintaan untuk buku fizikal daripada pelajar-pelajar yang jauh (di luar Lembah Klang).

Library Enhance Catalog
Katalog perpustakaan yang berasaskan CMS Drupal yang bertindak sebagai penambahbaikan  kepada katalog klasik.

UniSearch Discovery Service
Merupakan egen pencarian yang berupaya untuk membuat pencarian kepada semua pangkalan data dan Katalog Perpustakaan secara serentak.

Library Ticketing System   
Satu sistem pengesanan aduan pelanggan. Menyediakan kemudahan pengesanan untuk setiap masalah yang dilaporkan.

Request for Article Link in UniSearch Discovery Service
Merupakan satu pautan yang hanya akan muncul apabila Full Text artikel tidak wujud atau akses kepada teks penuh adalah terhad. Pautan tersebut secara otomatik akan mengisi maklumat bahan dalam borang permohonan Pembekalan Dokumen. Jadi… ianya lebih mudah dan pantas.

DDS Delivery Service
Sistem ini dibina untuk menyimpan artikel-artikel yang pernah dipohon oleh pelajar sebelum ini untuk kegunaan masa hadapan.

Projek QR Code Perpustakaan Digital TSDAS
Projek QRCode berfungsi memberi kemudahan kepada pengguna perpustakaan untuk mengakses maklumat atau link yang diperlukan & seterusnya menyimpan link/QR-Code tersebut untuk kegunaan masa hadapan tanpa perlu menaip semula URL tersebut. Teknologi ini  menggalakkan penggunaan mobile devices kepada pengguna perpustakaan.

Cuma satu saja yang tak sempat dilaksanakan… iaitu migrate Library System Virtua VTLS ke Chamo VTLS. Tak apalah, kita kasi System Librarian yang baharu di OUM laksanakan yang itu. Pasti boleh punya.

Okeylah… Tepat jam 5.23PM saya, Ahmad Munawar MA telah berhenti dari Open University Malaysia untuk memberikan yang terbaik kepada Organisasi Impian saya semenjak di Perdana Leadership Foundation lagi, Petronas.

 

Terima Kasih OUM dan semua staff dan juga semua boss serta mantan boss

Kepentingan menyatakan sumber di post anda.

Kisah Lahad Datu masih belum selesai sehinggakan tercetus laporan-laporan daripada Wartawan tidak bertauliah di Facebook dan blog yang haprak lagi gemar Ctrl + X dan Ctrl + V cerita orang. Kedapatan ramai golongan manusia yang sebegini gemar Ctrl + X dan Ctrl + V tanpa menyatakan sumbernya. Inilah masalah dunia pada hari ini, golongan yang suka akan gunting cerita orang dan menampal kembali cerita orang di blog sendiri TANPA PENYATAAN SUMBER. Ini adalah sebuah bentuk pengkhianatan kepada maklumat tersebut.

Kejadian ini menyebabkan ledakan maklumat sehingga sukar untuk mencari posting asal sebuah berita tesebut. Penyataan sumber adalah sangat penting untuk tujuan penyemakan semula sesebuah petikan atau cerita yang dilaporkan. Ini adalah untuk melihat sejauh manakah kebenaran laporan tersebut. Sahih atau tidak dan juga benar atau palsu.

Di Malaysia sahaja terdapat ratusan ribu blog2 yang kurang adjar ini. Orang lain nak ada Blog, dia pon nak ada blog. Tapi ilmu penulisan tidak ada. Sikap hormat kepada penulis asal langsung tidak ada. Baik pergi mati dari Gunting dan Tampal cerita orang di blog sendiri. Kalau tak reti nak mengarang cerita buat apa nak bikin dan empunya sebuah blog. Tak salah kalau nak gunting dan tampal tapi lakukannya secara terhormat iaitu penyataan Sumber. Tidaklah sampai perlu untuk buat citation APA atau MLA, cukuplah sekadar membuat pautan kembali kepada posting yang asal.

Apabila golongan ini gunting dan tampal cerita orang dan golongan yang lain pun buat perkara yang sama pada blog si cilaka yang gunting dan tampal cerita orang pertamanya dan begitulah yang akan berlaku seterusnya. Maka akan terjadilah satu keadaan dimana cerita tersebut seoerti terperangkap di dalam vortex dan terawang-awang tanpa penulis asalnya diketahui atau sukar dipertemukan.

Meraka ini adalah golongan yang bangsat yang tidak tahu menghormati penulisan orang dan telah melakukan khianat ke atas sesebuah cerita yang dikarang oleh orang lain. Mungkin kata2ku bunyinya kasar tapi untuk berhadapan dengan bangsat-bangsat ini kata2 yang lembut tidak jalan. Mereka mungkin juga buat tak endah akan kata2 nista ini. Dah menjadi lumrah mereka untuk buat tak tahu. Sebab itu mereka ini bangsat.

Senarai Blog2 yang menjadikan Ctrl + X dan Ctrl + V  tanpa membuat Pautan kembali (Credit)

 

Saya akan update post ini untuk menyenaraikan Blog2 Kurang Adjar ini.

Being promoted… Syukur Alhamdulillah

As of 1st July 2012, I am now serving the Digital Library of Open University Malaysia as Senior Librarian (In Government Service is equivalent to S44). Syukur Alhamdulillah. Rezki from Him for my lovely wife and kids.

Being a Librarian for nearly 8 years; working enthusiastically and actively looking for ways to improve the library services to the best of my ability. If you love your job… well you will be rewarded in time. The rezki from Him will come… surely.

The 1st task I did when starting to work at Tan Sri Dr. Abdullah Sanusi Digital Library, if I am not mistaken is redesigning the Library Catalogue. Luckily I am well versed with Virtua VTLS Library System (thanks to En Azhar Md. Noor of Perdana Leadership Foundation. Hint: Tun Dr. Mahathir). Giving new look to OUM Digital Library was a piece of cake. Almost anyone could do it. It was purely HTML and CSS. No programming involved.

After sometimes, I came to realize that there was a need for student authentication. At first it was a simple PHP login script, exploiting exposed variables (not secure and dirty, but hey. It worked Okay!)

A year later I came across Drupal. Something like Joomla but much more powerful and robust. Drupal has a high learning curve. It is built on security and usability comes later. Hmmmm! Challenge accepted. Within 3 months a new Library Portal based on Drupal was introduced, somewhere in January 2010.

By now Drupal in the Library is being used as:

  • Authentication System
  • Error Reporting
  • Enquiries System
  • Document Delivery, InterLibrary and IntraLibrary Loan Request
  • Remote Access via EZproxy
  • Library Database Management System
  • Library Catalogue Replacement

I learnt Drupal by trial and error and with help from Drupal Communities, Drupal Books and some code snippets.

Ahhhh. I could still remember the day I was trying to write my 1st custom module. Nothing worked and I almost gave up. Luckily Drupal has good API documentation and I was able to write a module to programmatically add user into the system and log them in. It was a breakthrough. Nothing is impossible if you put your heart into it.

Still learning Drupal and is aiming to become a Drupal Ninja

library.oum.edu.my kebawah (down)

Adoiyai. Tidak semena² kesan daripada power trip server library.oum.edu.my mengalami masalah tak boleh nak boot. Superblock error katanya. Tak boleh boot. Recovery pon tak jalan. Tak tahu mana silap dia. Lepas buat thorough investigation then we find out modules library hilang. Celah mana hilang tidaklah hamba dapat pastikan.

[img_assist|nid=3459|title=|desc=|link=node|align=none|width=500|height=227]

Maka bermulalah kerja membaik pulih pada hari ini. Server ini kena siap dengan kadar segera sebab pelajar² dah nak exam. Sekarang pond ah penuh inbox dengan komplen mereka.

Mood: Tension dan Berangin Satu Badan

Apa itu ISBN

Umum mengetahui bahawa ISBN itu adalah akronim untuk International Standard Book Number yang digunapakai untuk mengenal pasti setiap buku-buku di seluruh muka bumi ini. Sehingga Januari 2007, ISBN mempunyai 10 angka. Kini, ISBN mempunyai 13 angka yang unik untuk setiap tajuk buku. Di Malaysia, badan yang bertanggunggjawab menjaga dan mengeluarkan no siri ini adalah Perpustakaan Negara Malaysia.

Selalu kita lihat di Perpustakaan, Toko-toko buku atau Amazon Online mempunyai pencarian melalui ISBN. Ini adalah kerana, untuk setiap buku yang diterbitkan mempunyai no ISBN yang berbeza, melainkan ianya adalah terbitan semula – ISBN yang lama akan digunapakai. No ISBN tidak boleh digunakan semula, ianya adalah unik untuk setiap judul.

Pada setiap ISBN, sebenarnya terdapat huraian-huraian yang mungkin anda diantara kita tidak ambil peduli pun. Hatta ianya seorang pustakawan. Pada mereka ISBN hanyalah No siri untuk kawalan terbitan buku. Namun, sebagai Pustakawan, kita wajib tahu apa itu ISBN yang sebenarnya.

ISBN untuk buku berjudul “Indahnya Hidup Bersyariat, karangan Dato’ Ismail Kamus dan Mohd Azrul Azlen Abd Hamid adalah : 978-967-51023-0-1. Pernahkah anda terfikir apa yang dimaksudkan oleh nombor ini?

Mari kita huraikan Pengertian No ini.

  • 978 adalah prefix untuk semua buku. Makna kata, sekiranya kita terjumpa ISBN dengan 978 di hadapannya, tak perlu pikir-pikir… ini adalah buku
  • 967 adalah identiti untuk kod kawasan. Di Malaysia kebanyakan buku yang diterbitakan di Malaysia mempunyai 967 atau 983
  • 51023 adalah identiti penerbit
  • 0 adalah identiti judul
  • dan 1 itu adalah no semakan untuk ISBN tersebut.

No semakan ISBN?
No semakan ISBN bukan no yang diletakkan secara suka-suka sahaja. Terdapat pengiraan disebalik no tersebut. Huhu. Librarian tak perlu pikir pasal no ni. Banyak lagi kerja yang lagi penting mereka kena fikir. Namun sebagai ilmu, saya kongsi cara-cara pengiraannya di sini.

Di dalam setiap ISBN 13, hanya 12 no yang pertama yang akan dikira dan angka yang ke-13 itulah no hasil daripada pengiraan ISBn check digit tersebut. Setiap nombor dari kiri hingga kanan akan didarabkan dengan 1 dan 3 secara alternate. Kemudian nombor tersebut akan dibahagi dengan 10. Hasil daripada pembahagian tersebut akan ditolak dengan 10. Huhuhu. Pening tak? Itu la pasal Librarian tak buat kerja gila neh.

Jom tengok contoh:

X = 9*1 + 7*3 + 8*1 + 9*3 + 6*1 + 7*3 + 5*1 + 1*3 + 0*1 + 2*3 + 3*1 + 0*3

X / 10 = Y

10 – Y = No last itu! huhuhuh

So… dalam perkara ini X = 109 dan 109/10 = 10 berbaki 9 dan 10 – 9 = 1.

Huhuhuh. Pining tak?