LAPORAN KERJA PRAKTEK Sistem Kontrol berbasis Web Melalui Paralel Port Linux Grup Fisika Teoritik dan Komputasi Pusat Penelitian Fisika ­ LIPI Laporan ini disusun sebagai salah satu persyaratan kelulusan mata kuliah Kerja Praktek Oleh: Gheyb Jhuana 1110000168 Sekolah Tinggi Teknologi Telekomunikasi Bandung 2004 I.1 Latar Belakang I.1.1 Latar belakang sistem kontrol Pada umumnya sistem kontrol bersifat proprietary, artinya perangkat lunak datang satu paket dengan perangkat kerasnya. Aplikasi sistem kontrol ini sudah merambah keseluruh segi kehidupan, dari yang paling sederhana sampai sistem kontrol kompleks yang dapat menjalankan mesin­mesin di pabrik. Sebagai contoh, untuk standar industri biasa digunakan PLC (Programable Logic Controller) dan SCADA (Supervisory Control and Data Acquisition) sofware. Pada prinsipnya semua sistem kontrol memiliki fungsi yang sama yaitu melakukan tugas­tugas secara otomatis berdasarkan input, kondisi, dan jadwal tertentu. Umumnya sistem kontrol menggunakan jaringan sendiri khusus untuk data kontrol. Komunikasi data dengan komputer bisa juga dilakukan melalui serial port atau parallel port, dimana serial port hanya mengirimkan data satu arah saja secara seri sehingga membutuhkan waktu yang lama dalam proses transmisi datanya. Hal tersebut dapat dittupi oleh parallel port yang dapat mengirim data secara simultan. Pada beberapa aplikasi sistem kontrol, akses benar­benar dibatasi dari local host terminal saja. Pertanyaannya apakah bisa dilakukan kontrol dari jarak jauh, dimana kita melakukan kontrol dari terminal komputer yang berada di lokasi berbeda dengan instrumennya misalnya dengan menggunakan jaringan LAN atau bahkan internet. Untuk menjalankan sistem kontrol yang seperti ini sangat memungkinkan sekali dapat dilakukan dengan menggunakan interface program yang dapat menjembatani pengguna melalui web browser pada remote terminal. Interface program ini disebut CGI (Common Gateway Interface). 1 I.1.2 Latar belakang linux Linux merupakan salah satu sistem operasi alternatif yang efisien.. Sistem operasi yang dapat diperbanyak tanpa harus mengeluarkan biaya pembelian software. Pada saat ini linux sudah sangat memenuhi pasar sebagai suatu sistem operasi yang tidak hanya untuk keperluan server, tetapi juga dapat dipakai untuk keperluan kantor (office). Perkembangan sistem operasi linux yang sangat cepat membuat linux semakin user friendly (mudah didalam pengoperasiannya). Linux merupakan sistem operasi open source gratis, customable (dapat di gunakan dan dapat bekerja pada hampir semua jenis/tipe komputer yang ada saat ini. Untuk keperluan server, linux merupakan pilihan yang baik sebagai server hosting internet. Yang dimaksud dengan server hosting adalah server yang mampu menampung dan melayani berbagai jasa internet yaitu DNS (Domain Name Server), web, e­mail, FTP, SSH dan database. Selain itu, untuk penggunaannya kita tidak memerlukan komputer tercanggih, minimal processor 385DX dengan 4Mbytes RAM dan 40Mbytes hardisk sudah cukup untuk kernel linux. I.1.3 Latar belakang web Web merupakan suatu layanan yang digunakan baik oleh pengunjung situs web maupun pemilik situs web (client/server). Web server akan mensuplai informasi yang diminta dan web browser bertugas menampilkan informasi tersebut. Web tergantung pada tiga protokol yang fundamental yaitu: 1. Skema penamaan alamat web yang konsisten sumber informasi yang tersebar di internet dapat diidentifikasikan melalui URL (Uniform Resource Locator) 2. Mekanisme untuk mengambil informasi melalui alamat dokumen hypertext yang ditulis dengan HTML, dapat diambil dari web dengan menggunakan HTTP (Hypertext Transfer Protocol). Lalu dokumen tersebut dikirim melalui jaringan dengan TCP/IP (Transmission Control Protocol/Internet Protokol). 2 3. Metoda untuk menampilkan isi informasi dari dokumen ditulis dengan menggunakan HTML (Hypertext markup Language). Dalam perkembangannya, web tidak hanya bisa mengakses dokumen yang bersifat statis tapi juga yang bersifat dinamis bisa diakses sehingga dokumen yang ditampilkan tergantung dari inputan HTTP request yang dikirim oleh pengguna. CGI memungkinkan web server untuk menjalankan program sebagai respon terhadap HTTP request. Output dari program ini akan dikirim kembali kepada web browser pengguna. I.2 Perumusan Masalah dan Batasan Masalah Dalam laporan ini akan dibahas mengenai sistem kontrol parallel dengan menggunakan interface web under linux. Linux yang digunakan adalah linux SuSE 9.0 dengan pertimbangan sistem operasi ini sudah sangat mendukung CGI (common gateway interface), yang bisa ditulis dengan bahasa program C atau perl (Practical Extraction and Report Language) yang penulis gunakan untuk membuat pemrograman parallel. Dalam hal ini penulis menggunakan perl untuk membuat cgi program. Sistem kontol yang digunakan adalah sistem switch on/off sederhana dengan menggunakan relay, dimana relay ini yang akan dikontrol oleh sebuah komputer melalui parallel port. Parallel port yang digunakan adalah parallel port standar untuk printer. I.3 Tujuan Penulisan Laporan Tujuan penulisan laporan ini adalah untuk menjelaskan bagaimana cara kerja sistem kontrol parallel berbasis web dengan menggunakan sistem operasi berbasis linux, yang dapat digunakan untuk mengontrol sebuah cluster. Selain itu penulisan laporan ini dilaksanakan unuk melengkapi syarat kelulusan Kerja Praktek yang merupakan salah satu mata kuliah wajib yang ada di Teknik Elektro STT Telkom. 3 II.1 Linux Linux bermula dari Multics (Multiplexed Information and Computing Service). Sebuah operation system yang digunakan pada komputer­komputer mainframe untuk keperluan server jaringan. Pada tahun tersebut, tepatnya tahun 1965 Multics merupakan satu–satunya OS dengan fasilitas sistem multi user. Pengembangan Multics ini adalah hasil kerjasama antara Bell Telephone Labs dan MIT. Dua orang staf pengembang perangkat lunak di Bell labs, yakni Ken Thompson dan Dennis Ritchie yang juga pembuat bahasa pemrograman C adalah orang–orang memiliki andil besar pada proyek Multics. Dan software aplikasi pertama yang mereka buat adalah game multi user yang dikenal dengan nama Space Travel. Kemudian berselang beberapa tahun, muncullah Unics/Unix sebagai pengembangan dari Multics. Sejalan dengan perkembangan waktu, Unix berubah menjadi produk software komersial. Salah satu karyawan dari MIT yang kesehariannya bekerja di laboratorium artificial intelligence MIT (Richard M. Stallman) yang akhirnya memilih untuk tidak bekerja pada lab tersebut memiliki konsep yang berbeda tentang lisensi suatu produk software. Beliau berpendapat bahwa dalam pendistribusian produk software harus memegang azas demokrasi. Sehingga pada tahun 1983 Richard M. Stallman mengumumkan proyek GNU (Gnu’s not Unix). GNU software ini didistribusikan secara bebas di internet dalam bentuk source code sehingga para programmer dapat membaca, memodifikasi, dan mendistribusikan kembali dari versi yang mereka modifikasi tanpa adanya batasan. Stallman bersama rekan–rekan di MIT labs mendirikan Free Software Foundation (FSF) sebagai corporate non­profit yang mempromosikan free software dan 4 menghilangkan pembatasan tentang proses distribusi, modifikasi terhadap suatu produk software. Free Software Foundation ini memiliki 3 asas penting, yakni : Dapat memperbanyak/menyalin GNU software dan menyebarluaskannya secara bebas. Jika anda adalah seorang programmer, anda dapat memodifikasi GNU software sejauh yang anda suka karena anda dapat mengakses source codenya. Anda dapat mendistribusikan versi pengembangan yang anda buat tanpa adanya bayaran apapun dari orang lain yang menggunakan software tersebut. Pada awal tahun 1991, FSF telah memiliki seluruh komponen utama dari GNU operation system. Namun satu hal yang belum dimilikinya, yaitu kernel sebagai jantung dari suatu operation system. Linus B. Torvalds, seorang mahasiswa computer science yang telah lama bekerja dengan sebuah kernel Minix buatan Andrew Tannenbaum adalah orang yang memiliki andil besar terhadap GNU/Linux selain Richard M. Stallman. Kernel Minix yang ditulis oleh Andrew Tannenbaum tersebut masih jauh dari kesempurnaan untuk sebuah operation system. Akhirnya, Linus B. Torvalds membuat kernel baru kemudian ia mendistribusikan ke newsgroup/mailing list di internet. Dalam waktu singkat, linus bersama para programmer yang tergabung dalam newsgroup tersebut berhasil membuat kernel yang cukup stabil dan diberi nama Linux (Linus’s Minix). Pada awal tahun 1992 linux sebenarnya telah diintegrasikan dengan GNU software dan menghasilkan suatu operation system yang kita kenal sekarang dengan GNU/Linux. Namun, kernel linux versi pertama sendiri yaitu kernel versi 1.0. baru dirilis pada tahun 1994. Beberapa alasan menggunakan linux: Free Software, artinya anda dapat mengambil source program Linux tanpa harus membayar biaya untuk source program tesebut. 5 Open Source, artinya semua listing program dari source code OS tersebut dapat anda lihat dan dapat dimodifikasi tanpa adanya larangan dari siapa pun juga. Kestabilan dari program–program Linux yang telah teruji. Sistem anda tidak akan mengalami hang walaupun anda telah menjalankan program tersebut sebulan atau lebih dan tidak perlu melakukan restart. Jika anda penggemar film titanic, maka proses pembuatan efek animasi dan renderingnya yang tentu saja membutuhkan komputasi yang cukup kompleks dan sangat rumit ternyata menggunakan bantuan linux. Linux merupakan OS cross platform yang dapat dijalankan pada hampir semua jenis/tipe komputer yang ada saat ini. Saat ini banyak beredar distribusi linux yang namanya relatif sudah banyak dikenal bagi pengguna komputer. Redhat, SuSE, Mandrake, Slackware, dan Debian adalah beberapa dari distribusi besar yang digunakan di Indonesia. Pada prinsipnya Linux itu satu, yakni kernel yang dikembangkan oleh Linux Torvalds dan kawan­kawan. Yang membedakan antar distribusi biasanya berkisar tentang: ­ Instalasi Masing masing distribusi menggunakan metode dan antar muka sendiri­sendiri untuk instalasinya. Bahkan pada beberapa distribusi, sudah mulai menggunakan antar muka grafis untuk membimbing proses instalasinya. ­ Aplikasi yang disertainya Program­program di linux (atau sering disebut sebagai paket) jumlahnya saat ini banyak sekali. Dan masing­masing distribusi, memberikan paket­paket alternatif yang berbeda di samping paket standar yang dapat ditemui hampir di setiap distribusi. ­ Program bantu Hampir di setiap distribusi mempunyai program bantu yang memudahkan pemakai. Misalnya distribusi redhat, menyertakan program rpm (Redhat Package 6 Manager) yang memudahkan pengguna untuk menginstall dan menghapus program binary. SuSE menyertakan YaST (Yet Another Setup Tool) untuk manajemen program dan sistem dan SaX (SuSE advance X­configuration) untuk membantu instalasi X Window. Slackware menyediakan paket pkgtool untuk instalasi dan menghapus program, sementara Debian menyertakan dpkg untuk fungsi yang sama. II.2 Parallel port Parallel port dikembangkan oleh IBM sebagai jalan untuk menghubungkan sebuah printer ke PC (Personal Computer). Printer port terdiri dari tiga port alamat yaitu data pada alamat 0x0378, status pada alamat 0x0379 dan control port pada alamat 0x037a. Printer Data port status control LPT1 0x03bc 0x03bd 0x03be LPT2 0x0378 0x0379 0x037a LPT3 0x0278 0x0279 0x027a Parallel port memiliki 25 pin seperti terlihat pada tabel II.2.1 [1]. Dari tabel tersebut dapat disimpulkan bahwa pada parallel port terdapat 8 pin data output (pin 2­9), 4 pin output tambahan (pin 1,14,16,17), 5 pin data input (pin 10­13,15) dan ground (pin 18­25). Tabel II.2.1 Semua output pada data port adalah true logic, dimana jika kita memberikan inputan logika satu maka akan menyebabkan output tersebut akan bernilai maksimum (on). Kecuali untuk output /SELECT_IN, /AUTOFEED dan /STROBE (tiga output tambahan) pada control port memiliki inverted logic, yang memiliki sifat kebalikan dari true logic. Jika diberi nilai logika satu pada bit (inputan) maka output akan bernilai 7 minimum (off). Hal ini menambah kekompleksan dalam penggunaan printer port, akan tetapi untuk menyederhanakannya dapat dibuat inverter dengan menggunakan gerbang logika Ex­OR untuk outputnya. II.3 CGI (Common Gateway Interface) CGI atau Common Gateway Interface adalah cara standar untuk menciptakan interface web. CGI merupakan suatu bentuk komunikasi dimana client (browser) dapat memberikan suatu masukan kepada server, dan server mengolah masukan tersebut serta mengembalikannya kepada client (browser). CGI itu sendiri bukanlah bahasa pemrograman seperti C, Basica, Turbo Pascal, dan lain­lain. CGI hanyalah sebuah istilah yang menggambarkan betuk komunikasi antara client­server secara interaktif. Tugas utama program CGI adalah membaca semua data yang dikirimkan oleh user melalui HTTP protocol. Berdasarkan semua data tersebut, maka akan dilakukan aksi yang sesuai dengan syarat dan kondisi yang ditulis dalam program CGI tersebut. Program yang dimaksud adalah program external yang bukan merupakan bagian server web.pada saat suatu halaman CGI diakses, server web akan memanggil program yang sudah ditentukan kemudian mengambil seluruh keluaran yang dihasilakan program tersebut kepada browser pengakses, seperti yang terlihat pada gambar II.3.1. Secara umum fakta mengatakan bahwa hampir seluruh web server yang mampu menangani web server menggunakan UNIX atau Linux sebagai flatform­nya. 8 gambar II.3.1 proser penggunaan CGI dari server­client II.3.1 Bahasa pemrograman Untuk menulis CGI script, kita membutuhkan sebuah bahasa pemrograman yang memiliki persyaratan : 1. Dapat menangani TCP/IP 2. Dapat dijalankan pada server yang kita pakai Tidak semua bahasa pemrograman memiliki kemampuan untuk menangani TCP/IP. Bahasa pemrograman dibawah platform DOS seperti Tutbo Pascal, Basica dan lain­lain tidak mampu menangani TCP/IP sehingga kita tidak dapat mempergunakannya. Kebanyakan sofware­ sofware yang menangani TCP/IP dan biasa untuk pemrograman CGI adalah sofware­sofware yang ada dibawah platform UNIX/Linux. Bahasa pemrograman under linux/unix seperti perl, C/C++ adalah bahasa pemrograman yang bisa dipakai untuk CGI. Ada beberapa alasanmengapa para programer senang menggunakan bahasa pemrograman di linux untuk membuat CGI. Pertama karena linux/unix mendukung TCP/IP dan kedua pemrograman di linux merupakan pemrograman non­grafis sehingga tidak memakan bandwidth yang sangant besar, yang akan sangat berpengaruh terhadap kecepatan akses internet. Itulah sebabnya mengapa kebanyakan server dibuat under linux. II.3.2 Apache web server Pada awalnya apache merupakan modifikasi dari server NSCA. Karena dirasa memiliki banyak kekurangan, berbagai kontribusi patch untuk apache banyak diisumbangkan oleh programer dan administrasi sistem. Dari situlah nama apche didapatkan , yaitu berasal dari kalimat “A patchy web server”, yang artinya server 9 web yang penuh tambal sulam. Karenanya kode­kode program apache agak sulit dimengerti dan ditelusuri. Walaupun demikian kinerja dan kemampuan apache terbukti cukup baik. Dalam linux apache web server sudah disediakan. Kita tinggal mengistalnya, dimana kofigurasi apache yang penting untuk menjalankan CGI adalah suEXEC. Dan untuk menjalankan CGI pada apache web server ini, kita harus mengaktifkan apache web server dengan perintah /etc/init.d/httpd start melalui konsole, atau dengan cara yang lebih mudah melalui perangkat lunak Webmin, yang merupakan perangkat lunak administrasi linux. Satu hal yang perlu untuk diperhatikan pada konfigurasi apache adalah letak direktori untuk menyimpan semua file CGI. Konfigurasi ini dapat dilakukan dengan memodifikasi file httpd.conf yang terletak di dalam direktori : /var/etc/httpd/ pada distro Suse. Aplikasi yang akan dijelaskan disini adalah sistem kontrol berbasis web melalui paralel port linux, dimana sistem kontrol yang digunakan adalah sistem kontrol dengan menggunakan switch on/off yang didalamnya akan dikontol oleh relay yang dihubungkan pada parallel port untuk printer. Sistem kontrol ini bisa digunakan untuk mengontrol 10 peralatan apapun yang menggunakan power supply yang sama dengan yang disediakan oleh prototype sistem kontrol tersebut. Untuk lebih jelasnya seperti yang terlihat pada gambar dibawah ini: pada gambar diatas bisa dilihat bahwa sistem kontrol akan dihubungkan ke server dengan menggunakan parallel port. Kemudian program yang dibuat untuk mengontrol alat tersebut dari jarak jauh diletakkan pada server sehingga bisa diakses melalui internet ataupun melalui jaringan LAN. III.1 Sistem kontrol switch on/off Sistem kontrol switch on/off dibuat dengan menggunakan relay, dimana gambar rangkaian untuk satu relay dapat dilihat pada gambar III.1.1. kemudian relay ini akan dikontrol oleh sebuah komputer melalui paralel port. Parallel port yang digunakan adalah parallel port standard untuk printer yang memiliki 25 pin dengan 8 pin outputan sehingga maksimum kita bisa menggunakan 8 relay untuk mengontrol 8 channel switch yang dikendalikan oleh paralel port karena pada alat ini hanya digunakan data outputan saja. Data line dari parallel port memiliki tegangan 0­5 volts. Kita dapat menggunakan line ini untuk mengontrol relay, kemudian relay akan mengontrol switch. 11 Gambar III.1.1 rangkaian switch on/off Keterangan : P Data Parallel port Data line (pin 2­9 untuk mendapatkan tegangan +5V) P Ground parallel port ground (pin 18­25) Vcc Tergantung pada tipe relay, pada umumnya 12VDc Relay Ground ground untuk Vcc Resistor 4.7kohm NPN C2235 NPN transistor IN4002 diode Program untuk mengontrol parallel port ditulis dalam bahasa C, karena sudah tersedia metoda untuk mengakses port di dalam library C. program yang ditulis untuk tujuana ini sangat sederhana, dimana tugas utama progran adalah mengakses port melalui hex address, kemudian memberikan nilai logika 1 bila ingin menyalakan switch dan memberikan logika 0 bila ingin mematikan switch pada pin output. Outb merupakan metode linux yang digunakan untuk memberikan nilai logika kepada data output secara simultan. Outb memiliki dua argumen yaitu : value dan base address. Value merupakan nilai logika yang akan diberikan kepada data output dan base address adalah hex address dari parallel port. Misalnya kita ingin mengirimkan nilai 12 logika 1 kepada pin 2 (data 0) dan pin 9 (data 7) pada LPT2. Value yang akan diberikan adalah 1000 0001 (dalm biner) atau 0x81 (dalam hex), sedangkan LPT2 memiliki hex addres 0x378 sehingga pada programnya argumen yang diberikan adalah outb (0x81,base_address) dimana base address didefinisikan pada baris sebelumnya sebagai #define DATA_ADDRESS 0x378. Karena kita bekerja dengan linux, maka untuk mengakses port diperlukan ijin. Untuk itu tersedia metode ioperm (unsigned long fram, unsigned long num, int turn_on) yang akan memberikan ijin kepada non­priviliged task untuk memproses nun bytes yang berasal dari alamat port fromsupaya diberikan nilai turn_on. Jika berhasil, maka metode iopermakan memberikan nilai 0sedangkan kalau gagal akan memberikan nilai ­1 dan memberikan pesan error melalui perror(“i operm” ). Perintah­peritah tersebut dapat dilihat pada cuplikan program C++ untuk mengakses parallel port dibawah ini: #define DATA_ADDRESS 0x378 #define STATUS DATA_ADDRESS+1 #define CONTROL DATA_ADDRESS+2 #include <sys/io.h> #include <unistd.h> . . . void port_ctrl(int pin1, int pin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8, int BASE_PORT) { int value; if(ioperm(BASE_PORT, 3, 1)) { perror("ioperm"); exit(1); } value=pin1*1+pin2*2+pin3*4+pin4*8+pin5*16+pin6*32+pin7*64+ pin8*128; outb(value, BASE_PORT); …. 13 Gambar III.1.2. prototype sistem kontrol Sampai tahap ini, sistem kontrol switch on/off dengan pemrograman C++ diatas hanya mampu untuk mengontrol output dari parallel port yang hanya bisa diakses untuk lokal saja. Untuk itu maka dikembangkan sistem yang dapat mengakses alat tersebut dari jarak jauh, dengan kata lain agar dapat dilakukan kontrol melalui jarak jauh melalui jaringan LAN bahkan internet. III.2 Konfigurasi linux sebagai web server Yang perlu kita perhatikan selanjutnya adalah bahwa tidak semua server mampu menangani atau melayani CGI meskipun dibuat dengan UNIX. Server­server yang melayani homepage grafis seperti geocities, Nettaxi, FSN , dan lain­lain tidak melayani CGI. Untuk itu perlu diperhatikan sekali web server yang akan digunakan. Karena kita memakai linux SuSE 9.0, maka untuk instalasinya dibutuhkan apache sebagai web server sehingga apache harus diinstal. Seperti telah dijelaskan diatas bahwa SuSE menyertakan YaST (Yet Another Setup Tool) untuk manajemen programnya. Sehingga apabila kita telah menginstal linux dan belum menginstal apache dapat menggunakan YaST untuk remove and instal sofware. Setelah apache diinstal maka kita bisa mengaktifkannya dengan mengetikkan / etc/init.d/apache start pada jendela konsole yang biasa digunakan pada linux.Untuk mengetest apakah web server ini sudah berjalan atau belum, kita tinggal melihat pada jendela browser, biasanya di linux menggunakan mozilla atau konqueror dengan mengetikkan alamat web server kita. Misalnya apabila pada local host memiliki no ip 10.10.10.12, maka pada jendela browser ketik http://127.0.01 , dan jika apache tersebut sudah benar diaktifkan maka akan terlihat seperti gambar III.2.1. 14 GambarIII.2.1 test page web server apache III.2.1 CGI sebagai interface Progaram CGI yang ditulis belum bisa dibuka pada jendela browser hanya dengan konfigurasi seperti yang diatas. Karena program CGI harus ditempatkan pada direktori yang bisa dikenali atau dibaca oleh web server tersebut. Biasanya linux memiliki direktori cgi­bin untuk meletakkan semua file yang berextension .cgi. akan tetapi tidak semua linux menempatkan program cginya di tempat yang sama. Pada SuSE 9.0 semua program yang dibuat dan berhubungan dengan program CGI ditempatkan di direktori dengan nama /srv/www/htdocs . atau untuk mengetahui direktori mana yang bisa dibaca oleh web server yang kita gunakan dapat dilihat pada httpd.conf yang biasanya terletak pada direktori /etc/http/conf. Selain itu pada httpd.conf biasanya pada commentnya (#) ada perintah untuk menambahkan ExecCGI (+ExecCGI) pada index default programnya agar program CGI yang ditulis dapat dikenali oleh server. 15 Untuk menghubungkan sistem kontrol tersebut agar dapat diakses melalui web, maka pengguna akan mengirimkan data dalam format alamat channel switch dan jadwal switch. Untuk membuat jadwal switch, kita akan menggunakan fungsi at( ) yang ada di linux. Format sederhana dari ungsi at adalah sebagai berikut : at –f $datafile –v $schedule_time Dimana fungsi ini akan membaca perintah dari file $datafile dan mengeksekusi perintah tersebut pada $schedule_time, sedangkan format $schedule_time adalah: $hour:$minute $ampm $day untuk lebih jelasnya dapat dilihat pada gambar III.2.1.1 dibawah ini : Gambar III.2.1.1b tampilan web page 16 Gambar III.2.1.1b tampilan web page setelah dienter Dari gambar diatas diberikana contoh apabila user ingin menyalakan dan mematikan switch pada client 1 dan 4 pada jam 3 pagi besok, maka ditulis 3.0 am pada blok schedule, dan apabila ingin dijadwalkan semua client pada jam 7 pagi, maka ditulis 3 am. bila host komputer berada pada jaringan LAN , maka pengguna yang berada dalam jaringan tersebut dapat mengakses switch dari remote terminal. Namun bila ingin lebih jauh lagi diakses melalui internet, maka host komputer tersebut harus memiliki ip address dan connect dengan internet. III.3 Hasil Pada prinsipnya sistem kontrol yang dibuat telah mampu diakses melalui jarak jauh, dengan artian bahwa tidak perduli dimanapun prototipe sistem kontrol switch on/off kita pasang, dapat diakses dari manapun. Jadi ada beberapa hal penting agar sistem kontol ini bisa berjalan yaitu : • Prototipe sistem kontrol itu sendiri yang dipasang pada terminal server • Server yang dapat menangani interface CGI 17 Dalam pengamatan selama pengujian, waktu respon yang diberikan sistem cukup cepat, dimana batasannya adalah kecepatan transmisi yang berkisar antara 10 Mbps sampai dengan 100Mbps. III.4 Perkembangan selanjutnya Sistem kontrol yang sudah terealisasi tersebut diatas selanjutnya akan dikembangkan untuk mengontrol parallel cluster. Parallel cluster yang dibuat menggunakan satu server dengan spesifikasi lengkap dengan 3 ethernet card dan 8 client tanpa hardisk. Sistem kontrol tersebut akan dipasang pada server dan akan dihubungkan pada masing­masing client agar semua kerja yang ada pada client akan dikontrol dari server. Untuk lebih jelasnya seperti gambar III.4 dibawah ini. Gambar III.4 aplikasi parallel cluster Tentunya diperlukan program CGI yang lebih kompleks lagi untuk menjalankan sistem kontrol ini, selain dibutuhkan data­data mengenai motherboard (baik itu suhu, ketahanan, dan lain­lain ) agar tidak terjadi kres antara client satu dengan client lainnya. 18 Selain itu untuk tampilan web yang lebih dinamik dan interaktif, kemungkinan bisa menggunakan intervface java untuk menggantikan CGI. IV.1Sejarah Singkat Pusat Penelitian Fisika LIPI Pusat Penelitian Fisika merupakan salah satu pusat penelitian dibawah koordinasi Kedeputian bidang Ilmu Pengetahuan Teknik (IPT) LIPI, yang bertugas untuk melakukan penelitian dasar dan terapan di bidang ilmu fisika. Secara struktural Puslit Fisika LIPI memiliki 4 bidang yaitu : 1. Bagian Tata Usaha 2. Bidang Instrumentasi Fisis dan Optoelektronika 3. Bidang Fisika Bahan Baru 4. Bidang Fisika Industri dan Lingkungan 5. Bidang Sarana Penelitian Secara geografis Puslit Fisika LIPI berlokasi di Bandung dan Serpong. Bidang ke­2, sebagian bidang ke­3 dan sebagian bidang ke­5 berdomisili di Puspiptek Serpong, sedangkan Bidang ke­1, sebagian bidang ke­3 , bidang ke­4 dan sebagian bidang ke­5 berdomisili di Bandung. Tugas pokok dari Bidang Instrumentasi Fisis dan Optoelektronika (IFO) adalah melakukan penelitian, pengembangan, dan alih teknologi di bidang instrumentasi fisis dan optoelektronika yang mempunyai dampak strategis bagi pengembangan industri. Kegiatan utama diarahkan pada aplikasi laser, fisika zat padat, teknologi lapisan tipis, serta aplikasi teknik fisika untuk pengendalian proses dan pengukuran. Dalam melakukan tugas itu, bidang IFO memiliki 4 kelompok penelitian yaitu : Kelompok Fisika Teoritik dan Komputasi, Kelompok NDT , Kelompok Laser dan Optoelektronik dan Kelompok Instrumentasi . 19 Tugas pokok dari Bidang Fisika Bahan Baru adalah melakukan penelitian, pengembangan, penerapan, dan alih teknologi di bidang ilmu bahan yang dititikberatkan pada: polimer alam dan sintetik, gelas dan keramik, kristal dan amorf, bahan semikonduktor, serta mengembangkan peralatan yang berhubungan dengan pemrosesan bahan. Dalam melakukan tugas pokok ini, bidang fisika bahan baru didukung oleh 3 kelompok penelitian yaitu : Kelompok Polimer, Kelompok Keramik dan Kelompok Semikonduktor & Sel Surya Tugas pokok dari Bidang Fisika Industri dan Lingkungan adalah melakukan penelitian, pengembangan, penerapan, dan alih teknologi di bidang fisika lingkungan khususnya bidang fisika bumi, fisika energi, fisika termal, dan penelitian masalah polusi. Dalam melakukan tugas pokoknya, bidang ini memiliki 2 kelompok penelitian yaitu : Kelompok Fisika Energi dan Kelompok Polusi dan Lingkungan . Tugas pokok dari Bidang Sarana Penelitian adalah menangani perawatan, administrasi dan pengadaan aneka peralatan dan bahan yang diperlukan dalam semua kegiatan di internal Fisika LIPI. Oleh karena itu personil bidang ini sebagian bekerja di Serpong dan sebagian lagi bekerja di Bandung. Hingga saat ini karyawan Puslit Fisika berjumlah 185 orang. Kualifikasi akademis adalah 10% bergelar doktor, lebih dari 15% berpendidikan setara master dan mayoritas lebih dari 60% tamat sarjana. IV.2 Jaringan di Pusat Penelitian Fisika Jaringan yang ada di Pusat Penelitian Fisika LIPI merupakan bagian kecil dari jaringan intra LIPI dengan kapasitas bandwidth 1.5 Mbps. Jaringan intra LIPI menggunakan teknologi wireless IP­VPN (Virtual Private Network) dari PT. Indosat Mega Media (IM2). Puslit Fisika LIPI merupakan salah satu simpul, dalam istilah yang digunakan adalah site Serpong, dalam jaringan WAN LIPI. Simpul lainnya adalah : site Bogor, site Cibinong, site Jakarta, site Bandung dan site Ancol. Saat ini ekspansi terus dilakukan karena LIPI memiliki kantor hingga ke Tual, Maluku Utara. Di site Serpong sendiri 20 terdapat 4 Puslit yaitu: Fisika, Kimia, KIM dan Metalurgi yang masing­masing memiliki jatah bandwidth intra sebanyak 64 kBps. Untuk pelayanan ke dalam, Jaringan Puslit Fisika memiliki 5 jenis pelayanan yaitu : media penyimpanan atau home directory (50 Mb Harddisk space), sistem komunikasi intra (intranet), mail dengan domain fisika.lipi.go.id, proxy gateway dan hardware sharing seperti printer pools, CD writers, dsb. Kesemua pelayanan itu diberikan oleh 3 buah server yang masing­masing didedikasikan untuk tujuan tertentu. Ketiga server tersebut adalah Main server untuk otorisasi akses melalui Samba, printer spooling, home directory, proxy dan mail server, Web server untuk sistem intranet, dan LTSP server untuk diskless PC yang dimanfaatkan untuk terminal absensi di resepsionis. Pengguna yang terdaftar adalah sebanyak 70 orang staf peneliti, teknisi dan tenaga administrasi dan lebih dari 20 orang mahasiswa prakterk magang atau tugas akhir yang juga diberi akses terbatas ke dalam jaringan. Jaringan lokal di Puslit Fisika sudah menganut sistem user management dan terminal management, sehingga hanya user terdaftar dan PC yang sudah diregistrasi saja yang bisa memiliki akses ke dalam jaringan lokal. IV.3 Aktivitas kerja praktek pada Puslit Fisika LIPI Tenaga magang yang menjalani kerja praktek pada Puslit Fisika teoritik dan Komputasi sebanyak 2 orang yang diberikan tugas untuk belajar dan mengembangkan penelitian mengenai sistem kontrol over web dan sistem diskless yang nantinya akan dikembangkan untuk membuat parallel cluster. Penulis sendiri lebih fokus pada sistem kontrol yang menjadi bahan untuk menulis laporan ini. Kegiatan­kegiatan yang dilakukan selama Kerja Praktek di Puslit Fisika teoritik dan Komputasi selama kurang lebih satu bulan setengah adalah sebagai berikut: Hari pertama: 21 Tenaga magang yang berjumlah 2 orang berkumpul di ruang rapat untuk diberikan penjelasan mengenai pekerjaan yang akan di lakukan selama di Puslit Fisika teoritik dan Komputas dan peraturan­peraturan perusahaan yang wajib ditaati oleh ke­2 orang tenaga magang. Tenaga magang yang berjumlah 2 orang ini diberi keleluasaan untuk bekerja dengan disediakannya komputer dan alat­alat yang dibutuhkan selama menjalani Kerja Praktek disana. Minggu pertama: Pada minggu pertama para tenaga magang melakukan instalasi linux (meng­install linux) pada komputer yang telah disediakan oleh pembimbing. Pada awalnya linux yang diinstal adalah Red Hat 9.0 karena adanya keterbatasan komputer. Linux Red Hat 9.0 yang diinstal memiliki aplikasi LTSP (Linux Terminal Server Project ) untuk membuat aplikasi diskless system. Selain itu para tenaga magang diberikan akses untuk menggunakan komputer dan internet, karena semua komputer di Puslit Fisika menggunakan Proxy sehingga harus memiliki account agar dapat menggunakannya. Minggu kedua: Pada minggu ini, penulis mulai meng­install linux SuSE 9.0, menseting jaringan pada komputer tersebut agar dapat terkoneksi dengan internet. Proses penginstallan linux sampai bisa connect dengan jaringan dan internet adalah sebagai berikut: Ø Meng­install linux SuSE 9.0 dengan menyertakan package yang dibutuhkan yaitu apache,C++,dan web browser (mozilla,konqueror) Ø Setting DNS (Domain Name Server) agar bisa connect dengan internet. Pada proses setting DNS, biasanya semua tersedia pada YaTS. Yang di setting adalah DNS client dengan memasukkan Hostname dan server name. pada Puslit Fisika, hostnamenya menggunakan nama komputer yang diinstall linux dan domain namenya adalah srp.fisika.lipi.go.id yang merupakan DNSnya. Ø Setting routing yang digunakan yaitu 10.10.10.1 sebagai gatewainya. 22 Ø Setting proxy pada web browser dimana digunakan server proxy yang sama untuk semua protokol yaitu http://10.10.10.1 dengan port 8080. Ø Setting NFS client untuk jaringan, dimana pada setting ini yang dibutuhkan adalah Host name yaitu server.srp.fisika.lipi.go.id dengan Remoe file:/home dan mount point /home. Ø Configure NIS client agar dapat masuk ke intra.fisika.lipi.go.id dengan menggunakan account yang sudah diberikan. Setting NIS membutuhkan NIS domain yaitu pintu dengan alamat 10.10.10.1 Minggu ketiga: Pada minggu ini disi dengan belajar dasar­dasar pemrograman CGI yaitu perl dan static HTML. Selain itu penulis juga memeriksa prototype sistem kontrol parallel port yang sudah ada karena tidak bisa dijalankan. Minggu keempat: Pada minggu ini, pembimbing di lapangan memberikan penjelasan secara singkat mengenai dasar­dasar CGI dan cara kerja sistem kontrol switch on/off. Prototype sistem kontol yang sudah ada dicoba apakah masih bisa dijalankan karena setelah diperiksa ternyata tidak ada sambungan yang putus ataupun yang short. Setelah bisa dijalankan, pembimbing lapangan menjelaskan bagaimana menjalankannya dengan terlebih dahulu di kompile dengan menggunakan program C++ . setelah itu penulis meneruskan dengan membuat program CGI untuk menjalankan delapan switch, mencoba menjalankan program tersebut pada linux Red Hat. Minggu kelima: Minggu ini tenaga magang kembali menginstall linux untuk menjalankan sistem kontrol. Karena setelah mencoba dengan menggunakan linux Red Hat ternyata tidak bisa jalan. Setelah linux diinstall, kemudian dicoba untuk dijalankan lagi, dan ternyata berhasil. 23 Minggu keenam: Minggu ini merupakan minggu terakhir tenaga magang bekerja di Puslit Fisika teoriik dan Komputasi. Program CGI dan sistem kontol sudah bisa dijalankan, hanya saja belum sampai agar bisa diakses dengan login dari user, karena adanya kendala­kendala yang dihadapi. Tetapi secara global sistem sudah bisa dijalankan dengan baik. Para tenaga magang pada minggu ini juga diberi kesempatan untuk terlibat pada pameran HARTEKNAS (Hari Teknologi Nasional) pada tanggal 11­12 Agustus yang dipusatkan di PUSPIPTEK (Pusat Penelitian Ilmu Pengetahuan dan Teknologi) selama 2 hari. IV.4 Kendala­kendala yang dihadapi selama KP di Puslit Fisika teoritik dan Komputasi Banyak kendala­kendala yang terjadi selama melakukan Kerja Praktek di Puslit Fisika Teoritik dan Komputasi ini. Secara umum kendala­kendala tersebut dapat dibagi menjadi 2 macam yaitu kendala hardware dan kendala teknis. Kendala hardware Ø Kualifikasi paralel port ternyata bukan merupakan standar untuk setiap jenis motherboard. Hal ini diketahui ketika prototipe sistem kontrol memberikan respon yang berbeda untuk 2 jenis motherboard yang berbeda. Namun hipotesa awal kami adalah adanya kerusakan di dalam prototipe, namun ternyata tidak semua paralel port di setiap motherboard memberikan respon yang sesuai dengan teori. Ø Kurangnya PC sehingga tenaga magang kurang maksimal dalam bekerja. Setelah PC disediakan, dihadapi juga kendala karena spesifikasi RAM rendah. Untuk menjalankan Graphical User Interface (GUI) sistem operasi linux membutuhkan spesifikasi RAM yang cukup tinggi. X­windows linux membutuhkan RAM paling tidak 64 MB. Solusinya adalah dengan menambahkan RAM untuk komputer tersebut dari komputer lain yang digunakan untuk membangun sistem diskless 24 yang sudah berhasil dilakukan, sehingga PC tersebut dapat dijalankan dan tidak mengganggu pekerjaan orang lain. Kendala teknis Ø Pada awalnya kurangnya waktu bertemu dengan para pembimbing lapangan karena kesibukan masing­masing, dimana pada awal setengah bulan pertama pembimbing bertugas ke Cina. Solusinya adalah dengan terus berkomunikasi melalui e­mail sehingga pembimbing bisa mengetahui perkembangan pekerjaan tenaga Magang dan tenaga magang juga bisa bertanya apabila memiliki kendala dengan pekerjaannya. Akan tetapi secara keseluruhan, kendala­kendala tersebut dapat diatasi dengan baik. 25 Linux dapat dijadikan sistem operasi alternatif selain microsoft windows. Linux merupakan sistem operasi yang banyak digunakan untuk membangun suatu server. Hal ini disebabkan karena linux sudah menyediakan banyak aplikasi pemrograman yang dibutuhkan untuk sebuah web hosting. Disamping karena linux adalah free sofware, selain itu linux dikenal sebagai sistem operasi yang sangat stabil dan tahan banting. Untuk menjalankan aplikasi sistem kontrol berbasis web ini memang dibutuhkan sistem operasi yang mampu menangani kebutuhan­kebutuhan server. Untuk itu linux dipilih sebagai platform untuk menjalankan aplikasi ini. Selain itu, cukup sedikit pengetahuan tentang HTML dan perl,dan juga kemampuan komperhensif dalam perograman bahasa C dalam membuat aplikasi ini. Bahasa pemrograman CGI dengan menggunakan perl dipilih karena untuk aplikasi ini, sudah sangat mendukung dan untuk penggunaan programnya sangat user friendly. Memang untuk konfigurasinya sendiri agak rumit, akan tetapi untuk servernya kita tidak perlu repot­repot membuat programnya karena semuanya sudah disediakan pada linux. Hanya saja agar bisa digunakan, kita harus mengerti apa saja yang perlu ditambahkan agar program CGI bisa dibaca dan dikenali oleh server yang kita buat. Kendala­kendala yang dihadapi dan kesalahan­kesalahan kecil yang terkadang tidak pernah terfikirkan menjadi suatu pelajaran penting bagi penulis, dimana itu merupakan pengalaman yang baik agar melakukan pengecekan dari hal­hal terkecil apabila kita menghadapi suatu masalah. 26 1. Anderson, Peter H. use of a PC printer Port for control and data Acquisition, the Technology Interface, the Electronic Journal For Engineering Technology, Fall 1996 2. Dian Rakyat, Pandun Mudah membuat dan Mengelola WEB HOSTING, 2004 3. Gregorius Agung, Membuat Homepage Interaktif dengan CGI/Perl, April, 2001 4. Li, Rui, home elecrical Device­HOWTO, www.linux.org, february 2, 2002 Pin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18­25 Description /Strobe Data_0 Data_1 Data_2 Data_3 Data_4 Data_5 Data_6 Data_7 /ACK Busy Paper Empty Select /Auto feed /Error Initialize Printer /Select_Input ground Notes PC Output PC Output PC Output PC Output PC Output PC Output PC Output PC Output PC Output PC Input PC Input PC Input PC Input PC Input PC Input PC Output PC Output 27 LEMBAR PENGESAHAN LAPORAN KERJA PRAKTEK Dengan Judul: Sistem Kontrol berbasis Web Melalui Paralel Port Linux Disusun Oleh: Gheyb Jhuana (111000168) Pembimbing Lapangan Hadiyanto, Bsc. Hons, PG­Dipl. NIP: 32 000 6162