BAB II LANDASAN TEORI
2.1. Sistem Informasi 2.1.1. Definisi Sistem Informasi Istilah sistem informasi terdiri dari dua kata yaitu sistem dan informasi, sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau menyelesaikan suatu sasaran tertentu. Sedangkan informasi adalah data yang telah diproses menjadi bentuk yang memiliki arti bagi penerima dan dapat berupa fakta, suatu nilai yang bermanfaat. Jadi ada suatu proses transformasi data menjadi suatu informasi == input - proses - output. Data merupakan raw material/bahan baku untuk suatu informasi. Perbedaan informasi dan data sangat relatif tergantung pada nilai gunanya bagi manajemen yang memerlukan. Suatu informasi bagi level manajemen tertentu bisa menjadi data bagi manajemen level di atasnya, atau sebaliknya. Sistem informasi adalah suatu sistem di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan. Sistem informasi memiliki komponen fisik sebagai berikut: § Perangkat keras komputer : CPU, Storage, perangkat input / output, terminal untuk interaksi, media komunikasi data. § Perangkat lunak komputer : perangkat lunak sistem (sistem operasi dan utilitinya), perangkat lunak umum aplikasi (bahasa pemrograman), perangkat lunak aplikasi (aplikasi akuntansi dll). 8
9 § Basis data : penyimpanan data pada media penyimpan komputer. § Prosedur : langkah-langkah penggunaan sistem § Personil untuk pengelolaan operasi (SDM), meliputi: § Clerical personnel (untuk menangani transaksi dan pemrosesan data dan melakukan inquiry = operator); § First level manager : untuk mengelola pemrosesan data didukung dengan perencanaan,
penjadwalan,
identifikasi
situasi
out-of-control
dan
pengambilan keputusan level menengah ke bawah. § Staff specialist : digunakan untuk analisis untuk perencanaan dan pelaporan. § Management : untuk pembuatan laporan berkala, permintaan khsus, analisis khusus, laporan khsusus, pendukung identifikasi masalah dan peluang.
2.1.2. Siklus Hidup Pengembangan Sistem Informasi Secara konseptual siklus pengembangan sebuah sistem informasi adalah sebagai berikut : § Analisis
Sistem
:
menganalisis
dan
mendefinisikan
masalah
dan
kemungkinan solusinya untuk sistem informasi dan proses organisasi. § Perancangan Sistem : merancang output, input, struktur file, program, prosedur, perangkat keras dan perangkat lunak yang diperlukan untuk mendukung sistem informasi § Pembangunan dan Testing Sistem : membangun perangkat lunak yang diperlukan untuk mendukung sistem dan melakukan testing secara akurat serta melakukan instalasi dan testing terhadap perangkat keras dan mengoperasikan perangkat lunak § Implementasi Sistem : beralih dari sistem lama ke sistem baru, melakukan pelatihan dan panduan seperlunya. § Operasi dan Perawatan : mendukung operasi sistem informasi dan melakukan perubahan atau tambahan fasilitas.
10 §
Evaluasi Sistem : mengevaluasi sejauh mana sistem telah dibangun dan seberapa bagus sistem telah dioperasikan.
2.2. Metode Incremental Incremental model adalah model pengembangan sistem pada software engineering berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau bagian sehingga model pengembangannya secara bertahap. dilain pihak ada mengartikan model incremental sebagai perbaikan dari model waterfall dan sebagai standar pendekatan topdown. Layaknya Model Waterfall, model ini pun juga memiliki tahapan tahapan untuk perancangan perangkat lunaknya, yaitu:
Gambar 1. Model Incremental Sumber : http://en.wikipedia.org/wiki/Iterative_and_incremental_development
Requirement, Requirment adalah proses tahapan awal yang dilakukan pada incremental model adalah penentuan kebutuhan atau analisis kebutuhan. 1. Analisa. Analisa adalah proses spesifikasi dimana menggunakan analisis kebutuhan sebagai acuannya. 2. Design adalah tahap selanjutnya, perancangan software yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya. 3. Code setelah melakukan proses desain selanjutnya ada pengkodean. 4. Test merupakan tahap pengujian dalam model ini. Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan. Pada
11 incremental model, tiga tahapan awal harus diselesaikan terlebih dahulu sebelum sebelum tahap membangun tiap increment. Untuk mengantisipasi kondisi yang terjadi pada incremental model, diperkenalkan model More Risky Incremental Model. Model ini menerapkan sistem kerja yang paralel. Setelah daftar kebutuhan didapatkan dari pemakai, tim spesifikasi membuat spesifikasi untuk modul pertama. Setelah spesifikasi pertama selesai, tim desain menindak lanjuti. Tim spesifikasi sebelumnya juga langsung membuat spesifikasi untuk model kedua, dan seterusnya. Jadi, tidak harus menunggu modul pertama selesai hingga dikirim ke user. § Beberapa Kelebihan Dari Mode Incremental atara lain : 1. Merupakan model dengan manajemen yang sederhana 2. Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk mengambil keuntungan dari sistem tersebut. Increment yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan. 3. Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah masih dapat ditemukan pada beberapa increment. Karena layanan dengan prioritas tertinggi diserahkan pertama dan increment berikutnya diintegrasikan dengannya, sangatlah penting bahwa layanan sistem yang paling penting mengalami pengujian yang ketat. Ini berarti bahwa pengguna akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada increment sistem yang paling bawah. 4. Nilai penggunaan dapat ditentukan pada setiap increment sehingga fungsionalitas sistem disediakan lebih awal. 5. Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem, 6. Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji § Kelemahannya adalah : 1. kemungkinan tiap bagian tidak dapat diintegrasikan 2. Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung
12 3. Harus Open Architecture 4. Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment.
2.3. Web Service - RESTful web api REST singkatan bahasa Inggris dari representational state transfer atau transfer keadaan representasi, adalah suatu gaya arsitektur perangkat lunak untuk untuk pendistibusian sistemhipermedia seperti WWW. Istilah ini diperkenalkan pertama kali pada tahun 2000 pada disertasi doktoral Roy Fielding, salah seorang penulis utama spesifikasi HTTP. Istilah ini selanjutnya dipergunakan secara luas pada komunitas jaringan. REST secara spesifik merujuk pada suatu koleksi prinsip-prinsip arsitektur jaringan yang menggariskan pendefinisian dan pengalamatan sumber daya. Istilah ini sering digunakan dengan longgar untuk mendeskripsikan semua antarmuka sederhana yang menyampaikan data dalam domain spesifik melalui HTTP tanpa tambahan lapisan pesan seperti SOAP atau pelacakan sesi menggunakan cookie HTTP. Dua pengertian ini dapat menimbulkan konflik dan juga tumpang tindih. Dimungkinkan untuk merancang suatu sistem perangkat lunak besar sesuai dengan gaya arsitektur REST Fielding tanpa menggunakan HTTP dan tanpa berinteraksi dengan WWW. Juga dimungkinkan untuk merancang antarmuka XML+HTTP sederhana yang tidak mengikuti prinsip-prinsip REST, tapi sebaliknya mengikuti model dari RPC (remote procedure call). Perbedaan penggunaan istilah REST ini cukup menyebabkan permasalahan dalam diskusi-diskusi teknis. Sistem yang mengikuti prinsip REST Fielding sering disebut sebagai "RESTful". RESTful web service atau juga dikenal dengan nama RESTful Web API merupakan sebuah web service yang di implemantasikan dengan menggunakan http dengan menggunakan prinsip-prinsip REST. Service yang digunakan menggunakan method milik http antara lain GET, PUT, POST or DELETE.
13 2.3.1. Rhomobile Rhomobile atau Rhodes merupakan open source framework yang di develop oleh Motorola untuk membangun aplikasi native mobile yang bisa di jalankan di bermacam-macam device. Rhodes dapat digunakan di iOS, Android, Windows Mobile, Windows 7 Phone, dan BlackBerry. Pada rhomobile juga disediakan dan sudah terhubung dengan local databse dengan menggunakan SQL Lite. Basic aplikasi rhomobile ini menggunakan bahasa pemrograman ruby / rails sebagai controllernya, dengan html dan jquerymobile untuk user interfacenya. Berikut merupakan langkah-langkah membuat aplikasi dengan Rhodes: ü Command ini digunakan untuk membuat aplikasi rhodes baru : rhodes app [application_name][extension]
ü Command ini digunakan untuk melakukan generate model pada rhodes : rhodes model [model_name] [spec1,spec2,spec3]
ü Command ini digunakan untuk mengetahui perintah-perintah apa saja yang bisa di eksekusi pada aplikasi rhodes. rake –T
2.3.2. Jersey Jersey merupakan aplikasi open source, produk yang dihasilkan yaitu JAXRS (JSR 311) yang merupakan referensi untuk menimplementasikan dalam membangun sebuah Restful Web Service. Tetapi bukan hanya sekedar referensi Restful, Jersey juga menyediakan API sehingga developer mampu untuk melakukan extensi Jersey untuk di sesuaikan sesuai dengan apa yang mereka perlukan. Saat ini versi Jersey sudah mencapai versi 2.0.
14 ü
@Path Anotasi @Path digunakan untuk mendefinisikan URI path. Java Class akan menjadi tujuan utama pada URI path /helloworld. Contoh anotasi : @Path("/users/{username}")
Pada contoh di atas, maka web service akan merespon URL seperti di bawah ini : http://example.com/users/Galileo
Untuk mendapatkan value username seperti yang terdapat pada anotasi, maka username bisa didapatkan menggunakan @PathParam yang digunakan sebagai method parameter pada request method, contohnya : @Path("/users/{username}") public class UserResource {
@GET @Produces("text/xml") public String getUser(@PathParam("username") String userName) { ... } }
ü
HTTP Method HTTP Method yang terdapat pada jersey terdiri dari @GET, @PUT, @POST, @DELETE, dan @HEAD merupakan resource anotasi yang di definisikan pada JAX-RS, pada anotasi java method akan melakukan proses dengan request HTTP GET.
ü
@Produces
15 Anotasi @Produces digunakan untuk menspesifikasikan tipe media MIME. Method pada java akan menghasilkan tipe media MIME “text/plain”. @Path("/myResource") @Produces("text/plain") public class SomeResource { @GET public String doGetAsPlainText() { ... }
@GET @Produces("text/html") public String doGetAsHtml() { ... } }
2.4. UML Modeling Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. Misalnya digunakan untuk spesifikasi, visualisasi, dan dokumentasi sistem objekoriented software pada fase pengembangan. Unified Modeling Language (UML) juga merupakan sebuah bahasa pemodelan yang telah menjadi standar dalam industri software untuk visualisasi, merancang, dan mendokumentasikan sistem perangkat lunak (Henderi, 2007: 4).
16 2.4.1. Bagian-bagian dari UML Bagian-bagian utama dari UML adalah view, diagram, model element, dan general mechanism. 1. View : View digunakan untuk melihat sistem yang dimodelkan dari beberapa aspek yang berbeda. View bukan melihat grafik, tapi merupakan suatu abstraksi yang berisi sejumlah diagram. Beberapa jenis view dalam UML antara lain: use case view, logical view, component view, concurrency view,dan deployment view. 2. Use case view : Mendeskripsikan fungsionalitas sistem yang seharusnya dilakukan sesuai yang diinginkan external actors. Actor yang berinteraksi dengan sistem dapat berupa user atau sistem lainnya. View ini digambarkan dalam use case diagrams dan kadang-kadang dengan activity diagrams. View ini digunakan terutama untuk pelanggan, perancang (designer), pengembang (developer), dan penguji sistem (tester). 3. Logical View : Mendeskripsikan bagaimana fungsionalitas dari sistem, struktur statis (class, object,dan relationship) dan kolaborasi dinamis yang terjadi ketika object mengirim pesan ke object lain dalam suatu fungsi tertentu. View ini digambarkan dalam class diagrams untuk struktur statis dan dalam state, sequence, collaboration, dan activity diagram untuk model dinamisnya. View ini digunakan untuk perancang (designer) dan pengembang (developer). 4. Component view : Mendeskripsikan implementasi dan ketergantungan modul.
Komponen
yang
merupakan
tipe
lainnya
dari code
module diperlihatkan dengan struktur dan ketergantungannya juga alokasi sumber daya komponen dan informasi administrative lainnya. View ini digambarkan dalam component view dan digunakan untuk pengembang (developer). 5. Concurrency view : Membagi sistem ke dalam proses dan prosesor.View ini digambarkan dalam diagram dinamis (state, sequence, collaboration, dan activity
diagrams)
dan
diagram
implementasi
17 (component dan deployment diagrams) serta digunakan untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester). 6. Deployment view : Mendeskripsikan fisik dari sistem seperti komputer dan perangkat (nodes) dan bagaimana hubungannya dengan lainnya. View ini digambarkan dalam deployment diagrams dan digunakan untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester). 7. Diagram : Diagram berbentuk grafik yang menunjukkan simbol elemen model yang disusun untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan biasanya dialokasikan untuk view tertentu. Adapun jenis diagram antara lain : a. Use Case Diagram Use case adalah abstraksi dari interaksi antara sistem dan aktor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah system dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai. Use case merupakan konstruksi untuk mendeskripsikan bagaimana system akan terlihat di mata user. Sedangkan use case diagram memfasilitasi komunikasi diantara analis dan pengguna serta antara analis dan client. Tabel 1. Daftar Simbol Use Case Diagram
Simbol
Nama Simbol Aktor
Keterangan Seseorang atau sesuatu yang berinteraksi dengan sistem.
Use Case
Menggambarkan
bagaimana
seseorang
akan menggunakan sistem.
Aliran Event
Untuk mendokumentasikan aliran-aliran logika dalam setiap Use Case.
18 Include
dan
Extends
Include memungkinkan Use Case untuk menggunakan fungsional yang di sediakan oleh Use Case lainnya. Extends memungkinkan suatu Use Case memiliki
kemungkinan
memperluas
fungsionalitas yang di sediakan oleh Use Case lainnya. Generalisasi
Digunakan untuk memperlihatkan bahwa beberapa aktor atau usecase memiliki sesuatu yang bersifat umum.
Contoh dari Use Case Diagram :
Gambar 2. Contoh Use Case Diagram Sumber Gambar : Help Contents Enterprise Architect 6.1
19 b. Class Diagram Class adalah dekripsi kelompok obyek-obyek dengan property, perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan pandangan global atas sebuah system. Hal tersebut tercermin dari class-class yang ada dan relasinya satu dengan yang lainnya.
Sebuah
sistem
biasanya
mempunyai
beberapa class
diagram. Class diagram sangat membantu dalam visualisasi struktur kelas dari suatu sistem. Tabel 2. Daftar Simbol Class Diagram
Simbol
Nama Simbol Class
Keterangan Class adalah blok - blok pembangun pada pemrograman berorientasi obyek. Sebuah class digambarkan sebagai sebuah kotak yang terbagi atas 3 bagian. Bagian atas adalah bagian nama dari class. Bagian tengah
mendefinisikan
property/atribut
class.
Bagian
mendefinisikan
akhir
method-method dari sebuah class. Association
Association mengimplikasikan antar dua elemen yang memiliki hubungan. Contoh hubungan (one to one, one to many, many to many)
Generalisasi
Digunakan untuk memperlihatkan ada hubungan keturunan antara super class dengan child nya.
20
Contoh dari Class Diagram :
Gambar 3. Contoh Class Diagram Sumber Gambar : Help Contents Enterprise Architect 6.1
c. Sequence Diagram Sequence Diagram digunakan untuk menggambarkan perilaku pada sebuah sekenario. Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim antara object juga interaksi antara object, sesuatu yang terjadi pada titik tertentu dalam eksekusi sistem. Tabel 3. Daftar Simbol Sequence Diagram
Simbol
Nama Simbol Actor
Keterangan Actor juga dapat berkomunikasi dengan object, maka actor juga dapat diurutkan sebagai kolom. Simbol Actor sama dengan simbol pada Actor Use Case Diagram
21 Lifeline
Lifeline
mengindikasikan
keberadaan
sebuah object dalam basis waktu. Notasi untuk Lifeline adalah garis putus-putus vertikal yang ditarik dari sebuah objek. Boundary
Suatu boundary adalah suatu kelas yang meniru beberapa model boundary system yang secara khas yaitu merupakan alat penghubung seorang dengan layar.
Control
Suatu control adalah meniru suatu kelas yang
menggambarkan
suatu
pengendalian manajer atau kesatuan. Suatu
control
mengorganisir
dan
menjadwalkan aktivitas elemen - elemen. Entity
Suatu entity adalah suatu tempat atau database yang berfungsi untuk merekam pengetahuan atau informasi di dalam suatu sistem.
Message
Message, digambarkan dengan anak panah
horizontal
antara
Activation.
Message mengindikasikan komunikasi antara object.
22 Contoh Sequence Diagram :
Gambar 4. Contoh Sequence Diagram Sumber Gambar : Help Contents Enterprise Architect 6.1
d. Activity Diagram Menggambarkan rangkaian aliran dari aktivitas, digunakan untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga dapat juga digunakan untuk aktifitas lainnya seperti use case. Tabel 4. Daftar Simbol Activity Diagram
Simbol
Nama Simbol Activity
Keterangan Activity digunakan untuk aktivitas yang dilakukan oleh user.
Control Flow
Control
Flow
menghubungkan Activity diagram.
digunakan antar
elemen
untuk pada
23 Partition
Activity partitions (pemisah aktivitas) digunakan untuk mengatur secara logika sebuah activity diagram. Partition ini tidak mempengaruhi aliran token dari activity diagram,
tetapi
membantu
menyusun
tampilan atau bagian dari activity diagram. Decision
Sebagai
pilihan
untuk
mengambil
keputusan. Fork / Join
Fork
atau
menunjukan
Join kegiatan
digunakan yang
untuk
dilakukan
secara pararel. Initial
Initial state ini digunakan untuk memulai suatu workflow pada sebuah Activity Diagram.
Final
Final
stateI
ini
digunakan
untuk
mengakhiri suatu workflow pada sebuah Activity Diagram biasanya pada beberapa activity diagram ditemukan lebih dari satu Final State.
24 Contoh Activity Diagram :
Gambar 5. Contoh Sequence Diagram Sumber Gambar : Help Contents Enterprise Architect 6.1
2.4.2. Tujuan Penggunaan UML Memberikan bahasa pemodelan yang bebas dari berbagai bahas pemrograman dan proses rekayasa. Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan. Memberikan model yang siap pakai, bahsa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum. UML bisa juga berfungsi sebagai sebuah (blue print) cetak biru karena sangat lengkap dan detail. Dengan cetak biru ini maka akan bias diketahui informasi secara detail tentang coding program atau bahkan membaca program dan menginterpretasikan kembali ke dalam bentuk diagram (reserve enginering).
25 2.5. Basis Data Pangkalan data atau basis (database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi. Istilah "basis data" berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis. Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabeltabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel. Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (database management system/DBMS). Jika konteksnya sudah jelas, banyak administrator dan programer menggunakan istilah basis data untuk kedua arti tersebut.
26 Komponen sebuah sistem basis data, antara lain : § Hardware : Biasanya berupa perangkat computer standar, media penyimpan sekunder dan media komunikasi untuk system jaringan. § Operating System : Yakni merupakan perangkat lunak yang memfungsikan, mengendalikan seluruh sumber daya dan melakukan operasi dasar dalam sistem komputer. Harus sesuai dengan DBMS yang digunakan. § Database : Yakni basis data yang mewakili sistem tertentu untuk dikelola. Sebuah sistem basis data bias terdiri dari lebih dari satu basis data. § DBMS (Database Management System) : Perang katlunak yang digunakan untuk mengelola basis data. Contoh kelas sederhana: dBase, Foxbase, Rbase, MS. Access, MS. Foxpro, Borland Paradox. Contoh kelas kompleks: Borland-Interbase, MS. SQL Server, Oracle, Informix, Sybase. § User (PenggunaSistem Basis Data) : Orang-orang yang berinteraksi dengan sistem basis data, mulai dari yang merancang sampai yang menggunakan di tingkat akhir. § Optional Software : Perangkat lunak pelengkap yang mendukung tetapi bersifat opsional.
2.6. Perangkat Lunak Pendukung Adapun perangkat lunak yang digunakan sebagai alat bantu untuk pengembangan aplikasi pada riset kali ini, antara lain : 2.6.1. Java Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat
27 dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web. 2.6.2. Sejarah Perkembangan Java Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Zhulfikar Anugrah, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang. Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven). Setelah era Star Seven selesai, sebuah anak perusahaan Tv kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto. Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan ide di antara
28 mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer. Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java. Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995. Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape. Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "Bapak Java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak lain sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling. Konon kopi ini berasal dari Pulau Jawa. Jadi nama bahasa pemrograman Java tidak lain berasal dari kata Jawa (bahasa Inggris untuk Jawa adalah Java). 2.6.3. Versi Awal Java Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
29 1) java.lang: Peruntukan kelas elemen-elemen dasar. 2) java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas. 3) java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan. 4) java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP. 5) java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI) 6) java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web. 2.6.4. Kelebihan dan Kekurangan Adapun kelebihan serta kekurangan pada Java, berikut merupakan kelebihan dari bahasa pemrograman java. 1) 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 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. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut. 2) OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) 3) 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
30 membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi. 4) Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ 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 Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer. 5) 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). Sedangkan kekurangan dari bahasa pemrograman java ini, antara lain : 1) Tulis sekali, jalankan 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 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/direverseengineer. 3) Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan 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.
31 2.6.5. MySQL MySQL adalah salah satu database server yang cukup populer dan tangguh. Sifatnya yang free (GPL) membuat MySQL cepat berkembang dan digunakan banyak server di Internet. MySQL monitor adalah sebuah tool kecil yang menjadi paket dalam server MySQL yang digunakan untuk administasi database. Tool tersebut berjalan pada mode command line. PhpMyAdmin mempunyai banyak kelebihan yang dapat mempermudah pekerjaan anda, hal ini sangat membantu bila anda mempunyai server MySQL di dalam lokal komputer. Tetapi bagaimana jika anda ikut dalam layanan web hosting, yang jarang sekali memberikan fasilitas MySQL monitor baik yang berbentuk command line maupun yang berbasis web. Apabila hendak memasang phpMyAdmin pada hosting tersebut maka akan mengurangi ruang harddisk yang anda butuhkan untuk halaman homepage. Oleh sebab itu dibutuhkan suatu interface berbasis web yang berukuran kecil yang dapat membantu program anda. MySQL memiliki beberapa keistimewaan, antara lain : 1) Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. 2) Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis. 3) Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. 4) 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
32 5) Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lainlain. 6) Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query). 7) Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi. 8) Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya. 9) Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT). 10) Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya. 11) Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). 12) Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online. 13) Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.
2.7. Metode Pengujian Metode dalam pengujian terdiri dari banyak sekali, akan tetapi penulis kali ini menggunakan metode pengujian Black Box pada tugas akhir ini.
33 Black Box testing merupakan sebuah metode pengujian software yang memeriksa fungsi-fungsi dari aplikasi tanpa melihat bagian internal dari aplikasi yang bersangkutan. Metode ini dapat di aplikasikan pada hamper seluruh level pengujian software.
Gambar 6. Metode Black Box Tesing
Sumber : http://en.wikipedia.org/wiki/Black-box_testing Pengetahuan spesifik mengenai kode aplikasi dan struktur internal aplikasi tidak di perlukan pada prosedur tes pada Black Box tesing ini. Seorang tester harusnya memiliki pengetahuan mengenai apa-apa yang bisa di lakukan pada software tersebut, tetapi seorang tester tidak perlu mengetahui bagaimana cara software itu bekerja. Untuk melakukan sebuah pengetesan aplikasi software maka harus telebih dahulu membuat sebuah test case. Pada sebuah desain test case black box seorang tester harus mendefinisikian valid dan invalid input serta output yang mendefinisikan bahwa software itu menghasilkan hasil yang sesuai dengan yang di maksud pada test case tanpa memperhatikan internal struktur dari aplikasi yang di bangun.