7 2.1. Konsep Dasar Program
Untuk mambuat perancangan sebuah program pemesanan dalam tugas akhir ini, terdapat beberapa konsep dasar program berisi tentang teori-teori definisi program bahasa pemograman serta jenis-jenis bahasa pemograman, dalam konsep dasar program ini juga berisi teori-teori tentang software yang penulis pakai dalam pembuatan program jasa diantaranya defenisi dari Java Development Kit (JDK) 1.6 yang harus diketahui, yaitu:
2.1.1. Program
Menurut Harumy (2016:4), “ Program adalah formulasi sebuah algoritma dalam bentuk pemrograman, sehingga siap untuk dijalankan pada mesin komputer”.
Sedangkan Program menurut Kadir (2015:15), “adalah kumpulan instruksi yang ditujukan untuk tujuan tertentu yg diharapkan oleh pemakai. Suatu Program disusun oleh pemrogram dengan menggunakan suatu bahasa pemrograman, C++, Pascal, dan Java”.
2.1.2. Bahasa Pemrograman
“Bahasa Pemrograman menurut Harumy (2016:4), adalah bahasa buatan yang digunakan untuk mengendalikan perilaku dari sebuah mesin, komputer, sehingga dapat digunakan untuk memberitahu komputer tentang apa yang harus dilakukan”.
Di dalam bahasa pemograman ini penulis menggunakan Java Development Kit (JDK) 1.6 untuk pembuatan program.
1. Java Development Kit (JDK) 1.6
“Java menurut (Kadir, 2015:15), merupakan bahasa yang bersifat multiplatform, bahasa ini dapat digunakan di berbagai platform, dari Windows hingga linux”.
Sedangkan Menurut Bachtiar Mukharil Adam, (2018:1)“Java merupakan salah satu bahasa yang popular saat ini. Salah satu alasan lain mengapa Java merupakan bahasa program yang populer yaitu dikarenakan Java dapat berjalan diberbagai platform sistem operasi”.
Java pun dikenal dengan istilah Write Once, Run Anywhere karena kompabilitasnya tersebut. Menurut Sun yang merupakan pelapor dari Java, Java itu:
a. Simple
Java merupakan bahasa yang simple sehingga mudah dipahami, bermodalkan pengetahuan programming dasar, fundamental dari pemrograman javaakan cepat dipahami.
b. Berorientasi Objek
Java menggunakan konsep pemrograman berorientasi objek sehingga pembuatan aplikasi bisa dilakukan lebih modular.
c. Kuat
Java didesain untuk membuat aplikasi yang memiliki reliabilitasi tinggi. d. Aman
e. Arsitekrut Netral
Aplikasi yang dibuat menggunakan Java merupakan aplikasi yang platform independent.
f. Portabel
Java denga karakteristik arsitektur netralnya membuat Java tidak bergantung pada mesin tertentu atau dengan kata lain Java sangatlah portable.
g. Performa Tinggi
Java sangatlah memperhatikan performa.
h. Multithreaded
Java memungkinkan pembuatan aplikasi yang bisa melakukan bebrapa pekerjaan secara bersamaan.
i. Dinamis
Java lebih dinamis dibandingkan C atau C++ karena didesain untuk dijalankan pada lingkungan yang dinamis.
2.1.3. Basis Data
Menurut Suprapto (2018a:3), “ Database didefinisikan sebagai sekumpulan data yang saling berelasi yang digunakan untuk mendukung aktivitas suatu organisasi”.
Sedangkan Menurut Fathansyah (2015:2), mengemukakan bahwa basis data terdiri atas 2 kata, yaitu basis dan data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul. Sedangan Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan, dan sebagainya yang terekam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasi lainnya”.
Basis data sendiri dapat didefinisasikan dalam sejumlah sudut pandang seperti:
a. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah.
b. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansasi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.
c. Kumpulan file, tabel, arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis.
1. MySQL
Menurut Putratama (2016:96) “MySQL adalah sistem manajemen database SQL yang bersifat Open Source dan paling popular saat ini. Sistem Database MySQL mendukung beberapa fitur seperti multithreaded, multi-user dan SQL database manajemen sistem (DBMS). Database ini dibuat untuk keperluan sistem database yang cepat, andal dan mudah digunakan”.
2. Xampp
Menurut Ali Zaki, Edy Winarno (2014:1)“ XAMPP adalah software web sever yang bisa dipakai untuk mengakomodasi sistem operasi yang Anda pakai (X), Apache (A), MySQL (M), PHP (P) dan Perl (P).”
3. PHP My Admin
Menurut Madcoms (2016:148), “ PhpMyAdmin adalah sebuah aplikasi open source yang berfungsi untuk memudahkan manajemen MySQL. PhpMyAdmin dapat membuat database, membuat table, menginsert, menghapus dan mengupdate data dengan GUI dan terasa lebih mudah, tanpa perlu mengetikkan perintah SQL secara manual. Karena berbasis web, maka PhpMyAdmin dapat
dijalankan dibanyak Operating System, selama dapat menjalankan web server dan MySQL”.
2.1.4. Model Pengembangan Perangkat Lunak
Metode yang digunakan pada pengembangan perangkat lunak ini menggunakan model “waterfall”. Model SDLC air terjun (waterfall) sering juga disebut model sekuensial linier atau alur hidup klasik (classic life cycle). Menurut Sukamto & Shalahuddin (2018a:28), “Model air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analaisi, desain, pengkodean, pengujian dan tahap pendukung (support)”.
Berikut adalah gambar model air terjun:
Sumber: (Sukamto & Shalahuddin 2018:28)
Gambar II.1. Ilustrasi Model Waterfall.
a. Analisa
Kebutuhan Perangkat Lunak Proses pengumpulan kebutuhan dilakukan secara intensif untuk menspesifikasikan kebutuhan perangkat lunak agar dapat
dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu untuk didokumentasikan. b. Desain
Desain perangkat lunak adalah proses multi langkap yang focus pada desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antarmuka, dan prosedur pengodean. Tahap ini mentranslasi kebutuhan perangkat lunak dari tahap analisa kebutuhan ke representasi desain agar dapat diimplementasikan menjadi program pada tahap selanjutnya. Desain perangkat lunak yang dihasilkan pada tahap ini juga perlu didokumentasikan. c. Pembuatan Kode Program
Desain harus ditranslasikan kedalam program perangkat lunak. d. Pengujian
Pengujian fokus pada perangkat lunak dari segi logic dan fungsional serta memastikan bahwa semua bagian sudah di uji.Hal ini dilakukan untuk meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan.
e. Pendukung (support) atau Pemeliharaan (maintenance)
Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan ketika sudah di kirimkan ke user.Perubahan bisa terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat pengujian atau perangkat lunak harus berdaptasi dengan lingkungan baru.
2.2. Tools Program
Dalam Penulisan tugas akhir ini Tools program yang digunakan oleh punulis meliputi Enitty Relationship Diagram (ERD), Logical Record Structure (LRS), Pengkodean, HIPO (Hierarky Input Process Output), Flowchart dan Black-Box Testing. 2.2.1. Entity Relationship Diagram (ERD)
Menurut Sukamto & Shalahuddin (2018:50), “Entitiy Relationship Diagram (ERD) adalah pemodelan awal basis data yang akan dikembangkan berdasarkan teori himpunan dalam bidang matematika untuk pemodelan basis data relasional”.
Sedangkan menurut Fathansyah (2015:81), “ Entity Relationship Diagram (ERD) adalah komponen-komponen himpunan entitas dan himpunan relasi yang masing-masing dilengkapi dengan atribut-atribut yang mempresentasikan seluruh fakta di dunia nyata”.
Menurut Suprapto (2018a:49), “ Entitiy Relationship Diagram (ERD) merupakan salah satu cara umum untuk menyatakan hasil analisis kebutuhan data (requirement
analysis) pada fase awal perancangan database”.
Berikut adalah elemen-elemen pada Entitiy Relationship Diagram (ERD): 1. Entity
Adalah obyek tertentu pada lingkungan bisnis yang sedang kita amati. Pada diagram ERD, entity digambarkan dengan simbol kotak atau
roundedrectangle.
Sumber: (Suprapto 2018:49)
2. Atribut
Setiap entitas dapat dinyatakan karakteristinya dengan satu atau beberapa atribut, banyak atribut tergantung pada tingkat kedetailan deskripsi entitas tersebut.
Sumber: (Suprapto 2018:50)
Gambar II.3. Atribut 3. Relasi
Pada database relasional, setiap entitas terkait dengan entitas lainnya dan kaitan ini disebut denga relationship. Relationship adalah hubungan antar entitas.
Sumber: (Suprapto 2018:52)
Gambar III.4. Relasi 4. Kardinalitas
Kardinalitas adalah atribut relasi yang menyatakan banyaknya anggota satu entitas berhubungan dengan anggota entitas lainnya.
a. One-to-one: satu anggota entitas berhubungan hanya dengan satu anggota entitas lain.
b. One-to-many: satu anggota entitas berhubungan dengan satu atau beberapa anggota entitas lainnya.
c. Many-to-many: entitas dari kedua belah pihak dapat berhubungan dengan banyak entitas dari pihak lainnya.
5. Partisipasi
Partisipasi merupakan constraint kardinalitas yang menyatakan banyaknya instance entitas lainnya. Dikenal 2 macam partisipasi yaitu:
a. Optional: jika satu atau semua instance pada satu entitas boleh tidak berhubungan dengan instance entitas lainnya.
b. Mandatory: jika satu atau semua instance pada satu entitas harus berhubungan dengan instance entitas lainnya.
Sumber: (Suprapto 2018:54)
Gambar.II.5. Partisipasi Mandatory dan Optional 6. Associative Entitiy
Associative entitiy adalah pendekatan lain untuk relisasi model ERD pada database relasional.
Sumber: (Suprapto 2018:57)
2.2.2. Logical Record Structured (LRS)
Menurut Friyade dalam Taufiq & Ermawati (Taufiq dan Ermawati, 2017) “Sebelum tabel dibentuk dari field atau atribut entitas secara fisik atau level internal, maka harus dibuatkan suatu bentuk relational model yang dibuat secara logic atau level external dan konsep, dari pernyataan tersebut dibutuhkan yang disebut dengan Logical Record Structure (LRS)”.
Dalam pembuatan Logical Record Structure (LRS) terdapat tiga hal yang dapat mempengaruhi, yaitu :
1. Jika tingkat hubungan (cardinality) satu pada satu (one-to-one), maka digabungkan dengan entitas yang lebih kuat (strong entity), atau digabungkan dengan entitas yang memiliki atribut yang lebih sedikit.
2. Jika tingkat hubungan (cardinality) satu pada banyak (one-to-many), maka hubungan relasi atau digabungkan dengan entitas yang tingkat hubungannya banyak.
3. Jika tingkat hubungan (cardinality) banyak pada banyak (many-to-many), maka hubungan relasi tidak akan digabungkan dengan entitas manapun, melainkan menjadi sebuah LRS.
2.2.3. Pengkodean
Menurut Jugiyanto (2014:384), Pengkodean adalah suatu susunan angka (digit), huruf dan karakter-karakter khusus yang dapat dirancang dalam bentuk kode. Kode digunakan untuk tujuan mengklasifikasikan data, dimasukkan data kedalam komputer dan untuk mengambil bermacam-macam informasi. Kode dapat berupa angka, huruf, dan karakter khusus. Ada beberapa macam tipe kode antara lain: Bentuk struktur kode beserta
contohnya :
a. Kode Mnemonik (Mnemonic Code) Dibuat dengan tujuan agar mudah diingat. Kode ini dibuat dengan dasar singkatan atau mengambil sebagian karakter dari item yang dipilih.
Contoh: Kode “L” untuk mewakili laki-laki, dan kode “P” untuk perempuan akan mudah diingat.
b. Kode Urut (Sequential Code) Disebut dengan kode seri (serial code) yang merupakan kode nilai urut antara satu kode dengan kode berikutnya.
Contoh: 001 : Kas 002 : Piutang
c. Kode Blok (Block Code) Mengklasifikasikan sistem kedalam kelompok blok tertentu yang mencerminkan satu klasifikasi tertentu atas dasar pemakaian maksimum yang diharapkan.
Contoh:
Kelompok Nomor Kode Harta 100-199
Utang 200-299 Modal 300-399 Pendapatan 400-499 Beban 500-599
d. Kode Grup (Group Code) Kode grup merupakan kode berdasarkan field-field dan tiap-tiap kode mempunyai arti. Kalau anda mengamati buku-buku teks, maka
akan terlihat suatu kode yang disebut dengan ISBN (International Standard Book Number) yang terdiri dari 10 digit terbagi dalam 4 field. ISBN merupakan kode grup yang masing-masing field mempunyai arti tertentu.
Contoh:
9971-5-0210-1 9971 : ISBN untuk wilayah Singapura 5 : Penerbit Dunia Ilmiah
0210 : Kode Buku 1 : No. Identifikasi
e. Kode Desimal (Decimal Code) Mengklasifikasikan kode atas dasar 10 unit angka desimal yang dimulai dari angka 0 sampai dengan angka 9, atau dari angka 100 sampai dengan angka 99 tergantung dari banyaknya kelompok.
Contoh:
00 : Aktiva Lancar 00 100 : Kas
Berikut beberapa petunjuk pembuatan struktur kode yang baik, antara lain: a. Harus mudah diingat
Agar kode mudah diingat, maka dapat dilakukan dengan cara menghubungkan kode tersebut dalam objek yang mewakili dengan kodenya.
b. Harus unik
Kode harus unik untuk masing-masing item yang diwakilinya. Unik berarti tidak ada kode yang kembar.
c. Harus Fleksibel
Kode harus fleksibel sehingga memungkinkan perubahan-perubahan atau penambahan item baru dapat diwakili oleh kode.
d. Harus efisien
Kode harus sependek mungkin, supaya mudah diingat dan juga akan efisien bila direkam atau disimpan didalam komputer.
e. Harus konsisten
Kode harus konsisten dengan kode yang telah digunakan. f. Harus di standarisasi
Kode harus di standarisasi untuk seluruh tingkatan dan departemen dalam organisasi. Kode yang tidak standard akan mengakibatkan kebingungan, salah pengertian dan cenderung dapat terjadi kesalahan pemakai begitu juga dengan yang menggunakan kode tersebut.
g. Hindari spasi
Spasi didalam kode sebaiknya dihindari, karena dapat menyebabkan kesalahan di dalam penggunaannya.
h. Hindari karakter yang mirip
Karakter-karakter yang hampir serupa bentuk dan bunyi pengucapannya sebaiknya tidak digunakan dalam kode.
2.2.4. HIPO (Hierarky Input Proses Output) 1. HIPO
Menurut Jugiyanto (2014:787), HIPO ( Hierarky Input Proses Output ), merupakan metodologi yang dikembangkan dan didukung oleh IBM. HIPO sebenarnya adalah alat dokumentasi program. Akan tetapi sekarang HIPO juga
banyak digunakan sebagai alat desain dan teknik dokumentasi dalam siklus perkembangan sistem. HIPO berbasis pada fungsi, yaitu tiap-tiap modul didalam sistem digambarkan oleh fungsi utamanya.
Sasaran Hipo menurut Jugiyanto (2014:787) HIPO (Hierarchy plus Input Process Output), “HIPO dapat digunakan sebagai alat pengembangan sistem dan teknik dokumentasi program dan pengguna HIPO ini mempunyai sasaran utama sebagai berikut:
a. Untuk menyediakan suatu struktur guna memahami fungsi-fungsi dari sistem. b. Untuk lebih menekankan fungsi-fungsi yang harus diselesaikan oleh program,
bukannya menunjukkan statemen-statemen program yangdigunakan untuk melaksanakan fungsi tersebut.
c. Untuk menyediakan penjelasan yang jelas dari input yang harus digunakan dan output yang harus dihasilkan oleh masing-masing fungsi pada tiap-tiap tingkatan dari diagram-diagram HIPO.
d. Untuk menyediakan output yang tepat dan sesuai dengan kebutuhan kebutuhan pemakai.
2. Tingkatan diagram HIPO
a. Daftar isi visual
Terdiri dari satu diagram hirarki atau lebih. Diagram ini menggambarkan hubungan dari fungsi-fungsi secara berjenjang visual tabel of contents menggambarkan seluruh program hipo baik rinci maupun ringkasan yang terstruktur. Pada diagram ini nama dan nomor dari program hipo diitentifikasikan. Struktur paket diagram dan hubungan fungsi juga diidentifikasikan dalam bentuk hirarki. Keterangan
masing-masing fungsi diberikan pada bagian penjelasan yang diikutsertakan dalam diagram ini.
b. Diagram peninjauan
yaitu suatu seri diagram fungsional. Masing-masing diagram dihubungkan dengan salah satu fungsi sistem.
c. Rincian diagram
Suatu seri diagram fungsional dan masing-masing diagram dihubungkan dengan sebuah sub-fungsi sistem. Diagram rinci merupakan diagram yang paling rendah dalam diagram yang terdapat dalam paket HIPO. Diagram rinci berisi unsur-unsur paket dasar. Fungsi dari diagram ini adalah menjelaskan fungsi-fungsi khusus, menunjukan item-item output dan input yang khusus dan menunjukan diagram rinci lainnya.
Sumber: Jugiyanto (2014:788)
2.2.5. Diagram Alir Program (Flowchart) 1. Flowchart
Menurut Sukamto (2018:843) “Flowchart adalah sebuah bagan aliran dari sesuatu, dan sesuatu itu dapat juga berupa aliran proses”.
Sedangkan menurut Suprapto (2018b:66), “ Flowchart merupakan model untuk mempresentasikan pengelolahan data informasi dan dokumen yang terjadi pada suatu proses”.
Aturan- Aturan dalam membuat sebuah flowchart adalah sebagai berikut: a. Semua simbol proses (kotak) didalam flowchart harus dihubungan dengan garis yang mengandung panah arah,
b. Simbol flowchart memiliki sebuah aliran masuk di bagian atas dan semua aliran masuk di bagian atas dan semua aliran keluaran berada di bagian bawah kecuali untuk simbol pemilihan (decision)
c. Simbol pemilihan (decision) memiliki dua aliran keluar yang dapat digambarkan di pinggir atau dibawah simbol,
d. Secara umum flowchart digambar mengalir dari atas ke bawah, namun sebuah aliran yang menarik diijinkan untuk digambarkan asalkan tidak melebihi tiga buah simbol,
e. Simbol konektor (connector) digunakan untuk menandakan pecahan dari 1) Dari halaman satu ke halaman lainnya.
2) Dari bagian bawah halaman ke bagian atas dari halaman yang sama 3) Sebuah aliran ke arah atas dengan tidak lebih dari tiga buah simbol.
f. Program bagian dari program rutin (subroutins) dan program yangmenginterupsi memiliki flowchart-nya sendiri,
g. Semua flowchart dimulai dengan simbol terminal atau predefined process (untuk subroutines atau program yang mengintrupsi),
h. Semua flowchart diakhiri dengan sebuah simbol terminal atau sebuah proses prngulangan diluar yang sedang dirancang.
2.2.6. Implementasi dan Pengujian Unit
Menurut Sukamto & Shalahuddin (2018:276), “Black Box Testing (pengujian kotak hitam) yaitu menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji desain dan kode program”. Pengujian dimaksud untuk mengetahui apakah fungsi-fungsi, masukan, dan keluaran dari perangkat lunak sesuai dengan spesifikasi yang dibutuhkan. Pengujian Black Box Testing dilakukan dengan membuat kasus uji yang bersifat mencoba semua fungsi dengan memakai perangkat lunak apakah sesuai dengan spesifikasi yang dibutuhkan. Kasus uji yang dibuat untuk melakukan pengujian kotak hitam harus dibuat dengan kasus benar dan kasus salah.
Sedangkan menurut Rusadi dalam Sintawati & Sari (Sintawati & Sari, 2017) “ Black-box testing adalah metode pengujian perangkat lunak yang tes fungsionalitas dari aplikasi yang bertandatangan dengan struktur internal atau kerja. Menggunakan deskripsi eksternal perangkat lunak, termaksud spesifikasi persyaratan, dan desain untuk menurunkan uji kasus”.