8 BAB II LANDASAN TEORI 2.1 BAHASA PEMROGRAMAN JAVA Java merupakan bahasa pemrograman berorientasi objek yang dikembangkan oleh SUN MICROSYSTEMS , suatu perusahaan yang terkenal dengan Workstation UNIX high-end. Java dibuat setelah C++ , dirancang lebih kecil, source dan binary level-nya sederhana dan portable untuk platform dan sistem operasi apapun. Hal ini berarti program Java (Applets dan Aplikasi) dapat dijalankan pada mesin apa saja asalkan mempunyai fasilitas JVM (Java Virtual Machine). Java sebagai bahasa pemrograman memiliki keuntungan yang lebih bila dibandingkan dengan bahasa dan environment lain, sehingga Java cocok untuk pemrograman apa saja. Dibawah ini akan disebutkan beberapa keuntungan dari Java antara lain: 1. Sederhana dan Ampuh Java dirancang untuk mudah dipelajari, terutama bagi programmer yang telah mengenal C/C++ akan mudah sekali untuk berpindah ke Java. Pemakai dapat belajar membuat program dengan Java secara cepat jika telah memahami konsep dasar pemrograman berorientasi objek. Java member programmer kemampuan untuk menuangkan semua ide, karena bahasa pemrograman ini bukan merupakan scripting language (bahasa naskah) yang menghilangkan kemampuan programmer untuk berinovasi, tetapi dengan cara berorientasi objek yang mudah dan jelas. 9 2. Aman Java dirancang sebagai bahasa pemrograman yang handal dan aman. aplikasi-aplikasi yang dibangun dengan bahasa Java sangat handal dengan manajemen memori yang bagus. Aplikasi Java juga dikenal sangat secure, yaitu kasus- kasus seperti buffer everflow yang umumnya menjadi lubang keamanan aplikasi-aplikasi berbasis C/C++ tidak terjadi di Java, karena pengaturan keamanannya yang bagus 3. Kokoh Kesalahan sering terjadi pada saat kompilasi karena Java merupakan bahasa pemrograman yang sensitif dalam hal deklarasi dan tipe data. Oleh karena hal tersebut, Java memiliki batasan agar dapat menemukan kesalahan lebih cepat saat mengembangkan program yaitu dengan langsung memeriksa program saat ditulis, dan sekali lagi ketika program di jalankan. Hal ini akan lebih menghemat waktu jika dibandingkan dengan keharusan menjalankan program terlebih dahulu dan memeriksa semua bagian program untuk melihat ketidakcocokan dinamis selama program berjalan. 4. Interaktif Java memiliki kemampuan yang memungkinkan program melakukan beberapa hal pada saat bersamaan, tanpa harus kesulitan menangani proses yang akan terjadi selanjutnya. Jalinan program-program Java yang mudah digunakan memungkinkan programmer untuk memikirkan pembuatan perilaku khusus tanpa harus mengintegrasikan perilaku tersebut dengan model pemrograman global yang mengatur perulangan kejadian. 10 5. Netral Terhadap Berbagai Arsitektur Java memiliki kemampuan yang memungkinkan program melakukan beberapa hal pada saat bersamaan, tanpa harus kesulitan menangani proses yang akan terjadi selanjutnya. Jalinan program-program Java yang mudah digunakan memungkinkan programmer untuk memikirkan pembuatan perilaku khusus, tanpa harus mengintegrasikan perilaku tersebut dengan model pemrograman global yang mengatur perulangan kejadian. 6. Terinterpretasi dan Berkinerja-Tinggi Java dirancang untuk tetap berkinerja baik pada CPU (Central Processing Unit) yang tidak terlalu kuat. Walaupun Java merupakan bahasa terinterpretasi, kode-kode Java telah dirancang dengan hati-hati sehingga mudah diterjemahkan ke dalam bahasa asli suatu mesin untuk menghasilkan kinerja yang tinggi. Java dilengkapi keajaiban lintasplatform yang luar biasa dengan kompilasi ke dalam representasi langsung yang disebut kode-byte Java (Java byte-code), yang dapat diterjemahkan oleh sistem manapun yang memilki program Java didalamnya. Sebagai sebuah platform, Java terdiri atas dua bagian utama, yakni : • Java virtual machine (JVM) • Java application programming interface (Java API) 7. Multiplatform Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform/ sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti 11 manusia menjadi bahasa mesin/bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis Java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebabnya adalah setiap system operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk menginterpretasikan bytecode tersebut. 8. Perpustakaan Kelas yang Lengkap Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman Java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaanperpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi. 9. Bergaya C++ Dalam bahasa pemrograman manapun selalu ada fitur komentar. Java sendiri memiliki sintaks seperti bahasa pemrograman C++, dengan tambahan yang sangat istimewa yaitu komentar yang nantinya digunakan untuk menciptakan dokumentasi secara otomatis oleh suatu aplikasi yang disebut javadoc, sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika 12 Serikat juga mulai berpindah dengan mengajarkan Java kepada muridmurid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer. 10. Pengumpulan sampah otomatis Memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas). Serupa dengan C, java mengalokasikan operator baru untuk mengalokasikan memori pada heap untuk objek baru. Adapun beberapa kekurangan bahasa Pemrograman Java, yaitu : 1. Tulis sekali, perbaiki di mana saja Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada siste, operasi Mac OS X. 2. Mudah didekompilasi Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer. 3. Penggunaan memori yang banyak Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan 13 Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun. Sebagai sebuah platform, Java terdiri atas dua bagian utama, yaitu: 1. Java Virtual Machine (JVM) 2. Java Application Programming Interface (Java API) Sun membagi arsitektur Java membagi tiga bagian, yaitu: 1. J2EE (Java 2 Enterprise Edition) 2. J2SE (Java 2 Second Edition) 3. J2ME (Java 2 Micro Edition) 2.1.2 J2SE (Java 2 Standard Edition) Aplikasi yang dibuat dan dikembangkan penulis dalam penulisan ini menggunakan bahasa pemrograman berbasis Java 2 Standard Edition (lebih dikenal dengan J2SE). Pada bagian ini, penulis akan menjelaskan dasar-dasar J2SE, meliputi pengenalan J2SE dan komponen pada J2SE. Berikut adalah penjelasannya: J2SE atau Java 2 Standard Edition merupakan bahasa pemrograman Java untuk aplikasi desktop yang merupakan object-oriented programming. Pada J2SE, terdiri dari dua buah produk yang dikeluarkan untuk membantu dalam membuat aplikasi tanpa tergantung dari platform yang digunakan, yaitu: 14 1. Java SE Runtime Environment (JRE) 2. Java Runtime Environment (JRE) menyediakan perpustakaan, Java Virtual Machine (JVM), dan komponen lain untuk menjalankan applet dan aplikasi yang ditulis dengan bahasa pemrograman Java. Selain itu, terdapat dua buah kunci teknologi yang merupakan bagian dari JRE, yaitu: Plugin, yang memungkinkan menjalankan applet di browser populer dan Java Web Start, yang menyebarkan aplikasi mandiri melalui jaringan. JRE tidak mengandung utilitas seperti compiler atau debugger untuk mengembangkan applet dan aplikasi. 3. Java Development Kit (JDK) merupakan perangkat lunak yang digunakan untuk menajemen dan membangun berbagai aplikasi Java. JDK merupakan superset dari JRE, berisikan segala sesuatu yang ada di JRE ditambahkan compiler dan debugger yang diperlukan untuk mengembangkan applet dan aplikasi. Bahasa pemrograman Java menyediakan library-library standar yang telah di-compile dan dapat langsung digunakan dalam implementasi pembuatan sebuah aplikasi. Pada library, terdapat berbagai macam class (kelas) yang dapat digunakan dan telah dikelompokkan ke dalam package. Package yang tersedia dalam J2SE akan dijabarkan pada tabel berikut: 15 Tabel 2.1 Tabel Package pada J2SE Package Nama Package Language java.lang Utilities java.until I/O java.io Text java.text Math java.math AWT java.awt Swing java.swing Javax Applet Beans Javax java.applet java.beans Reflection java.lang.reflect SQL java.sql RMI java.rmi Networking java.net Security java.security Class Keterangan Class-class utama yang merupakan inti dari bahasa Java Class-class yang mendukung utilitas struktur Java Class-class yang mendukung berbagai macam tipe input dan output Class yang mendukung lokalisasi penanganan teks, tanggal, bilangan, dan message Class untuk melakukan perhitungan aritmatik arbitrary-precesion, baik integer atau floating point Class untuk perancangan user-interface dan event-handling Class untuk membuat berbagai komponen dalam Java yang bertingkahlaku sama dengan berbagai platform Perluasan dari bahasa Java Class untuk membuat applet Class untuk membuat Java Beans Class untuk memperoleh informasi runtime Class untuk mendukung akses dan pengolahan data dalam database Class untuk mendukung distributed programming Class untuk mendukung dalam membangun aplikasi jaringan Class untuk mendukungkeamanan kriptografi 2.1.3 GUI (Graphical User Interface) Class dapat digambarkan sebagai cetakan untuk membuat object dengan karakteristik sesuai yang dimiliki oleh class tersebut. Class menyediakan 16 kemampuan bagi objek-objek yang dibangun dari class tersebut. Class dapat dipandang sebagai gambaran umum dari sebuah object, sedangkan bentuk aktual object dalam Java disebut instance. Analoginya, andaikan Class sebagai gambar rancangan sebuah gedung, maka instance adalah gedung yang telah dibangun berdasarkan rancangan tersebut. Jadi sebenarnya tidak ada perbedaan antara Object dan Instance, hanya saja object merupakan definisi umum sedangkan instance merupakan sebutan bagi object yang nyata terlihat. Keduanya mengacu pada benda yang sama. Dalam Java, class dikelompokkan berdasarkan fungsi umumnya, misalkan untuk membuat program berbasis GUI (Graphical User Interface), atau fungsi lainnya. Kelompok class ini disebut class library. Pemrograman tidak perlu repot membuat class library, karena development kit yang ada telah membuat library sedemikian rupa, sehingga mudah digunakan. Misalnya library java.awt untuk memprograman GUI. Dengan adanya program berbasis grafis ini, mengolah database akan menjadi lebih mudah, disamping tampilannya lebih menarik. Beberapa bagian dasar GUI adalah: 1) Jlabel JLabel namaLabel = new JLabel(“label”) Sama seperti namanya, class ini akan membuat suatu label pada sebuah window 2) J TextField JTextField namaText = new JTextField(jumlah_karakter_max); JTextField adalah suatu class yang akan memudahkan dalam membentuk isian text pada suatu frame. 17 3) Jbutton JButton namaButton = new JButton(“label_pada_button”) JButton adalah suatu class yang akan membantu membentuk objek tombol. 4) Jframe JFrame sebenarnya adalah suatu class yang disediakan untuk memudahkan dalam membuat suatu window. 5) JinternalFrame Sama halnya dengan JFrame, JInternalFrame akan membantu dalam membuat window. Bedanya JInternalFrame akan berada didalam suatu window lainnya, jadi tidak dapat berdiri sendiri seperti JFrame. 6) JMenu akan membuat objek menu bar pada sebuah frame. 7) ActionListener ActionListener bukan merupakan suatu objek, melainkan sebuah class yang akan menampung aksi-aksi dari sebuah objek (yang banyak dipakai disini adalah tombol). Aksi-aksi itu akan ditampung dalam sebuah metode bernama ActionPerformed. Jadi bila menggunakan ActionListener, maka harus menyertakan metode ActionPerformed pada class tersebut. 8) Container.setLayout(new GridLayout(jumlah_baris, jumlah_kolom)) Container akan membantu dalam mengatur penempatan objek seperti text, label, ataupun tombol. Ada banyak cara yang disediakan untuk mengatur penempatan objek. GridLayout akan membagi sebuah window 18 menjadi beberapa baris dan kolom sesuai yang masukkan pada saat setLayout dan penempatan objeknya dimulai dari kiri atas lalu ke kanan. 2.1.4 Contoh Pemrograman Java Secara umum penulisan syntact bahasa pemrograman Java adalah sebagai berikut: class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. } Kode Program 1.1 Contoh penulisan bahasa pemrograman Java Kode program tersebut dituliskan pada sebuah text editor seperti Jcreator serta disimpan dengan ekstensi ‘*.Java’ (contoh: HelloWorld.Java) pada direktori D:/area_Java dan output-nya jika dijalankan pada command prompt windows adalah sebagai berikut: Gambar 2.1 Hasil Program dengan menggunakan Java 19 2.1.5 Tahapan Kompilasi Adapun tahapan kompilasi Java sebagai berikut: 1. Pemrogram menulis program dan menyimpannya di media dalam bentuk berkas '.Java'. 2. Kompilasi Pengkompilasi membentuk bytecodes dari program menjadi bentuk berkas '.class'. 3. Muat Pemuat class memuat bytecodes ke memori. 4. Verifikasi Proses verifikasi memastikan bytecodes tidak mengganggu sistem keamanan Java 5. Jalankan Penerjemah menerjemahkan bytecodes ke bahasa mesin dan memilih mana yang tidak bisa di pakai. 2.2 Swing Java Swing merupakan library Java yang digunakan untuk menciptakan Graphic User Interface (GUI) yang berbasis cross platform atau OS independent. User interface yang dibangun dengan Java swing dapat dijalankan pada sistem operasi apa saja yang mendukung Java dengan tampilan yang relatif sama, bahkan dapat menyerupai user interface sistem operasi Windows, Mac OS ataupun Linux. 20 2.2.1 Arsitektur Swing Swing merupakan platform-independent, Model View Controller framework untuk Java yang mengikuti model pemrograman tunggal. Arsitektur dari swing terdiri dari: 1. Platform Independence Swing dapat digunakan diberbagai platform seperti Windows OS, Mac OS, dan Linux karena ekspresi Java dan implementasinya hampir sama untuk berbagai platform. 2. Extensible Swing merupakan arsitektur terpartisi, yang memungkinkan untuk penggunaan implementasi berbagai framework interface tertentu. Pengguna dapat menyediakan kustom implementasi sendiri dari komponen untuk menggantikan implementasi default. Secara umum, pengguna Swing dapat menambahkan framework dengan memperluas framework yang sudah ada dan menyediakan implementasi alternatif komponen inti. Swing juga merupakan framework berbasis komponen, dimana komponen Swing adalah komponen Java Beans yang kompatibel dengan spesifikasi Java Beans Component Architecture. 3. Customizable Atas dasar model program rendering dari framework Swing, kendali atas rincian rendering komponen dimungkinkan dalam Swing. Representasi visual dari komponen Swing pada umumnya berupa satu set standar elemen. Pengguna program biasanya menyesuaikan komponen Swing 21 standar dengan menetapkan beberapa elemen untuk membuat visualisasi kontrol GUI yang unik. 4. Configurable Swing bergantung pada mekanisme runtime dan pola komposisi tidak langsung untuk merespon perubahan pengaturan secara run-time. Contohnya aplikasi berbasis Swing dapat mengubah tampilan pada saat run-time, dimana pengguna dapat memberikan tampilan mereka sendiri dan diimplementasikan tanpa perubahan apapun pada kode program. 5. Loosely-Coupled and MVC Pustaka Swing memanfaatkan pola model/view/controller (MVC) desain perangkat lunak yang secara konseptual pasangan data yang dilihat dari kontrol interface pengguna melalui yang dilihat. Karena hal tersebut, komponen Swing dikaitkan model dan programmer dapat menggunakan berbagai macam implementasi atau menyediakan sendiri implementasi tersebut. Penggunaan framework Swing tidak memerlukan penciptaan model, karena telah tersedia satu set implementasi yang transparan secara default, yang terkait dengan class Jcomponent di perpustakaan Swing. Komponen yang kompleks mungkin memerlukan implementasi model disekitar data spesifik aplikasi seperti: tabel dan pohon. 2.2.2 Komponen Dasar Swing Secara umum, komponen swing terdiri dari lima bagian yang sering digunakan, yaitu: 22 1. Top-level Container Merupakan container dasar dimana komponen lainnya diletakkan. Toplevel Container ini terdiri dari Frame, Dialog, dan Applet yang diimplementasikan dalam class JFrame, JDialog, dan JApplet. 2. Intermediate Container: Merupakan komponen perantara untuk peletakkan komponen lainnya, yaitu class JPanel. 3. Atomic Container Merupakan komponen yang memiliki fungsi spesifik dan biasanya user berinteraksi langsung dengan jenis komponen ini. Komponen ini terdiri dari: JButton, JTextField, dan JTextArea. 4. Layout Manager Layout Manager berfungsi untuk mengatur posisi dari komponen yang diletakkan pada container. Terdapat lima macam layout, yaitu: class BorderLayout, Boxlayout, FlowLayout, GridBagLayout, dan GridLayout. 5. Event Handling Event Handling berfungsi untuk menangani event yang dilakukan user, misalnya menekan tombol, mengklik mouse, dan lain sebagainya. 2.3 A W T Ketika Java pertama kali dirilis oleh Sun Microsystems pada tahun 1995, komponen AWT memberikan tingkat abstraksi yang tipis yang mendasari interface pengguna. Contohnya, menciptakan checkbox AWT akan menyebabkan pemanggilan langsung subroutine yang mendasari pembuatan checkbox. Program GUI yang ditulis dengan menggunakan AWT tampak seperti aplikasi asli ketika dijalankan pada sistem operasi yang menjalankan aplikasi tersebut. 23 Dalam J2SE 1.2, komponen AWT sebagian besar digantikan dari toolkit Swing. Selain menyediakan satu set komponen UI, Swing menarik komponen sendiri (dengan menggunakan Java 2D untuk memanggil ke subroutine tingkat rendah dalam subsistem grafis lokal) bukan mengandalkan modul pengguna tingkat tinggi interface sistem operasi. Swing menyediakan pilihan baik menggunakan sistem “tampilan dan nuansa” menggunakan platform asli tampilan dan nuansa atau cross-platform yang terlihat pada semua platform. Namun, Swing bergantung pada AWT untuk tampilan interface untuk sistem windowing asli. 2.3.1 Arsitektur AWT AWT menyediakan dua tingkat API, yaitu: 1. Interface umum antara Java dengan sistem asli, digunakan untuk windowing, manajer layout. API ini merupakan inti dari pemrograman Java GUI dan juga digunakan oleh Swing dan Java 2D yang berisi: a. Interface antara sistem windowing asli dan aplikasi Java. b. Inti dari event subsistem GUI. c. Beberapa manajer layout. d. Interface untuk perangkat input seperti mouse dan keyboard. e. Paket java.awt.datatransfer untuk digunakan dengan clipboard dan Drag and Drop. 2. Satu set dasar komponen GUI seperti button, textbox, dan menu yang juga menyediakan interface dasar AWT, yang memungkinkan pustaka render dikompilasi ke kode asli untuk langsung menarik ke AWT canvas permukaan objek gambar. 24 AWT juga membuat beberapa fungsionalitas tinggti yang tersedia untuk aplikasi, seperti : 1. Akses ke sistem tray pada sistem pendukung. 2. Kemampuan untuk meluncurkan beberapa aplikasi dekstop seperti browser web dan klien email dari aplikasi. Baik AWT ataupun Swing secara inheren aman, karena kode yang meng-update GUI harus dijalankan pada thread event pengirim. Kegagalan untuk melakukan hal ini dapat menyebabkan kondisi kebuntuan atau ras. Untuk mengatasi masalah ini, kelas utilitas bernama SwingWorker memungkinkan aplikasi untuk melakukan tugas-tugas yang memakan waktu mengikuti acara-interaksi pengguna di thread acara pengirim. 2.4 NetBeans IDE 6.8 Penulis menggunakan NetBeans IDE (Integrated Development Environment) versi 6.8 untuk membuat kode sumber dapat dilihat pada gambar di bawah ini : Gambar 2.2 NetBeans IDE 6.8 25 2.4.1 Langkah Awal Menjalankan Aplikasi NetBeans IDE 6.8 Langkah-langkah dalam menjalankan aplikasi NetBeans IDE 6.8 sebagai berikut : Gambar 2.3 New Project NetBeans IDE 6.8 1) Klik tombol start pada bagian Taskbar. 2) Pilih menu Programs dan pilih Netbeans, kemudian klik Netbeans. 3) Setelah itu pilih New Project seperti Gambar 2.5 4) Kemudian isi project name dengan nama file yang diinginkan. Kemudian klik Finish. 5) Untuk membuat form pada netbeans klik kanan pada Source Packages, pilih New Jframe Form. Akan tampil gambar dibawah ini: 26 Gambar 2.4 New Jrame Form 6) Kemudian isi Class Name lalu klik Finish. 7) Setelah klik Finish akan muncul tampilan seperti dibawah ini. Selanjutnya silahkan membuat Aplikasi yang diinginkan. Gambar 2.5 Layar Project Netbeans IDE 6.8 27 2.4.2 Komponen Netbeans 6.8 1) Main Windows Jendela utama ini bagian dari IDE yang mempunyai fungsi yang sama dengan semua fungsi utama dari program aplikasi Windows lainnya. Jendela utama Netbeans terbagi menjadi tiga bagian, berupa Main Menu, Toolbar 1 Main Project, Clean and Build Main Project, Run Main Project, Debug Main Project, dan Profile Main Project. 2) Toolbar Netbeans Netbeans memiliki beberapa toolbar yang masing-masing memiliki perbedaan fungsi dan setiap tombol pada bagian toolbar berfungsi sebagai pengganti suatu menu perintah yang sering digunakan. Toolbar sering disebut juga dengan Speedbar. Toolbar terletak pada bagian bawah baris menu. Pada kondisi default Netbeans memiliki beberapa bagian toolbar, antara lain : Build Main Project, Clean and Build Main Project, Run Main Project, Debug Main Project, dan Profile Main Project. 3) Component Palette Component Pallete berisi kumpulan ikon yang melambangkan komponenkomponen yang terdapat pada VCL (Visual Component Library), pada Component Pallete akan ditemukan beberapa page control, seperti Swing Containers, Swing Controls, Swing Menus, Swing Windows, AWT, Beans, dan Java Persistence. 28 Gambar 2.6 Component Palette 4) From Designer Form Designer merupakan suatu objek yang dapat dipakai sebagai tempat untuk merancang program aplikasi. Form berbentuk sebuah meja kerja yang dapat diisi dengan komponen-komponen yang diambil dari Component Pallete. 29 Gambar 2.7 Form Kerja Netbeans IDE 6.8 5) Source Editor Source Editor merupakan tempat untuk menuliskan kode program. Pada bagian ini dapat dituliskan pernyataan-pernyataan dalam Object Java. Keuntungan bagi pemakai Netbeans adalah bahwa tidak perlu menuliskan kode-kode sumber, karena Netbeans telah menyediakan kerangka penulisan sebuah program seperti yang tampak pada Gambar 2.8 di bawah ini: 30 Gambar 2.8 Source Editor 6) Object Inspektor Object Inspector digunakan untuk mengubah properti atau karakteristik dari sebuah komponen. Object Inspector terdiri dari dua tab, yaitu Properties dan Events seperti yang tampak pada Gambar 2.11 di bawah ini: Gambar 2.9 Inspector 31 2.5 AT Command AT Command merupakan perintah yang digunakan untuk melakukan konfigurasi pada handphone atau terminal. Dibutuhkan sebuah perintah khusus yang digunakan untuk mengkonfigurasikannya. Pada penggunaan sintaks untuk mengirimkan perintah dalam handphone, ada beberapa perintah yang dibutuhkan untuk melakukannya. Berikut ini adalah contoh konfigurasi yang dapat dilakukan dengan berbagai macam sintaks : • Menyimpan pesan ke SIM Card • Menentukan format mode • Mengirim pesan • Membaca pesan • Menghapus pesan Contoh perintah AT pada Hyper Terminal pada gambar 2.10 berikut : Gambar 2.10 Jendela Hyperterminal 32 2.6 Interfacing Port Parallel pada Komputer Port paralel atau port printer sebenarnya terdiri dari tiga bagian yang masing-masing diberi nama sesuai dengan tugasnya dalam melaksanakan pencetakan. Tiga bagian tersebut adalah data port, printer kontrol dan printer status. Data port digunakan untuk mengirim data yang harus dicetak oleh printer, printer kontrol digunakan untuk mengirimkan kode-kode kontrol dari komputer ke printer, misalnya kode kontrol untuk menggulung kertas, dan printer status digunakan untuk mengirimkan kode-kode status printer ke komputer, misalnya untuk menginformasikan bahwa kertas telah habis. Pada gambar 2.11 terlihat konfigurasi port parallel. Gambar 2.11 Konfigurasi pin pada Parallel Port Data port, printer kontrol, dan printer status sebenarnya adalah port-port delapan bit, namun hanya data port yang benar-benar mempunyai delapan bit. Untuk printer kontrol dan printer status, hanya beberapa bit saja yang dipakai yang 33 berarti hanya beberapa bit saja dari port-port ini yang dapat dimanfaatkan untuk keperluan interfacing. Port printer kontrol adalah port baca atau tulis (read/write), printer status adalah port baca saja (read only), sedangkan port data port adalah port baca tulis juga. Akan tetapi, kemampuan ini hanya dimiliki oleh Enhanced Parallel Port (EPP), sedangkan port paralel standar hanya memiliki kemampuan standar saja. Pada EPP, pengaturan arah jalur data port dilakukan lewat 5 bit komputer. Jika 5 bit bernilai 0, maka jalur data dwi arah data port menjadi output dari port paralel, sebaliknya jika bit 5 bernilai 1, maka jalur data dwi arah data port menjadi input dari port paralel. Untuk dapat menggunakan port paralel, maka harus diketahui alamatnya. Base address LPT1 biasanya adalah 888 (378H) dan LPT2 biasanya 632 (278H). Alamat tersebut adalah alamat yang umum digunakan tergantung dari jenis komputer. Tepatnya bisa dilihat pada peta memori tempat menyimpan alamat tersebut, yaitu memory 0000.0408H untuk base address LPT1 dan memory 0000.040AH untuk base address LPT2. Setelah diketahui alamat dari port paralel, maka dapat ditentukan alamat data port, printer kontrol dan printer status. Alamat data port adalah base address dari port paralel tersebut alamat printer status adalah base address +1, dan alamat printer kontrol adalah base address +2. Tabel dibawah ini adalah tabel alamat masing-masing port yang umumnya digunakan. 34 Nama Port Alamat Register LPT1 Data Port 378H/888 LPT1 Printer Status 379H/889 LPT1 Printer Kontrol 37AH/890 Tabel 2.2 Alamat masing-masing port Interfacing menggunakan Port Parallel pada komputer dipengaruhi interaksi user dalam menuliskan atau mengubah nilai dari pin-pin yang ada pada Port Parallel menggunakan bahasa pemrograman tertentu, secara garis besar nilainilai yang diubah pada register atau alamat masing-masing port adalah nilai variabel dalam bentuk biner 1 (keadaan tinggi 5 Volt) atau biner 0 (keadaan rendah 0 volt). 2.7 Protocol Descryption Unit (PDU) Protocol Descryption Unit (PDU) adalah salah satu mode pengiriman SMS, dalam aplikasi monitoring ini nantinya akan digunakan format ini daripada mode text. Penggunaan ini mengarah kepada keterbatasan mode text pada opsi penjabaran (encoding options) sehingga tidak semua perangkat dapat menerima dan menjabarkan SMS yang dikirim dengan mode text. PDU memiliki format yang terbagi atas bit-bit dengan masing-masing segmen yang berbeda arti. Berikut adalah contoh pesan SMS dalam PDU: 11000B916407281553F80000AA0AE8329BFD4697D9EC37 35 Secara teori format PDU tersebut terbagi atas 10 segmen seperti dijabarkan sebagai berikut : Tabel 2.3 Segmen pada forma PDU Segmen Nama Segmen 1 Tipe PDU 2 Referensi pesan 3 Panjang nomor handphone 4 Format nomor handphone 5 Nomor handphone 6 Penunjuk Protokol 7 Skema data coding 8 Periode Validitas 9 Panjang pesan 10 Pesan 2.7.1 Tipe PDU Nilai 11 yang digunakan pada PDU Type menunjukan bahwa Pesan PDU ini adalah untuk pengiriman SMS. Tipe PDU sebenarnya memiliki format pembentuk sendiri yaitu sebagai berikut: Tabel 2.4 Format PDU Type Bit No 7 6 Nama RP Nilai 0 5 4 3 2 1 0 UDHI SRR VPF VPF RD MTI MTI 0 1 0 0 0 1 0 36 Kedelapan bit yang membentuk Tipe PDU memiliki arti masing-masing. Semuanya memberikan berbagai pengaturan yang merinci pada detail pengiriman SMS dari perangkat pengirim SMS kepada SMS Center. Berikut penjelasan untuk setiap segmen: 1. RP dikenal sebagai Reply Path yang menunjukan keberadaaan reply path. 2. UDHI adalah User Data Header Indicator, menunjukan apakah pesan memiliki dengan Header. 3. SRR adalah Status Report Request, jika bit ini diset dengan nilai 1 maka pengirim meminta status report. 4. Kedua bit VPF adalah Validity Period Format, 00 untuk tidak adanya validity period, 10 untuk format relatif, 01 untuk format lanjut (berupa hexadecimal), dan 11 untuk format absolut. 5. RD bit bernilai 1 untuk menginstruksikan SMS Center menerima SMS dengan nilai MR dan DA yang sama dengan SMS yang telah dikirimkan sebelumnya oleh pengirim yang sama. 6. Kedua bit MTI adalah Message Type Indicator, yaitu indikator tipe pesan dengan format bit sebagai berikut: 7. 0 0 untuk SMS masuk (dari SMS Center untuk perangkat) atau Laporan SMS Masuk (digenerasikan otomatis setelah penerimaan SMS masuk, oleh perangkat untuk SMS Center) 8. 0 1 untuk pengiriman SMS (dari perangkat ke SMS Center) atau laporan pengiriman SMS (dari SMS Center ke perangkat) 9. 1 0 untuk laporan status SMS (dari SMS Center ke perangkat) atau perintah berupa SMS (dari perangkat ke SMS Center) 37 2.7.2 MR (Message Reference) atau Referensi Pesan MR digunakan untuk mengidentifikasi jika terjadi error saat pengiriman pesan. Nomor ini akan menjadi bagian dari respon yang diberikan saat error, sehingga dapat diketahui pesan mana yang mengalami masalah. Nilai 00 diberikan agar perangkat yang menentukan nilai MR ini. 2.7.3 Panjang Nomor Handphone Panjang nomor handphone di sini adalah panjang nomor handphone tujuan pengiriman SMS. Panjang nomor handphone tujuan ini harus dalam format heksadesimal. 2.7.4 Format Nomor Handphone Format nomor handphone tujuan, dimana dapat dimasukkan 91 sebagai nilainya untuk menunjukkan format internasional digunakan dalam nomor handphone tujuan. 2.7.5 Nomor Handphone Nomor handphone tujuan dengan format terbalik setiap 2 karakternya, dan di akhiri dengan “F” jika panjang nomor handphone adalah ganjil. Penambahan karakter “F” dilakukan sebelum melakukan pembalikan karakter. Sebagai contoh adalah 46708251358 menjadi 6407281553F8. Jika panjang nomor handphone adalah genap tidak perlu diakhiri dengan karakter “F”. 2.7.6 PID (Protocol Identifier) atau Penunjuk Protokol Penunjuk protokol dalam PDU menentukan konten yang dibawa dalam sebuah paket PDU, dalam aplikasi monitoring ini jelas konten yang ingin 38 disertakan adalah SMS dan nilai default untuk PID adalah 00 yaitu Standard Text SMS. 2.7.7 DCS (Data Coding Scheme) Data Schema Coding adalah skema pengkodean pesan, dimana secara default adalah dikodekan menurut 7bit default alphabet yaitu Standard Text SMS. DCS juga dapat digunakan untuk menentukan Message Class. 2.7.8 Validity Period Validity Period adalah lamanya waktu suatu pesan disimpan pada SMS Center jika pesan gagal diterima oleh perangkat tujuan pengiriman pesan SMS. Dihitung dari saat pesan diterima oleh SMS Center. VP dituliskan dalam format heksadesimal setelah melalui perhitungan sesuai dengan tabel berikut: Tabel 2.5 Validity Period Waktu VP Nilai dalam Decimal 5 menit – 720 menit (12 jam) Waktu VP / 5 - 1 12, 5 jam – 24 jam 143 + ((Waktu VP-12)*2) 2 – 30 hari 166 + waktu VP Lebih dari 4 Minggu 192 + waktu VP Sebagai contoh, jika waktu VP dikehendaki adalah 5 hari, maka perhitungan menggunakan rumus 166 + 5 = 171 d = AB h. 39 2.7.9 Panjang Pesan Panjang pesan menunjukkan panjang pesan yang akan dikirim, dalam format heksadesimal. 2.7.10 Pesan Pesan adalah isi pesan yang akan dikirim sebagai pesan SMS melalui perangkat. Pesan ini harus dikodekan agar menjadi format yang sesuai yaitu format heksadesimal. Perubahan mengharuskan setiap karakter 7bit sesuai dengan DCS menjadi 8bit karakter GSM. 2.8 Komponen Rangkaian Elektronika Interfacing komputer dengan melibatkan Port Parallel tentunya didukung oleh kompnen-komponen elektronika sesuai dengan maksud dan tujuan rangkaian tersebut. Komponen elektronika dasar yang sangat umum digunakan contohnya antara lain : resistor, transistor, dioda, LED, kapasitor, dan lain sebagainya. 2.8.1 Resistor Fungsi Resistor sangat vital dalam sebuah rangkaian elektronika. Resistor adalah sebuah komponen dasar elektronika yang fungsinya adalah untuk menghambat arus listrik yang melewati suatu rangkaian. Gambar 2.12 Resistor 40 Dapat dikatakan bahwa semua rangkaian elektronika selalu menggunakan komponen elektronika ini. Jadi wajar apabila komponen ini menjadi komponen elektronika yang paling terkenal. Selain itu resistor juga menjadi komponen yang mempunyai harga paling murah dipasaran. Secara lengkap fungsi resistor adalah sebagai berikut: 1. Resistor berfungsi sebagai pembagi arus 2. Resistor berfungsi Sebagai pembatas / pengatur arus 3. Resistor berfungsi Sebagai penurun tegangan 4. Resistor berfungsi Sebagai penurun tegangan 5. Resistor berfungsi Sebagai penghambat aliran arus listrik,dan lain-lain. Selain fungsi, resistor juga memiliki berbagai macam jenis. Pada umumnya terdapat 2 jenis resistor yang paling banyak dijumpai yaitu : 1. Resistor Biasa Sebuah resistor penghambat gerak arus listrik yang nilainya tidak dapat berubah (konstan). Resistor ini biasanya terbuat dari nikel atau karbon. 2. Resistor Variable Sebuah resistor yang nilai variabel dapat dirumah dengan cara memutar atau menggeser. 2.8.2 Transistor Transistor merupakan piranti komponen elektronika yang terbuat dari bahan semikonduktor dan mempunyai tiga elektroda (triode) yaitu dasar (basis), pengumpul (kolektor) dan pemancar (emitor). Rangkaian ini berfungsi sebagai penguat sinyal, penyambung (switching) dan stabilisasi tegangan. 41 Jenis-jenis transistor dan cara kerja transistor pada umumnya dibagi menjadi dua jenis yaitu; Transistor Bipolar (dwi kutub) dan Transistor Efek Medan (FET – Field Effect Transistor). Transistor Bipolar adalah jenis transistor yang paling banyak digunakan pada rangkaian elektronika. Jenis-Jenis Transistor ini terbagi atas 3 bagian lapisan material semikonduktor yang terdiri dari dua formasi lapisan yaitu lapisan P-N-P (Positif-Negatif-Positif) dan lapisan N-P-N (Negatif-Positif-Negatif). Sehingga menurut dua formasi lapisan tersebut transistor bipolar dibedakan kedalam dua jenis yaitu transistor PNP dan transistor NPN. Masing-masing dari ketiga kaki jenis-jenis transistor ini di beri nama B (Basis), K (Kolektor), dan E (Emiter). Fungsi transistor bipolar ini adalah sebagai pengatur arus listrik (regulator arus listrik), dengan kata lain transistor dapat membatasi arus yang mengalir dari Kolektor ke Emiter atau sebaliknya (tergantung jenis transistor, PNP atau NPN). Gambar 2.13 Transistor Transistor Efek Medan (FET – Field Effect Transistor) merupakan jenis transistor yang juga memiliki 3 kaki terminal yang masing-masing diberi nama 42 Drain (D), Source (S), dan Gate (G). Cara kerja transistor ini adalah mengendalikan aliran elektron dari terminal Source ke Drain melalui tegangan yang diberikan pada terminal Gate. Perbedaan antara transistor bipolar dan transistor FET adalah jika transistor bipolar mengatur besar kecil-nya arus listrik yang melalui kaki Kolektor ke Emiter atau sebaliknya melalui seberapa besar arus yang diberikan pada kaki Basis, sedangkan pada FET besar kecil-nya arus listrik yang mengalir pada Drain ke Source atau sebaliknya adalah dengan seberapa besar tegangan yang diberikan pada kaki Gate. Selain di gunakan sebagai penguat, transistor digunakan sebagai saklar. Caranya adalah dengan memberikan arus yang cukup besar pada basis transistor hingga mencapai titik jenuh. Pada kondisi seperti ini kolektor dan emitor bagai kawat yang terhubung atau saklar tertutup, dan sebaliknya jika arus basis teramat kecil maka kolektor dan emitor bagai saklar terbuka. 2.9 Suplai Daya Bebas Gangguan (Uninterruptible Power Supply) Uninterruptible Power Supply atau biasa disingkat UPS, adalah perangkat yang biasanya menggunakan baterai backup sebagai catuan daya alternatif, untuk dapat memberikan suplai daya yang tidak terganggu untuk perangkat elektronik yang terpasang. UPS merupakan sistem penyedia daya listrik yang sangat penting dan diperlukan sekaligus dijadikan sebagai benteng dari kegagalan daya serta kerusakan sistem dan hardware. UPS akan menjadi sistem yang sangat penting dan sangat diperlukan pada banyak perusahaan penyedia jasa telekomunikasi, jasa informasi, penyedia jasa internet dan banyak lagi. Dapat dibayangkan berapa 43 besar kerugian yang timbul akibat kegagalan daya listrik jika sistem tersebut tidak dilindungi oleh UPS. Adapun fungsi-fungsi utama UPS antara lain: 1) Dapat memberikan energi listrik sementara ketika terjadi kegagalan daya pada listrik utama. 2) Memberikan kesempatan waktu yang cukup untuk segera menghidupkan genset sebagai pengganti listrik utama. 3) Memberikan kesempatan waktu yang cukup untuk segera melakukan back up data dan mengamankan sistem operasi (OS) dengan melakukan shutdown sesuai prosedur ketika listrik utama padam. 4) Mengamankan sistem komputer dari gangguan-gangguan listrik yang dapat mengganggu sistem komputer baik berupa kerusakan software, data maupun kerusakan hardware. 5) UPS secara otomatis dapat melakukan stabilisasi tegangan ketika terjadi perubahan tegangan pada input sehingga tegangan output yang digunakan oleh sistem komputer berupa tegangan yang stabil. 6) UPS dapat melakukan diagnosa dan managemen terhadap dirinya sendiri sehingga memudahkan pengguna untuk mengantisipasi jika akan terjadi gangguan terhadap sistem. 7) User friendly dan mudah dalam installasi. 8) Pengguna dapat melakukan kontrol UPS melalui jaringan LAN (Local Area Network) dengan menambahkan beberapa diperlukan. 9) Dapat diintegrasikan dengan jaringan internet. aksesoris yang 44 10) Notifikasi jika terjadi kegagalan dengan melakukan pengaturan perangkat lunak UPS management. Notifikasi biasanya berupa bunyi alarm, atau notifikasi melalui email. 2.10 Metode Waterfall Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai di dalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model waterfall dapat dilihat pada gambar berikut : Gambar 2.14 Metode Waterfall (Roger S. Pressman, 1992) 45 Gambar di atas adalah tahapan umum dari model proses ini. Akan tetapi Roger S. Pressman (1992: 24) memecah model ini menjadi 6 tahapan meskipun secara garis besar sama dengan tahapan-tahapan model waterfall pada umumnya. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini menurut Roger S. Pressman (1992: 24): • System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition. • Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan. • Design. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan di atas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software. 46 • Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap desain yang secara teknis nantinya dikerjakan oleh programmer. • Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benarbenar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. • Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fiturfitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya. Model ini sangat populer karena pengaplikasian menggunakan model ini mudah, kelebihan dari model ini adalah ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal project, maka SE dapat berjalan dengan baik dan tanpa masalah. Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan seeksplisit yang diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di awal project lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yang terbuang lebih sedikit jika dibandingkan problem yang muncul pada tahap-tahap selanjutnya. 47 Meskipun demikian, karena model ini melakukan pendekatan secara urut / sequential, maka ketika suatu tahap terhambat, tahap selanjutnya tidak dapat dikerjakan dengan baik dan itu menjadi salah satu kekurangan dari model ini. Selain itu, ada beberapa kekurangan pengaplikasian model ini, antara lain adalah sebagai berikut: • Ketika problem muncul, maka proses berhenti, karena tidak dapat menuju ke tahapan selanjutnya. Bahkan jika kemungkinan problem tersebut muncul akibat kesalahan dari tahapan sebelumnya, maka proses harus membenahi tahapan sebelumnya agar problem ini tidak muncul. Hal-hal seperti ini yang dapat membuang waktu pengerjaan SE. • Karena pendekatannya secara sequential, maka setiap tahap harus menunggu hasil dari tahap sebelumnya. Hal itu tentu membuang waktu yang cukup lama, artinya bagian lain tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama pengerjaannya. • Pada setiap tahap proses tentunya dipekerjakan sesuai spesialisasinya masing-masing. Oleh karena itu, ketika tahap tersebut sudah tidak dikerjakan, maka sumber dayanya juga tidak terpakai lagi. Oleh karena itu, seringkali pada model proses ini dibutuhkan seseorang yang “multiskilled”, sehingga minimal dapat membantu pengerjaan untuk tahapan berikutnya. Tahapan-tahapan model ini sudah cukup baik dalam artian minimal untuk melakukan SE, maka harus ada tahapan-tahapan ini. Tahapan-tahapan ini jugalah yang digunakan oleh model-model yang lain pada umumnya. Ada filosofi yang 48 mengatakan sesuatu yang sukses diciptakan pertama kali, maka akan terus dipakai di dalam pengembangannya. Hal ini juga berlaku pada waterfall model ini. Mungkin dapat dikatakan bahwa inilah standar untuk melakukan SE. Akan tetapi, yang mungkin menjadi banyak pertimbangan mengenai penggunaan dari model ini adalah metode sequential-nya. Mungkin untuk awalawal software diciptakan, hal ini tidak menjadi masalah, karena dengan berjalan secara berurutan, maka model ini menjadi mudah dilakukan. Sesuatu yang mudah biasanya hasilnya bagus. Oleh karena itu model ini sangat populer. Akan tetapi, seiring perkembangan software, model ini tentu tidak bisa mengikutinya. Yang menjadi kelemahan adalah pada pengerjaan secara berurutan tadi, seperti yang sudah diutarakan sebelumnya. Kelemahan-kelemahan yang lain juga sudah di utarakan di atas, atau bahkan masih ada yang lainnya. 2.11 Metode Pengujian Black Box Atribut pengujian yang baik (Kaner,C.,J. Falk, dan H.Q. Nguyen 1993) adalah: • Pengujian yang baik memiliki probabilitas yang tinggi untuk menemukan kesalahan Contoh : kelas kegagalan potensial pada GUI (Graphical User Interface) adalah kegagalan untuk mengenali posisi mouse yg sesuai. • Pengujian yang baik tidak redundan Contoh: modul perangkat lunak SafeHome didesain untuk mengenali password pemakai untuk mengaktifkan & mendeaktifkan sistem. Dalam usaha mengungkap kesalahan input password, penguji mendesain serangkaian pengujian 49 yang memasukkan serangkaian password. Password yang berlaku dan tidak berlaku (4 urutan numeris) di-input-kan sebagai pengujian yg berbeda. • Kesalahan pada struktur data atau database Pengujian black-box berfokus pada persyaratan fungsional perangkat lunak. Pengujian ini memungkinkan analis sistem memperoleh kumpulan kondisi input yang akan mengerjakan seluruh keperluan fungsional program. Tujuan metode ini mencari kesalahan pada: • Fungsi yang salah atau hilang • Kesalahan pada interface • Kesalahan pada struktur data atau database • Kesalahan performansi • Kesalahan inisialisasi dan tujuan akhir Metode ini tidak terfokus pada struktur kontrol seperti pengujian white- box tetapi pada domain informasi. Pengujian dirancang untuk menjawab pertanyaan-pertanyaan berikut: • Bagaimana validitas fungsional diuji? • Apa kelas input yang terbaik untuk uji coba yang baik? • Apakah sistem sangat peka terhadap nilai input tertentu? • Bagaimana jika kelas data yang terbatas dipisahkan? • Bagaimana volume data yang dapat ditoleransi oleh sistem? • Bagaimana pengaruh kombinasi data terhadap pengoperasian sistem? 50 2.12 Ruang Server Ruang server adalah suatu jenis ruang yang berisi instalasi komputer server baik tunggal maupun jaringan atau tempat perangkat utama komputer server diletakkan. Lokasi penempatan server juga merupakan salah satu hal penting dalam sebuah jaringan. Pemilihan lokasi yang baik tentunya akan memperhatikan aspek-aspek keamanan dari perangkat server yang dibangun. Hal tersebut penting karena server adalah pusat data yang penting dalam sebuah sistem jaringan karena data data tersebut memiliki nilai yang tinggi bagi suatu perusahaan atau instansi. 2.13 Server Server adalah sebuah sistem komputer yang menyediakan jenis layanan tertentu dalam sebuah jaringan komputer. Server didukung dengan prosesor yang bersifat scalable dan RAM (Random Access Memory) yang besar, juga dilengkapi dengan sistem operasi khusus, yang disebut sebagai sistem operasi jaringan atau network operating system. Server juga menjalankan perangkat lunak administratif yang mengontrol akses terhadap jaringan dan sumber daya yang terdapat di dalamnya, seperti halnya berkas atau alat pencetak (printer), dan memberikan akses kepada workstation anggota jaringan. Umumnya, di dalam sistem operasi server terdapat berbagai macam layanan yang menggunakan arsitektur klient/server. Contoh dari layanan ini adalah Protokol Konfigurasi Hos Dinamik, server surat, server PTH, server PTB, DNS server, dan lain sebagainya. Setiap sistem operasi server umumnya membundel layanan-layanan tersebut, meskipun pihak ketiga dapat pula membuat layanan tersendiri. Setiap layanan tersebut akan merespon request dari klien. 51 Sebagai contoh, klien PKHD akan memberikan request kepada server yang menjalankan layanan server PKHD ketika sebuah klien membutuhkan alamat IP (Internet Protokol), klien akan memberikan request kepada server, dengan bahasa yang dipahami oleh server PKHD, yaitu protokol PKHD itu sendiri. Contoh sistem operasi server adalah Windows NT 3.51, dan dilanjutkan dengan Windows NT 4.0, Windows 2000 Server da Windows 2003 Server. Saat ini sistem yang cukup populer adalah Windows 2008 Server, kemudian Sun Solaris, Unix, dan GNU/Linux. Dilihat dari fungsinya, server bisa di kategorikan dalam beberapa jenis seperti : 1. Samba Server Samba (server message block) adalah protokol file sharing dan printer sharing untuk menyaingi protokol yang telah ada yakni Novell’s IPXbased. SMB ini merupakan protokol file sharing dan printer sharing pertama yang dapat berjalan pada multi protokol: TCP/IP, NetBEUI, IPX/SPX. Dengan kata lain SMB server dapat menggantikan posisi Novell server tanpa harus merubah infrastruktur dari jaringan. 2. FTP Server File Transfer Protocol (FTP) adalah suatu protokol yang berfungsi untuk tukar- menukar file dalam suatu network yang menggunakan TCP (Transmission Control Protokol) koneksi bukan UDP (User Data Gram Protokol). 52 3. DNS Server Domain Name System (DNS) Adalah sebuah aplikasi service di internet yang menerjemahkan sebuah domain name ke IP address dan salah satu jenis sistem yang melayani permintaan pemetaan IP address ke FQPN (Fany Qualified Domain Name) dan dari FQDN ke IP address. DNS biasanya digunakan pada aplikasi yang berhubungan ke internet sererti Web Browser atau e-mail, Dimana DNS membantu memetakan host name sebuah komputer ke IP address. Selain digunakan di internet DNS juga dapat di implementasikan ke private network atau internet. 4. Web Server Web Server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP (Hypertext Transfer Protocol) atau HTTPS (Hypertext Transfer Protocol Secure) dari klien yang dikenal dengan web browser dan mengirimkan kembali hasilnya dalam bentuk halamanhalaman web yang umumnya berbentuk dokumen HTML.. Web Server juga merupakan sebuah komputer yang menyediakan layanan untuk internet. Server disebut juga dengan host. Agar anda dapat memasukkan web yang anda rancang ke dalam internet, maka anda harus memiliki ruangan terlebih dahulu dalam internet, dan ruangan ini disediakan oleh server. 5. Mail Server Mail server digunakan untuk men-transfer e-mail pada jaringan TCP / IP atau bisa juga disebut sebagai perangkat lunak program yang mendistribusikan file atau informasi sebagai respons atas permintaan yang 53 dikirim via email, juga digunakan pada bitnet untuk menyediakan layanan serupa FTP.Mail server merupakan perangkat terpenting dalam pembuatan webmail yang menjadi tempat dari database mail dalam jaringan untuk melakukan resource sharing, dan dapat dimanfaatkan untuk memfasilitasi dan komunikasi email merupakan sarana yang cukup bermanfaat di kalangan masyasrakat di seluruh dunia, dengan email kita dapat melakukan interaksi dan pertukaran informasi satu sama lainnya. Disamping itu kita juga memerlukan mail server yang dapat kita istilahkan sebagai kantor pos yang mengatur proses pengiriman dan penerimaan pesan juga penyimpanan pesan yang menggunakan sistem basis data. 6. Proxy Server Proxy server adalah sebuah komputer server atau program komputer yang dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari internet atau intranet. Proxy Server bertindak sebagai gateway terhadap dunia internet untuk setiap komputer klien. Proxy server tidak terlihat oleh seorang user yang berinteraksi dengan internet melalui sebuah proxy server tidak akan mengetahui bahwa sebuah proxy server sedang menangani request yang dilakukannya. Web server yang menerima request dari proxy server akan menginterpretasikan request-request tersebut seolah-olah request itu datang secara langsung dari komputer klien, bukan dari proxy server. Proxy server juga dapat digunakan untuk mengamankan jaringan pribadi yang dihubungkan ke sebuah jaringan publik (seperti halnya internet). Proxy server memiliki lebih banyak fungsi daripada router yang memiliki fitur packet filtering karena memang proxy 54 server beroperasi pada level yang lebih tinggi dan memiliki kontrol yang lebih menyeluruh terhadap akses jaringan. Proxy server yang berfungsi sebagai sebuah "agen” keamanan" untuk sebuah jaringan pribadi, umumnya dikenal sebagai firewall. 2.14 Pemantaun Listrik Pada aplikasi pemantauan listrik, terdapat 3 pertanyaan dasar mengenai hal-hal terkait pemantauan: 1. Mengapa daya sering dipantau? 2. Apa yang harus dipantau? 3. Bagaimana pemantauan daya dilakukan dengan cara yang terjangkau dan efisien? Alasan pemantauan di balik pemantauan daya listrik dapat bervariasi menurut berbagai sumber. Namun demikian, terdapat beberapa faktor dasar yang bersifat universal. Beberapa diantaranya adalah: 1. Kualitas daya listrik 2. Pemeliharan dan tindakan pencegahan 3. Pemecahan masalah 4. Penggunaan energi 5. Besaran kapasitas daya Aplikasi pemantauan listrik yang dikerjakan oleh penulis erat keterkaitannya dengan beberapa hal di atas, misalnya kualitas daya listrik, pemeliharaan dan tindakan pencegahan, serta pemecahan masalah. 55 2.14.1 Kualitas Daya Listrik Dengan meningkatnya penggunaan peralatan berbasis komputer, kualitas daya menjadi isu yang penting. Untuk peralatan berbasis komputer, terdapat 2 pokok permasalahan yaitu komputer dapat menyebabkan masalah kualitas daya dan komputer dapat dipengaruhi negatif oleh kualitas daya yang tidak cocok. Kualitas daya yang buruk dapat merusak peralatan, menyebabkan kondisi yang tidak aman atau menyebabkan gangguan. Selain kualitas daya di atas, hilangnya daya listrik secara tiba-tiba adalah salah satu faktor penting yang juga mempunyai efek negetif terhadap komputer maupun server. 2.14.2 Pemeliharan dan Tindakan Pecegahan Tindakan pemeliharaan dan pencegahan sebaiknya dilakukan dengan caracara yang murah dan tidak terlalu kompleks. Penjadwalan pemeriksaan terhadap keadaan UPS dan kesigapan Administrator sebagai penanggung jawab ruang server dapat mengurangi potensi masalah disertai tindakan pengamanan yang lebih capat dan tepat. 2.14.3 Pemecahan Masalah Sering kali pemecahan masalah dilakukan tanpa terjadwal dikarenakan masalah kelistrikan secara tiba-tiba. Pengumpulan informasi sebanyak mungkin di lapangan tentang situasi dan kondisi ruang, akan memudahkan Administrator dalam memecahkan masalah yang timbul. Lebih jauh lagi, penggunaan alat bantu seperti penggunaan instrumen peralatan pemantaukan listrik juga dapat dimanfaatkan dalam mempercepat pemecahan masalah.