Yumarsono Muhyi
STMIK Supra
Abstrak
Web-based computer applications are used a lot, either for small offices or
medium-to-big companies. The flexibility and the efficiency it offers, make web-
based application being favourable to them. But there is still one problem: copy
printing. Copy printing with dot matrix rinter is widely known and used for stand-
alone applications, not for web-based ones. To enable those web-based
applications for copy printing, need some approaches and techniques, which will
be explored in this article.
1. Pendahuluan
Printer atau mesin pencetak berjenis dot matrix banyak menjadi pilihan bagi
kantor yang membutuhkan tembusan atau salinan dokumen dalam proses
bisnisnya. Misalnya untuk purchase order, delivery order, dan sebagainya.
Dengan sekali pencetakan, banyak salinan dokumen yang bisa dibuat sesuai
kebutuhan, dengan bantuan pencetak dot matrix.
Karena kelebihan inilah, maka pencetak dot matrix tidak bisa digantikan
dengan pencetak-pencetak modern yang berbahan pencetak berupa tinta cair
atau serbuk tinta. Memang pencetak dot matrix tidak akan pernah bisa
menghasilkan keluaran setajam dan seindah pencetak tinta atau laser, namun
1
kemampuan pencetak dot matrix yang dapat membuat tembusan atau salinan,
juga tidak bisa digantikan oleh pencetak tinta atau laser.
Sehingga tidaklah aneh, jika kebutuhan akan pencetak tembus ini sangat besar
di masyarakat. Mesin-mesin pencetak dot matrix yang edisi terdahulu, hingga
kini masih tetap dicari dan digunakan. Bahkan mesin pencetak yang bekas pun
masih berharga cukup tinggi di pasaran.
2
melalui media-media koneksi yang ada, baik itu serial port maupun parallel
port.
Aplikasi berbasis web pada umumnya terpisah dengan mesin yang akan
digunakannya (seperti pencetak, scanner, dan sejenisnya), baik itu terpisah
secara fisik atau terpisah secara OSI layer. Dengan demikian, akan sulit bagi
aplikasi berbasis web untuk menggunakan mesin periferal tersebut.
Keberadaan jaringan sebagai media penghubung antara suatu komputer
dengan periferal yang terpisah secara fisik, juga tidak serta-merta bisa
menyelesaikan masalah, karena untuk mengoperasikan mesin membutuhkan
instruksi-instruksi fisik yang sudah tertentu.
1.3. Tujuan
2. Kerangka Pemikiran
Sesuai dengan tujuan awalnya yang berkenaan dengan cetak tembus, maka artikel
ini akan membatasi solusi ke pencetak dot matrix saja, dan tidak akan membahas
pencetak berjenis lain, seperti tinta, laser, plotter, dan sebagainya, dan tidak juga
akan membahas mesin-mesin periferal lainnya. Meskipun demikian, pencetak
jenis lain dan mesin periferal lain dengan berbagai fiturnya dapat digunakan
dengan analogi dan pendekatan aplikasi yang sama.
3
Untuk mesin pencetaknya, penulis akan membatasi diri ke pencetak dot matrix
bermerek Epson, yang telah menjadi standar untuk pencetak dot matrix yang baik
kualitas dan kehandalannya. Selain itu, memang mesin pencetak bermerek inilah
yang paling banyak beredar di pasaran Indonesia untuk tipe dot matrix, sehingga
solusi pada artikel ini realistis, kontekstual, dan dapat diimplementasikan.
Materi inti yang dipergunakan dalam penulisan artikel ini sepenuhnya berasal dari
literatur tentang mesin pencetak dari berbagai merek dan versi. Topik-topik yang
menjadi bahasan dalam studi literatur artikel ini adalah standar-standar instruksi
pencetak, terutama untuk pencetakan mode teks. Tema ini akan diulas pada
bagian bahasan selanjutnya.
Artikel ini merupakan penulisan ulang atas proses pembuatan aplikasi yang dibuat
oleh penulis, untuk sebuah aplikasi manajemen kampus di institusi tempat penulis
mengabdi. Proses yang dilakukan dalam melakukan pembuatan aplikasi ini ada
beberapa tahapan. Tahapan-tahapan tersebut adalah:
1. Studi literatur
2. Praktik pengoperasian alat
3. Pemodelan sistem
4. Pengkodean
5. Uji coba dan implementasi.
4
Pencetak dot matrix adalah generasi paling awal dalam industri percetakan
berbasis komputer. Alat utamanya adalah kepala cetak (print head), berisi
sejumlah jarum tersusun yang bergerak maju dan mundur menumbuk
kertas/pita berkarbon ke atas kertas. Tumbukan ini akan memberikan citra,
karena karbon yang menempel pada kertas.
Cara kerja kepala cetak ini persis dengan mesin tik. Hanya saja, jika mesin tik
bentuk hurufnya sudah ditentukan, maka pada kepala cetak, huruf (atau
karakter) dibentuk berdasarkan jarum-jarum yang tertentu yang digunakan
untuk menumbuk kertas karbon. Jarum-jarum ini tersusun dalam sebuah
matriks tertentu, maka disebut sebagai “dot matrix” atau “matriks titik”.
Contoh hasil cetak dengan pencetak dot matrix dapat dilihat pada Gambar 1
berikut ini.
Pencetak dot matrix ini kemudian terus berkembang hingga banyak versi.
Kualitas pencetakannya juga terus meningkat, hingga ada yang kualitasnya
disebut dengan Near Letter Quality (NLQ), dan pseudo-color yang merupakan
pencetak dot matrix dengan pita karbon yang berwarna, tidak lagi berwarna
hitam saja. Dan masih banyak lagi fitur-fitur kualitas yang tersedia. Gambar 2
berikut ini adalah pencetak dot matrix merek Epson tipe MX-80, salah satu
generasi awal pencetak merek Epson yang cukup terkenal.
5
Gambar 2. Epson MX-80
Tahap lebih lanjut lagi, pencetak ini sekarang tidak lagi menggunakan pita
karbon, melainkan tinta cair dan padat seperti pada pencetak laser atau mesin
fotokopi. Kualitas dan ketajaman hasil cetak juga meningkat dengan jauh
sekali, dibandingkan dengan kualitas cetak dot matrix yang terbaik sekalipun.
Set instruksi Epson tergantung pada jenis pencetaknya. Pencetak dapat bekerja
pada dua mode, yaitu mode teks dan mode halaman (atau mode grafis). Versi
awal hanya mengembangkan yang mode teks, dengan set instruksi bernama
ESC/P (Epson, 1997). Untuk mesin-mesin pencetak keluaran terbaru, set
instruksi yang digunakan adalah ESC/P2 dan ESC/POS, yang memiliki
berbagai fitur baru dalam set instruksi dan operasinya (Epson, 2002).
6
Kata ESC pada tiap namanya menggambarkan bahwa setiap instruksi yang
dikirim ke pencetak, haruslah dimulai dengan karakter ESC (escape). Maka,
setiap data yang dikirim dari komputer ke pencetak tanpa diawali karanter
ESC, akan diartikan sebagai karakter (atau sesuatu) yang harus dicetak.
Apapun jenis pencetak yang akan digunakan, maka setiap pencetak bermerek
Epson akan selalu mendukung set instruksi awalnya (backward compatibility),
yaitu set instruksi ESC/P. Sehingga dapat diketahui, bahwa pencetak Epson
apapun, dapat dipergunakan untuk mencetak dengan mode teks, meskipun
bukan berjenis dot matrix.
2.3. PHP
Karena sudah banyak materi yang berbicara mengenai aplikasi berbasis web
dan PHP, maka penulis tidak akan banyak mengulas materi yang sudah
7
umum ini. Penulis mempersilakan bagi para pembaca yang ingin mengetahui
PHP dengan mendetail, untuk melihat ulasan tentang PHP di berbagai buku
dan situs web yang ada.
2.4. Java
Yang membuat Java dapat berjalan lintas platform adalah berkat adanya Java
Virtual Machine (JVM). JVM menjadi pondasi bagi bahasa Java agar dapat
bekerja di manapun. JVM berfungsi sebagai penjembatan antara
mesin/komputer dengan bahasa Java. Atau dengan kata lain, JVM adalah
mesin di atas mesin, dimana seolah-olah bahasa Java itu berjalan di atas mesin
sendiri yang khusus, bukan mesin yang secara fisik ada di bawahnya.
Java bekerja sangat baik dan sangat stabil, sehingga banyak dipergunakan oleh
banyak sistem-sistem produksi yang mengharapkan kepada kinerja yang
8
tinggi. Bidang-bidang yang sudah menggantungkan sistem produksinya
kepada Java adalah perbankan, telekomukasi, informasi, dan sebagainya.
Selain untuk aplikasi yang stand alone atau berdiri sendiri, Java juga memiliki
teknologi yang handal untuk digunakan untuk aplikasi yang berbasis jaringan
komputer. Teknologi Java yang sudah mendukung untuk jaringan komputer
adalah J2EE (Enterprise Edition), sementara teknologi Java yang stand alone
adalah J2SE (Standard Edition). Angka 2 merupakan kode bagi penggunanya,
bahwa J2EE dan J2SE telah menggunakan terobosan teknologi, dibandingkan
dengan versi-versi sebelumnya. Sekarang kode ini telah berkembang menjadi
angka 5, dan disebut Java 5.
Sistem yang penulis rancang dan buat dapat digambarkan seperti pada Gambar
3 berikut ini. Ada tiga modul utama yang berperan penting dalam proses
pencetakan ini, yaitu:
1. Service Modul (Modul Servis).
2. Driver Module (Modul Pengendali).
3. Comm. Module atau Communication Module (Modul Komunikasi).
Selain tiga modul utama tersebut, terdapat 3 (tiga) modul lain sebagai
pendukung, yang merupakan aplikasi-aplikasi dasar dari sistem ini, yaitu:
1. PHP dan Apache, dua modul ini sebagai sebagai aplikasi pondasi
untuk Modul Servis.
9
2. Java Virtual Machine (JVM), sebagai aplikasi pondasi untuk Modul
Komunikasi dan Modul Pengendali.
Modul Pengendali (Driver Module) dibuat dari bahasa Java, dibuat dengan
bantuan Eclipse sebagai IDE (Integrated Development Environment) atau
aplikasi alat bantu untuk menyunting, mengeksekusi, dan mengkompilasi kode
programnya. Modul Pengendali ini berfungsi sebagai penerus instruksi yang
masuk ke modul tersebut. Modul Pengendali tidak melakukan pengolahan
10
apa-apa, hanya menerima masukan dan meneruskanya ke port paralel yang
diinginkan, dimana pada umumnya port yang digunakan adalah port LPT1.
Modul Pengendali juga bertugas menjaga keutuhan format data dari karakter
yang dikirim, agar jangan sampai ada yang mengalami translasi karakter
karena adanya perbedaan tabel karakter yang digunakan antara pencetak
dengan sistem sebelum modul Driver tersebut. Dalam sistem-sistem operasi
tertentu, ketika mengirimkan suatu data keluar dari komputer, biasanya data
yang keluar itu akan langsung diformat dengan kode bahasa dan kode karakter
tertentu. Hal ini memang jamak dilakukan oleh beberapa sistem operasi,
dalam rangka kemudahan pengolahan data di tingkat aplikasi.
11
outputStream.write(messageString.getBytes());
3. Mengirimkan karakter “new line” atau baris baru, sebagai penanda
bahwa seluruh data sudah selesai dikirimkan dan bisa langsung dicetak
dari buffer
outputStream.write("\n".getBytes());
4. Inisialisasi ulang pencetak, untuk mempersiapkan pencetakan yang
baru berikutnya
outputStream.write(27);
outputStream.write(64);
5. Mengirimkan sinyal “flush”, untuk menjamin bahwa semua data
dikirimkan dari JVM ke pencetak, karena JVM memiliki sistem
buffering sendiri
outputStream.flush();
12
Agar Modul Servis yang terbuat dari PHP dapat memanggil Modul Pengendali
yang terbuat Java, dilakukan pemanggilan aplikasi Java melalui eksekusi
langsung dari sistem operasi. Data yang akan dicetak yang diterima dari
Modul Service, dikirimkan ke Modul Pengendali melalui parameter saat
memanggil Modul Pengendali dari command prompt.
Agar berfungsi sebagai aplikasi stand alone, Modul Pengendali ini harus telah
terkompilasi ke dalam sebuah arsip (file) JAR (Java Archive) bernama
WriteToPort.jar, dengan nama port dan pesan yang dikirimkan melalui
parameter dari eksekusi arsip JAR tersebut. Modul Pengendali ini selanjutnya
secara internal menyusun parameter-parameter masukan yang berisi pesan
tersebut, menjadi sebuah urutan yang sesuai, dan disimpan dalam sebuah
variabel yang siap untuk dikirimkan ke pencetak dot matrix. Berikut ini adalah
kode untuk penyusunan ulang parameter-parameter tersebut:
messageString = "";
for (int i = 1; i < args.length; i++){
if (i == 1) messageString = args[i];
else messageString = messageString + " " + args[i];
}
13
bekerja. Pencetakan telah bekerja dengan baik, dimana kebutuhan pencetakan
beberapa jenis kuitansi pembayaran di bagian keuangan telah terlayani dengan
baik.
Aplikasi sistem informasi kampus tersebut diinstal di sebuah server, agar bisa
diakses oleh banyak pihak melalui browser masing-masing secara simultan.
Aplikasi sistem pencetak diinstalasi di sebuah komputer lain, dimana sebuah
pencetak dot matrix siap digunakan di komputer tersebut.
3. Kesimpulan
Pencetakan ke pencetak dot matrix (dan juga pencetak tipe lainnya) dari aplikasi
berbasis web membutuhkan pendekatan dan teknik khusus. Berbagai teknik dan
metode telah dilakukan untuk dapat melakukan hal ini, sebagaimana yang penulis
telah amati dan teliti, yang pada umumnya spesifik untuk sistem operasi tertentu,
seperti Linux dan Windows. Hal ini membuat metode-metode itu tidak dapat
diimplementasikan untuk lintas operasi, dan dibutuhkan pengkodean ulang
(recoding) agar dapat dijalankan di sistem operasi lain yang menjadi tujuan.
Pengkodean ulang ini bukan persoalan yang mudah, karena tiap sistem operasi
mempunya pola operasi yang berbeda, sehingga pengkodean ulang perlu
memperhatikan banyak hal yang spesifik untuk sistem operasi tertentu dan mesin
perifal yang tertentu.
Artikel ini memberikan pendekatan lain yang umum dan lintas sistem operasi,
dalam memberikan kemampuan bagi aplikasi berbasis web untuk melakukan
pencetakan, dan juga interkoneksi ke mesin periferal lainnya. Dengan
14
menggunakan Java sebagai basis aplikasi untuk hubungan ke pencetak, dan PHP
sebagai modul komunikasi berbasis web, artikel ini telah memberikan gambaran
sempurna untuk hal itu.
Meskipun demikian, artikel ini baru langkah awal dalam memberikan kemampuan
bagi aplikasi berbasis web untuk melakukan pencetakan. Sistem yang dibuat
dalam artikel ini juga masih sangat sederhana, dimana pencetakan dilakukan
untuk mode teks dan kualitas draft yang memiliki resolusi rendah.
Daftar Pustaka
Axelson, J. Parallel Port Complete: Programming, Interfacing, & Using the PC's
Parallel Printer Port. Lakeview Research LLC, Madison.
Epson, 1997. Epson ESC/P Reference Manual. Seiko Epson Corporation, Nagano.
15
Hartinah, S. 2005. Penulisan Karya Ilmiah Bagi Pustakawan. Artikel di
sampaikan pada Pendidikan dan Pelatihan Alih Ajar se-Propinsi Jawa
Tengah.
Ratschiller, T.; T. Gerken; 2000. Web Application Development with PHP 4.0.
New Riders.
16