5 BAB II TINJAUAN PUSTAKA 2.1 Algoritma Genetika 2.1.1

advertisement
5
BAB II
TINJAUAN PUSTAKA
2.1 Algoritma Genetika
2.1.1 Pengertian algoritma genetika
Algoritma genetika adalah suatu algoritma pencarian yang meniru
mekanisme dari genetika alam. Algoritma Genetika banyak dipakai pada aplikasi
bisnis, teknik maupun pada bidang keilmuan lainnya. Algoritma ini dimulai
dengan kumpulan solusi yang disebut dengan populasi. Solusi-solusi dari sebuah
populasi diambil dan digunakan untuk membentuk populasi yang baru. Hal ini
dimotivasi dengan harapan bahwa populasi yang baru dibentuk tersebut akan lebih
baik daripada yang lama. Solusi-solusi yang dipilih untuk membentuk solusisolusi yang baru dipilih sesuai dengan fitness mereka masing-masing.
Menurut sebuah buku yang berjudul “Adaption in Natural and Artificial
System” yang terbit pada tahun 1975, dijelaskan bahwa prinsip algoritma genetika
yang diambil dari teori Darwin yaitu setiap makhluk hidup akan menurunkan satu
atau beberapa karakter ke anak atau keturunannya. Proses ini akan dapat terjadi
terbentuknya variasi yang disebabkan karena adanya mutasi, sehingga keturunan
yang dihasilkan dapat mempunyai kelebihan bahkan tidak memiliki kekurangan
dari orangtuanya.
Setiap makhluk hidup akan mengalami seleksi alam, sehingga makhluk
hidup yang mempunyai kemampuan untuk beradaptasi dengan lingkungan
sekitarnya dapat bertahan sampai generasi selanjutnya. Semakin bagus atau sesuai
fitness dari sebuah solusi maka solusi tersebut mempunyai peluang besar untuk
dipilih. Proses ini dilakukan berulang sampai kondisi tertentu dipenuhi.
2.1.2 Sejarah algoritma genetika
Sejak pertama kali dirintis oleh John Holland pada tahun 1960-an, AG
telah dipelajari, diteliti dan diaplikasikan secara luas pada berbagai bidang. AG
banyak digunakan pada masalah praktis yang berfokus pada pencarian parameterparameter optimal. Hal ini membuat banyak orang mengira bahwa AG hanya bisa
6
digunakan untuk masalah optimasi. Algoritma Genetika dalam kenyataanya juga
memiliki performansi yang bagus untuk masalah-masalah selain optimasi.
Beberapa buku juga menyebutkan algoritma genetika dengan nama Classical GA
atau Canonical GA.
Keuntungan penggunaan AG sangat jelas terlihat dari kemudahan
implementasi dan kemampuannya untuk menemukan solusi yang bagus (bisa
diterima) secara cepat untuk masalah-masalah berdimensi tinggi. Ciri utama dari
GA adalah tidak terlalu cepat dalam menemukan solusi optimal, tetapi memiliki
heuristik yang baik untuk masalah kombinatorial. Ciri lainnya adalah algoritma
genetika lebih menitikberatkan pada rekombinasi atau crossover. Artinya bagian
GA yang paling penting untuk menemukan solusi adalah rekombinasi atau
crossover.
Inisialisasi awal, akan dibangkitkan secara acak sejumlah individu sebagai
suatu populasi. Jumlah individu dalam populasi tersebut selalu tetap selama proses
evolusi.
Algoritma
Genetika
telah
banyak
diaplikasikan
untuk
dapat
menyelesaikan masalah dan pemodelan dalam bidang teknologi, bisnis, dan
entertainment, seperti :
a. Optimasi
AG digunakan untuk optimasi numerik dan optimasi kombinatorial seperti
Traveling Salesman Problem (TSP), perancangan Integrated Circuit atau IC
[LOU93], Job Shop Scheduling [GOL91], optimasi video, dan suara.
b. Pemrograman Otomatis
AG telah digunakan untuk melakukan proses evolusi terhadap program
komputer untuk merancang struktur komputasional, seperti celluler automata
dan sorting networks.
c. Machine Learning
AG telah berhasil diaplikasikan untuk memprediksi struktur protein. AG juga
berhasil diaplikasikan dalam perancangan neural network (jaringan syaraf
tiruan) untuk melakukan proses evolusi terhadap aturan-aturan pada learning
classifier systems atau symbolic production systems. AG juga dapat digunakan
untuk mengkontrol robot.
7
d. Model Ekonomi
AG telah digunakan untuk memodelkan proses-proses inovasi dan
pembangunan bidding strategies.
e. Model Sistem Imunisasi
AG telah berhasil digunakan untuk memodelkan berbagai aspek pada sistem
imunisasi alamiah, termasuk somatic mutation selama kehidupan individu dan
menemukan keluarga dengan gen ganda (multi-gene families) sepanjang
waktu evolusi.
f. Model Ekologis
AG telah berhasil digunakan untuk memodelkan fenomena ekologis seperti
host-parasite co-evolutions, simbiosis dan aliran sumber daya dalam ekologi.
g. Interaksi antara Evolusi dan Belajar
AG telah digunakan untuk mempelajari bagaimana proses belajar satu
individu bisa mempengaruhi proses evolusi suatu spesies dan sebaliknya.
2.1.3 Pengertian populasi AG
Populasi adalah kumpulan kromosom. Kromosom ini dibentuk dari
komponen-komponen penyusun yang disebut dengan gen dan nilainya dapat
berupa bilangan numerik, biner, simbol, maupun karakter, tergantung dari
permasalahan yang ingin diselesaikan. Penggambaran tentang populasi dapat
dilihat pada gambar dibawah ini :
8
Gambar 2.1 Susunan dari Populasi
( Sumber : http://personal.ftsl.itb.ac.id, 2009 )
Terdapat beberapa definisi penting yang harus dipahami dalam algoritma
genetika, yaitu :
a) Gen
Gen merupakan nilai yang menyatakan satuan dasar yang membentuk suatu
arti tertentu dalam satu kesatuan gen yang dinamakan kromosom.
b) Kromosom / Individu
Kromosom merupakan gabungan dari gen-gen yang membentuk nilai tertentu
dan menyatakan solusi yang mungkin dari suatu permasalahan.
c) Populasi
Populasi merupakan sekumpulan individu yang akan diproses bersama dalam
satu satuan siklus evolusi.
d) Fitness
Fitness menyatakan seberapa baik nilai dari suatu individu yang didapatkan.
9
e) Seleksi
Seleksi merupakan proses untuk mendapatkan calon induk yang baik.
f) Crossover
Crossover merupakan proses pertukaran atau kawin silang gen-gen dari dua
induk tertentu.
g) Mutasi
Mutasi merupakan proses pergantian salah satu gen yang terpilih dengan nilai
tertentu.
h) Generasi
Generasi merupakan urutan iterasi dimana beberapa kromosom bergabung.
i) Offspring
Offspring merupakan kromosom baru yang dihasilkan.
2.1.4 Operasional AG
Seperti halnya proses evaluasi di alam, suatu algoritma genetika yang
sederhana umumnya terdiri dari tiga operator yaitu operator reproduksi, crossover
(persilangan), dan mutasi. Struktur umum dari sistem algoritma genetika dapat
diselesaikan dengan langkah-langkah sebagai berikut :
1. Membangkitkan populasi awal. Populasi awal ini dibangkitkan secara random
sehingga didapatkan solusi awal. Populasi itu sendiri terdiri dari sejumlah
kromosom yang merepresentasikan solusi yang diinginkan.
2. Membentuk generasi baru. Tiga operator yang digunakan untuk membentuk
generasi baru yaitu reproduksi/seleksi, perkawinan silang dan mutasi. Proses
ini dilakukan berulang-ulang sehingga didapatkan jumlah kromosom yang
cukup untuk membentuk generasi baru, dimana generasi baru ini merupakan
representasi dari solusi baru.
3. Evaluasi solusi. Proses ini akan mengevaluasi setiap populasi dengan
menghitung nilai fitness setiap kromosom dan mengevaluasinya sampai
terpenuhi kriteria berhenti, apabila kriteria berhenti belum terpenuhi maka
akan dibentuk lagi generasi baru dengan mengulangi langkah 2.
10
Blok diagram algoritma genetika dapat dilihat pada gambar di bawah ini :
Gambar 2.2 Siklus Algoritma Genetika
( Sumber : http://personal.ftsl.itb.ac.id, 2009 )
Terdapat tiga kondisi selesai yang dapat menghentikan proses siklus
algoritma genetika ini, yaitu:
1. Setelah beberapa generasi berturut-turut nilai fitness terbaik dari populasi tidak
mengalami perubahan kembali
2. Jumlah generasi atau iterasi maksimum telah tercapai.
3. Nilai fitness terbaik minimal telah tercapai.
2.1.4.1 Membangun generasi awal
Langkah pertama dalam algoritma ini adalah membentuk sejumlah
populasi awal yang digunakan untuk mencari penyelesaian optimal. Populasi awal
yang dibangun dalam ide tugas akhir ini dengan menggunakan bilangan random
(acak) dengan range bilangan yang telah ditentukan.
2.1.4.2 Representasi kromosom
Representasi kromosom merupakan proses pengkodean dari penyelesaian
asli dari suatu permasalahan. Pengkodean kandidat penyelesaian ini disebut
11
dengan kromosom. Pengkodean tersebut meliputi penyandian gen, dimana satu
gen mewakili satu variabel. Berikut ini adalah contoh dari representasi kromosom
dimana phenotype space dikodekan ke dalam kromosom-kromosom biner di
dalam genotype space dan sebaliknya.
Encoding
X1 = 7 dan X2 = 5
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
X1 = 7 dan X2 = 5
Decoding
Phenotype space
Genotype space (binary encoding)
Gambar 2.3 Representasi Kromosom Menggunakan Binary Encoding
( Sumber : Suyanto, 2008 )
2.1.4.3 Fungsi fitness
Fungsi fitness digunakan untuk proses evaluasi kromosom agar
memperoleh kromosom yang diinginkan. Fungsi ini membedakan kualitas dari
kromosom untuk mengetahui seberapa baik kromosom yang dihasilkan. Fungsi
fitness tersebut sebagai berikut.
Fitness 
1
1  penalty
.................................................
(2.1)
Berdasarkan persamaan diatas nilai fitness ditentukan oleh nilai penalty.
Penalty tersebut menunjukkan jumlah pelanggaran kendala pada suatu kromosom.
Semakin tinggi nilai fitness akan semakin besar kemungkinan kromosom tersebut
terpilih ke generasi berikutnya. Nilai penalty akan berbanding terbalik dengan
nilai fitness, semakin kecil nilai penalty (jumlah pelanggaran) semakin besar nilai
fitnessnya.
12
Rumus fungsi fitness :
1
1  (BpxNp)
.................................................
(2.2)
Keterangan :
Bp = Bobot pelanggaran
Np = Indikator Pelanggaran
2.1.4.4 Seleksi
Setiap kromosom yang terdapat dalam populasi akan melalui proses
seleksi untuk dipilih menjadi orangtua. Sesuai dengan teori Evolusi Darwin maka
kromosom yang baik akan bertahan dan menghasilkan keturunan yang baru untuk
generasi selanjutnya.
Ada beberapa metode seleksi, yaitu :
1. Steady-State Selection
Pemikiran utama dari metode seleksi ini adalah sebagian kromosom dari
generasi lama tetap bertahan atau berada di generasi selanjutnya. Algoritma
genetika menerapkan pemikiran tersebut dengan cara, didalam setiap generasi
sejumlah kromosom yang mempunyai nilai fitness tinggi dipilih untuk diproses
untuk menghasilkan keturunan yang baru sedangkan kromosom dengan nilai
fitness rendah dibuang.
2. Elitism
Proses seleksi dilakukan secara random, maka tidak ada jaminan bahwa
suatu individu bernilai fitness tertinggi akan selalu terpilih, meskipun individu
memiliki nilai fitness yang tinggi akan terpilih, namun mungkin saja individu
tersebut akan rusak (nilai fitness-nya menurun) karena proses pindah silang.
Pengkopian kromosom perlu dilakukan untuk menjaga agar individu bernilai
fitness tertinggi tersebut tidak hilang selama proses evolusi.
3. Roulette Wheel Selection
Sesuai dengan namanya, algoritma ini menirukan permainan roulettewheel dimana masing-masing kromosom menempati potongan lingkaran pada
13
roda roulette secara proporsional sesuai dengan nilai fitness-nya. Sebagai ilustrasi,
perhatikan gambar berikut ini :
Kromosom
Fitness
K1
2
K2
1
K3
1
K4
4
Jumlah
8
K1
k4
K2
k3
Gambar 2.4 Seleksi Orang Tua Menggunakan Algoritma Roulette-Wheel
( Sumber : Suyanto, 2008 )
Gambar diatas menunjukkan bahwa kromosom dengan nilai fitness yang
lebih besar dalam roda roulette memiliki peluang lebih besar untuk terpilih
sebagai orang tua, meskipun demikian semua kromosom tetap memiliki peluang
untuk terpilih sebagai orang tua. Algoritma Roulette Wheel memang sengaja
memberikan peluang kepada semua kromosom untuk bisa terpilih sebagai orang
tua, karena ada kemungkinan jika kromosom dengan nilai fitness rendah
dikawinkan dengan kromosom fitness tinggi akan menghasilkan dua kromosom
anak yang memiliki nilai fitness jauh lebih tinggi dari kedua orang tuanya.
2.1.4.5 Rekombinasi
Rekombinasi atau crossover adalah proses kawin silang antara dua
kromosom yang terpilih sebagai orang tua dengan suatu metode seleksi orang tua
tertentu yang menghasilkan dua anak (offspring). Jumlah kromosom dalam
populasi yang mengalami persilangan ditentukan oleh paramater yang disebut
dengan crossover rate (probabilitas persilangan). Jenis rekombinasi ada 2 yaitu :
14
1. Rekombinasi satu titik (One point crossover)
Contoh :
titik
Orangtua 1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
Anak 1
Orangtua 2
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
Anak 2
Gambar 2.5 Contoh Rekombinasi Satu Titik
( Sumber : Suyanto, 2008 )
Rekombinasi satu titik dilakukan dengan cara membangkitkan suatu titik
rekombinasi, misalkan titik ke-2 seperti yang terlihat pada gambar diatas.
Rekombinasi menghasilkan dua anak, dimana anak 1 mewarisi gen ke-1 dan gen
ke-2 yang berasal dari orangtua 1 dan gen-3 sampai gen-8 berasal dari orangtua 2,
begitu juga sebaliknya, pada anak kedua mendapatkan gen ke-1 dan ke-2 dari
orangtua 2 dan gen ke-3 sampai gen ke-8 berasal dari orangtua 1.
2. Rekombinasi dua titik (Two point crossover)
Contoh :
Titik 1
Titik 2
Orangtua 1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
Anak 1
Orangtua 2
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
Anak 2
Gambar 2.6 Contoh Rekombinasi Dua Titik
( Sumber : Suyanto, 2008 )
Rekombinasi dua titik, gen dari kedua orangtua diwariskan secara
menyilang (zigzag) kepada kedua anaknya berdasarkan kedua posisi titik tersebut
seperti yang ditunjukkan oleh gambar diatas.
15
2.1.4.6 Mutasi
Mutasi juga merupakan salah satu operator penting dalam algoritma
genetika selain crossover. Metode dan tipe mutasi yang dilakukan juga tergantung
pada encoding dan permasalahan yang diangkat. Berdasarkan encoding-nya
terdapat beberapa macam, diantaranya adalah sebagai berikut :
1. Binary Encoding
Melakukan inversi pada bit yang terpilih, 0 menjadi 1 dan sebaliknya, 1
menjadi 0.
Contoh : 11001001 => 10001001
2. Permutation Encoding
Memilih dua nilai dari gen dan menukarnya.
Contoh : ( 1 2 3 4 5 8 9 7 ) => ( 1 8 3 4 5 6 2 9 7 )
Beberapa operator mutasi telah diciptakan untuk representasi permutasi,
seperti metode inversion, insertion, displacement, dan reciprocal exchange
mutation.
a) Inversion Mutation
Inversion mutation memilih dua posisi dalam sebuah kromosom dengan
cara acak dan kemudian menginversikan substring di antara dua posisi
tersebut.
b) Insertion Mutation
Insertion Mutation memilih sebuah gen dengan cara acak dan
memasukkan ke dalam kromosom dengan cara acak pula.
c) Displacement Mutation
Displacement Mutation memilih sebuah sub/sekelompok gen dengan cara
acak kemudian memasukkan ke dalam kromosom dengan cara acak.
d) Reciprocal Exchange Mutation (REM)
Reciprocal Exchange Mutation memilih dua posisi secara acak, kemudian
menukar dua gen dalam posisi tersebut.
16
3. Value Encoding
Menentukan sebuah nilai kecil yang akan ditambahkan atau dikurangkan pada
salah satu gen dalam kromosom.
Contoh : ( 1.29 5.68 2.86 4.11 5.55 ) => ( 1.29 5.68 2.73 4.22 5.55 )
4. Tree Encoding
Node yang terpilih akan diubah.
2.1.4.7 Kondisi Berhenti
Offspring merupakan kromosom baru yang dihasilkan setelah melalui
proses-proses di atas, setelah offspring terbentuk kemudian dihitung fitness-nya
apakah sudah optimal atau belum, jika sudah optimal berarti offspring tersebut
merupakan solusi optimal, tetapi jika belum optimal maka akan diseleksi kembali,
begitu seterusnya sampai terpenuhi kriteria berhenti.
2.1.5 Kontrol Parameter Algoritma Genetika
Kontrol parameter AG diperlukan untuk mengendalikan operatoroperator seleksi. Pemilihan parameter AG menentukan penampilan kinerja
algoritma Genetika dalam memecahkan masalah. Terdapat dua parameter dasar
dari algoritma Genetika, yaitu probabilitas crossover (Pc) dan probabilitas
mutasi (Pm).
Probabilitas crossover menyatakan seberapa sering proses crossover
akan terjadi antara dua kromosom orangtua, apabila tidak terjadi crossover,
satu orangtua akan dipilih secara random dengan probabilitas yang sama dan
diduplikasi menjadi anak, jika probabilitas crossover 100% maka keseluruhan
keturunan dibuat dengan crossover namun jika probabilitas crossover 0%
maka seluruh generasi baru dibuat dari salinan kromosom-kromosom dari
populasi lama yang belum tentu menghasilkan populasi yang sama dengan
populasi sebelumnya karena adanya penekanan selektif.
Hasil penelitian yang sudah pernah dilakukan oleh praktisi AG
menunjukkan bahwa angka probabilitas crossover sebaiknya cukup tinggi,
yaitu antara 80% sampai 95% untuk memberikan hasil yang baik. Beberapa
17
masalah tertentu probabilitas crossover 60% akan memberikan hasil yang lebih
baik.
Probabilitas mutasi menyatakan seberapa sering bagian-bagian kromosom
akan dimutasikan, jika tidak ada mutasi maka keturunan akan diambil/disalin
langsung setelah crossover tanpa perubahan. Saat mutasi dilakukan, bagianbagian kromosom diubah, jika probabilitas mutasi 100% maka keseluruhan
kromosom akan diubah sedangkan jika probabilitasi mutasi 0% maka tidak ada
yang akan diubah. Probabilitas mutasi dalam AG seharusnya diberi nilai yang
kecil. Umumnya, probabilitas mutasi diset untuk mendapatkan rata-rata satu
mutasi per kromosom, yaitu angka / allele = l/(panjang kromosom).
Berdasarkan hasil yang sudah pernah dicoba menunjukkan bahwa angka
probabilitas terbaik adalah antara 0,5% sampai 1%. Hal ini karena tujuan
mutasi adalah menjaga perbedaan kromosom dalam populasi, untuk
menghindari terjadinya konvergensi prematur.
Parameter lain yang juga ikut menentukan efisiensi kinerja AG adalah
ukuran populasi, yaitu banyaknya kromosom dalam satu populasi, jika terlalu
sedikit kromosom dalam populasi, AG mempunyai kemungkinan yang sedikit
pula untuk melakukan crossover dan hanya sebagian kecil dari ruang pencarian
yang diekplorasi sebaliknya, jika terlalu banyak jumlah kromosom, AG
cenderung menjadi lambat dalam menemukan solusi. Ukuran populasi yang
sering digunakan oleh peneliti yang sudah ada adalah antara 20 sampai 30,
tetapi kadang ukuran 50 sampai 100 dilaporkan baik. Beberapa penelitian
menunjukkan
bahwa
ukuran
populasi
yang
terbaik
tergantung
dari
pengkodean, yaitu ukuran dari barisan yang dienkodekan. Artinya, jika
terdapat ukuran kromosom 32 bit, ukuran populasi seharusnya juga 32, begitu pula
jika ukuran kromosom 16 bit, maka ukuran populasi adalah 16.
Penekanan selektif dilakukan dengan memilih jenis seleksi yang sesuai.
Umumnya, jenis seleksi roda rolet sering digunakan, terkadang jenis ranking serta
turnamen. Terdapat juga beberapa metode lebih lanjut yang mengubah parameter
seleksi ini selama eksekusi AG. Yang perlu diperhatikan dalam seleksi adalah
18
prinsip elitism, yang dapat dilakukan dalam seleksi untuk update generasi, biasanya
digunakan steady-state update.
2.2 Perkembangan Metode Penjadwalan
Algoritma-algoritma yang dibuat untuk tujuan memecahkan persoalanpersoalan
yang
ada
saat
ini
telah
banyak
ditemukan.
Berdasarkan
perkembangannya metode atau algoritma tersebut mulai diterapkan untuk
memecahkan persoalan penjadwalan, antara lain algoritma semut atau Ant Colony
Optimization (ACO) dengan pendekatan Max Min Ant System (MMAS), Taboo
Search, dan teknik pewarnaan graf (Coloring Graph).
2.2.1 Ant Colony Optimization
Ant Colony Optimization (ACO) terinspirasi oleh koloni-koloni semut
dalam mencari makan. Semut-semut tersebut meninggalkan zat (pheromone) di
jalan yang mereka lalui. Algoritma ACO ini merupakan algoritma pencarian
berdasarkan probabilistik berbobot, sehingga butir pencarian dengan bobot yang
lebih besar akan berakibat memiliki kemungkinan terpilih yang lebih besar pula.
2.2.2 Tabu Search
Tabu Search adalah salah satu metode metaheuristik yang dipergunakan
untuk memecahkan permasalahan-permasalahan optimasi global. Tabu Search
merupakan suatu teknik optimasi yang menggunakan short-term memory untuk
menjaga agar proses pencarian tidak terjebak pada nilai optimum lokal. Metode
ini menggunakan Tabu List untuk menyimpan sekumpulan solusi yang baru saja
dievaluasi. Selama proses optimasi, pada setiap iterasi solusi yang akan dievaluasi
akan dicocokkan terlebih dahulu dengan isi Tabu List untuk melihat apakah solusi
tersebut sudah ada pada Tabu List apabila solusi tersebut sudah ada, maka akan
dievaluasi lagi pada iterasi berikutnya. Saat sudah tidak ada lagi solusi yang
menjadi anggota Tabu List, maka nilai terbaik yang baru saja diperoleh
merupakan solusi yang sebenarnya.
2.2.3 Coloring Graph
Teknik pewarnaan graf merupakan salah satu subjek yang menarik dan
terkenal dalam bidang graf. Teori-teori mengenainya telah banyak dikembangkan
19
dan berbagai algoritma dengan kelebihan dan kelemahan masing-masing telah
dibuat untuk menyelesaikannya. Aplikasi dari teknik ini juga telah banyak
diterapkan di berbagai bidang, salah satunya adalah membuat jadwal. Perencanaan
jadwal disini khususnya diterapkan pada pekerjaan-pekerjaan atau hal-hal yang
saling terkait, misalnya hal-hal yang berlangsung pada waktu yang sama, atau
pekerjaan yang menggunakan sumber daya yang sama, dan sebagainya. Teknik
pewarnaan graf akan membuat jadwal kerja yang dapat menghasilkan hasil yang
maksimum dengan cara yang paling efisien
2.3 Perangkat Permodelan Sistem
Menurut Hartono (1999) perangkat pemodelan sistem merupakan suatu
cara untuk mengetahui baik secara global maupun terinci bagaimana sistem itu
nantinya diterapkan dengan menggunakan model keterhubungan antar entitas
yang bertujuan untuk mengetahui mekanisme penggambaran data, hubungan data
dan batasan data. Langkah-langkah dalam pembuatan dan perancangan suatu
perangkat permodelan sistem adalah sebagai berikut :
2.3.1 Diagram konteks
Diagram konteks merupakan diagram yang menggambarkan sebuah sistem
secara garis besar dan dari diagram ini dapat dipecah menjadi proses-proses atau
bagian yang lebih kecil lagi yang disebut DFD.
2.3.2 Data flow diagram (DFD)
DFD adalah suatu gambaran grafis dari suatu sistem yang menggunakan
sejumlah bentuk-bentuk simbol untuk menggambarkan bagaimana data mengalir
melalui proses yang saling berkaitan. Simbol yang digunakan pada DFD untuk
maksud mewakili (Hartono,1999):
20
1. External entity (kesatuan luar) atau boundary (batas sistem)
Batas sistem digunakan untuk memisahkan suatu sistem dengan lingkungan
luarnya.
Gambar 2.7 Notasi kesatuan luar di DFD
(Sumber : Hartono,1999)
2. Process (Proses)
Proses adalah kegiatan atau kerja yang dilakukan oleh orang, mesin atau
komputer dari hasil suatu arus data yang masuk ke dalam proses untuk
dihasilkan arus data yang akan keluar dari proses.
identifikasi
identifikasi
atau
Nama
Proses
atau
Nama proses
Pemroses
Gambar 2.8 Notasi proses di DFD
(Sumber : Hartono,1999)
2. Data flow (arus data)
Arus data (data flow) di DFD diberi simbol suatu panah. Arus data ini
mengalir diantara proses, simpanan data dan kesatuan luar.
a
1
Nama arus data
Kesatuan
Luar
Proses
Gambar 2.9 Arus Data dari kesatuan luar ke proses
(Sumber : Hartono,1999)
2.3.3 Flowchart
Flowchart atau bagan alur merupakan metode untuk menggambarkan
tahap-tahap penyelesaian masalah (prosedur) beserta aliran data dengan simbol-
21
simbol standar yang mudah dipahami. Flowchart banyak digunakan di pusat-pusat
layanan seperti kantor pemerintahan, bank, rumah sakit, organisasi masyarakat,
dan perusahaan.
Tujuan utama penggunaan flowchart adalah untuk menyederhanakan
rangkaian proses atau prosedur untuk memudahkan pemahaman pengguna
terhadap informasi tersebut, oleh karena itu design sebuah flowchart harus
ringkas, jelas, dan logis. Simbol-simbol dalam flowchart adalah sebagai berikut:
1.
; Terminal.
Menunjukkkan awal atau akhir suatu proses.
2.
; Preparation.
Persiapan proses atau pemberian nilai awal.
3.
; Data.
Menunjukkan proses masukkan, pembacaan atau percetakan
data.
4.
; Process.
Menunjukkan proses pelaksanaan instruksi (selain proses
percabangan).
5.
; Decision
Menunjukkkan proses pemilihan alternative atau pengecekan
kondisi.
6.
; Predefined Process.
Menunjukkan proses yang telah didefinisikan.
7.
; Connector.
Merupakan penghubung pada satu halaman.
8.
; Off-page connector.
Merupakan penghubung pada halaman lain.
9.
; Document
Merupakan dokumen (arsip) dari hasil proses.
22
10.
; Arrow.
Merupakan arah aliran proses.
2.4 Konsep Database Management System (DBMS)
2.4.1 Definisi Database dan DBMS
Database adalah kumpulan data terhubung yang disimpan secara bersamasama pada suatu media, tanpa adanya suatu kerangkapan data, sehingga mudah
untuk digunakan kembali, dapat digunakan oleh satu atau lebih program aplikasi
secara optimal, data disimpan tanpa mengalami ketergantungan pada program
yang akan menggunakannya, data disimpan sedemikian rupa sehingga apabila ada
penambahan, pengambilan dan modifikasi data dapat dilakukan dengan mudah
dan terkontrol (Kadir, 2002).
DBMS (database management system) merupakan kumpulan tabel yang
saling berkaitan bersama dengan program sebagai pengelolanya. Basis data adalah
kumpulan datanya, sedangkan program pengelolanya berdiri sendiri dalam suatu
paket program untuk membaca data, mengisi data, menghapus data, melaporkan
data dalam basis data (Kadir, 2002).
2.4.2 Bahasa DBMS
Menurut Kadir (2002) DBMS merupakan perantara bagi pemakai dengan
database dalam media penyimpanan seperti harddisk maupun removeable disk.
Cara berinteraksi antara pemakai dengan database tersebut diatur dalam suatu
bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu
disebut sebagai bahasa Database atau Database Language yang terdiri atas
sejumlah perintah (statement) yang diformulasikan dan dapat diberikan pemakai
dan dikenali oleh DBMS untuk melakukan suatu aksi seperti permintaan (query)
data tertentu. Contoh bahasa database seperti SQL (Structured Query Language).
Sebuah bahasa database biasanya dapat dikelompokkan ke dalam tiga kategori
yaitu :
23
1. Data Definition Language (DDL)
DDL adalah bahasa yang dispesifikasikan untuk mendefinisikan tipe data dan
objek-objek database. Terdapat beberapa contoh perintah dalam DDL seperti
pada tabel berikut :
Tabel 2.1 Contoh perintah Data Definition Language (DDL)
PERINTAH
CREATE
TABLE/DATABASE
ALTER TABLE
DROP
TABLE/DATABASE
CREATE INDEX
DROP INDEX
FUNGSI
Membuat tabel atau database baru
Menambah satu atau lebih kolom (field) pada
tabel baru
Menghapus suatu tabel atau database
Membuat indeks
Menghapus tabel yang sudah terindeks
Sumber (Abdulkadir, 2002)
2. Data Manipulation Language (DML)
DML adalah bahasa yang diperbolehkan pemakai untuk mengakses atau
memanipulasi data yang telah diorganisasikan sebelumnya dalam model data
yang tepat. Beberapa perintah yang termasuk dalam DML seperti pada tabel
berikut :
Tabel 2.2 Contoh perintah Data Manipulation Language (DML)
PERINTAH
SELECT
UPDATE
DELETE
INSERT
FUNGSI
Menentukan data/informasi yang akan keluar
dari tabel
Mengubah isi record pada suatu tabel
Menghapus sebuah field
Menyisipkan suatu record
Sumber (Abdulkadir, 2002)
3. Data Control Language (DCL)
DCL adalah kelompok perintah yang dipakai untuk melakukan otorisasi
terhadap pengaksesan data dan pengalokasian ruang. Misalnya, suatu database
bisa di akses si A, tetapi tidak bisa diaksses oleh si B. Termasuk dalam
24
katagori DCL yaitu pernyataan-pernyataan GRANT, REVOKE, COMMIT,
ROLLBACK.
2.4.3 Komponen DBMS
Menurut Kadir (2002) suatu sistem basis data yang lengkap akan memiliki
komponen-komponen pendukung utama, yaitu :
1. Perangkat keras (hardware)
a. Unit Pusat Pengolah (central processing unit) berjumlah minimal satu
untuk sistem stand alone atau lebih banyak lagi (multiprocessor) untuk
sistem besar.
b. Media penyimpanan data, berupa harddisk untuk keperluan back-up data.
c. Media input berupa keyboard, mouse, dan lain-lain.
d. Perangkat jaringan untuk koneksi berupa LAN card, modem, dan lain-lain.
e. Media output berupa monitor untuk tampilan visual, dan lain-lain.
2. Perangkat lunak (software)
Perangkat lunak yang digunakan untuk mengoperasikan sistem basis data
adalah sistem operasi dan program pendukung DBMS. Sistem operasi adalah
program
yang
mengaktifkan
atau
mengfungsikan
sistem
komputer,
mengendalikan seluruh sumber daya seperti proses I/O, manajemen file-file.
3. Basis data (database)
Sistem database dapat memiliki beberapa database. Setiap database memiliki
sejumlah objek database seperti tabel, indeks, prosedur tersimpan dan lainlain. Selain menyimpan data, setiap database juga menyimpan definisi
struktur baik untuk database maupun objek-objeknya secara detail.
4. Pemakai (user)
Manusia merupakan elemen penting pada sistem basis data. Pemakai ini
terbagi atas empat kategori :
a. Application programmer (pemrogram aplikasi)
Pemakai yang berinteraksi dengan basis data dengan menggunakan bahasa
pemrograman visual, seperti PHP dan Visual Basic.
25
b. Casual user (pemakai mahir)
Pemakai yang berinteraksi dengan database tanpa menulis modul
program, tetapi mampu menggunakan query untuk mengakses database.
c. End user (pemakai akhir)
Pemakai yang berinteraksi dengan database dengan murni melalui
program aplikasi yang telah jadi, contoh kasir.
d. Specialist user (pemakai ahli)
Pemakai yang menulis aplikasi basis data non-konvensional tetapi untuk
keperluan khusus, seperti pada implementasi expert system, di mana bisa
mengakses basis data baik dengan DBMS maupun tidak.
5. Perangkat lunak lain
Aplikasi lain bersifat opsional, artinya ada tidaknya bergantung pada
kebutuhan. DBMS yang digunakan lebih berperan dalam pengorganisasian
data dalam database. Sementara bagi pemakai database khususnya end user
dapat dibuatkan program aplikasi khusus untuk melakukan pengisian,
pengubahan dan pengambilan data
2.4.4 Kegunaan DBMS
Menurut Kadir (2002) tujuan awal dan utama dalam pengelolaan data
dalam sebuah basis data adalah agar dapat diperoleh data dengan mudah dan
cepat. Selain itu pemanfaatan basis data dilakukan untuk memenuhi tujuan-tujuan
berikut ini :
1. Kecepatan dan kemudahan
Basis data memungkinkan untuk dapat menyimpan dan melakukan perubahan
terhadap data dan menampilkan kembali dengan cepat dan mudah.
2. Efisiensi ruang penyimpanan (space)
Efisiensi ruang penyimpanan dapat dilakukan karena terjadi penekanan jumlah
redundansi data, baik dengan penerapan sejumlah pengkodean atau
menggunakan relasi-relasi antar kelompok data yang saling berhubungan satu
sama lain.
26
3. Keakuratan (accuracy)
Pemanfaatan pengkodean atau pembentukan relasi antar data bersama dengan
menerapkan aturan tipe data, domain data dan lainnya secara ketat dapat
menekan ketidakakuratan pemasukan data atau penyimpanan data.
4. Ketersediaan (availibility)
Pertumbuhan data sejalan dengan waktu yang semakin membutuhkan ruang
penyimpanan yang besar, padahal tidak semua data digunakan karena itu dapat
dipilih adanya data utama, data transaksi, hingga data kadaluarsa.
5. Kelengkapan (completeness)
Lengkapnya data yang dikelola dalam sebuah basis data bersifat relatif.
Record-record data dapat ditambahkan untuk menambah kelengkapan.
6. Keamanan (security)
Membangun basis data, sehingga dapat ditentukan siapa saja yang berhak
menggunakan basis data dan operasi apa saja yang boleh dilakukan sehingga
keamanan terjamin.
7. Kebersamaan pemakaian (share ability)
Pemakaian basis data umumnya tidak terbatas pada satu pemakai atau satu
lokasi saja. Basis data juga dapat dikelola oleh sistem yang didukung
lingkungan banyak pemakai (multiuser).
2.5 Bahasa Pemrograman Microsoft Visual C#
Visual studio C# adalah bahasa pemrograman baru yang diciptakan oleh
Microsoft (dikembangkan di bawah kepemimpinan Anders Hejlsberg yang juga
telah menciptakan berbagai macam bahasa pemrograman termasuk Borland Turbo
C++ dan Borland Delphi). Bahasa C# juga telah distandarisasi secara
internasional oleh ECMA.
C# bisa digunakan untuk membangun berbagai macam jenis aplikasi, serta
aplikasi berbasis windows (desktop) dan aplikasi berbasis web serta aplikasi
berbasis web services seperti halnya pada bahasa pemrograman yang lain.
27
Beberapa alasan kenapa memilih C#, yaitu :
a) Sederhana
C# bersifat sederhana, karena bahasa ini didasarkan kepada bahasa C dan C++.
Seperti C dan C++ atau bahkan Java dalam C# pun akan ditemukan aspek-aspek
yang begitu familiar, seperti statements, expression, operators dan beberapa
fungsi yang diadopsi langsung dari C dan C++, tetapi dengan berbagai perbaikan
yang membuat bahasanya menjadi lebih sederhana.
b) Object Oriented Language
C# memenuhi syarat-syarat sebagai sebuah bahasa pemrograman yang bersifat
Object Oriented, yaitu encapsulation, inheritance dan polymorphism.
c) Powerfull dan Fleksibel
C# bisa digunakan untuk membuat berbagai macam aplikasi, seperti aplikasi
pengolah kata, grafik, spreadsheets, atau bahkan membuat kompiler untuk sebuah
bahasa permrograman.
d) Efisien
C# tidak memiliki terlalu banyak keyword, sehingga dapat mengurangi kerumitan.
e) Modular
Kode C# ditulis dengan pembagian masing kelas-kelas (classes) yang terdiri dari
beberapa routines yang disebut sebagai member methods. Class-Class dan
metode-metode ini dapat digunakan kembali oleh program atau aplikasi lain.
Hanya dengan memberikan informasi yang dibutuhkan oleh Class dan metode
yang dimaksud, maka dapat dibuat suata kode yang dapat digunakan oleh satu
atau beberapa aplikasi dan program (reusable code).
2.6 Database SQL Server
SQL Server express adalah DBMS yang dikembangkan oleh Microsoft
yang merupakan perkembangan lebih lanjut dari MSDE (Microsoft Database
Engine). SQL Server Express didistribusikan secara cuma-cuma tanpa biaya
lisensi apapun dalam pemakaiannya.
2.6.1 Komponen SQL Server
SQL Server 2005 terdiri atas beberapa komponen sebagai berikut:
a. Relational Database Engine : komponen utama atau jantung SQL Server 2005.
28
b. Analysis Services : basis dari solusi intelijen bisnis yang ampuh (powerful),
dan mendukung aplikasi-aplikasi OLAP (Online Analytical Processing), serta
data minning.
c. Data Transformation Service (DTS) : sebuah mesin untuk membuat solusi
ekspor dan impor data, serta untuk mentransformasi data ketika data tersebut
ditransfer.
d. Notification Services: sebuah framework untuk solusi dimana pelanggan akan
dikirimi notifikasi ketika sebuah event muncul.
e. Reporting Services: service yang akan mengambil data dari SQL Server, dan
menghasilkan laporan-laporan.
f. Service broker: sebuah mekanisme antrian yang akan menangani komunikasi
berbasis pesan diantara service.
g. Native HTTP Support: dukungan yang memungkinkan SQL server 2005 yang
(jika diinstall pada Windows Server 2003) akan merespon request terhadap
HTTP end point, sehingga memungkinkan pembangunan sebuah web service
untuk SQL Server tanpa menggunakan IIS.
h. SQL server Agent : akan mengotomatiskan perawatan database dan mengatur
task, event dan alert.
i. .NET CLR (Common Language Runtime): akan memungkinkan pembuatan
solusi menggunakan managed code yang ditulis dalam salah satu bahasa
.NET.
j. Replication: serangkaian teknologi untuk menjalin dan mendistribusikan data
dan obyek database dari sebuah database ke database lain, dan melakukan
sinkronisasi untuk menjaga konsistensinya.
k. Full-Text Search: memungkinkan pengindeksan yang cepat dan flexibel untuk
query berbasis kata kunci (terhadap data teks yang disimpan dalam database).
2.6.2 Keunggulan SQL Server
Keunggulan SQL Server Express adalah dapat diintegrasikan oleh IDE
Visual Studio 2005 beserta fitur-fitur DBMS khas keluarga SQL Server seperti :
29
a.
Dukungan prosedur penyimpanan
b.
View, Trigger, dan Cursors
c.
Utilitas manajemen berbasis commandline seperti sqlcmd dan osql
d.
Utilitas manajemen berbasis GUI dengan bantuan SQL Management Studio
Express (dipasang secara terpisah)
e.
Dukungan Transact-SQL
f.
Advanced Query Optimizer
g.
Dukungan XML secara native seperti dengan Xquery
h.
SQL CLR, melakukan perintah sql dalam bahasa standar CLR seperti C#
i.
Utilitas konfigurasi server dengan SQL Configuration Manager
2.6.3 Tipe Data SQL Server
Ada 7 kategori tipe data yang disediakan oleh SQL Server :
Tabel 2.3 Katagori Tipe Data
Katagori Tipe Data
Exact numeric
Approximate numeric
Monetary
Date and time
Character
Binary
Tipe data tertentu/spesial
Tujuan
Menyimpan sebuah angka pasti dengan atau
tanpa desimal
Menyimpan angka numeric dengan atau
tanpa desimal
Menyimpan nilai dengan desimal, biasanya
digunakan untuk menyimpan data mengenai
uang
Menyimpan informasi tanggal
Menyimpan karakter
Menyimpan data binary
Menyimpan data yang membutuhkan
penanganan khusus, seperti XML atau
GUIDs (Globally Unique Identifiers)
Sumber (http://msdn.microsoft.com/en-us/library/ms189826(SQL.90).aspx., 2012)
30
Berikut ini adalah penjelasan dari masing-masing katagori dari tipe data tersebut :
1. Tipe Data Exact Numeric
Tabel 2.4 Tipe Data Exact Numeric
Tipe Data
bigint
int
smallint
tinyint
decimal (p,s)
Besar File
8 bytes
4 bytes
2 bytes
1 bytes
5-17 bytes tergantung
tingkat presisi yang
dibutuhkan
5-17 bytes tergantung
tingkat presisi yang
dibutuhkan
numeric (p,s)
Range Nilai
-2E63 sampai 2E63-1
-2E31 sampai 2E31-1
-32,768 sampai 32,767
0 sampai 255
-10E38+1 sampai 10E38-1
-10E38+1 sampai 10E38-1
Sumber (http://msdn.microsoft.com/en-us/library/ms189826(SQL.90).aspx., 2012)
2. Tipe Data Approximate Numeric
Tabel 2.5 Tipe Data Approximate Numeric
Tipe Data
float (p)
real
Besar File
4 atau 8 bytes
4 bytes
Range Nilai
-2.23E308 sampai 2.23E308
-3.4E38 sampai 3.4E38
Sumber (http://msdn.microsoft.com/en-us/library/ms189826(SQL.90).aspx., 2012)
3. Tipe Data Monetary
Tabel 2.6 Tipe Data Monetary
Tipe Data
money
Besar File
8 bytes
smallmoney
4 bytes
Range Nilai
-922,337,203,685,477.5808 sampai
922,37,203,685,477.5807
-214,748.3648 sampai 214,748.3647
Sumber (http://msdn.microsoft.com/en-us/library/ms189826(SQL.90).aspx., 2012)
31
4. Tipe Data Date and Time
Tabel 2.7 Tipe Data Date and Time
Tipe Data
datetime
Besar File
8 bytes
smalldatetime
4 bytes
Range Nilai
1 January 1753 hingga 31 Desember
9999, dengan tingkat akurasi hingga
3.33 milliseconds
1 Januari 1900 sampai 6 Juni 2079
dengan tingkat akurasi hingga 1
menit
Sumber (http://msdn.microsoft.com/en-us/library/ms189826(SQL.90).aspx., 2012)
5. Tipe Data Character
Tabel 2.8 Tipe Data Character
Tipe Data
char (n)
Besar File
1-8000 bytes
nchar (n)
varchar (n)
varchar (max)
2-8000 bytes
1-8000 bytes
Hingga 2 GB
nvarchar (n)
nvarchar (max)
2-8000 bytes
Hingga 2 GB
text
Hingga 2 GB
ntext
Hingga 2 GB
Range Nilai
Maksimum mencapai 8000
karakter
Maksimum 4000 karakter
Mencapai 8000 karakter
Maksimum mencapai
1,073,741,824 karakter
Maksimum 4000 karakter
Maksimum mencapai
536,870,912 karakter
Maksimum mencapai
1,073,741,824 karakter
Maksimum mencapai
536,870,912 karakter
Sumber (http://msdn.microsoft.com/en-us/library/ms189826(SQL.90).aspx., 2012)
6. Tipe Data Binary
Tabel 2.9 Tipe Data Binary
Tipe Data
binary (n)
varbinary (n)
varbinary (max)
image
Besar File
1-8000 bytes
1-8000 bytes
Hingga 2 GB
Hingga 2 GB
Sumber (http://msdn.microsoft.com/en-us/library/ms189826(SQL.90).aspx., 2012)
32
7. Tipe Data Spesial
Tipe data spesial dengan tujuan tertentu pada dasarnya terdiri dari: bit,
timestamp, uniqueidentifier, sql_variant, cursor, table, dan XML.
Demikianlah ketujuh kategori tipe data yang terdapat di SQL Server.
Mengetahui karakteristik tipe data merupakan sebuah pekerjaan penting karena
dengan pemilihan tipe data yang tepat dapat mengurangi beban kerja server
komputer. Performa server dapat ditingkatkan secara optimal dengan menerapkan
tipe data yang tepat.
Download