9 BAB II LANDASAN TEORI Landasan teori merupakan hal penting dalam membuat tulisan ilmiah, Karena dapat digunakan untuk mengaitkan permasalahan dengan teori-teori yang sudah ada untuk mencapai tujuan yang dimaksud. 2.1 Pengertian Sistem Sistem dapat dideifinisikan dengan pendekatan prosedur dan dengan pendekatan komponen. Dengan pendekatan prosedur, sistem dapat didefinisikan sekumpulan dari prosedur-prosedur yang mempunyai tujuan tertentu. Dengan pendekatan komponen, dapat sistem dapat didefinisikan sebagai sekumpulan kumpulan dari komponen yang saling berhubungan satu dengan yang lainnya membentuk satu kesatuan untuk mencapai tujuan tertentu. Sistem terdiri dari dua bagian, yaitu struktur dan proses. Struktur adalah komponen dari sistem tersebut dan proses adalah prosedur. Kedua pendekatan tersebut hanya mengambil satu aspek dari sistem saja untuk menjelaskan dari sudut pandang aspek tersebut (Jogiyanto,2003). Sistem adalah sekelompok prosedur yang terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan. Menurut McLeod dalam Al-barba bin ladjamudin (2005). Dalam sebuah sistem mempunyai karakteristik yang tidak dapat dipisahkan antara karakteristik dengan karakteristik yang lain. Beberapa karakteristik tersebut antara lain :
10 1. Komponen (Components) Suatu sistem memiliki sejumlah komponen yang saling berinteraksi, dimana setiap komponen akan membentuk satu kesatuan yang saling bekerja sama. Komponen sistem dapat berupa suatu yang merupakan bagian dari setim yang lebih besar. 2. Batas Sistem (Boundary) Merupakan daerah yang membatasi antara suatu sistem dengan sistem yang lain atau lingkungan luar, dengan batasan ini dapat diketahui ruang lingkup sistem. 3. Lingkungan Luar Sistem (Environment) Apapun yang berada di luar batas dari sistem yang mempengaruhi operasi suatu sistem. 4. Penghubung Sistem (Interface) Merupakan media penghubung antara satu subsistem dengan subsistem yang lainnya. Dengan penghubung ini akan mengalir data-data antara subsistem dimana keluaran (output) dari satu subsistem akan menjadi masukan (input) untuk subsistem yang lain, sehingga antara satu subsistem dengan yang lain dapat berintegrasi membentuk satu kesatuan. 5. Masukan (Input) Merupakan energi yang dimasukan ke dalam sistem, dimana masukan ini dapat berupa masukan perawatan ( maintenance input) dan masukan sinyal (signal input). Maintenance input adalah energi yang dimasukan
11 supaya sistem tersebut dapat beroperasi. Signal input adalah energi yang diproses untuk didapatkan keluaran. 6. Keluaran (Output) Merupakan hasil dari energi yang diolah dan diklasifikasikan menjadi keluaran yang berguna dan mampu menjadi masukan baru atau informasi yang dibutuhkan. 7. Pengolah (Process) Merupakan tahap mengubah data masukan menjadi data keluaran yang dioperasikan melalui penghubung sistem sehingga dapat dijadikan sebagai informasi baru. 8. Sasaran Sistem ( Objectives) Merupakan penentu dari tujuan untuk menentukan masukan yang dibutuhkan dan keluaran yang akan dihasilkan sebuah sistem. Dari definisi diatas dapat diambil suatu kesimpulan, bahwa sistem adalah kumpulan dari berbagai elemen yang terkait yang saling mempengaruhi dan bekerjasama untuk mencapai suatu tujuan. Jika didalam sistem terdapat elemen yang tidak mempunyai tujuan dan manfaat, maka elemen tersebut bukan bagian dari sistem. 2.2 QR code ( Quick Respons Code ) 2.2.1 Definisi QR Code adalah image berupa matriks dua dimensi yang memiliki kemampuan untuk menyimpan data di dalamnya. QR Code merupakan evolusi dari kode batang (barcode). Barcode merupakan sebuah simbol penandaan objek
12 nyata yang terbuat dari pola batang-batang berwarna hitam dan putih agar mudah untuk dikenali oleh komputer. Contoh sebuah QR Code dapat dilihat pada gambar. Gambar 2.1 Contoh QR Code QR Code merupakan singkatan dari Quick Response Code, atau dapat diterjemahkan menjadi kode respon cepat. QR Code dikembangkan oleh Denso Corporation, sebuah perusahaan Jepang yang banyak bergerak di bidang otomotif. QR Code ini dipublikasikan pada tahun 1994 dengan tujuan untuk pelacakan kendaraan di bagian manufaktur dengan cepat dan mendapatkan respon dengan cepat pula. Prosedur pembangkitan QR Code dari sebuah teks dapat dijelaskan dengan diagram alir pada gambar.
13 Gambar 2.2 Diagram alir proses pembangkitan QR Code Berikut merupakan penjelasan dari diagram alir pembangkitan QR code : a. Data Analysis Kode QR mengkodekan string teks. QR standar memiliki empat mode untuk encoding teks: numerik, alfanumerik, byte, dan Kanji. Setiap mode mengkodekan teks sebagai string bit (1 dan 0), setiap mode menggunakan metode yang berbeda untuk mengubah teks menjadi bit, dan setiap metode pengkodean dioptimalkan untuk mengkodekan data dengan string. Langkah pertama yang dilakukan adalah analisis data untuk menentukan apakah teks dapat dikodekan dalam numerik, alfanumerik, byte, atau mode Kanji, lalu pilih modul yang paling optimal. b. Data Encodation Bagian data encoding menjelaskan proses ini secara rinci untuk setiap mode encoding. Hasil dari langkah ini adalah string bit yang dibagi menjadi codeword data yang masing-masing 8 bit panjang.
14 c. Error Correcting Coding QR code menggunakan koreksi kesalahan. Ini berarti bahwa setelah membuat string bit data yang mewakili teks, kemudian bit digunakan untuk menghasilkan koreksi kesalahan codeword menggunakan proses yang disebut Reed-Solomon error correction. d. Structure Final Message QR scanner membaca baik codeword data dan codeword koreksi kesalahan. Dengan membandingkan dua codeword, pemindai dapat menentukan apakah pembacaan data dengan benar, dan dapat memperbaiki kesalahan jika tidak membaca data dengan benar. e. Module Placement in Matrix Setelah menghasilkan codeword data dan codeword koreksi kesalahan dan mengatur dalam urutan yang benar, bit akan ditempatkan dalam kode matriks QR. Codewords disusun dalam matriks dengan cara tertentu f. Masking Pola kode matriks QR dapat membuat sulit scanner kode QR untuk membaca kode dengan benar. Untuk itu, kode spesifikasi QR mendefinisikan delapan pola masking, masing-masing mengubah kode QR menurut pola tertentu. Anda harus menentukan pola topeng ini menghasilkan kode QR dengan sifat yang tidak diinginkan paling sedikit. g. Format Version Information Kode QR dengan menambahkan piksel di daerah tertentu dari kode yang dibiarkan kosong di langkah sebelumnya. Versi piksel menyandikan ukuran matriks QR dan hanya digunakan dalam kode QR yang lebih besar.
15 Langkah-langkah untuk untuk membaca QR Code menjadi teks aslinya merupakan kebalikan dari langkah-langkah pada pembangkitan QR Code. Secara umum prosedur pembacaan QR Code dapat dijelaskan dengan diagram alir pada gambar. Gambar 2.3 Diagram alir proses pembacaan QR Code 2.2.2 Dekripsi QR Code Reader QR Code reader akan meminta masukan sebuah file gambar QR Code yang diambil dari sistem operasi komputer. Kemudian perangkat lunak ini akan membaca QR Code tersebut untuk kemudian menampilkan hasilnya kepada user, baik itu berupa teks maupun berupa gambar. Seperti halnya QR Code generator, pada QR Code reader user juga dapat menyimpan dan atau mencetak hasil pembacaan QR Code. Ilustrasi dan diagram kerja perangkat lunak tersebut dapat dilihat pada gambar di bawah ini.
16 Gambar 2.4 Ilustrasi proses kerja QR Code Reader dari data berbentuk image Gambar 2.5 Diagram proses kerja QR Code Reader 2.3 Netbeans 2.3.1 Pengertian Netbeans NetBeans adalah Integrated Development Environment (IDE) berbasiskan Java dari Sun Microsystems yang berjalan di atas swing. Swing sebuah teknologi Java untuk pengembangan aplikasi desktop yang dapat bejalan di berbagai macam platforms seperti Windows, Linux, Mac OS X and Solaris. Suatu IDE adalah lingkup pemrograman yang diintegrasikan kedalam suatu aplikasi perangkat lunak yang menyediakan pembangun Graphic User Interface (GUI), suatu text atau kode editor, suatu compiler atau interpreter dan suatu debugger.
17 Gambar 2.6 Tampilan GUI Netbeans IDE 8.0.2 2.3.2 Fitur-Fitur Netbeans Fitur yang terdapat pada netbeans adalah sebagai berikut : a. Smart code completion Mengusulkan nama variable dari suatu tipe, melengkapi keyword, dan mengusulkan tipe parameter dari method. b. Code generator Dengan menggunakan fitur ini kita dapat men-generate constructor, setter and getter method, dan lain-lain. c. Error stripe Fitur yang menandai baris yang error dengan menghiglight merah. d. Bookmarking Fitur yang digunakan untuk menandai baris yang suatu saat hendak diubah.
18 2.4 XAMPP 2.4.1 Definisi XAMPP XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program. XAMPP merupakan tool yang menyediakan paket perangkat lunak kedalam satu buah paket. Dengan menginstal XAMPP maka tidak perlu lagi melakukan instalasi dan kofigurasi web server apache, PHP, MySQL secara manual. XAMPP akan menginstalasi dan mengkonfigurasikan secara otomatis. (Bunafit Nugroho 2011:23). Gambar 2.7 Tampilan Panel Kontol XAMPP
19 2.5 MySQL 2.5.1 Definisi MySQL MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya. SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi nontransaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun demikian pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus nontransaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus
20 basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus nontransaksional. MySQL memiliki beberapa keistimewaan, antara lain : a. Portabilitas MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. b. Multi-user MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. c. Performance tuning MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. d. Ragam tipe data MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain. e. Perintah dan Fungsi MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
21 f. Keamanan MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi. g. 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. h. Lokalisasi MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya. i. Antar Muka MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). j. Klien dan Peralatan MySQL dilengkapi dengan berbagai peralatan yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
22 k. Struktur tabel MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle. 2.6 Basis Data (Database) Basis data adalah sebuah kumpulan dari file yang saling berkaitan. (Whitten & Bently,2007). Teknologi basis data memiliki kelebihan dalam cara penyimpanan data dengan format yang lebih fleksibel. Hal ini memungkinkan basis data terpisah dari sistem informasi dan aplikasi yang menggunakannya. Database dapat berkembang sesuai perubahan kebutuhan organisasi. Whitten menggambarkan untuk posisi basis data dalam sistem adalah sebagai berikut : Gambar 2.8 Posisi basis data dalam sistem Whitten menjelaskan komponen-komponen penyusun sebuah basis data sebagai berikut :
23 2.6.1 Field Field adalah unit terkecil dari data yang mempunyai arti untuk disimpan kedalam sebuah file atau database. Terdapat empat jenis field yang dapat tersimpan. - Primary Key Primary key adalah sebuah field atau kelompok field yang bersifat unik sebagai identitas dari sebuah record. - Secondary Key Secondary key adalah sebuah field yang menjadi identitas dari sebuah record atau sebuah bagian dari record yang berkaitan. - Foreign Key Foreign key adalah sebuah field yang mengacu kepada record yang terdapat pada file berbeda dalam sebuah database. - Descriptve Key Descriptive key adalah field lain yang tidak menjadi key. 2.6.2 Record Record adalah sebuah sekumpulan dari field-field yang tersusun dan terikat berdsarkan format tertentu yang sudah ditentukan sebelumya. 2.6.3 Files and Tables File dalam konteks database adalah himpunan semua kejadian yang terjadi pada struktur record. Tables adalah database yang mempunyai relasi setara dengan sebuah file.
24 2.7 Perangkat Pemodelan Sistem 2.7.1 UML (Unified Modeling Language) Menurut Shelly dan Rosenblatt ( 2012, p250 ), unified modeling language (UML) adalah metode yang banyak digunakan untuk memvisualisasikan dan mendokumentasikan perangkat lunak dalam mendesain sistem. Menurut Graham dan Wills ( 2012, p254 ), UML a Tutorial Journal of Computer Science 6 (3): 253-260, unified modeling language (UML) adalah sebuah dasar dari object oriented method yang berlaku untuk komponen berbasis pembangunan. Jadi kesimpulan dari pengertian unified modeling language (UML) adalah metode yang banyak yang digunakan untuk memvisualisasikan dan mendokumentasikan perangkat lunak dalam melakukan pendesainan sistem dan juga merupakan dasar dari object oriented method. 2.7.1.1 Use case Diagram Menurut Booch (2005), suatu use case diagram menampilkan sekumpulan use case dan aktor (pelaku) dan hubungan diantara use case dan aktor tersebut. Use case diagram digunakan untuk penggambaran use case statik dari suatu sistem. Use case diagram penting dalam mengatur dan memodelkan kelakuan dari suatu sistem. Use case menjelaskan apa yang dilakukan sistem (atau subsistem) tetapi tidak tidak menspesifikasikan cara kerjanya. Flow of event digunakan untuk menspesifikasikan kelakuan dari use case. Flow of event menjelaskan use case dalam bentuk tulisan dengan sejelas-jelasnya, diantaranya bagaimana, kapan use
25 case dimulai dan berakhir, ketika use case berinteraksi dengan aktor, obyek apa yang digunakan, alur dasar dan alur alternatif. Gambar 2.9 Notasi Use Case Diagram (Simonn Bennet, Steve Marcob dan Ray Farmer :2006, p146) tabel berikut : Notasi notasi yang terdapat pada use case adalah seperti yang ada pada Tabel 2.1 Simbol simbol Use Case NO GAMBAR NAMA KETERANGAN 1 Actor 2 Relationship 3 Association 4 Use Case Menspesifikasikan himpuan peran yang pengguna mainkan ketika berinteraksi dengan use case. Menspesifikasikan bahwa use case target memperluas perilaku dari use case sumber pada suatu titik yang diberikan. Apa yang menghubungkan antara objek satu dengan objek lainnya. Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu actor
26 2.7.1.2 Activity Diagram Menurut Shelly dan Rosenblatt ( 2012, p266 ), Activity Diagram menyerupai flowchart horisontal yang menunjukkan tindakan dan peristiwa pada saat terjadi. Menurut Bhattacharjee dan Shyamasundar ( 2009, p190 ), Activity Diagrams : A Formal Framework to Model Business Processes and Code Generation Journal of Object Technology vol. 8, no. 1, January-February 2009, pp. 189-220, Activity Diagram adalah sebuah urutan model dari tindakan untuk merekam sebuah alur proses dan hasil dari tindakan tersebut. Jadi kesimpulan dari pengertian activity diagram adalah sebuah model yang menyerupai flowchart horizontal yang menunjukan urutan tindakan yang merekam sebuah alur proses dan hasil dari tindakan tersebut. Tabel berikut adalah simbol activity diagram yang sering digunakan : Tabel 2.2 Simbol simbol Activity Diagram NO GAMBAR NAMA KETERANGAN 1 Activity Memperlihatkan bagaimana masingmasing kelas antarmuka saling berinteraksi satu sama lain 2 Action 3 Initial Node 4 Actifity Final Node 5 Fork Node State dari sistem yang mencerminkan eksekusi dari suatu aksi Bagaimana objek dibentuk atau diawali. Bagaimana objek dibentuk dan dihancurkan Satu aliran yang pada tahap tertentu berubah menjadi beberapa aliran
27 2.7.1.3 Class Diagram Class diagram membantu dalam visualisasi struktur kelas kelas dari suatu sistem dan merupakan tipe diagram yang paling banyak. Class diagram memperlihatkan hubungan antar kelas dan penjelasan detail tiap tiap kelas di dalam model desain (dalam logical view) dari suatu sistem. Selama proses analisi, class diagram memperlihatkan aturan aturan dan tanggung jawab entitas yang menentukan perilaku sistem. Tabel berikut adalah simbol class diagram yang sering digunakan : Tabel 2.3 Simbol simbol Class Diagram NO GAMBAR NAMA KETERANGAN Hubungan dimana objek anak 1 Generalization (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor). 2 Upaya untuk menghindari asosiasi Nary dengan lebih dari 2 objek. Association 3 Class Himpunan dari objek-objek yang berbagi atribut serta operasi yang sama. 4 Collaboration 5 Realization 6 Dependency 7 Association Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor Operasi yang benar-benar dilakukan oleh suatu objek. Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempegaruhi elemen yang bergantung padanya elemen yang tidak mandiri Apa yang menghubungkan antara objek satu dengan objek lainnya
28 2.7.1.4 Sequence Diagram Sequence diagram menjelaskan interaksi objek yang disusun dalam suatu urutan waktu. Diagram ini secara khusus berasosiasi dengan use case. Sequence diagram memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu di dalam use case. Diagram sequen sebaiknya digunakan diawal tahap desain atau analisis karena kesederhanaannya dan mudah untuk dimengerti. Tabel berikut adalah simbol sequence diagram yang sering digunakan : Tabel 2.4 Simbol simbol Sequence Diagram NO GAMBAR NAMA KETERANGAN Objek entity, antarmuka yang saling 1 LifeLine berinteraksi. 2 Message Spesifikasi dari komunikasi antar objek yang memuat informasi-informasi tentang aktifitas yang terjadi 3 Message Spesifikasi dari komunikasi antar objek yang memuat informasi-informasi tentang aktifitas yang terjadi