SEMESTER 1
DI SUSUN OLEH :
Kelas : XI_RPL2
DINAS PENDIDIKAN
Puji syukur saya senantiasa ucapkan atas kehadirat Allah SWT karena curahan rahmat serta
karunianya lah kami akhirnya sampai pada tahap menyelesaikan E-book Rekayasa
Perangkat Lunak untuk memenuhi kebutuhan tugas pada semester ini.
Saya sekaligus pula menyampaikan rasa terimakasih yang sebanyak-banyaknya untuk Bapak
Zul Hilmi selaku guru produktif pada mata pelajaran kali ini yang telah memberi banyak
ilmu kepada kami sehingga dapat memudahkan dalam menyelesaikan buku ini.
Saya sungguh-sungguh berharap sekali buku ini bisa berguna pada tujuan untuk
meningkatkan pengetahuan sekaligus wawasan terkait di dunia IT.
Saya juga sadar bahwa pada makalah ini tetap ditemukan banyak kekurangan serta jauh
dari kesempurnaan. Dengan demikian, saya benar benar menanti adanya kritik dan saran
untuk perbaikan buku yang hendak saya tulis di masa yang selanjutnya, menyadari tidak ada
suatu hal yang sempurna tanpa disertai saran yang konstruktif.
Kami berharap buku sederhana ini bisa dimengerti oleh setiap pihak terutama untuk para
pembaca. Kami mohon maaf yang sebesar-besarnya jika ada perkataan yang tidak berkenan
di hati.
BAB 1 . PENDAHULUAN
o Apa itu RPL
o Tujuan RPL
o Ruang lingkup RPL
BAB II . PEMOGRAMAN WEB DINAMIS
o Perbedaan Web Dinamis dengan Web Statis
o Ciri ciri Web Dinamis
o Kekurangan Web Dinamis
o Kelebihan web Dinamis
o PHP
BAB III . PEMODELAN PERANGKAT LUNAK
o Pengertian PPL
o Karakteristik PPL
o Waterfall Model
o Evolutionary Software Process Models
o Incremental Model
o Spiral Model
o Transpormasi Formal
o Prototypyng Model
o Component-based Development Model
o Ekstrem Programming(XP) Model
o ERD
o DFD
BAB IV . BASIS DATA
o Pengertian Basis Data
o Istirah Basis Data
o Komponen Sistem Basis Data
o Tujuan basis data
o Mysql sebagai RDBMS
o Database dalam Relational Database
DAFTAR PUSTAKA
BAB I
PENDAHULUAN
Selama 50 tahun terakhir telah terjadi kemajuan revolusioner di bidang teknologi, yang
mengarah pada perbaikan kinerja perangkat keras dan perubahan besar dalam arsitektur
komputasi. Kemajuan ini telah menyebabkan produksi sistem berbasis komputer yang
kompleks yang mampu memberikan informasi dalam berbagai format. Meningkatnya daya
komputer telah membuat aplikasi komputer yang tidak realistis menjadi proposisi yang layak,
menandai asal mula era di mana produk perangkat lunak jauh lebih kompleks dibandingkan
sebelumnya. Dengan mempelajari dan mempraktikan ilmu rekayasa perangkat lunak (software
engineering), sistem kompleks ini dapat dikembangkan secara sistematis dan efisien.
Pengetahuan mendalam tentang ilmu komputer baik teoritis maupun praktis merupakan dasar
rekayasa perangkat lunak. Pengetahuan teoritis memberikan pemahaman tentang masalah
mana yang dapat diatasi, struktur data dan algoritma apa yang sesuai, kapan dan bagaimana
penggunaannya, dan lain sebagainya. Di sisi lain, pengetahuan praktis memberikan
pemahaman tentang bagaimana fungsi perangkat keras, bagaimana memanfaatkan kekuatan
bahasa pemrogramanan dan tools terkait saat mengembangkan perangkat lunak, dan lain-lain.
Oleh karena itu pada kesempatan kali ini saya akan menjelaskan kepada kalian tentang
rekayasa perangkat lunak beserta teori teori yamg ada di dalamnya, semoga bermanfaat dan
selamat belajar
1.1 Apa itu RPL?
Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE)
adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat
lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat
lunak dan manajemen kualitas.
Menurut Wikipedia : Rekayasa perangkat lunak adalah satu bidang profesi yang mendalami
cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen
organisasi pengembanganan perangkat lunak dan manajemen kualitas.
Menurut IEEE Computer Society : Rekayasa perangkat lunak sebagai penerapan suatu
pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan
pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan
pendekatan engineering atas perangkat lunak.
Perangkat lunak adalah istilah umum untuk data yang diformat dan disimpan secara digital,
termasuk program komputer, dokumentasinya, dan berbagai informasi yang bisa dibaca dan
ditulis oleh komputer. Dengan kata lain, bagian sistem komputer yang tidak berwujud. Istilah
ini menonjolkan perbedaan dengan perangkat keras komputer.
Secara umum tujuan Rekayasa Perangkat Lunak tidak berbeda dengan bidang rekayasa yang
lain. Bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi
waktu penyelesaian yang tepat dan Berbiaya rendah. Secara lebih khusus kita dapat
menyatakan tujuan RPL adalah sebagai berikut:
Menghasilkan perangkat lunak yang kinerjanya tinggi, andal serta tepat waktu.
Memperoleh biaya produksi perangkat lunak yang rendah.
Menghasilkan perangkat lunak yang biaya perawatan rendah.
Menghasilkan perangkat lunak yang bisa bekerja di berbagai jenis platform.
Pemograman Web Statis(PWS) adalah pemograman yang bersifat tetap dan tidak dapat di
ubah kangsung dari programnya akan tetapi harus mengubah source codenya terlebih dahulu.
Sedangkan Pemograman Web Dinamis (PWD) adalah pemograman yang bersifat Fleksibel
sehingga dapat diubah langsung dari programnya tanpa harus merubah source kodenya
terlebih dahulu
Menggunakan bahasa pemrograman web misalnya seperti PHP, HTML dan yang
2.2 Ciri ciri Web Dinamis
Memiliki database.
lainnya.
Konten di dalamnya bisa berasal dari pengunjung dan bisa juga dari database.
Lebih sering di-update.
2.3 Kekurangan Web Dinamis
Bisa mepasilitasi komunikasi 2 arah antara admin dan juga visitor (pengunjung web).
Konten yang terbaru selalu berada di urutan paling ataus atau pertama karena untuk
memperjelas konten yang diupdate.
2.5 PHP!
2.5.1 Pengertian PHP
PHP adalah bahasa pemrograman script server-side yang didesain untuk pengembangan
web. Selain itu, PHP juga bisa digunakan sebagai bahasa pemrograman umum. PHP di
kembangkan pada tahun 1995 oleh Rasmus Lerdorf, dan sekarang dikelola oleh The PHP
Group. Situs resmi PHP beralamat di http://www.php.net.
PHP disebut bahasa pemrograman server side karena PHP diproses pada komputer
server. Hal ini berbeda dibandingkan dengan bahasa pemrograman client-side seperti
JavaScript yang diproses pada web browser (client).
Pada awalnya PHP merupakan singkatan dari Personal Home Page. Sesuai dengan
namanya, PHP digunakan untuk membuat website pribadi. Dalam beberapa tahun
perkembangannya, PHP menjelma menjadi bahasa pemrograman web yang powerful dan
tidak hanya digunakan untuk membuat halaman web sederhana, tetapi juga website
populer yang digunakan oleh jutaan orang seperti wikipedia, wordpress, joomla, dll.
Saat ini PHP adalah singkatan dari PHP: Hypertext Preprocessor, sebuah
kepanjangan rekursif, yakni permainan kata dimana kepanjangannya terdiri dari
singkatan itu sendiri: PHP: Hypertext Preprocessor.
PHP dapat digunakan dengan gratis (free) dan bersifat Open Source. PHP dirilis dalam
lisensi PHP License, sedikit berbeda dengan lisensi GNU General Public License
(GPL) yang biasa digunakan untuk proyek Open Source.
Untuk membuat halaman web, sebenarnya PHP bukanlah bahasa pemrograman yang
wajib digunakan. Kita bisa saja membuat website hanya menggunakan HTML saja. Web
yang dihasilkan dengan HTML (dan CSS) ini dikenal dengan website statis, dimana
konten dan halaman web bersifat tetap.
Sebagai perbandingan, website dinamis yang bisa dibuat menggunakan PHP adalah situs
web yang bisa menyesuaikan tampilan konten tergantung situasi. Website dinamis juga
bisa menyimpan data ke dalam database, membuat halaman yang berubah-ubah sesuai
input dari user, memproses form, dll.
Untuk pembuatan web, kode PHP biasanya di sisipkan kedalam dokumen HTML.
Karena fitur inilah PHP disebut juga sebagai Scripting Language atau bahasa
pemrograman script.
Sebagai contoh penggunaan PHP, misalkan kita ingin membuat list dari nomor 1 sampai
nomor 10. Dengan menggunakan HTML murni, kita bisa membuatnya secara manual
seperti kode berikut ini:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Contoh list dengan HTML</title>
5 </head>
6 <body>
7 <h2>Daftar Absensi Mahasiswa</h2>
8 <ol>
9 <li>Nama Mahasiswa ke-1</li>
10 <li>Nama Mahasiswa ke-2</li>
11 <li>Nama Mahasiswa ke-3</li>
12 <li>Nama Mahasiswa ke-4</li>
13 <li>Nama Mahasiswa ke-5</li>
14 <li>Nama Mahasiswa ke-6</li>
15 <li>Nama Mahasiswa ke-7</li>
16 <li>Nama Mahasiswa ke-8</li>
17 <li>Nama Mahasiswa ke-9</li>
18 <li>Nama Mahasiswa ke-10</li>
19 </ol>
20 </body>
21 </html>
Halaman HTML tersebut dapat dibuat dengan mudah dengan cara men-copy-
paste tag <li> sebanyak 10 kali dan mengubah sedikit angka-angka no urut di
belakangnya. Namun jika yang kita inginkan adalah menambahkan list tersebut menjadi
100 atau 1000 list, cara copy-paste tersebut menjadi tidak efektif.
Jika menggunakan PHP, kita tinggal membuat perulangan for sebanyak 1000 kali dengan
perintah yang lebih singkat seperti berikut ini:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Contoh list dengan PHP</title>
5 </head>
6 <body>
7 <h2>Daftar Absensi Mahasiswa</h2>
8 <ol>
9 <?php
10 for ($i= 1; $i <= 1000; $i++)
11 {
12 echo "<li>Nama Mahasiswa ke-$i</li>";
13 }
14 ?>
15 </ol
16 </body>
17 </html>
Dengan menggunakan kode baris yang bahkan lebih sedikit, kita dapat membuat list
tersebut menjadi 1000 kali, bahkan 100.000 kali dengan hanya mengubah sebuah
variabel $i.
BAB III
Pemodelan dalam suatu rekayasa perangkat lunak merupakan suatu hal yang dilakukan di
tahapan awal. Di dalam suatu rekayasa dalam perangkat lunak sebenarnya masih
memungkinkan tanpa melakukan suatu pemodelan. Namun hal itu tidak dapat lagi
dilakukan dalam suatu industri perangkat lunak. Pemodelan delam perangkat lunak
merupakan suatu yang harus dikerjakan di bagian awal dari rekayasa, dan pemodelan ini
akan mempengaruhi perkerjaan-pekerjaan dalam rekayasa perangkat lunak tersebut.
Di dalam suatu industri dikenal berbagai macam proses, demikian juga halnya dengan
industri perangkat lunak. Perbedaan proses yang digunakan akan menguraikan aktivitas-
aktivitas proses dalam cara-cara yang berlainan. Perusahaan yang berbeda menggunakan
proses yang berbeda untuk menghasilkan produk yang sama. Tipe produk yang berbeda
mungkin dihasilkan oleh sebuah perusahaan dengan menggunakan proses yang berbeda.
Namun beberapa proses lebih cocok dari lainnya untuk beberapa tipe aplikasi. Jika proses
yang salah digunakan akan mengurangi kualitas kegunaan produk yang dikembangkan.
Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu
proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada
model proses pengembangan sistem yang disebut System Development Life Cycle
(SDLC) seperti terlihat pada gambar dibawah ini,
Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap model
pengembangan perangkat lunak adalah pendefinisian masalah yang jelas. Semakin
jelas akan semakin baik karena akan memudahkan dalam penyelesaian masalah. Oleh
karena itu pemahaman masalah merupakan bagian penting dari model pengembangan
perangkat lunak.
Tahapan-tahapan pengembangan yang teratur. Meskipun model-model
pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-
model tersebut mengikuti pola umum analysis – design – coding – testing –
maintenance.
Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan.
Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna, pemilik,
pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat
lunak tersebut.
Dokumentasi merupakan bagian penting dari pengembangan perangkat lunak.
Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan,
diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan
bagian tak terpisahkan dari perangkat lunak yang dihasilkan.
Keluaran dari proses pengembangan perangkat lunak harus bernilai ekonomis. Nilai
dari sebuah perangkat lunak sebenarnya agak susah dirupiah- kan. Namun efek dari
penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai
tambah bagi organisasi. Hal ini dapat Setiap model yang dikembangkan mempunyai
karakteristik sendiri-sendiri.
1. Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang
baik.
2. Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus
terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
Keterangan:
1. Cocok untuk proyek berukuran kecil (tidak lebih dari 200.000 baris coding)
2. Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana
spesifikasi masing-masing hasil increment
3. Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat
perubahan selama proses rekayasa berlangsung.
1. Objective settings (menentukan tujuan): menentukan tujuan dari fase yang ditentukan.
Batasan-batasan pada proses dan produk sudah diketahui. Perencanaan sudah disiapkan.
Resiko dari proyek sudah diketahui. Alternatif strategi sudah disiapkan berdasarkan
resiko-resiko yang diketahui, dan sudah direncanakan.
2. Risk assessment and reduction (Penanganan dan pengurangan resiko): setiap resiko
dianalisis secara detil pada sektor ini. Langkahlangkah penanganan dilakukan, misalnya
membuat prototype untuk mengetahui ketidakcocokan kebutuhan.
3. Development and Validation (Pembangunan dan pengujian): Setelah evaluasi resiko,
maka model pengembangan sistem dipilih. Misalnya jika resiko user interface dominan,
maka membuat prototype User Interface. Jika bagian keamanan yang bermasalah, maka
menggunakan model formal dengan perhitungan matematis, dan jika masalahnya adalah
integrasi sistem model waterfall lebih cocok.
4. Planning: Proyek dievaluasi atau ditinjau-ulang dan diputuskan untuk terus ke fase loop
selanjutnya atau tidak. Jika melanjutkan ke fase berikutnya rencana untuk loop
selanjutnya.
Pembagian sektor tidak bisa saja dikembangkan seperti pada pembagian sektor berikut pada
model variasi spiral di bawah ini:
Pada model spiral, resiko sangat dipertimbangkan. Resiko adalah sesuatu yang mungkin
mengakibatkan kesalahan. Model spiral merupakan pendekatan yang realistik untuk PL
berskala besar. Pengguna dan pembangun bisa memahami dengan baik software yang
dibangun karena setiap kemajuan yang dicapai selama proses dapat diamati dengan baik.
Namun demikian, waktu yang cukup panjang mungkin bukan pilihan bagi pengguna, karena
waktu yang lama sama dengan biaya yang lebih besar.
3.7 Transformasi Formal
Metode ini berbasiskan pada transformasi spesifikasi secara matematik melalui representasi
yang berbeda untuk suatu program yang dapat dieksekusi. Trasformasi menyatakan
spesifikasi program Menggunakan pendekatan ‘Cleanroom’ untuk pengembangan PL.
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modelling disaring ke
dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik
(disebut atribut) masing–masing objek diidentifikasi dan hubungan antara objek – objek
tersebut didefinisikan.
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk
mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran
pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan
kembali sebuah objek data.
3.7.4. Aplication generation
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah
diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus di uji
dan semua interface harus dilatih secara penuh.
1. Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dan
dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga
waktunya lebih efisien
2. RAD mengikuti tahap pengembangan sistem seperti umumnya, tetapi mempunyai
kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang
tidak perlu membuat dari awal lagi dan waktu yang lebih singkat
Kekurangan model RAD adalah :
1. Bagi proyek yang besar tetapi berskala, RAD memerlukan sumber daya manusia yang
memadai untuk menciptakan jumlah tim RAD yang baik.
2. RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas
rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu
yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.
Kadang-kadang klien hanya memberikan beberapa kebutuhan umum software tanpa detil
input, proses atau detil output. Di lain waktu mungkin dimana tim pembangun (developer)
tidak yakin terhadap efisiensi dari algoritma yang digunakan, tingkat adaptasi terhadap sistem
operasi atau rancangan form user interface. Ketika situasi seperti ini terjadi model
prototyping sangat membantu proses pembangunan software.
Proses pada model prototyping yang digambarkan pada gambar model prototyping, bisa
dijelaskan sebagai berikut:
Pengumpulan kebutuhan: developer dan klien bertemu dan menentukan tujuan umum,
kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya.
Detil kebutuhan mungkin tidak dibicarakan disini, pada awal pengumpulan kebutuhan.
Perancangan : perancangan dilakukan cepat dan rancangan mewakili semua aspek
software yang diketahui, dan rancangan ini menjadi dasar pembuatan prototype.
Evaluasi prototype: klien mengevaluasi prototype yang dibuat dan digunakan untuk
memperjelas kebutuhan software.
Perulangan ketiga proses ini terus berlangsung hingga semua kebutuhan terpenuhi. Prototype-
prototype dibuat untuk memuaskan kebutuhan klien dan untuk memahami kebutuhan klien
lebih baik. Prototype yang dibuat dapat dimanfaatkan kembali untuk membangun software
lebih cepat, namun tidak semua prototype bisa dimanfaatkan. Sekalipun prototype
memudahkan komunikasi antar developer dan klien, membuat klien mendapat gambaran
awal dari prototype , membantu mendapatkan kebutuhan detil lebih baik namun demikian
prototype juga menimbulkan masalah:
Dalam membuat prototype banyak hal yang diabaikan seperti efisiensi, kualitas,
kemudahan dipelihara/dikembangkan, dan kecocokan dengan lingkungan yang
sebenarnya. Jika klien merasa cocok dengan prototype yang disajikan dan berkeras
terhadap produk tersebut, maka developer harus kerja keras untuk mewujudkan produk
tersebut menjadi lebih baik, sesuai kualitas yang seharusnya.
Developer biasanya melakukan kompromi dalam beberapa hal karena harus membuat
prototype dalam waktu singkat. Mungkin sistem operasi yang tidak sesuai, bahasa
pemrograman yang berbeda, atau algoritma yang lebih sederhana. Agar model ini bisa
berjalan dengan baik, perlu disepakati bersama oleh klien dan developer bahwa prototype
yang dibangun merupakan alat untuk mendefinisikan kebutuhan software.
1. Identifikasi class-class yang akan digunakan kembali dengan menguji class tersebut
dengan data yang akan dimanipulasi dengan aplikasi/software dan algoritma yang baru
2. Class yang dibuat pada proyek sebelumnya disimpan dalam class library, sehingga bisa
langsung diambil dari library yang sudah ada. Jika ternyata ada kebutuhan class baru,
maka class baru dibuat dengan metode berorientasi objek.
3. Bangun software dengan class-class yang sudah ditentukan atau class baru yang dibuat,
integrasikan.
Penggunaan kembali komponen software yang sudah ada menguntungkan dari segi:
►Siklus waktu pengembangan software, karena mampu mengurangi waktu 70%
►Biaya produksi berkurang sampai 84% arena pembangunan komponen berkurang
► pengujian
► pay-as-you-go design
Sebagai contoh :
Adapun empat nilai penting dari XP :
ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data
berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi. ERD untuk
memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan
beberapa notasi dan simbol.
Menurut salah satu para ahli, Brady dan Loonam (2010), Entity Relationship diagram
(ERD) merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu
organisasi, biasanya oleh System Analys dalam tahap analisis persyaratan proyek
pengembangan system. Sementara seolah-olah teknik diagram atau alat peraga memberikan
dasar untuk desain database relasional yang mendasari sistem informasi yang dikembangkan.
ERD bersama-sama dengan detail pendukung merupakan model data yang pada gilirannya
digunakan sebagai spesifikasi untuk database.
Entitas adalah objek dalam dunia nyata yang dapat dibedakan dengan objek lain, sebagai
contoh mahasiswa,dosen,departemen. Entitias terdiri atas beberapa atribut sebagai contoh
atribut dari entitas mahasiswa adalah nim,nama,alamat,email, dll. Atribut nim merupakan unik
untuk mengidentifikasikan / membedakan mahasiswa yg satu dengan yg lainnya. Pada setiap
entitas harus memiliki 1 atribut unik atau yang disebut dengan primary key.
Atribut adalah Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi
untuk mendeskripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu
yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili oleh
simbol elips.
1) Identifier (key) digunakan untuk menentukan suatuentity secara unik (primary key).
Relasi adalah hubungan antara beberapa entitas. sebagai contoh relasi antar mahaiswa
dengan mata kuliah dimana setiap mahasiswa bisa mengambil beberapa mata kuliah dan setiap
mata kuliah bisa diambil oleh lebih dari 1 mahasiswa. relasi tersebut memiliki hubungan
banyak ke banyak. Berikut adalah contoh ERD.
Kardinalitas menyatakan jumlah himpunan relasi antar entitias. pemetaan kardiniliat terdiri
dari :
· one-to-one :sebuah entitas pada A berhubungan dengan entitas B paling banyak 1contoh
diatas relasi pegawai dan departemen dimana setiap pegawai hanya bekerja pada 1 departemen
· one-to-many : sebuah entitas pada A berhubungan dengan entitas B lebih dari satu contoh
diatas adalah 1 depertemen memiliki banyak pegawai
· many-to-many : sebuah entitas pada A berhubungan dengan entitas B lebih dari satu dan
B berhubungan dengan A lebih dari satu jugan contoh diatas adalah relasi mahasiswa dengan
mata kuliah.
Berikut adalah metode/tahap untuk membuat ERD :
· Menentukan Entitas
· Menentukan Relasi
· Menggambar ERD sementara
· Mengisi Kardinalitas
· Menentukan Kunci Utama
· Menggambar ERD berdasar Key
· Menentukan Atribut
· Memetakan Atribut
· Menggambar ERD dengan Atrib
Entity Relational Diagram atau biasa disingkat dengan ERD, ini sangat terkenal bagi mereka
(mahasiswa/mahasiswi) tingkat akhir yang sedang membuat tugas akhir, paper, skripsi, dll
Pengertian Entity Relational Diagram (ERD) adalah proses hubungan antar file yang
direlasikan dengan relation key yang merupakan primary key dari masing-masing file.
3.12.2 Simbol-simbol dalam ERD:
1. Entitas (Entity)
Relasi ialah hubungan yang terjadi antara 1 entitas atau lebih yang
tidak mempunyai fisik tetapi hanya sebagai konseptual. Dan berfungsi untuk
mengetahui jenis hubungan yang ada antara 2 file. Relisi memiliki bentuk belah
ketupat.
3. Atribut
Data Flow Diagram (DFD) merupakan suatu cara atau metode untuk membuat rancangan
sebuah sistem yang mana berorientasi pada alur data yang bergerak pada sebuah sistem
nantinya. Dalam pembuatan Sistem Informasi, DFD sering digunakan. DFD dibuat oleh para
analis untuk membuat sebuah sistem yang baik. Dimana DFD ini nantinya diberikan kepada
para programmer untuk melakukan proses coding. Dimana para programmer melakukan
sebuah coding sesuai dengan DFD yang dibuat oleh para analis sebelumnya. Tools yang
digunakan pada pembuatan DFD (Data Flow Diagram) yaitu EasyCase, Power Designer 6.
Salah satu cara lain untuk mendesain sistem yaitu menggunakan UML(Unified Manual
Language).
3.14.1 Komponen DFD (Data Flow Diagram)
1. User / Terminator: Kesatuan diluar sistem (external entity) yang memberikan input ke
sistem atau menerima output dari sistem berupa orang, organisasi, atau sistem lain.
2. Process: Aktivitas yang mengolah input menjadi output.
3. Data Flow: Aliran data pada sistem (antar proses, antara terminator & proses, serta
antara proses & data store).
4. Data Store: Penyimpanan data pada database, biasanya berupa tabel.
Didalam DFD terdapat 3 level, yaitu :
1. Diagram Konteks : menggambarkan satu lingkaran besar yang dapat mewakili seluruh
proses yang terdapat di dalam suatu sistem. Merupakan tingkatan tertinggi dalam DFD dan
biasanya diberi nomor 0 (nol). Semua entitas eksternal yang ditunjukkan pada diagram
konteks berikut aliran-aliran data utama menuju dan dari sistem. Diagram ini sama sekali
tidak memuat penyimpanan data dan tampak sederhana untuk diciptakan.
2. Diagram Nol (diagram level-1) : merupakan satu lingkaran besar yang mewakili
lingkaran-lingkaran kecil yang ada di dalamnya. Merupakan pemecahan dari diagram
Konteks ke diagram Nol. di dalam diagram ini memuat penyimpanan data.
3. Diagram Rinci : merupakan diagram yang menguraikan proses apa yang ada dalam
diagram Nol.
3.14.2 Fungsi DFD
Fungsi dari Data Flow Diagram adalah :
Data Flow Diagram (DFD) adalah alat pembuatan model yang memungkinkan
profesional sistem untuk menggambarkan sistem sebagai suatu jaringan proses
fungsional yang dihubungkan satu sama lain dengan alur data, baik secara manual
maupun komputerisasi.
DFD ini adalah salah satu alat pembuatan model yang sering digunakan, khususnya bila
fungsi-fungsi sistem merupakan bagian yang lebih penting dan kompleks dari pada data
yang dimanipulasi oleh sistem. Dengan kata lain, DFD adalah alat pembuatan model
yang memberikan penekanan hanya pada fungsi sistem.
DFD ini merupakan alat perancangan sistem yang berorientasi pada alur data dengan
konsep dekomposisi dapat digunakan untuk penggambaran analisa maupun rancangan
sistem yang mudah dikomunikasikan oleh profesional sistem kepada pemakai maupun
pembuat program.
Contoh DFD:
BAB IV
BASIS DATA
4.2.1. Entititas
Entititas adalah orang, tempat, kejadian atau konsep yang informasinya direkam.Pada bidang
kesehatan Entity adalah Pasien, Dokter, Kamar.
4.2.2. Field
Setiap entity mempunyai atribut atau sebutan untuk mewakili suatu entity. Seorang siswa
dapat dilihat dari atributnya misalnya, NIM, Nama_siswa, Alamat.
4.2.3. Record
Record adalah kumpulan isi elemen data (atribut) yang saling berhubungan
menginformasikan tentang suatu entity secara lengkap.
Contoh Kumpulan atribut NIP, Nama, dan alamat berisikan “01001245566”, Sanusi,
Jl. Hati suci No 2 Kupang.
4.2.4. Data Value
Merupakan data aktual atau infomasi yang disimpan ditiap data elemen. Isi atribut disebut
nilai data.
Kunci Elemen Data ( Key Data Element )Tanda pengenal yang secara unik
mengidentifikasikan entitas dari suatu kumpulan
entitas.
Contoh Entitas Mahasiswa yang mempunyai atribut-atribut npm, nama, alamat,
tanggal lahir menggunakan Kunci Elemen Data npm.Komponen-komponen Sistem Basis
Data ( Database )
Basis data merupakan sistem yang terdiri atas kumpulan file atau tabel yang saling
berhubungan dan Database Management System ( DBMS ) yang memungkinkan beberapa
pemakai untuk mengakses dan manipulasi file-file tersebut (Fathansyah,1999 ).
4. Keamanan (Security)
Dalam sejumlah sistem ( apilkasi ) pengelolah database tidak menerapkan aspek
keamanan dalam penggunaan database. Tetapi untuk sistem yang besar dan serius,
aspek keamanan juga dapat diterapkan. Dengan begitu kita dapat menentukan siapa
yang boleh menggunakan database dan menentukan jenis operasi-operasi apa saja
yang boleh dilakukan.
MySQL adalah salah satu aplikasi RDBMS (Relational Database Management System).
Pengertian sederhana RDBMS adalah: aplikasi database yang menggunakan
prinsip relasional. MySQL juga bukan satu-satunya RDBMS. MySQL
bersifat gratis dan open source. Artinya setiap orang boleh menggunakan dan
mengembangkan aplikasi ini. Namun walaupun gratis, MySQL di support oleh ribuan
programmer dari seluruh dunia, dan merupakan sebuah aplikasi RDBMS yang lengkap,
cepat, dan reliabel.
Berikut beberapa keunggulan MySQL dibandingkan dengan RDBMS lainnya:
Speed
Sebuah studi dari eWeek di February 2002 yang membandingkan performa kecepatan
MySQL dengan RDBMS lainnya, seperti Microsoft SQL Server 2000, IBM DB2, Oracle 9i
dan Sybase :
“MySQL has the best overall performance and that MySQL scalability matches Oracle …
MySQL had the highest throughput, even exceeding the numbers generated by Oracle.”
Yang terjemahan bebasnya, MySQL memiliki kecepatan yang lebih dibandingkan pesaing
yang berbayar. Bagi anda ingin membaca paper tersebut, tersedia di situs MySQL
Reliability
Biasanya sesuatu yang gratis susah diandalkan, bahkan banyak bug dan sering hang. Tidak
demikian dengan MySQL, karena sifatnya yang open source, setiap orang dapat berkontribusi
memeriksa bug dan melakukan test case untuk berbagai skenario yang memerlukan sistem 24
jam online, multi-user dan data ratusan GB. Hasilnya, MySQL merupakan RDBMS yang
reliabel namun memiliki performa diatas rata-rata.
Skalability
MySQL dapat memproses data yang sangat besar dan kompleks, tanpa ada penurunan
performa yang berarti, juga mendukung sistem multi-prosesor. MySQL juga dipakai oleh
perusahaan-perusahaan besar di dunia, seperti Epson, New York Times, Wikipedia, Google,
Facebook, bahkan NASA.
User Friendly
Instalasi dan mempelajari MySQL cukup mudah dan tidak dipusingkan dengan banyak
settingan. Cukup download aplikasi MySQL dan install, kita dapat menggunakan MySQL
dalam waktu kurang dari 5 menit (dengan asumsi tidak mati lampu).
Database MySQL dapat dengan mudah berpindah dari satu sistem ke sistem lainnya.
Misalkan dari sistem Windows ke Linux. Aplikasi MySQL juga dapat berjalan di sistem
Linux (RedHat, SuSE, Mandrake, Debian), Embedded Linux (MontaVista, LynuxWorks
BlueCat),Unix (Solaris, HP-UX, AIX), BSD (Mac OS X, FreeBSD), Windows (Windows
2000, Windows NT) dan RTOS (QNX).
Multiuser Support
Internationalization
Atau dalam bahasa sederhananya, mendukung beragam bahasa. Dengan dukungan penuh
terhadap unicode, maka aksara non-latin seperti jepang, cina, dan korea bisa digunakan di
dalam MySQL.
Biasanya database RDBMS tidak digunakan sendirian, namun ditemani dengan aplikasi atau
bahasa pemograman lainnya untuk menyediakan interface, seperti C, C++, C#, Java, Delphi,
Visual Basic, Perl Python dan PHP. Kesemua itu di dukung oleh API (Application
Programming Interface) oleh MySQL.
Kitapun bisa (jika mampu dan mengerti), mengembangkan MySQL dengan mempelajari
kode programmnya. MySQL di kembangkan dengan bahasa C and C++. Bahkan sudah
terdapat berbagai variasi rasa RDBMS baru yang dikembangkan dari code MySQL,
diantaranya: Drizzle, MariaDB, Percona Server dan OurDelta.
Nomor KTP juga merupakan candidate key yang bagus, setidaknya setiap orang akan
memiliki Nomor KTP yang berbeda-beda. Namun dalam beberapa kasus, nomor KTP tidak
selalu ada, karena bisa saja seseorang belum memiliki KTP karena sesuatu dan lain hal.
Beberapa karakteristik Candidate key : unik (tidak boleh berulang), tidak boleh memiliki nilai
null (kosong), nilai dari candidate key akan sangat jarang berubah.
Dalam tabel_mahasiswa, kolom NIM adalah primary key, dan kolom kode jurusan
adalah foreign key. Kenapa tabel tersebut harus dipisah? Jawabanya adalah agar tidak ada
data yang redundan (ganda). Redundansi data adalah salah satu kelemahan dari desain
database yang kita buat. Seandainya dari contoh tabel, nama Jurusan Ilmu Komputer berubah
menjadi Teknik Informatika, kita hanya tinggal merubah tabel_jurusan.
Referential Integrity
Referential Integrity berkaitan erat dengan foreign key. Pada dasarnya Referential
Integrity adalah penerapan aturan bahwa untuk setiap foreign key yang terdapat pada suatu
tabel, harus ada nilainya di tabel asal kolom tersebut. Dalam contoh kita, pada tabel 4.2 dan
4.3 setiap kode_jurusan dalam tabel data_mahasiswa harus ada nilainya dalam tabel
kode_jurusan. Di dalam tabel data_mahasiswa kita tidak bisa memasukkan nilai 20, karena di
tabel kode_jurusan, kode jurusan 20 belum diinput. Dan jika kita ingin menghapus suatu
jurusan dari tabel_jurusan, semua mahasiswa harus terlebih dahulu sudah tidak ada yang
memiliki kode jurusan tersebut.
Index
Index dalam database adalah sebuah struktur data yang diimplementasikan oleh RDBMS
untuk mempercepat proses pembacaan data. Index lebih kepada penerapan algoritma dari
masing-masing aplikasi database, dan diterapkan ke dalam kolom dari tabel yang kita
inginkan. Mirip Index yang ada di belakang buku, index seolah-olah daftar cepat untuk
mencari sesuatu oleh RDBMS. Kita dapat mendeklarikan kolom mana saja yang akan
diindex.
Untuk MySQL, kolom yang ditetapkan sebagai primary key akan otomatis di-index. Tetapi
dalam satu tabel, bisa saja terdapat beberapa kolom yang di index. Pertanyaanya, jika index
digunakan untuk mempercepat proses pembacaan, kenapa tidak semua kolom saja kita index?
Jawabannya, karena index sendiri juga memiliki kelemahan.
Ketika data baru ditambahkan atau terdapat data yang akan dirubah, index yang tersimpan
untuk tabel tersebut harus dibuat ulang, sehingga memperlama proses penambahan data.
Namun untuk tabel yang jarang bertambah, index menawarkan perfoma yang cepat untuk
pembacaan data.
Normalisasi Database
Normalisasi database (Database normalization) adalah proses penyusunan kolom dan tabel
untuk meminimalkan redudansi data (data yang berulang). Normalisasi biasanya akan
membagi tabel besar menjadi beberapa tabel kecil yang saling terhubung. Hal ini dilakukan
agar mudah dalam mengatur, dan mengorganisasi data yang ada.
Contohnya, untuk tabel data_mahasiswa, jika terjadi perubahan nama jurusan, misalnya dari
Ilmu Komputer menjadi Teknik Informatika, maka kita harus merubah satu-satu tiap
mahasiswa. Namun jika di bagi menjadi 2 tabel, kita hanya tinggal merubah baris no urut 14
dari tabel kode_jurusan menjadi Teknik Informatika. Dan otomatis setiap mahasiswa yang
memiliki kode_jurusan 14, adalah mahasiswa Teknik Informatika.
Sumber materi:
https://hidupsimpel.com/contoh-kata-pengantar/
http://www.contohsurat.co.id/2017/01/sistem-basis-data.html
https://baguszanuar.wordpress.com/apa-itu-rpl/
http://www.pengertianku.net/2015/02/pengertian-web-dinamis-dilengkapi-contohnya.html
http://www.duniailkom.com/pengertian-dan-fungsi-php-dalam-pemograman-web/
http://wwwhttp://adakodokhijau.blogspot.co.id/2017/08/pengertian-mysql-sebagai-
rdbms.html.programming.smktarunabhakti.net/blog/2016/06/23/pemodelan-perangkat-lunak/
sumber gambar:
http://rpl.st3telkom.ac.id/apa-itu-rekayasa-perangkat-lunak/
https://rplhlw117a02.files.wordpress.com/2015/09/rpl.jpg
https://cdnwp.crypteron.com/wp-content/uploads/21364831.png