bab ii landasan teori - repository.bsi.ac.id filesedangkan sistem menurut pratama (2014:7) “sistem...
TRANSCRIPT
8
BAB II
LANDASAN TEORI
2.1 Konsep Dasar Program
Pada proses pembuatan sistem penundukung keputusan potensi kecerdasan
linguistik berbasis web menggunakan fuzzy logic, membutuhkan beberapa
substansi ilmu dalam menunjang pengembangannya. Pada sub-bab ini akan
dijelaskan beberapa teori yang menunjang pengembangan sistem.
A. Sistem Komputer
Pengertian sistem dijelaskan oleh Hall (2009:6) “sistem adalah kelompok
dari dua atau lebih komponen atau subsistem yang berfungsi sebagai tujuan yang
sama”.
Sedangkan sistem menurut Pratama (2014:7) “sistem didefenisikan sebagai
sekumpulan prosedur yang saling berkaitan dan saling terhubung untuk
melakukan suatu tugas secara bersama-sama”.
Jadi dapat disimpulkan sistem merupakan beberapa dari komponen sistem
atau bagian sistem yang saling berinteraksi secara padu dan melakukan tugas
secara bersama-sama guna mencapai suatu tujuan tertentu.
Penerapan sistem kedalam komputer dapat memiliki pengertian
sebagaimana yang dijelaskan oleh Sibero (2014:10) “sistem komputer adalah
kumpulan dari beberapa instruksi yang saling mendukung dan berkerja sama
menghasilkan pengolahan yang kompleks”.
9
Pada kenyataannya komputer membutuhkan beberapa bagian untuk
melakukan opreasinya diantaranya perangkat lunak (software) yang dibentuk dari
beberapa kode pemograman, perangkat keras (hardware) yakni komponen
elekronika yang menghasilkan CPU (Central Processing Unit), Input (seperti
keyboard dan lain-lain), dan output (seperti monitor, printer, dan lain-lain), dan
yang terakhir bagian manusia (brainware) yang menggunakan sistem komputer.
Ketiga bagian ini memiliki keterkaitan secara bersamaan dalam mengoperasikan
sistem komputer dalam melakukan pengolahan data sehingga menghasilkan
informasi yang dibutuhkan.
B. Sistem Pendukung Keputusan
Menurut Kurniawan pada http://www.gurupendidikan.com/sistem-
pendukung-keputusan-beserta-komponen-manfaat-dan-tujuannya-lengkap/
menjelaskan “Sistem pendukung keputusan merupakan bagian dari sistem
informasi berbasis komputer (termasuk sistem berbasis pengetahuan (knowledge
management)) yang digunakan untuk mendukung pengambilan keputusan dalam
suatu organisasi atau perusahaan”.
Pemaparan Riadi di http://www.kajianpustaka.com/2013/09/sistem-
pendukung-keputusan-spk.html, menjelaskan “Sistem Pendukung Keputusan
(SPK) atau Decision Support System (DSS) adalah sebuah sistem yang mampu
memberikan kemampuan pemecahan masalah maupun kemampuan
pengkomunikasian untuk masalah dengan kondisi semi terstruktur dan tak
terstruktur”.
10
Sistem pendukung keputusan adalah sistem yang berfungsi untuk
memberikan informasi pengetahuan agar mempermudah manejemen maupun
personal dalam mengambil suatu keputusan. Oleh karena itu sistem pendukung
keputusan sangat berguna sebagai pertimbangan dalam mengambil keputusan.
Namun tidak selamanya sistem pendukung keputusan memiliki akurasi yang tepat
pada hasil penyajian informasinya.
C. Website
Pengertian web menurut Sibero (2014:11) “World Wide Web (W3) atau
yang dikenal juga dengan istilah web adalah suatu sistem yang berkaitan dengan
dokumeng digunakan sebagai media untuk menampilkan teks, gambar,
multimedia dan lainnya pada jaringan internet”.
Ada pun keterangan lain tentang web yang dijelaskan Simarmata (2010:48)
“web adalah sistem dengan informasi yang disajikan dalam bentuk teks, gambar,
suara, dan lain-lain yang tersimpan dalam sebuah server Web Internet yag
disajikan dalam bentuk hiperteks”.
Dari penjelasan beberapa pakar diatas dapat disimpulkan bahwa web adalah
sebuah media untuk menyimpan atau menyajikan informasi baik berupa gambar,
teks, video, audio dan lain sebagainya. Pengaksesan web menggunakan internet
sebagai jaringan aksesnya.
D. Fuzzy Logic
Suyanto (2014:103) “fuzzy logic didefenisikan sebagai suatu jenis logic
yang bernilai ganda dan berhubungan ketidakpastian dan kebenaran parsial”.
11
Dikutip dari Budiharto dan Suhatono (2014:151) “sistem fuzzy logic dapat
mereprensentasikan pengetahuan manusia dalam bentuk matematis dengan
menyerupai cara berpikir manusia”.
Fuzzy logic adalah logika pemograman yang dapat mengontrol sistem yang
kompleks. Kemampuan fuzzy logic dalam proses penalaran secara bahasa dapat
mempermudah perancangan pemograman apabila menggunakan logika
konvensional yang memiliki nilai “ya” atau “tidak”, akan tetapi nilai fuzzy logic
dapat berada antara “ya” atau “tidak” yang menyebabkan fuzzy logic menjadi
logika yang flexible. Selain itu fuzzy logic dalam perancangan sistem akan
mempermudah dikarenakan perangcangan sistem yang menggunakan fuzzy logic
tidak memerlukan persamaan matematika yang rumit. Adapun cara kerja fuzzy
logic dijelaskan pada gambar dibawah ini.
Sumber: Sutojo, dkk (2011:232)
Gambar II.1
Cara Kerja Fuzzy Logic
Keterangan:
a. Basis Pengetahuan: Kumpulan rule fuzzy dalam bentuk pernyataan
IF…THEN.
12
b. Fuzzyfikasi: Proses pengubahan input sistem yang mempunyai nilai tegas
menjadi variable linguistik menggunkan fungsi keanggotaan yang
disimpan dalam basis pengetahuan fuzzy.
c. Mesin Inferensi: Proses untuk mengubah input fuzzy menjadi output fuzzy
dengan cara mengikuti aturan-aturan (IF-THEN Rules) yang telah
ditetapkan dalam basis pengetahuan fuzzy.
d. Defuzzyfikasi: Mengubah output fuzzy yang diperoleh dari mesin
inferensi menjadi nilai tegas menggunakan fungsi keanggotaan yang
sesuai dengan saat dilakukan fuzzyfikasi.
1. Metode Tsukamoto
Ada banyak metode yang berkembang dalam inferensi fuzzy logic, namun
metode Tsukamoto dalam inferensi lebih banyak digunakan karena memiliki
struktur yang sederhana, Sutojo, dkk (2011:235) menjelaskan tahapan inferensi
fuzzy logic dengan metode Tsukamoto sebagai berikut:
a. Fuzzyfikasi
b. Pembentukan basis pengetahuan (rule dalam bentuk IF-THEN)
c. Mesin inferensi untuk mendapatkan nilai a-predikat pada tiap-tiap rule
(a1, a2, a3, ….. an). Kemudian masing-masing nilai a-predikat ini
digunakan untuk menghitung keluaran hasil inferensi (crisp) masing-
masing rule (z1, z2, z3 ….. zn).
d. Defuzzyfikasi menggunakan metode Average dengan persamaan
.
13
2. Fungsi Keanggotaan Fuzzy Logic
Menurut Suyanto (2014:101) “Dalam fuzzy systems, fungsi keanggotaan
memainkan peranan yang sangat penting untuk mempresentasikan masalah dan
menghasilkan keputusan yang akurat”.
Derajat keanggotaan dijelaskan oleh Budiharto dan Suhartono (2014:157)
“fungsi keanggotaan adalah pemetaan sebuah elemen x pada semesta nilai
keanggotaan menggunakan sebuah bentuk fungsi teoritis”.
Penggunakan fungsi keanggotaan pada fuzzy logic direpresentasikan dalam
beberapa bentuk, menurut Sutojo, dkk (2011:214) fungsi keanggotan dapat
digambarkan dalam bentuk kurva diantaranya:
a. Grafik keanggotan Kurva Linear Naik
Kenaikan himpunan fuzzy dimulai dari nilai dimain yang memiliki derajat
keanggotaan 0 bergerak menuju ke nilai domain yang memiliki nilai
derajat keanggotaan yang lebih tinggi. Sehingga digambarkan dalam
grafik sebagai berikut:
Sumber: Sutojo, dkk (2011:214)
Gambar II.2
Grafik Fungsi Keanggotaan Kurva Linear Naik
14
Fungsi Keanggotaan:
[ ] {
b. Grafik Keanggotaan Linear Turun
Grafik keanggotan liner turun yaitu himpunan fuzzy yang dimulai dari
nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri ,
kemudian bergerak menurun ke nilai derajt keanggotaan teredah pada sisi
kanan
Sumber: Sutojo, dkk (2011:215)
Gambar II.3
Grafik Fungsi Keanggotaan Kurva Linear Turun
Fungsi keanggotaan:
[ ] {
15
c. Grafik Keanggotaan Kurva Segitiga
Grafik keanggotaan kurva segitiga merupakan gabungan antara dua (2)
garis linear. Dan digambarkan sebagai berikut.
Sumber: Sutojo, dkk (2011:217)
Gambar II.4
Grafik Fungsi Keanggotaan Segitiga
Fungsi Keanggotaan:
[ ]
{
d. Grafik Keanggotaan Kurva Trapesium
Pada dasarnya grafik keanggotaan yang berbentuk trapesium merupakan
berntuk dasar dari kurva segitiga, namun memiliki beberapa titik yang
nilai keanggotaannya satu (1).
16
Sumber: Sutojo, dkk (2011:218)
Gambar II.5
Grafik Fungsi Keanggotaan Kurva Trapesium
Fungsi Keanggotaan:
[ ]
{
e. Grafik Keanggotaan Kurva Bentuk Bahu
Grafik keanggotaan ini digunakan untuk mengakhiri variable suatu
daerah fuzzy yang nilai derajat keanggotaannya adalah konstans
(biasanya 1).
17
Sumber: Sutojo, dkk (2011:218)
Gambar II.6
Grafik Fungsi Keanggotaan Kurva Bentuk Bahu
Fungsi Keanggotaan:
[ ]
{
3. Himpunan Fuzzy Logic
Menurut Budiharto dan Suhartono (2014:154) “himpunan fuzzy adalah
kumpulan prinsip matematik sebagai penggambaran pengetahuan berdasarkan
derajat keanggotaan dari pada menggunakan derajat rendah dari logika biner
klasik”.
Sedangkan menurut Sutojo, dkk (2011:213) “himpunan fuzzy yaitu suatu
kelompok yang mewakili suatu keadaan tertentu dalam suatu variabel fuzzy”.
18
Jadi disimpulkan himpunan fuzzy merupakan gambaran terhadap variable
dalam fuzzy. Himpunan fuzzy juga mengandung elemen-elemen keanggotan fuzzy.
Dalam himpunan fuzzy terdapat operasi untuk melakukan penalaran atau inferensi
terhadap keanggotaan fuzzy. Menurut Sutojo (2011:227) operasi fuzzy terbagi
dalam beberapa bagian, diantaranya:
1. Operasi Gabungan (Union)
Operasi gabungan (sering disebut operator OR) dari himpunan fuzzy A dan B
dinyatakan sebagai A ᴗ B. Operasi gabungan ini disebut MAX dimana derajat
keanggotaanya pada himpunan fuzzy A dan B yang memiliki nilai terbesar.
Sehingga persamaannya sebagai berikut:
{ }
2. Operasi Irisan (Intersection)
Operasi Irisan (sering disebut operator AND) dari himpunan fuzzy A dan B
dinyatakan sebagai A ᴖ B. Operasi gabungan ini disebut MIN dimana derajat
keanggotaanya pada himpunan fuzzy A dan B yang memiliki nilai terkecil.
Sehingga persamaannya sebagai berikut:
{ }
3. Operasi Komplemen (Complement)
Bila himpunan fuzzy A pada himpunan universal X mempunyai fungsi
keanggotaan µA(X) maka komplemen dari himpunan fuzzy A (sering disebut
NOT) adalah himpunan fuzzy dengan fungsi keanggotaan untuk setiap x
elemen X. Dinyatakan dalam persamaan sebagai berikut:
19
E. Kecerdasan Dalam Lingkup Psikologi
Secara etimologi psikologi didefenisikan oleh Ahmadi dan Juahar (2015:33)
menerangka kata psikologi berasal dari bahasa yunani kuno psyche dan logos,
psyche yang berarti “jiwa, roh, sukma” sedangkan logos berarti “ilmu”, Secara
harfiah psikologi dapat di artikan sebagai “ilmu jiwa”. Dalam perkembangan
dunia psikologi terdapat beberapa filsafat yang dianut yang pertama yaitu
psikologi mentalistik yang mengkaji proses-proses akal manusia dalam mengkaji
dirinya sendiri. Kedua adalah psikologi behavioristik yang mempelajari tentang
prilaku manusia. Dan yang ketiga adalah psikologi kognitivisik yang mengkaji
proses-proses kognitif manusia secara ilmiah, maksud dari kognitif ini adalah akal
manusia bagaimana manusia berpikir dan pikirian didalam akal manusia.
Dari ketiga filasafat tersebut, maka ranah psikologi juga menerangkan
tentang kecerdasan manusia secara kognitif. Sedangkan kecerdasan manusia yang
dijelaskan Haryanto (2011:2) kecerdasan merupakan salah satu anugerah besar
dari Tuhan Maha Esa kepada manusia yang menjadikannya salah satu kelebihan
dibandingkan makhluk lainnya. Oleh karena itu setiap manusia pasti memiliki
kecerdasan. Namun kecerdasan manusia tidaklah sama dengan manusia yang
lainnya. Oleh karena itu munculah teori yang digagas oleh Howard Garden yang
menyatakan kecerdasan majemuk atau Multiple Intellegence yang berisikan
delapan jenis kecerdasan intelligence diantaranya, kecerdasan linguistik,
kecerdasan logis matematis, kecerdasan visual spasial, kecerdasan interpersonal,
kecerdasan intrapersonal, kecerdasan naturalis, kecerdasan jasmani kinetik dan
kecerdasan naturalis.
20
F. Kecerdasan Linguitik
Penuturan Ahmadi dan Jauhar (2015:34) “linguistik lazim diartikan
sebagai ilmu bahasa atau ilmu mengambil bahasa sebagai objek kajiannya”.
Sedangkan penjelasan lain dari kecerdasan linguistik atau bahasa menurut
(Haryanto, 2011:4) “adalah kecerdasan yang mempunyai kemampuan untuk
menggunakan bahasa dalam mendeskripsikan kejadian, membangun kepercayaan
dan kedekatan secara verbal, pengembangan argument logika dan retorika, serta
mengungkapkan ekspresi dan metafora”.
Kecerdasan linguistik dapat disimpulkan sebagai kecerdasan dalam
pengelolaan bahasa yang menjadikan sarana untuk melakukan aktivitas
komunikasi manusia sehari-hari. kecerdasan linguistik juga merupakan ekspresi
terhadap melalui bahasa yang diimplementasikan kedalam bentuk lisan maupun
tulisan yang berguna dalam penyampaian sesuatu, seperti halnya penyampaian isi
hati melalui lirik lagu atau puisi yang ditulis. Dapat pula disampaikan dalam
bentuk lisan seperti penyampaian gagasan dalam berdiskusi atau seni retorika
pada saat berpidato atau presenter berita dalam penyampaian kejadian-kejadian
atau event yang menjadi objek yang terjadi pada suatu wilayah dalam waktu
tertentu.
G. OOP (Object Oriented Programming)
Pengertian OOP menurut Rosa dan Shalahuddin (2015:100) “metodologi
berorientasi objek adalah suatu strategi pembangunan perangkat lunak yang
mengorganisasikan sebagai kumpulan objek yang berisi data dan operasi yang
diberlakukan terhadapnya”.
21
Sedangkan Hidatullah dan Kawistara (2014:306) menjelaskan “Object
Oriented Programing atau yang disingkat OOP ialah paradigma atau tehnik
pemograman yang berorientasi kepada objek”.
Pemograman OOP adalah pendekatan yang melihat sebuah permasalahan
dan sistem pada objek. Memandang sistem berorientasi objek yang
dikembangkan, sebagai kumpulan objek yang berkorespondensi dengan objek
pada dunia nyata. Sistem yang berorientasi objek ini, memiliki fungsi serta data-
data dikelompokkan dalam sebuah komponen yang dibungkus (enkasulapsi)
kedalam bentuk objek, sehingga setiap objek dapat mewariskan sifatnya atau
setiap objek yang berbeda. Kumpulan dari objek-objek itu akan berinteraksi satu
sama lainnya untuk menghasikan output yang diinginkan.
H. Konsep Dasar OOP (Object Oriented Progamming)
Metodologi pengembangan sistem yang berorientasi objek memiliki
beberapa konsep dasar yang harus dipahami, menurut Rosa dan Shalahuddin
(2015:104), meliputi:
1. Kelas (Class)
Kelas adalah kumpulan objek-objek dengan karakteristik yang sama. Kelas
merupakan defenisi statik dan himpunan objek yang sama mungkin lahir atau
diciptakan oleh kelas tersebut. Sebuah kelas mempunyai sifat (atribut), kelakuan
(operasi/method), hubungan (relationship) dan arti. Suatu kelas dapat diturunkan
kekelas yang lain, dimana atribut dan kelas semula dapat diwariskan kekelas yang
baru.
22
2. Objek (Object)
Objek adalah abstraksi dan sesuatu yang mewakili dunia nyata seperti
benda, manusia, satuan organisasi, tempat, kejadian, struktur, status, atau hal-hal
lain yang bersifat abstrak. Objek merupakan suatu entitas yang mampu
menyimpan informasi (status) dan mempunyai operasi (kelakuan) yang dapat
diterapkan atau dapt brtpengaris pada statis objeknya. Objek mempunyai siklus
hidup yaitu diciptakan, dimanipulasi dan dihancurkan.
3. Metode (Method)
Operasi atau metode atau method pada sebuah kelas hampir sama dengan
fungsi atau prosedur pada metodologi struktural. Sebuah kelas boleh memiliki
lebih dari satu metode atau operasi. Metode atau operasi yang berfungsi untuk
memanipulasi objek itu sendiri. Operasi atau metode merupakan fungsi atau
transformasi yang dapat dilakukan terhadap objek atau yang dilakukan oleh objek.
4. Atribut (Attribute)
Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas.
Atribut dapat berupa nilai atau elemen-elemen data yang dimiliki oleh objek
dalam kelas objek. Atribut dipunyai secara individual oleh sebuah objek, misalnya
berat, jenis, nama, dan sebagainya. Atribut sebaiknya bersifat privat untuk
menjaga enkasulapsi.
5. Abstraksi (Abstraction)
Prinsip untuk mempresentasikan dunia nyata yang komplek menjadi suatu
bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak
sesuai dengan permasalahan.
23
6. Enkapsulasi (Encapsulation)
Pembungkusan atribut data dan layanan (operasi-operasi) yang dipunyai
objek untuk menyembunyikan implementasi dan objek sehingga objek lain tidak
mengetahui cara kerjanya.
7. Pewarisan (Inheritance)
Mekanisme yang memungkin suatu objek mewarisi sebagian atau seluruh
defenisi dan objek lain sebagai bagian dari dirinya.
8. Antarmuka (Interface)
Antarmuka atau interface sangat mirip dengan kelas, tapi antara antribut
kelas tanpa memiliki metode yang dideklarasikan tanpa isi. Deklarasi sebuah
metode pada interface dapat diimplentasikan pada kelas lain. Sebuah kelas dapat
mengimplentasikan lebih satu antarmuka dimana kelas ini mendeklarasikan
metode pada antarmuka yang dibutuhkan oleh kelas itu sekaligus mendefenisikan
isinya pada kode program kelas itu. Metode pada antarmuka yang
diimplementasikan pada suatu kelas harus sama persis dengan yang ada pada antar
muka. Antarmuka atau interface biasa digunakan agar kelas lain tidak mengakses
langsung ke suatu kelas, mengangkses antarmukanya.
9. Reusabilily
Pemanfaatan kembali objek yang sudah didefenisikan untuk suatu
permasalahan pada permasalahan lainnya yang melibatkan objek tersebut.
Misalkan pada sebuah aplikasi peminjaman buku diperlukan pada kelas anggota,
maka ketika membuat aplikasi VCD, kelas anggota ini bisa digunakan kembali
dengan sedikit perubahan untuk aplikasi penyewaan VCD tanpa harus membuat
dari awal lagi.
24
10. Generalisasi dan Spesialisasi
Menunjukan hubungan antara kelas dan objek yang umum dengan kelas dan
objek yang khusus. Misalnya kelas yang lebih umum (generalisasi) adalah
kendaraan darat dan kelas khusus (spesialisasi) adalah mobil, motor, dan kereta.
11. Komunikasi Antar Objek
Komunikasi antara objek dilakukan lewat pesan (message) yang dikirim
satu objek ke objek yang lainnya.
12. Polimorpisme (Polymorphism)
Kemampuan suatu objek untuk digunakan dibanyak tujuan yang berbeda
dengan nama yang sama sehingga menghemat baris program.
13. Package
Package adalah sebuah kontainer atau kemasan yang dapat digunakan untuk
mengelompokan kelas-kelas sehingga memungkinkan beberapa kelas bernama
sama disimpan dalam package yang berbeda.
I. Bahasa Pemograman
Pada proses pembangunan aplikasi penulis menggunakan beberapa bahasa
pemograman diantaranya:
1. HTML (Hyper Text Markup Language)
Menurut Sibero (2014:19) menjelaskan “hyper text markup language atau
HTML adalah bahasa yang digunakan dokumen web sebagai bahasa untuk
pertukaran web”.
Pengertian HTML menurut Kadir dan Triwahyuni (2013:321) ” HTML
adalah bahasa markah yang digunakan untuk menyusun halaman web”.
25
HTML merupakan bahasa markah yang digunakan untuk menampilkan
wujud dari web. HTML bukanlah bahasa pemograman karena HTML tidak
memenuhi syarat sebagai bahasa pemograman. Jika pembangunan website dengan
hanya menggunakan HTML saja, maka website tersebut tidak akan menjadi
dinamis. Pembangunan website tidak akan pernah lepas dari bahasa markah
HTML karena menjadi standar untuk penampilan halaman web.
2. PHP (PHP Hypertext Preprocessor)
Sedangkan menurut Team Litbang Madcoms (2011:11) “adalah bahasa
pemograman yang berjalan dalam sebuah webserver dan sebagai pengolah data
pada sebuah server”.
Dan menurut Sibero (2014:49) “PHP adalah pemograman interpreter yaitu
proses penerjemah baris kode sumber menjadi kode mesin yang dimngerti
komputer secara langsung pada saat baris kode dijalankan”.
Dari penjelasan beberapa pakar yang ada diatas dapat disimpulkan bahwa
PHP adalah bahasa pemograman yang digunakan untuk membangun aplikasi yang
berbasis web, dengan penggunaan PHP dapat membuat aplikasi berbasis web
dapat lebih dimanis karena PHP dapat dipadukan dengan database untuk
pengelolaan data.
J. DBMS (Database Managements System)
Menurut Fatansyah (2012:2) basis data merupakan markas atau lemari
sebagai penampung dari data-data yang mempresentasikan dalam dunia nyata
yang dapat berupa teks, huruf, simbol, angka, bunyi, gambar dan kombinasinya.
Dalam sudut pandangnya basis data juga dapat dilihat sebagai beberapa kelompok
26
arsip yang tersimpan dalam tabel sebagai komponen utama dari basis data yang
tabel-tabel tersebut saling terhubung satu sama lainnya.
Dikutip dari Stephen dan Plew dalam Simarmata dan Paryudi (2010:1)
“adalah mekanisme yang digunakan untuk menyimpan informasi atau data”.
Penuturan diatas dapat didefenisikan basis data merupakan tempat untuk
menyimpan data-data, penggambaran basis data dapat berupa lemari yang
menyimpan arsip-arsip data. Basis data juga dapat menjadi sumber informasi
dalam sebuah aktivitas perusahaan, organisasi maupun akademik.
Basis data menurut Fatansyah (2012:18) bisa dipisah dalam
pembentukannya melalui dua bahasa, diantaranya:
a. DDL (Data Defenition Language)
Pernyataan DDL merupakan perintah untuk membentuk skema dasar
tabel secara keseluruhan yang menjadi komponen utama dalam basis
data.
b. DML (Data Manipulation Language)
Pernyataan DML digunakan untuk memanipulasi data pada basis data
yang berfungsi untuk pengambilan informasi, memasukan informasi,
pengubahan informasi, penghapusan informasi dalam tabel. Dalam DML
terdapat dua tipe, pertama DML prosedural yang mengharuskan
pengguna untuk menentukan data yang dibutuhkan dan bagaimana cara
mendapatkannya. Yang kedua DML nonprosedural yang mengharuskan
pengguna pengguna menentukan data yang dibutuhkan tanpa
menentukan bagaimana cara mendapatkannya.
27
1. Pengertian MySQL
Penjelasan mysql seperti yang ditutur oleh Tim Litbang Wahana Komputer
(2015:6) mysql merupakan salah satu perangkat lunak database server yang
termasuk dalam RDBMS (Relational database Management System). Mysql
merupakan turunan dari SQL language sebagai suatu konsep yang tidak dapat
dirubah dalam pengoperasian basis data. Konsep SQL adalah sebuah konsep
pengoperasian basis data, terutama untuk pemilihan atau seleksi dan pemasukan
data yang memungkinkan pengoperasian data dikerjakan dengan mudah secara
otomatis.
Sedangkan menurut Saputra (2011:5) Mysql merupakan database yang
dapat dipadukan dengan PHP sebagai pengolahan data. Karna secara umum
database berfungsi sebagai wadah atau tempat untuk menyimpan, menanipulasi,
dan mengklarifikasi data. Pada mysql menggunakan SQL language sebagai
penggunaannya.
K. Metode Pengembangan Perangkat Lunak
Pengembangan perangkat lunak yang dijelaskan oleh Rosa dan
Shalahuddin (2015:28), model waterfall adalah pendekatan dalam pengembangan
perangkat lunak yang memiliki alurnya secara terurut, pengembangan dengan
metode ini terbagi dalam beberapa tahapan diantaranya:
1. Analisa Kebutuhan Perangkat Lunak
Dalam proses analisa ini memerlukan pengumpulan data secara intensif
sesuai dengan kebutuhan sistem yang akan dibangun serta dalam tahapan ini
28
harus mensesifikan kebutuhan perangkat lunak yang dibutuhkan oleh
pengguna.
2. Desain
Desain perangkat lunak adalah proses multi langkah yang fokus pada desain
pembuatan perangkat lunak termasuk struktur data, arsitektur perangkat
lunak, representasi antarmuka, dan prosedur pengkodean.
3. Pembuatan Kode Program
Desain yang telah dibuat harus dinyatakan dalam kode pemograman.
Sehingga perangkat lunak yang dibangun sesuai dengan desain yang telah
dibuat.
4. Pengujian
Pengujian fokus pada perangkat lunak secara dari segi lojik dan fungsional
dan memastikan bahwa semua bagian sudah diuji. Hal ini dilakukan untuk
meminimalisir kesalahan (error) dan memastikan keluaran sesuai yang
diinginkan.
5. Pendukung (Support) Dan Pemeliharaan (Maintenance)
Pada implementasinya perangkat lunak yang telah dibangun dan berikan
kepada user harus beradaptasi pada lingkungan barunya. Pada
penggunaannya tidak menutup kemungkinan akan terjadi perubahan pada
perangkat lunak, perubahan ini dapat dilakukan dengan mengulangi proses
analisa perangkat lunak yang ada. Namun tidak berlaku untuk pembuatan
sistem yang baru.
29
2.2 Teori Pendukung
Pengembangan sistem dalam laporan ini penulis memerlukan beberapa tools
yang diperlukan diantaranya aplikasi yang mendukung proses pembangunan. Pada
sub-bab kali ini penulis menjelaskan beberapa teori mengenai aplikasi yang
penulis gunakan.
A. Framework
Framework yang didefenisikan oleh Basuki (2014:13) “sebagai kumpulan
potongan-potongan program (kelas dan fungsi) yang disusun dan diorganisasikan
sedemikian rupa, sehingga dapat digunakan kembali untuk membantu membuat
aplikasi utuh tanpa harus membuat kodenya dari awal”.
Raharjo (2015:2) “web framework adalah suatu kode kumpulan pustaka
(library) dan alat (tool) yang dipadukan sedemikian rupa menjadi satu kerangka
kerja (framework) guna memudahkan dan mempercepat proses pengembangan
aplikasi web”.
Jadi framework merupakan potongan kode / kumpulan perintah dasar yang
memiliki fungsi sehingga para pengembang perangkat lunak tidak harus
menuliskan programnya dari awal dalam pembuatan aplikasi baru atau dengan
kumpulan perintah tersebut dapat digunakan untuk menyelesaikan masalah yang
lebih kompleks dalam pengembangan aplikasi.
B. CodeIgniter
Menurut Basuki (2014:12) “codeigniter sebagai salah satu dari sekian
banyak framework PHP, kini mulai banyak digunakan dalam mengebangkan
aplikasi berbasis web”.
30
Sedangkan penjelasan oleh Raharjo (2015:3) “codeigniter adalah framework
web untuk bahasa pemograman PHP, yang dibuat oleh Rick Ellis pada tahun
2006, penemu dan pendiri Ellislab (www.ellislab.com)”.
Menurut Hidayatullah dan Kawistara (2014:295) “codeigniter adalah salah
satu framework PHP bahkan framework PHP yang paling powerfull saat ini
karena didalamnya terdapat fitur lengkap aplikasi web dimana fitur-fitur tersebut
sudah dikemas menjadi satu”.
Pembangunan website akan lebih mudah dan cepat apabila menggunakan
framework dikarenakan depelover tidak perlu membuat kode-kode program dari
awal. Sedangkan penggunaannya framework membantu depelover yang bekerja
secara tim, karna framework juga memiliki aturan-aturan penulisan kode program
dalam pengembangan aplikasi sehingga tidak menjadi kesalahpahaman antara
programmer. Dalam pengunaan framework codeigniter menggunakan desain
MVC (Model View Controller) sebagai metode pengembangan aplikasi.
Menurut Hidayatullah dan Kawistara (2014:298) menjelaskan “Model View
Controller atau yang kita sebut dengan MVC adalah metode yang digunakan data
logic (model) dari presentasi logic (view) dan process logic (controller) atau
secara sederhana adalah memisahkan desain interface, data dan proses”.
Dan menurut Basuki (2014:23) menjelaskan pendekatan MVC menjadi tiga
bagian aplikasi, diantaranya:
1. Model
Merepresentasikan data yang digunakan aplikasi. Contoh data misal data
base, RSS, atau data yang diperoleh pemanggil API, dan aksi yang
melibatkan operasi Create, Read, Update, Delete (CRUD) data.
31
2. View
Informasi yang ditampilkan kepada user melalui browser. Biasanya berupa
file HTML atau kode PHP yang menyusun template untuk sebuah website.
Pada codeigniter, view merupakan bagian-bagian sebuah halaman, template,
atau jenis lain dari halaman atau template.
3. Controller
“Business logic” bertugas untuk jembatan antara model dan view. Controller
merespon HTTP request yang datang dari user (melalui browser), dari
request ini controller akan menentukan apa yang harus dilakukan, jika
diperlukan, controller akan memanggil model untuk mengelola data,
kemudian akan memanggil view yang sesuai untuk menampilkan data hasil
olahan model dan akhirnya mengirim kembali ke halaman hasil olah data itu
ke browser.
C. Bootstrap
Meurut Utomo (2016:11) mendefiniskan “bootstrap merupakan salah satu
framework HTML, CSS, dan JS yang cukup populer, serta banyak digunakan oleh
para pengembang web saat ini”.
Penyampaian Fadul di http://dul.web.id/bootstrap/3/tuts-tips/belajar-
bootstrap-untuk-pemula.php menjelaskan “Bootstrap adalah front-end framework
yang solek, bagus dan luar biasa yang mengedapankan tampilan untuk mobile
device (Handphone, smartphone dll.) guna mempercepat dan mempermudah
pengembangan website” .
32
Bootstrap adalah framework HTML, CSS, dan JS untuk pembangunan
tampilan website lebih cepat dan interaktif kepada pengguna. Penggunaan
framework bootstrap akan mempermudah bagi depelover dalam pembangunan
aplikasi web pada tampilan front-end menjadi lebih responsive.
D. Xampp
Menurut Nugroho (2014:1) “Xampp adalah paket software Web Server yang
didalamnya sudah ada software Apache, PHP dan MySQL”.
Menurut Raharjo (2015:5) “Xampp adalah kompilasi software yang
membungkus Apache HTTP Server, MySQL, PHP dan Perl”.
Pembangunan aplikasi akan lebih murah dan cepat jika dikerjakan pada host
komputer pribadi. Maka dari itu didalam komputer harus tersedia web server yang
digunakan untuk menjalankan script PHP dan MySQL sebagai aplikasi untuk
membangun database. Xampp sendiri merupakan software yang menyediakan
paket web server, mysql, PHP dan Perl guna pengembangan web pada localhost
(127.0.0.1).
E. ERD (Entity Relational Diagrams)
ERD dapat mempresentasikan seluruh fakta dalam dunia nyata dan
digambar dalam bentuk diagram supaya fakta atau data yang diperoleh lebih
sistematis. ERD memiliki beberapa notasi-notasi menurut Fatansyah (2012:81)
yaitu:
33
a
1. Persegi Panjang
Dinyatakan sebagai himpunan Entitas. Dengan digambarkan sebagai
berikut.
Sumber: Fatansyah (2012:82)
Gambar II.7
Gambar Himpunan Entitas E
2. Lingkaran/Elip
Gambar berbentuk Elip dalam ERD dapat Dinyatakan sebagai sebuah
atribut. Jika atribut tersebut sebagai primary key maka tulisan atribut tersebut
harus digaris bawahi.
Sumber: Fatansyah (2012:82)
Gambar II.8
Gambar Atribut ERD
3. Belah Ketupat
Gambar belah ketupat dapat dinyatakan sebagai himpunan relasi pada ERD
(Entity Relational Diagrams).
E
34
Sumber: Fatansyah (2012:82)
Gambar II.9
Gambar Relasi ERD
4. Garis
Dalam ERD gambar yang berbentuk garis dapat juga disebut sebagai link
dyang berfungsi sebagai penghubung antara himpunan relasi dan himpunan entitas
pada atributnya.
Sumber: Fatansyah (2012:82)
Gambar II.10
Gambar Link ERD
5. Kardinalitas Relasi
Pada ERD kardinalitas relasi berperan sebagai gambaran tentang banyaknya
cabang relasi. Kardinalitas relasi dinyatakan dengan huruf dan angka yang telah
ditetapkan. Adapun beberapa kardinalitas relasi sebagai berikut:
a. One to One (1 dan 1 / relasi satu-ke-satu)
b. One to Many (1 dan N / relasi satu-ke-banyak)
c. Many to Many (N dan N / relasi banyak-ke-banyak)
35
F. Logical Relational Structure (LRS)
Menurut Hasugian dan Shidiq (2012:608) “merupakan sebuah model
sistem yang digambarkan dengan sebuah diagram-ER akan mengikuti pola dan
aturan pemodelan tertentu dalam kaitannya dengan konversi ke LRS”.
Dalam LRS Perubahaan yang terjadi adalah mengikuti aturan-aturan
seperti berikut ini (Hasugian dan Shidiq, 2012:608):
1. Setiap entitas akan diubah kebentuk kotak.
2. Sebuah atribut relasi disatukan dalam sebuah kotak bersama entitas jika
hubungan yang terjadi pada diagram-ER 1:M (relasi bersatu dengan
cardinality M) atau tingkat hubungan 1:1 (relasi bersatu dengan
cardinality yang paling membutuhkan referensi).
3. Sebuah relasi dipisah dalam sebuah kotak tersendiri (menjadi entitas baru)
jika tingkat hubunganya M:M (many to many) dan memiliki foreign key
sebagai primary key yang diambil dari kedua entitas yang sebelumnya
saling berhubungan.
G. Pengujian Unit (Black Box Testing)
Dalam pengujian unit black box testing terdapat klasifikasi yang
mencangkup beberapa pengujian dan diuraikan oleh Simarmata (2010: 316)
meliputi:
1. Pengujian Fungsional (Functional Testing)
Pengujian fungsional dilakukan dengan menguji setiap fungsi dari aplikasi
yang dibangun dan dilakukannya pengujian ini bertujuan untuk mengetahui
apakah aplikasi yang dibangun sesuai dengan harapan.
36
2. Pengujian Tegangan (Stress Testing)
Pengujian ini dilakukan untuk mengetahui kualitas dari aplikasi didalam
lingkungan. Cara pengujian ini dengan menciptakan tegangan yang lebih
menutut pada lingkungan.
3. Pengujian Beban (Load Testing)
Pengujian beban dilakukan dengan memberikan masukan dalam jumlah
yang besar atau beban yang berat hal ini memastikan aplikasi tetap kuat dan
berjalan dengan lancar. Bukan berarti pada pengujian ini merusak aplikasi
namun bertujuan untuk mengetahui apakah terjadi kegagalan sistem meski
di beri beban yang besar.
4. Pengujian Khusus (Ad-hoc Testing)
Pengujian ini dilakukan tanpa penciptaan rencana pengujian atau kasus
pengujian. Pengujian kusus memabntu para penguji aplikasi untuk
memperlajari aplikasi dan menemukan lubang-lubang dalam pengujian
strategi dan dapat menghubungkan diantara subsistem lain yang tidak jelas.
5. Pengujian Penyelidikan (Exploratory Testing)
Pengujian penyelidikan dilakukan untuk mempelajari aplikasi dan pengujian
ini mirip dengan pengujian khusus (ad-hoc testing).
6. Pengujian Usabilitas (Usability Testing)
Pengujian ini bertujuan untuk melakukan keakraban dari pengguna tertentu
dan pada pengujian usabilitas mengharuskan aplikasi berinteraksi dengan
baik terhadap pengguna secara langsung maupun tidak langsung agar
pengguna tidak merasakan kesulitan dalam pengopersian aplikasi.
37
7. Pengujian Asap (Smoke Testing)
Pengujian asap dilakukan untuk memeriksa apakah aplikasi sudah siap
untuk pengujian yang lebih besar dan bekerja dengan baik tanpa celah
sampai tingkat yang paling diharapkan.
8. Pengujian Pemulihan (Recovery Testing)
Pada dasarnya dilakukan untuk memeriksa seberapa cepat dan baiknya
aplikasi bisa pulih terhadap semua jenis crash atau kegagalan perangkat
keras.
9. Pengujian Volume (Volume Testing)
Pengujian volume, menguji sebuah sistem baik perangkat keras sistem
maupun perangkat lunak untuk serangkaian proses pengolahan data pada
sistem. Pengujian volume akan berusaha memastikan batasan-batasan fisik
untuk sebuah kapasitas pada sistem.
10. Pengujian Domain (Pengujian Domain)
Pengujian domain merupakan penjelasan dari teknik pengujian yang
berperan ketika melakukan pengujian terhadap beberapa perwakilan dari
masing-masing subset.
11. Pengujian Skenario (scenario Testing)
Pengujian scenario adalah pengujian yang realitas, kredibel dan memotivasi
stakeholder tantangan untuk program dan mempermudah penguji untuk
melakukan evaluasi.
12. Pengujian Regresi (Regression Testing)
Pengujian regresi adalah gaya pengujian yang berfokus pada pengujian
ulang (retesting) setelah ada perubahan. Pada pengujian ulang untuk
38
mengurangi resiko perubahan yang dimaksud untuk memperbaiki bug yang
gagal dan beberapa perubahan efek samping, tidak memperbaiki bug yang
lama atau memperkenalkan bug baru.
13. Penerimaan Pengguna (User Acceptance)
Aplikasi yang telah dibangun dan dilakukan pengujian tahapan-tahapan
pengujian oleh pengembang maupun penguji akan diserahkan kepada
pengguna untuk mengetahui apakah aplikasi memenuhi harapan pengguna
dan bekerja seperti yang diharapkan.
14. Pengujian Alfa (Alpha Testing)
Pada pengujian ini pengguna didatangkan untuk menggunakan aplikasi dan
memberikan masukan pada aplikasi, kemudian pengembang aplikasi
mencatat setiap masukan yang diberikan dan mengkoreksi sesuatu yang
tidak normal yang terjadi pada aplikasi yang digunakan pengguna.
15. Pengujian Beta (Beta Testing)
Pengujian beta dilakukan dengan melakukan pendistribusian aplikasi kepada
pengguna, apabila aplikasi mengalami cacat atau pengecualian akan
dilaporkan kepada pengembang. Harapan pengujian beta dilakukan dengan
cara didistribusikan kepada masyarakat agar aplikasi memiliki bug.
H. Konsep UML (Unified Modeling Lenguage)
Pengembangan perangkat lunak bukanlah yang sangat mudah untuk
dilakukan, apabila pengambangan perangkat lunak dikerjakan oleh banyak orang
tentunya akan memiliki pemikiran dan pemahaman yang berbeda-beda. Tentunya
hal ini akan menimbulkan suatu permasalahan yang sangat kompleks, dalam hal
39
ini Rosa dan Shalahuddin (2015:134) melihat kompleksitas dalam beberapa hal,
diantaranya:
1. Kompleksitas domain atau permasalahan perangkat lunak
Pendefenisian fungsi-fungsi pada perangkat lunak sejatinya dilakukan dalam
proses analisa. Hal ini akan bertentangan apabila pengembangan tidak
menggunakan perencanaan dan pemodelan karna seringkali pendefenisian
terjadi setelah masuk pada tahap implementasi pengkodean, dengan
demikian maka proses pengembangan akan kembali pada tahap analisa
sehingga akan menuai ketidak efesianan dan kekonsistenan dokumen dalam
pengembangan. Selain itu perbedaan permasalahan interpretasi pemahaman
spesifikasi oleh orang yang mengembangkan aplikasi terkadang tidak
dinyatakan, tapi membuat asumsi sendiri.
2. Kesulitan mengelolah proses pengembangan perangkat lunak
Pengembangan perangkat lunak yang dilakukan secara tim memerlukan
koordinasi agar tidak terjadi kesalah pahaman interpretasi yang
mengakibatkan perangkat lunak yang dibangun tidak selesai.
3. Kemungkinan flexibilitas perubahan perangkat lunak
Dalam pengembangan perangkat lunak developer akan memiliki hubungan
dengan klien untuk melakukan pertanyaan terhadap fungsi-fungsi aplikasi
yang dibutuhkan. Namun tidak semua klien memiliki pengetahuan teknologi
yang cukup untuk dimintai pertimbangan terhadap sistem yang ingin
dibangun. Apabila tidak ada perjanjian spesifikasi maka besar kemungkinan
perubahan sistem ditengah pengerjaannya karena klien yang meminta
40
perubahan tersebut. Sering terjadi perubahan ditengah pengerjaan aplikasi
dapat membuat kemoloran waktu dalam proses pembangunannya.
4. Permasalahan karakteristik bagian-bagian perangka lunak secara diskrit
Dalam pengembangan perangkat lunak dilakukan dengan beberapa orang
atau tim. Maka perangkat lunak akan dibagi-bagi menjadi bagian-bagian
yang harus dikerjakan orang-orang didalam tim. Jika permasalahan bagian-
bagian perangkat lunak secara diskrit tidak terdefenisi secara benar atau
dipahami berberda oleh setiap orang yang ada didalam tim, maka
kemungkinan saat bagian-bagian ini digabungkan akan terjadi banyak
kesalahan atau error. Maka dari itu koordinasi dan komunikasi yang baik
didalam sebuah tim sangat dibutuhkan.
Berbagai resiko yang terjadi dalam pengembangan perangkat lunak, maka
harus memiliki solusi untuk mengani permasalahan yang terjadi yaitu perlu
adanya suatu perencanaan dan pemodelan. Dalam pemodelan perangkat lunak
dapat menggunakan UML (Unified Modeling Language).
1. Pengertian UML (Unified Modeling Language)
Rosaa dan Shahuddin (2015:137) menjelaskan UML adalah bahasa
pemodelan perangkat lunak dengan tehnik pengembangan perangkat lunak
beorientasi objek. Perkembangan teknologi perangkat lunak yang semakin tinggi
dengan kompleksitas yang rumit, mengakibatkan kebutuhan pemodelan secara
visual yang meliputi spesifikasi, menggambarkan, membangun dan
memdokumentasikan perangkat lunak. Dengan UML pemodelan perangkat lunak
akan mudah dilakukan karena UML merupakan bahasa visual untuk memodelkan
dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-
41
teks pendukung. Pada batasannya UML hanya berfungsi sebagai pemodelan, jadi
penggunaan UML tidak terbatas pada metodologi tertentu. Namun pada
pengembangan perangkat lunak berbasis objek UML paling banyak digunakan
sebagai pemodelan visual.
2. Diagram UML (Unified Modeling Language)
Diagram uml dibagi dalam tiga kategori diamana masing kategori terdiri
dari beberapa macam diagram, Rosa dan Shaluddin (2015:140) membagi bagian
tersebut dalam gambar dibawah ini.
Sumber: Rosa Dan Shalahuddin (2015:140)
Gambar II.11
Diagram UML (Unified Modeling Leanguage)
42
Penjelasan singkat dari tiga pembagian kategori sebagai berikut:
a. Structure Diagrams
Yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu
struktur statis dari sistem yang dimodelkan.
b. Behavior Diagrams
Kumpulan diagram yang digunakan untuk mengambarkna kelakuan
sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.
c. Interaction diagrams
Yaitu kumpulan yang digunakan untuk menggambarkan interaksi
sistem dengan sistem lain maupun interaksi antar subsistem pada suatu
sistem.
I. Use Case
Use case diagram merupakan pemodelan behavior (kelakuan) yang dapat
dibuat satu aktor atau lebih dalam pemodelannya. Pada use case diagram
digambarkan fungsi yang ada dalam sistem. Rosa dan Shalahuddin (2015:155)
mendefenisikan penamaan use case terbagi dalam dua hal utama, diantaranya:
1. Aktor
Meskipun actor digambarkan dalam bentuk orang bukan berarti aktor adalah
orang. Karena aktor dapat merupakan reprentasi dari orang, sistem lain yang
berinteraksi dengan sistem yang dibuat, atau sebuah proses.
2. Use Case
Merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang
saling bertukar pesan antar unit atau aktor.
43
Use case memiliki berbagai macam simbol-simbol untuk menggunakannya,
adapun simbol tersebut yakni:
Tabel II.1
Simbol dan Deskripsi Use Case
Simbol Deskripsi
Use Case
Fungsionalitas yang disediakan sistem sebagai unit-unit
yang saling bertukar pesan antar unit atau aktor.
Aktor / Actor
Orang, proses, atau sistem lain yang berinteraksi dengan
sistem informasi yang akan dibuat diluar sistem informasi
yang akan dibuat sendiri, jadi walaupun simbol aktor adalah
gambar orang, tapi belum tentu merupakan orang.
Asosiasi / Association
Komunikasi antar actor use case yang berpartisipasi pada
use case atau use case memiliki interaksi dengan actor
Ekstensi / Extend
Relasi use case tambahan kesebuah use case dimana use
case ditambahkan dapat berdiri sendiri walau tanpa use case
tambahan itu; mirip dengan prinsip inheritance pada
program berorientasi objek.
Generalisasi / Generalitation
Hubungan (umum-khusus) antara dua buah use case dimana
fungsi yang satu adalah fungsi yang lebih umum darinya.
Menggunakan / Include / Use
Relasi use case tambahan ke sebuah use case dimana use
case yang ditambahkan memerlukan use case ini untuk
menjalankan fungsinya atau sebagai syarat dijalankan use
case ini.
Sumber: Rosa dan Shalahuddin (2015:156)