BAB II LANDASAN TEORI 2.1 Plagiarisme Plagiarisme adalah penggunaan ulang dari ide atau karya orang lain tanpa menyantumkan sumber asalnya (Abdi et al, 2015). Sedangkan menurut Sastroasmoro (2007) plagiarisme merupakan tindakan pencurian atau kebohongan intelektual yang dilakukan secara sengaja maupun tidak sengaja dalam pembuatan karya ilmiah. Plagiarisme dianggap tindakan kriminal karena mencuri hak cipta dari karya orang lain. Di Indonesia sendiri hak cipta dilindungi dalam Undang-Undang Republik Indonesia Nomor 19 Tahun 2002 Tentang Hak Cipta. Oleh karena itu tindakan plagiarisme atau plagiat sebisa mungkin harus kita hindari. Jika dilihat dari sisi pembaca plagiarisme tidak hanya merupakan masalah melanggar hak cipta atau kepemilikan, namun juga tindakan membohongi yang menimbulkan kesalahpahaman keaslian dari penulis yang sebenarnya. Plagiarisme biasanya terjadi di dalam dunia pendidikan, khususnya dalam pengerjaan karya tulis ilmiah. Mahasiswa/siswa dituntut untuk menyelesaikan karya ilmiahnya dalam waktu dekat sehingga mereka mencari jalan pintas untuk melakukan copy-paste atas karya ilmiah orang lain. Hal ini merupakan salah satu pemicu utama terjadinya plagiarisme dalam karya ilmiah. Selain hal tersebut rendahnya minat baca dan minat melakukan analisis merupakan faktor lain yang mendorong dilakukannya tindak plagiarisme. Dan juga kurangnya perhatian dari para guru ataupun dosen tentang persoalan plagiarisme menambah semakin maraknya plagiarisme terjadi. Awal plagiarisme biasa terjadi yaitu pada pendidikan tahap dasar. Pada tahap dasar yang biasa terjadi adalah dimana meniru terjadi pada tahap analitis (pemeriksaan), sintetis (penyimpulan), improvisatif (pemanfaatan), kreatif (memiliki daya cipta), hingga tahap inovatif (menghasilkan ide). 7 http://digilib.mercubuana.ac.id/ 8 Sistem pendeteksian plagiarisme dapat diaplikasikan untuk jurnal, artikel, novel, essay, maupun bahasa pemrograman (Kurniawati & Wicaksana, 2008). Menurut Telepovska dan Gajdos (2010) aplikasi pendeteksian tersebut dapat mengunakan sistem lokal (terisolasi secara offline dan hanya menggunakan database individu) ataupun menggunakan sistem global (berjalan secara online dan menggunakan servis internet sehingga dokumen yang dicari lebih beragam). 2.1.1 Bentuk Plagiarisme Bentuk plagiarisme yang biasa terjadi menurut Clough (2003) yaitu : 1. Plagiarisme kata per kata, merupakan penyalinan kalimat secara langsung dari sebuah dokumen teks tanpa adanya pengutipan atau perizinan. 2. Plagiarisme parafrase, merupakan penulisan ulang dengan mengubah kata atau sintaksis, tetapi teks aslinya masih dapat dikenali. 3. Plagiarisme sumber sekunder, merupakan perbuatan mengutip kepada sumber asli yang didapat dari sumber sekunder dengan menghiraukan teks asli dari sumber yang sebenarnya. 4. Plagiarisme struktur sumber, merupakan penyalinan/penjiplakan struktur suatu argumen dari sebuah sumber. 5. Plagiarisme ide, merupakan penggunaan ulang suatu gagasan/pemikiran asli dari sebuah sumber teks tanpa bergantung bentuk teks sumber. 6. Plagiarisme authorship, merupakan pembubuhan nama sendiri secara langsung pada hasil karya orang lain. Bila dilihat dari berbagai macam bentuk-bentuk plagiarisme diatas, dapat disimpulkan bahwa tindakan plagiarisme yang sering terjadi dalam dunia pendidikan lebih cenderung kepada kegiatan menggunakan kembali suatu dokumen teks berupa kata/kalimat dari suatu sumber yang tidak mengikuti kaidah tata aturan hak cipta, seperti aturan pengutipan (citation) ataupun ketidakjelasan sumber/pengarang asli (bibliography). http://digilib.mercubuana.ac.id/ 9 2.1.2 Kriteria Plagiarisme Terdapat kriteria-kriteria tertentu yang digunakan untuk menentukan apakah sebuah penggunaan informasi termasuk dalam tindak plagiarisme atau tidak. Hal-hal yang dapat digolongkan sebagai plagiarisme adalah sebagai berikut: 1. Mengakui gagasan/ide orang lain sebagai gagasan/ide sendiri. 2. Mengakui penemuan orang lain sebagai penemuan sendiri. 3. Mengakui karya tulis orang lain sebagai karya tulis sendiri. 4. Meringkas atau mengutip karya orang lain tanpa menyebutkan sumbernya. 5. Mengakui karya kelompok sebagai kepunyaan atau hasil sendiri, menyajikan tulisan yang sama dalam rangka yang berbeda tanpa menyebutkan darimana asalnya. 6. Auto plagiarisme, yakni seseorang yang memuat karyanya sendiri yang sama persis di dua atau lebih media. Sedangkan yang bukan termasuk tindak plagiarisme adalah: 1. Menggunakan informasi yang merupakan fakta atau hal yang umum digunakan. 2. Mengutip karya orang lain (dengan merubah kalimat atau parafrase) dengan menyebutkan sumbernya. 3. Menuliskan kembali gagasan orang lain dengan menyebutkan sumbernya. 2.1.3 Threshold Plagiarisme Threshold plagiarisme merupakan nilai ambang batas untuk menentukan apakah dokumen tersebut termasuk kedalam tindak plagiarisme atau tidak. Menurut Sastroasmoro (2007) mengemukakan bahwa terdapat 3 klasifikasi dalam threshold plagiarisme, yakni : Plagiarisme ringan : < 30% Plagiarisme sedang : 30% - 70% Plagiarisme berat : > 70% http://digilib.mercubuana.ac.id/ 10 Namun angka-angka tersebut tentu dibuat secara arbitrer berdasarkan “kepantasan” tanpa dasar kuantitatif yang definitif. 2.2 Dokumen Digital Dokumen merupakan suatu sarana transformasi informasi dari satu orang ke orang lain atau dari suatu kelompok ke kelompok lain. Dokumen meliputi berbagai kegiatan yang diawali dengan bagaimana suatu dokumen dibuat, dikendalikan, diproduksi, disimpan, didistribusikan, dan digandakan. Dokumen sangat penting, baik dalam kehidupan sehari-hari, organisasi, maupun bisnis. (Kristanto, 2003). Dokumen digital merupakan setiap informasi elektronik yang dibuat, diteruskan, dikirimkan, diterima, atau disimpan dalam bentuk analog, digital, elektromagnetik, optikal, atau sejenisnya, yang dapat dilihat, ditampilkan dan/atau didengar melalui komputer atau sistem elektronik, termasuk tetapi tidak terbatas pada tulisan, suara atau gambar, peta, rancangan, foto atau sejenisnya, huruf, tanda, angka, kode akses, simbol atau perforasi yang memiliki makna atau arti atau dapat dipahami oleh orang yang mampu memahaminya. (Hariyanto, 2009). Dokumen digital dapat dihasilkan dengan menggunakan aplikasi pengolah kata (word processor) seperti Microsoft Word, Notepad atau OpenOffice untuk menghasilkan sebuah berkas komputer dengan ekstension yang berbeda-beda sesuai dengan aplikasi pengolah kata yang digunakan. 2.2.1 Pengolahan Dokumen Digital Untuk mengolah suatu dokumen digital, dibutuhkan perangkat lunak (software) khusus yang sering disebut dengan perangkat lunak pengolah kata (Word Processor). Perangkat lunak pengolah kata adalah suatu aplikasi komputer yang digunakan untuk menyusun, menyunting, memformat dan mencetak segala jenis bahan yang dapat dicetak. Adapun contoh dari perangkat lunak pengolah kata yang sering digunakan adalah Microsoft Word, OpenOffice.org Writer, Notepad. http://digilib.mercubuana.ac.id/ 11 Microsoft Word 1. Microsoft Word atau sering disebut dengan Microsoft Office Word adalah perangkat lunak pengolah kata (word processor) yang diproduksi oleh Microsoft. Perangkat lunak ini pertama diterbitkan pada tahun 1983 dengan nama Multi-Tool Word untuk Xenix. Seiring dengan perkembangan zaman, versi-versi lain kemudian dikembangkan untuk berbagai sistem operasi, misalnya DOS (1983), Apple Macintosh (1984), SCO UNIX, OS/2, dan Microsoft Windows (1989). Perangkat lunak ini kemudian berubah nama menjadi Microsoft Office Word setelah menjadi bagian dari Microsoft Office System 2003 dan 2007. Konsep yang digunakan oleh Microsoft Office Word adalah WYSIWYG (What You See Is What You Get). WYSIWYG merupakan sebuah konsep sistem dimana konten yang sedang disunting akan terlihat sama persis dengan hasil keluaran akhir, yang mungkin berupa dokumen yang dicetak, halaman web, slide presentasi, atau bahkan sebuah animasi bergerak. Microsoft Office Word merupakan perangkat lunak pengolah kata pertama yang mampu menampilkan tulisan cetak miring atau cetak tebal pada IBM PC sementara perangkat lunak pengolah kata lain hanya menampilkan teks dengan kode markup dan warna untuk menandai pemformatan cetak tebal atau miring. 2. OpenOffice.org Writer OpenOffice.org Writer adalah salah satu komponen dalam OpenOffice.org yang berfungsi untuk mengedit dokumen adapun dokumen format yang bisa digunakan adalah .doc .odt .rtf dan dapat dikonversi dalam bentuk .pdf dengan sekali klik. OpenOffice.org Writer memiliki fitur pengolah kata modern seperti AutoCorrect, AutoComplete, AutoFormat, Styles and Formatting, Text Frames, Linking, Tables of Contents, Indexing, Bibliographical References, Illustrations dan Tables. Perangkat lunak ini sangat mudah digunakan untuk membuat memo cepat, sangat stabil dan mampu untuk membuat dokumen dengan banyak halaman serta banyak gambar dan judul heading. Selain itu, http://digilib.mercubuana.ac.id/ 12 kelebihannya adalah pengaturan formating untuk bullet and number yang sangat mudah (diatur terintegrasi melalui satu toolbar). 3. Notepad Notepad adalah sebuah aplikasi text editor pada Microsoft Windows yang bisa digunakan oleh pengguna untuk membuat sebuah dokumen. Notepad sudah ada sejak Windows 1.0 pada tahun 1985 sampai pada sekarang ini yaitu Windows 10 dengan fungsi yang masih tetap sama. Notepad hanya bisa membuat dokumen yang berisi teks saja. Biasanya dokumen yang disimpan dari notepad ini berjenis ekstensi .txt. Notepad tidak memiliki fungsi tags dan styles seperti aplikasi pengolah kata lainnya karena fungsi notepad sebenarnya adalah untuk membuat kode program yang akan dijalankan pada system DOS pada Microsoft Windows dan nantinya kode program tadi akan di-compile melalui Command Prompt. Namun sekarang ini notepad sudah banyak digunakan tidak hanya untuk menulis kode program saja, melainkan banyak yang menggunakan untuk membuat catatan dalam sehari-hari dan bahkan notepad bisa digunakan bagi kalangan yang tidak bertanggung jawab untuk membuat virus. 2.2.2 Format Dokumen Digital Dokumen digital memiliki beberapa jenis ekstensi sesuai dengan aplikasi pengolah dokumen tersebut. Ada beberapa yang sering kita jumpai yaitu .docx, .doc dan .txt 1. DOCX Office Open XML (OOXML) atau yang lebih dikenal dengan DOCX merupakan format file standar untuk dokumen-dokumen yang dibuat oleh Microsoft Word. Format tersebut mulai digunakan pada Microsoft Word 2007 hingga Microsoft Word terbaru yakni Microsoft http://digilib.mercubuana.ac.id/ 13 Word 2016. Format ini menggantikan format yang sebelumnya digunakan yaitu DOC. Versi pertama dari format ini (bersama dengan Office Open XML dokumen jenis lain PPTX dan XLSX) telah berstandar ECMA-376 pada tahun 2006. Versi kedua diluncurkan dan telah berstandar ISO/IEC pada April 2008. Gambar 2.1 Contoh file DOCX 2. DOC Ekstensi doc permata kali muncul pada dokumen yang digunakan oleh pengolah kata WordPerfect yaitu pada tahun 1980. DOC merupakan singkatan dari dokumen, adalah sebuah ekstensi file yang digunakan pada dokumen pengolah kata biasanya digunakan pada Microsoft Word. Pada tahun 1990-an Microsoft memilih menggunakan ekstensi *.doc pada pengolah kata Microsoft Word. File dengan ekstensi DOC bervariasi, pada Microsoft 97 sampai dengan 2003 masih menggunakan file dengan berekstensi *.doc. Dan mulai dari Microsoft Word 2007 hingga seterusnya berubah menjadi ekstensi DOCX. http://digilib.mercubuana.ac.id/ 14 File ekstensi *.doc merupakan ekstensi asli yang dihasilkan dari Microsoft Word tetapi file ekstensi ini tidak hanya dapat dibaca dan diedit dengan menggunakan pengolah kata Microsoft Word saja, tetapi pengolah kata lainnya juga dapat membaca dan membuatnya seperti, OpenOffice.org Writer, Google Docs, Apple Pages, dan AbiWord. Gambar 2.2 Contoh file DOC 3. TXT Berkas ASCII atau teks biasa (bahasa Inggris: „plain text’) dalam istilah komputer, adalah suatu jenis berkas komputer yang berupa teks tidak terformat. Lawan dari jenis berkas ini adalah teks berformat. Jenis berkas ini biasanya disunting dengan menggunakan editor teks. Berkas ini biasanya hanya mengandung teks-teks yang diformat dengan menggunakan pengkodean ASCII. Berkas ini hanya terdiri atas karakter, angka, tanda baca, tabulasi, dan karakter pemisah baris (carriage return). Dalam berkas ASCII, tidak ada pemformatan yang ekstensif seperti dalam dokumen Microsoft Word atau Rich Text Format, melainkan pemformatan yang digunakan hanyalah pemformatan standar yakni ASCII. Dalam sistem operasi Windows, berkas ASCII ini dapat dibuat dengan menggunakan program Notepad atau editor teks lainnya. http://digilib.mercubuana.ac.id/ 15 Jenis ekstensi yang digunakannya adalah .txt (default), .bat, .cmd, .ini, .inf, dan masih banyak lainnya. Sistem operasi lainnya juga mengimplementasikannya, tapi beberapa sistem operasi (utamanya adalah keluarga UNIX) tidak mengharuskan adanya ekstensi berkas seperti pada Windows. Normalnya, sebagian besar berkas dalam sistem operasi UNIX merupakan berkas ASCII, kecuali berkas yang dapat dieksekusi (program). Berkas ASCII umumnya digunakan sebagai berkas teks biasa, skrip, kode sumber sebuah program (source code sebuah bahasa pemrograman), berkas konfigurasi (terutama dalam keluarga sistem operasi UNIX), atau berkas teks lainnya. Bahkan, banyak juga orang yang membuat gambar dengan menggunakan berkas ASCII, yang sering disebut sebagai ASCII Art. Karena berkas ASCII mengandung teks yang tidak diformat, berkas tersebut dapat dipahami banyak sistem operasi, karena memang ASCII adalah sebuah standar internasional (Windows, Macintosh, dan UNIX mendukung sepenuhnya standar ini). Akibatnya, berkas tersebut dapat menjadi sangat berguna dalam rangka berbagi informasi antar platform atau aplikasi. Gambar 2.3 Contoh file TXT http://digilib.mercubuana.ac.id/ 16 2.3 Approximate String Matching Approximate String Matching merupakan metode operasi pencocokan string dengan dasar kemiripan berdasarkan pada segi penulisannya (jumlah karakter dan susunan karakter), tingkat kemiripan ditentukan oleh jauh tidaknya jarak beda penulisan dua buah string yang dibandingkan tersebut. Metode ini terdiri dari beberapa operasi yakni operasi penghapusan dalam string, operasi penyisipan dalam string, dan operasi penukaran dalam string. Operasi – operasi ini digunakan untuk menghitung jumlah perbedaan yang diperlukan untuk pertimbangan kecocokan suatu string dengan string sumber, jumlah perbedaan tersebut diperoleh dari penjumlahan semua pengubahan yang terjadi dari masing-masing operasi. Metode ini biasanya diaplikasikan dalam berbagai algoritma, seperti Hamming, Levenshtein, Damerau-Levenshtein, Jaro-Winkler, Wagner-Fischer, dan lain-lain. 2.3.1 Operasi Penghapusan Operasi penghapusan dilakukan dengan menghapus karakter pada indeks tertentu untuk menyamakan string sumber (S) dengan string target (T), misalnya S = networking dan T = network. Penghapusan dilakukan untuk karakter I pada lokasi ke-8, penghapusan karakter n pada lokasi ke-9, penghapusan karakter g pada lokasi ke-10. Operasi penghapusan tersebut menunjukkan transformasi S ke T, ilustrasinya sebagai berikut : 2.3.2 1 2 3 4 5 6 7 8 9 10 T = n e t w o r k - - - S = n e t w o r k i n g Operasi Penyisipan Operasi penyisipan dilakukan dengan menyisipkan karakter pada indeks tertentu untuk menyamakan string sumber (S) dengan string target (T), misalnya http://digilib.mercubuana.ac.id/ 17 S = program dan T = pemrograman. Operasi penyisipan dapat dilakukan dengan menyisipkan e pada posisi 2, menyisipkan m pada posisi 3, menyisipkan a pada posisi 10 dan menyisipkan n pada posisi 11. Yang dapat diilustrasikan sebagai berikut : 1 2 3 4 5 6 7 8 9 10 11 T = p e m r o g r a m a n S = p - - r o g r a m - - e m a n 2.3.3 Operasi Penukaran Operasi penukaran dilakukan dengan menukar karakter pada indeks tertentu untuk menyamakan string sumber (S) dengan string target (T), misalnya S = komputer dan T = computer. String S ditransformasikan menjadi T dengan melakukan penggantian (substitusi) pada posisi ke-1. Huruf c ditukar menjadi k. Prosesnya dapat diilustrasikan sebagai berikut : 1 2 3 4 5 6 7 8 S = k o m p u t e r T = c o m p u t e r k 2.4 Algoritma Levenshtein Distance Algoritma Levenshtein Distance pertama kali ditemukan oleh seorang ilmuwan yang bernama Vladimir Levenshtein pada tahun 1966. Algoritma ini digunakan untuk menbandingkan kesamaan diantara dua buah string dengan menghitung Distance diantara dua buah string tersebut ( Lhoussain et al, 2015). http://digilib.mercubuana.ac.id/ 18 Distance sendiri adalah jumlah operasi yang digunakan untuk mengubah suatu bentuk string ke bentuk string yang lain. Sebagai contohnya terdapat string “komputer” dan “computer” keduanya memiliki distance 1 karena hanya perlu dilakukan satu operasi saja untuk mengubah string satu ke string yang lain yakni dengan melakukan satu penukaran karakter „c‟ menjadi „k‟. Algoritma Levenshtein Distance digunakan diberbagai macam bidang seperti mesin pencari (search engine), pengecek ejaan (spell checking), pengenal pembicaraan (speech recognition), pengucapan dialek, pendeteksi pemalsuan, dan lain-lain. Terdapat tiga operasi yang digunakan dalam algoritma ini meliputi operasi penghapusan, penyisipan, dan penukaran. Selisih perbedaan antar string dapat diperoleh dengan memeriksa apakah suatu string sumber sesuai dengan string target. Nilai selisih perbedaan ini sering disebut juga sebagai Edit Distance. Jarak Levenshtein antar string s dan string t tersebut adalah fungsi D yang memetakan (s,t) ke suatu bilangan real nonnegative. Sebagai contoh diberikan dua buah string s = s(1),s(2),s(3),…s(m) dan t = t(1),t(2),t(3),…t(n) dengan | s | = m dan | t | = n sepanjang alphabet V berukuran r sehingga s dan t anggota dari V*. S(j) adalah karakter pada posisi ke-j pada string s dan t(i) adalah karakter pada posisi ke-i pada string t. Sehingga Edit Distance atau jarak Levenshtein dapat didefinisikan sebagai (Harahap, 2013) : ( ) = ( ) dimana ( ) ∑ ( : s1,t1 ( ) ( ) ) ( ) ( ) V untuk i = 1,2,…,x d(s1,t1) = 0 jika s1 = t1 dan d(s1,t1) = 1 jika s1 ≠ t1 D(s,t) adalah banyaknha operasi minimum dari operasi penghapusan, penyisipan, dan penukaran untuk menyamakan string s dan t. Pada implementasi pencocokan antar string, ketiga operasi tersebut dapat dilakukan sekaligus untuk http://digilib.mercubuana.ac.id/ 19 menyamakan string sumber dengan string target seperti pada contoh berikut ini. Jika diberikan string sumber (S) = “jarak” dan (T) = “penjara” merupakan string target, dengan | s | = 5, | t | = 7, maka proses pencocokan string dapat diilustrasikan sebagai berikut : 1 2 3 4 5 6 7 8 T = p e n j a r a - S = - - - j a r a k p e n k Pada contoh di atas terlihat bahwa proses penyisipan karakter „p‟ pada indeks ke-1, „e‟ pada indeks ke-2 dan „n‟ pada indeks ke-3, penghapusan karakter „k‟ pada indeks ke-8 . Maka jarak Levenshtein antara s dan t adalah sebagai berikut ini : ( ) ∑ ( ) = d(s1,t1) + d(s2,t2) + d(s3,t3) + d(s4,t4) + d(s5,t5) + d(s6,t6) + d(s7,t7) + d(s8,t8) = d(-,p) + d(-,e) + d(-,n) + d(j,j) + d(a,a) + d(r,r) + d(a,a) + d(k,-) =1+1+1+0+0+0+0+1 =4 Sehingga jarak Levenshtein antara string s = “pemrograman” dan t = “algoritma” adalah D(s,t) = 4. 2.5 Pemrograman Java Pemrograman adalah salah satu ilmu penting bagi mahasiswa komputer yang secara garis besar hal ini merupakan dasar mengubah abstraksi menjadi kenyataan dalam perhitungan logika komputer,menemukan sintaksis, logis, dan penyelesaian pada bugs (Castro et al, 2013). http://digilib.mercubuana.ac.id/ 20 Pemrograman Java sendiri adalah bahasa pemrograman tingkat tinggi yang berorientasi objek dan program java tersusun dari bagian yang disebut kelas. Kelas terdiri atas metode-metode yang melakukan pekerjaan dan mengembalikan informasi setelah melakukan tugasnya. Para pemrogram Java banyak mengambil keuntungan dari kumpulan kelas di pustaka kelas Java yang disebut dengan Java Application Programming Interface (API). Kelas-kelas ini diorganisasikan menjadi sekelompok yang disebut paket (package). Java API telah menyediakan fungsionalitas yang memadai untuk menciptakan applet dan aplikasi canggih. Jadi ada dua hal yang harus dipelajari dalam Java, yaitu mempelajari bahasa Java dan bagaimana mempergunakan kelas pada Java API. Kelas merupakan satu-satunya cara menyatakan bagian eksekusi program, tidak ada cara lain. Pada Java program javac untuk mengkompilasi file kode sumber Java menjadi kelas-kelas bytecode. File kode sumber mempunyai ekstensi *.java. Kompilator javac menghasilkan file bytecode kelas dengan ekstensi *.class. Interpreter merupakan modul utama sistem Java yang digunakan aplikasi Java dan menjalankan program bytecode Java. Gambar 2.4 Alur pemrograman Java Sumber : Buku Java Education Network Indonesia, 2007 Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem http://digilib.mercubuana.ac.id/ 21 operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk pemrograman di internet sehingga dirancang agar aman dan portabel. 2.5.1 Platform Independent Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman internet dimana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung di eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut (Castro et al, 2013). Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. JDK ini dapat didownload gratis dari situs java.sun.com. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau Java Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE) dapat didownload juga di situs yang sama. Untuk mengembangkan program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE saja. 2.5.2 Library Java Selain kompiler dan interpreter, bahasa Java sendiri memiliki library yang cukup besar yang dapat mempermudah User dalam membuat sebuah aplikasi dengan cepat. Library ini sudah mencakup untuk grafik, desain tampilan, kriptografi, jaringan, suara, basis data, dan lain-lain (Castro et al, 2013). http://digilib.mercubuana.ac.id/ 22 2.5.3 Source Code Source code (atau disebut juga source) adalah kumpulan pernyataan atau deklarasi bahasa pemrogramman komputer yang ditulis dan dapat di baca manusia. Source code memungkinkan programmer untuk berkomunikasi dengan komputer menggunakan beberapa perintah yang telah terdefinisi (Castro et al, 2013). Source Code merupakan sebuah program yang biasanya dibuat dalam satu atau lebih file teks, kadang-kadang disimpan dalam database yang disimpan sebagai prosedur dan dapat juga muncul sebagai potongan kode yang tercetak di buku atau media lainnya. Perlu diingat bahwa bahasa Java bersifat case sensitive, sehingga User harus memperhatikan penggunaan huruf besar dan kecil. Selain itu penulisan source code program tidak harus memperhatikan bentuk tertentu, sehingga User bisa saja menuliskan semua baris source code tersebut dalam satu baris asal User tidak lupa membubuhkan tanda titik koma (;), atau menuliskan tiap kata dalam satu baris tersendiri. 2.6 Netbeans Netbeans adalah salah satu aplikasi IDE yang digunakan programmer untuk menulis, mengompile, mencari kesalahan, dan menyebarkan program. Netbeans ditulis dalam bahasa Java namun dapat juga mendukung bahasa pemrogramman lain. Netbeans Merupakan IDE (Integrated Development Environment) berbasiskan Java dari Sun Microsystems yang berjalan diatas Swing. Swing merupakan sebuah teknologi Java untuk pengembangan aplikasi Desktop yang dapat berjalan di berbagai macam platforms seperti Windows, Linux, Mac OS X dan Solaris. http://digilib.mercubuana.ac.id/ 23 Gambar 2.5 Tampilan antar muka Netbeans 2.7 Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahapan awal yaitu analisa kebutuhan pengguna/user, menentukan spesifikasi dari kebutuhan pengguna, desain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Menurut Pressman (1997) Rekayasa Perangkat Lunak adalah suatu disiplin ilmu yang mengintegrasikan proses/prosedur, metode, dan perangkat tools untuk pembangunan perangkat lunak komputer. Tujuan dari Rekayasa Perangkat Lunak ini adalah : 1. Memperoleh biaya produksi perangkat lunak yang rendah. 2. Menghasilkan pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu. 3. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform. 4. Menghasilkan perangkat lunak yang biaya perawatannya rendah. 2.7.1 Metode Waterfall Waterfall merupakan salah satu metode pengembangan perangat lunak yang banyak digunakan. Menurut Sommerville (2007), waterfall merupakan salah http://digilib.mercubuana.ac.id/ 24 satu model proses perangkat lunak yang mengambil kegiatan proses dasar seperti spesifikasi, pengembangan, validasi dan evolusi dengan mempresentasikannya sebagai fase-fase proses yang berbeda seperti analisis dan definisi persyaratan, perancangan perangkat lunak, implementasi dan pengujian unit, integrasi dan pengujian sistem, operasi dan pemeliharaan. Gambar 2.6 Metode Waterfall Sommerville Sumber : Buku Software Engineering 8th Edition, 2007 Tahapan Metode Waterfall : 1. Requirement Definition Proses mengumpulkan informasi kebutuhan sistem/perangkat lunak melalui konsultasi dengan user system. Proses ini mendefinisikan secara rinci mengenai fungsi-fungsi, batasan dan tujuan dari perangkat lunak sebagai spesifikasi sistem yang akan dibuat. 2. System and Software Design Proses perancangan sistem difokuskan pada empat atribut, yaitu struktur data, arsitektur perangkat lunak, representasi antar muka, dan detail (algoritma) prosedural. Yang dimaksud struktur data adalah representasi dari hubungan logis antara elemen-elemen data individual. http://digilib.mercubuana.ac.id/ 25 3. Implementation and Unit Testing Pada tahap ini, perancangan perangkat lunak direalisasikan sebagai program atau unit program. Kemudian pengujian unit melibatkan verifikasi bahwa setiap unit program telah memenuhi spesifikasinya. 4. Integration and System Testing Unit program/program individual diintegrasikan menjadi sebuah kesatuan sistem dan kemudian dilakukan pengujian. Dengan kata lain, pengujian ini ditujukan untuk menguji keterhubungan dari tiap-tiap fungsi perangkat lunak untuk menjamin bahwa persyaratan sistem telah terpenuhi. Setelah pengujian sistem selesai dilakukan, perangkat lunak dikirim ke pelanggan/user. 5. Operational and Maintenance Tahap ini biasanya memerlukan waktu yang paling lama. Sistem diterapkan (di-install) dan dipakai. Pemeliharaan mencakup koreksi dari beberapa kesalahan yang tidak diketemukan pada tahapan Analisis dan definisi persyaratan Perancangan sistem dan perangkat lunak Implementasi dan pengujian unit Integrasi dan pengujian sistem Operasi dan pemeliharaan 9 sebelumnya, perbaikan atas implementasi unit sistem dan pengembangan pelayanan sistem, sementara persyaratan-persyaratan baru ditambahkan. 2.7.2 Flowchart Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung. Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahasa pemrograman. http://digilib.mercubuana.ac.id/ 26 Menurut Jogiyanto (2005) Bagan alir (flowchart) adalah bagan (chart) yang menunjukan hasil (flow) didalam program atau prosedur sistem secara logika. Bagan alir digunakan terutama untuk alat bantu komunikasi dan untuk dokumentasi. Serta Menurut Ladjamuddin (2006) Flowchart adalah bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelsaian suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma. Tujuan Utama dari penggunaan Flowchart adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhanna, terurai, rapi dan jelas dengan menggunakan simbol-simbol yang standar. Tahap penyelesaian masalah yang disajikan harus jelas, sederhana, efektif dan tepat. Tabel 2.1 Simbol-simbol Flowchart SIMBOL NAMA FUNGSI TERMINATOR Permulaan/akhir program GARIS ALIR (FLOW LINE) Arah aliran program PREPARATION Proses inisialisasi/pemberian harga awal PROSES Proses perhitungan/proses pengolahan data INPUT/OUTPUT DATA Proses input/output data, parameter, informasi PREDEFINED PROCESS (SUB PROGRAM) Permulaan sub program/proses menjalankan sub program DECISION Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya http://digilib.mercubuana.ac.id/ 27 2.7.3 ON PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada satu halaman OFF PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada halaman berbeda Metode Pengujian Pengujian perangkat lunak sangat diperlukan dalam suatu system informasi, dimana dengan melakukan suatu pengujian akan ditemukan kesalahan atau error yang muncul dari system perangkat lunak tersebut. Dengan demikian tentunya seorang programmer akan bisa mengetahui dan apa yang harus dikerjakan selanjutnya. Metode yang banyak digunakan dalam pengujian perangkat lunak yaitu metode White Box Testing dan Black Box Testing. Penjelasan keduanya yaitu sebagai berikut : 1. White Box Testting White Box digunakan untuk mengetahui cara kerja suatu perangkat lunak secara internal yaitu dengan cara masuk kedalam modul untuk meneliti kode-kode program yang ada, dan menganalisis apakah ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses bisnis yang dilakukan, maka baris-baris program, variabel, dan parameter yang terlibat pada unit tersebut akan dicek satu persatu dan diperbaiki, kemudian di-compile ulang. Pengujian dilakukan untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yang telah ditetapkan dengan menggunakan struktur kendali dari prosedur yang dirancang. 2. Black Box Testting Black Box digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yang dirancang. Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan keluaran yang dihasilkan dari data atau kondisi masukan yang diberikan untuk fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan keluaran tersebut. Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi kebutuhan pemakai http://digilib.mercubuana.ac.id/ 28 dapat diukur sekaligus dapat diiketahui kesalahan-kesalahannya. Tidak seperti pengujian white box yang dilakukan pada awal proses pengujian, pengujian black box cenderung diaplikasikan selama tahap akhir pengujian. Karena pengujian black box memperhatikan struktur kontrol, maka perhatian berfokus pada domain informasi (Bangwildan, 2013). http://digilib.mercubuana.ac.id/