Pengantar Perangkat Lunak dengan
Pengantar Perangkat Lunak dengan
Arsitektur
Arsitektur
Three
Three--Tier
Tier
17
17 April April 20122012
Workshop Sistem Informasi Manajemen Arsip & Dokumen Perusahaan
A
Ariadie Chandra N., M.T.riadie Chandra N., M.T.
Sejarah
Sejarah Perkembangan
Perkembangan
Aplikasi
Aplikasi Komputer
Komputer ((11))
Di awal perkembangan
Di awal perkembangan
komputer (sebelum
komputer (sebelum
tahun
tahun 1980
1980), komputer
), komputer
berharga sangat mahal,
berharga sangat mahal,
program dan data
program dan data
terletak pada komputer
terletak pada komputer
yang disebut
yang disebut mainframe
mainframe
. .
Pengguna mengakses
Pengguna mengakses
program
program melalui
melalui
terminal
Sejarah
Sejarah Perkembangan
Perkembangan
Aplikasi
Aplikasi Komputer
Komputer ((2
2))
Tahun
Tahun 1980
1980--an, komputer personal
an, komputer personal
(PC) yang relatif murah memasyarakat.
(PC) yang relatif murah memasyarakat.
Berkembang aplikasi desktop
Berkembang aplikasi desktop stand
stand--alone
alone
. Aplikasi dan data berada pada
. Aplikasi dan data berada pada
komputer yang digunakan pengguna.
komputer yang digunakan pengguna.
Aplikasi yang berkembang pada masa
Aplikasi yang berkembang pada masa
tersebut seperti aplikasi
tersebut seperti aplikasi spreadsheet
spreadsheet
Lotus
Lotus--11--22--33
3
Sejarah
Sejarah Perkembangan
Perkembangan
Aplikasi
Aplikasi Komputer
Komputer ((3
3))
Seiring dengan
Seiring dengan
perkembangan teknologi
perkembangan teknologi
jaringan komputer dan
jaringan komputer dan
kebutuhan untuk
kebutuhan untuk
berkomunikasi antara
berkomunikasi antara
beberapa pengguna
beberapa pengguna
dalam satu organisasi,
dalam satu organisasi,
berkembang arsitektur
berkembang arsitektur
klien
Three
Three--tier Architecture (
tier Architecture (11))
Pada arsitektur klien
Pada arsitektur klien--server dengan konsep
server dengan konsep fat
fat
client
client
, pada sisi klien terdapat logika program
, pada sisi klien terdapat logika program
((business rule
business rule
) dan tampilan aplikasi
) dan tampilan aplikasi (user interface
(user interface
))..
Bila logika program berubah, maka program
Bila logika program berubah, maka program
klien juga harus berubah, walaupun tampilan
klien juga harus berubah, walaupun tampilan
aplikasi tidak berubah.
aplikasi tidak berubah.
Hal tersebut mendorong pemisahan lapisan
Hal tersebut mendorong pemisahan lapisan
business rule
business rule
dan
dan user interface
user interface
, menjadi arsitektur
, menjadi arsitektur
three
three--tier
tier
..
5
Three
n
n--tier Architecture
tier Architecture
Presentation tier
Caching Service tier Application Server tier Integration Server tier Data tier 7
Desktop vs Web
Desktop vs Web--Based Apps
Based Apps
Dilihat antarmuka pengguna (
Dilihat antarmuka pengguna (User Interface)
User Interface)
, ,
aplikasi dapat dibagi dua jenis :
aplikasi dapat dibagi dua jenis :
Aplikasi Desktop,
Aplikasi Desktop, biasanya membutuhkan instalasi
biasanya membutuhkan instalasi
di sisi klien, dan memanfaatkan pustaka user
di sisi klien, dan memanfaatkan pustaka user
interface yang disediakan sistem operasi.
interface yang disediakan sistem operasi.
Contoh : MS Office, Photoshop, dll
Contoh : MS Office, Photoshop, dll
Aplikasi berbasis web
Aplikasi berbasis web, memanfaatkan browser web
, memanfaatkan browser web
dan teknologi web untuk antarmukanya.
dan teknologi web untuk antarmukanya.
Contoh : Google Mail, Facebook, dll.
Contoh : Google Mail, Facebook, dll.
Aplikasi Berbasis Desktop
Aplikasi Berbasis Desktop
Aplikasi berbasis desktop yang berarsitektur n
Aplikasi berbasis desktop yang berarsitektur
n--tier
tier biasanya
biasanya termasuk jenis
termasuk jenis fat
fat--client
client
. .
Piranti pengembangan aplikasi desktop :
Piranti pengembangan aplikasi desktop :
1.
1.
Visual Basic
Visual Basic
2. 2.Delphi
Delphi
3. 3.Visual C
Visual C
4. 4.Foxpro
Foxpro
5.5.
Powerbuilder, dan lain
Powerbuilder, dan lain--lain.
lain.
9
Aplikasi Berbasis Web
Aplikasi Berbasis Web
Bahasa pemrograman di sisi server
Bahasa pemrograman di sisi server
PHP
PHP --> biasanya jalan di atas sistem op. Linux
> biasanya jalan di atas sistem op. Linux
ASP
ASP --> biasanya menggunakan Windows Server
> biasanya menggunakan Windows Server
ColdFusion
ColdFusion, dll
, dll
Bahasa pemrograman di sisi klien
Bahasa pemrograman di sisi klien
HTML (sebenarnya bukan bahasa pemrograman)
HTML (sebenarnya bukan bahasa pemrograman)
Javascript
Javascript
AJAX (gabungan antara Javascript, XML, dan kode
AJAX (gabungan antara Javascript, XML, dan kode
di sisi server)
berlanjut ke
berlanjut ke
Pengantar Basis Data
Pengantar Basis Data
Basis Data
Basis Data
Pada
Pada three
three--tier architecture
tier architecture, biasanya data disimpan
, biasanya data disimpan
dalam sistem
dalam sistem basis data
basis data..
Data
Data disimpan
disimpan dalam
dalam tabel
tabel yang
yang memiliki
memiliki baris
baris dan
dan
kolom
kolom seperti
seperti spreadsheet.
spreadsheet.
Sebuah
Sebuah basis data
basis data dapat
dapat memiliki
memiliki beberapa
beberapa tabel
tabel,, di
di
mana
mana setiap
setiap tabel
tabel menyimpan
menyimpan data
data tentang
tentang hal
hal yang
yang
berbeda
berbeda
Setiap
Setiap baris
baris dalam
dalam sebuah
sebuah tabel
tabel menyimpan
menyimpan data
data
tentang
tentang suatu
suatu eentitas, bisa orang, barang, atau kejadian
ntitas, bisa orang, barang, atau kejadian
(seperti transaksi penjualan)
Perkembangan cara
Perkembangan cara
Penyimpanan Data
Penyimpanan Data
Manual (di buku agenda, dll)
Manual (di buku agenda, dll)
File komputer (belum menggunakan spreadsheet)
File komputer (belum menggunakan spreadsheet)
Menggunakan spreadsheet
Menggunakan spreadsheet
Menggunakan basis data (
Menggunakan basis data (database
database
))
Basis data stand alone (Access, dBase)Basis data stand alone (Access, dBase)
Basis data berbasis jaringan (fitur replikasi, dll)Basis data berbasis jaringan (fitur replikasi, dll) OracleOracle MS SQL ServerMS SQL Server MySQLMySQL PostgreSQL, dllPostgreSQL, dll 13
Definisi Database
Definisi Database
Basis Data berasal dari bahasa Inggris yaitu Database.
Basis Data berasal dari bahasa Inggris yaitu Database.
Database ini terdiri dari
Database ini terdiri dari 2
2 kata yaitu Data dan base.
kata yaitu Data dan base.
Basis atau base = sarang atau markas atau gudang
Basis atau base = sarang atau markas atau gudang
Data = bentuk jamak dari datum adalah representasi
Data = bentuk jamak dari datum adalah representasi
dari kejadian atau fakta yang mewakili suatu objek
dari kejadian atau fakta yang mewakili suatu objek
seperti manusia, barang, hewan, peristiwa, konsep,
seperti manusia, barang, hewan, peristiwa, konsep,
keadaan dan sebaginya yang direkam dalam bentuk
keadaan dan sebaginya yang direkam dalam bentuk
angka, huruf, symbol, gambar, bunyi atau kombinasinya
angka, huruf, symbol, gambar, bunyi atau kombinasinya
Definisi ...
Definisi ...
Informasi
Informasi yaitu data yang telah diolah atau
yaitu data yang telah diolah atau
diproses sehingga mempunyai makna dan
diproses sehingga mempunyai makna dan
bermanfaat bagi yang membutuhkan.
bermanfaat bagi yang membutuhkan.
Informasi bagi seseorang mungkin merupakan
Informasi bagi seseorang mungkin merupakan
data bagi orang lain tergantung pada kebutuhan
data bagi orang lain tergantung pada kebutuhan
orang tersebut.
orang tersebut.
Data dan informasi sering kali rancu karena
Data dan informasi sering kali rancu karena
memang bersifat unik bagi setiap orang.
memang bersifat unik bagi setiap orang.
15
Definisi ...
Definisi ...
Basis data dapat didefinisikan sebagai berikut : Basis data dapat didefinisikan sebagai berikut :
Basis data adalah Kumpulan data yang saling berhubungan yang Basis data adalah Kumpulan data yang saling berhubungan yang dikelola agar dapat disimpan, di
dikelola agar dapat disimpan, diupdateupdatedan diakses dengan cepat dan diakses dengan cepat dan mudah.
dan mudah.
Kumpulan data yang saling berhubungan yang disimpan secara Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian hingga dapat menghindari pengulangan bersama sedemikian hingga dapat menghindari pengulangan penulisan (redundansi) untuk memenuhi kebutuhan
penulisan (redundansi) untuk memenuhi kebutuhan
Kumpulan data yang saling berhubungan yang disimpan dalam Kumpulan data yang saling berhubungan yang disimpan dalam media penyimpanan elektronik.
Analogi
Analogi
Brankas Arsip
Basis data pada H-Disk
Disk File Pegawai File Pembelian File Produksi File Penjualan File Pegawai File Pembelian File Produksi File Penjualan 17
••
Basis data dapat dianalogikan dengan brankas
Basis data dapat dianalogikan dengan brankas
arsip atau lemari arsip.
arsip atau lemari arsip.
••
Brankas arsip merupakan kumpulan arsip yang
Brankas arsip merupakan kumpulan arsip yang
disimpan dalam suatu brankas secara beraturan
disimpan dalam suatu brankas secara beraturan
untuk memudahkan penyimpanan dan pencarian
untuk memudahkan penyimpanan dan pencarian
kembali jika dibutuhkan.
kembali jika dibutuhkan.
••
Fungsi brankas arsip dan database mempunyai
Fungsi brankas arsip dan database mempunyai
kesamaan yaitu untuk menyimpan dan mengatur
kesamaan yaitu untuk menyimpan dan mengatur
arsip
arsip--arsip atau data sehingga akan memudahkan
arsip atau data sehingga akan memudahkan
dalam pengaksesannya.
dalam pengaksesannya.
Analogi ...
Analogi ...
Perbedaan
Perbedaan
••
Basis data disimpan dalam media penyimpanan
Basis data disimpan dalam media penyimpanan
elektronis seperti Floppy Disk, Hard Disk,
elektronis seperti Floppy Disk, Hard Disk,
Compact Disk, Flash Disk dll.
Compact Disk, Flash Disk dll.
••
Basis data dikelola oleh program aplikasi
Basis data dikelola oleh program aplikasi
berbasis komputer
berbasis komputer
••
Brankas data disimpan dalam media
Brankas data disimpan dalam media
penyimpanan fisik seperti brangkas kayu, besi,
penyimpanan fisik seperti brangkas kayu, besi,
lemari plastik, dll.
lemari plastik, dll.
••
Brankas data dikelola oleh manusia secara
Brankas data dikelola oleh manusia secara
manual
manual dengan aturan
dengan aturan--aturan tertentu
aturan tertentu
19
Data dalam Disk
Data dalam Disk
••
Basis data bukan hanya sekedar data yang disimpan
Basis data bukan hanya sekedar data yang disimpan
dalam disk.
dalam disk.
••
Maksudnya tidak semua data yang disimpan dalam disk
Maksudnya tidak semua data yang disimpan dalam disk
adalah basis data.
adalah basis data.
••
Contoh : data teks yang disimpan dalam disk dengan
Contoh : data teks yang disimpan dalam disk dengan
format (txt, word, rtf, dll) bukan termasuk database.
format (txt, word, rtf, dll) bukan termasuk database.
••Demikian juga dengan file gambar (bmp, jpg, jpeg, gif,
Demikian juga dengan file gambar (bmp, jpg, jpeg, gif,
dll) bukan termasuk database.
dll) bukan termasuk database.
••
Data suara (wav, mp
Data suara (wav, mp33, mdi, mid dll) juga bukan
, mdi, mid dll) juga bukan
termasuk database.
termasuk database.
••
Demikian juga data video (dat, avi, mpeg, wmv dll juga
Demikian juga data video (dat, avi, mpeg, wmv dll juga
bukan database
Customers
Purchasing Program
Billing Program
Accounts Payable Sales Order Payroll Processing
Accounts
Receivable Buyers Inventory Vendors
Vendors Invoice Customers Inventory Employee
Pemrosesan File (bukan database)
Pemrosesan File (bukan database)
21
Pemrosesan File (database)
Pemrosesan File (database)
Program A Program B Program C Program D Program E Customers
Order Filling Invoicing system system
Inventory Back Inventory Customer Master Orders Pricing Master
Interrelated File Outline
Interrelated File Outline
Salesperson Sales Stats
Customer Accounts Receivable
Buyers Inventory Vendor Accounts
Payable Purchase Order General Ledger 23
Maksud & Tujuan Database Maksud & Tujuan Database
• Kecepatan dan kemudahan Akses Data • Efisiensi ruang penyimpanan
• Akurasi • Ketersediaan • Kelengkapan
• Keamanan (security)
Kegunaan Database Kegunaan Database
Basis data digunakan untuk mengatasi
permasalah pada penyusunan data yaitu :
• Redundansi dan inkonsistensi
• Kesulitan pengaksesan data
• Isolasi data untuk standarisasi
• Multiple user
• Keamanan data
• Integrasi (kesatuan) data
• Kebebasan data
25
Redundansi & Inkonsistensi Redundansi & Inkonsistensi
• Terkadang pada suatu kumpulan data terdapat penggandaan data pada file-file yang berbeda
• Contoh : alamat dan nomor telepon dari pelanggan suatu bank tercatat pada file nasabah, file rekening koran dan file deposito.
• Penyimpanan data yang sama pada tiga jenis file ini mengakibatkan pemborosan ruang penyimpanan. • Penyimpanan data yang sama pada beberapa file dapat
menyebabkan inkonsistensi data.
• Contoh : jika pada suatu saat pelanggan tadi pindah alamat dan nomor telepon dan yang dilakukan update hanya salah satu file saja maka hal ini akan membuat data pelanggan tadi mempunyai perbedaan dan akan menyulitkan
Kecepatan Akses Data Kecepatan Akses Data
• Pada suatu saat Ketua Jurusan membutuhkan data semua mahasiswa yang IPK-nya > 2,75 dan masa studinya <= 4,5 tahun padahal belum ada program aplikasi untuk ini maka harus dilakukan secara manual yang sulit.
• Demikian juga jika diiginkan mahasiswa yang berasal dari luar pulau jawa dengan IPK > 3,00 yang orang tuanya kurang mampu.
• Atau mahasiswa angkatan 2000 dengan IPK < 2,75 sekarang sedang cuti.
• Hal ini dapat diatasi dengan DBMS.
27
Isolasi data Isolasi data
• Data yang tersebar dalam beberapa file dalam format yang tidak sama akan menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data.
• Maka data dalam satu database harus dibuat dalam satu format yang sama sehingga akan memudahkan dalam penulisan programnya.
Multi User Multi User
• Untuk meningkatkan efisiensi, beberapa sistem basis data mengijinkan beberapa user untuk melakukan akses dan update ke database secara simultan dengan tingkat kewenangan yang berbeda.
• Contoh : database mahasiswa dapat diupdate oleh dosen, petugas yang mengurusi mahasiswa, orang tua atau bahkan mahasiswa yang bersangkutan melalui sistem yang ada. • Contoh lain : database tabungan di Bank. Data ini dapat
diupdate oleh nasabah melalui ATM, atau melalui kasir di Bank atau melalui transfer dari orang lain oleh sistem dalam waktu yang berbeda.
29 Multi User Multi User Sinkronisasi sesuai kebutuhan Data Pusat
Akses data di masing-masing Bagian
Keamanan Data Keamanan Data
• Untuk menjaga keamanan data maka tidak semua pemakai diperbolehkan untuk mengakses, mengupdate dan
menyimpan data.
• Contoh : data gaji pegawai hanya boleh dibuka oleh bagian keuangan dan personalia.
• Contoh : Data nilai mahasiswa hanya boleh diupdate oleh dosen pengampu dan bagian administrasi kemahasiswaan tidak untuk bagian lainnya.
31
Integrasi Data Integrasi Data
• Database berisi file-file yang saling berhubungan.
• Masalah utama yaitu bagaimana kaitan antara file ini terjadi. • Meskipun telah diketahui bahwa file A berkaitan dengan file
B namun secara teknik ada kunci yang mengkaitkan kedua file tersebut.
• Untuk itu perlu dibuat suatu kunci tertentu untuk mengkaitkan kedua file tersebut. Dalam database hal ini disebut sebagai fields kunci
Integrasi Data Integrasi Data User tables Server Server Data dictionary 33 Kebebasan Data Kebebasan Data
• Jika aplikasi basis data dibuat dengan program aplikasi seperti VB, Delphi, atau lainnya misal untuk membaca file data mahasiswa dengan field NIM, Nama, Jenis Kelamin dan Alamat. Jika struktur data mahasiswa berubah maka program juga harus diubah.
• Hal ini disebut bahwa program aplikasi yang dibuat tidak bebas terhadap database-nya.
• Pada DBMS hal ini dtidak perlu risau karena untuk mengakses data maka digunakan sintaks yang sama yang disediakan oleh program pengelola database tersebut.
Operasi Dasar Operasi Dasar
• Pembuatan Database Baru (Create Database) • Penghapusan Database (Drop Database)
• Pembuatan file atau table baru ke dalam database (Create Table)
• Penghapusan file atau table dari suatu database (Drop Table) • Pengisian dan penambahan data baru ke dalam table (Insert) • Pengubahan data pada table (Update)
• Pengambilan data dari table (Retrieve/Search) • Penghapusan data dari sebuah table (Delete) • Memilih data yang akan ditampilkan (Select)
35
Aplikasi Aplikasi
• Hampir setiap organisasi baik profit maupun non-profit membutuhkan sistem pengelolaan data yang mudah, cepat dan efisien.
• Implementasi teknologi informasi dalam
organisasi/perusahaan dalam rangka pengelolaan sistem informasi dimana basis data menjadi komponen utama dalam sistem informasi yang dibangun
• Dengan sistem informasi yang baik akan meningkatkan efisiensi, daya saing, akurasi, kecepatan dan operasionalisasi organisasi/perusahaan
Aplikasi Aplikasi
Bidang-bidang fungsional yang telah memanfaatkan basis data • Kepegawaian
• Pergudangan
• Pembelian dan Penjualan • Akuntansi dan keuangan • Reservasi hotel, perjalanan, dll • Layanan pelanggan
• Dan lain-lain
37
Komponen Sistem Basis Data Komponen Sistem Basis Data
• Isi Database
• DBMS (Database Manajemen System) • Program Aplikasi
• Pengembang (Developers) • Pengguna (Users)
Komponen Sistem Basis Data Komponen Sistem Basis Data
39
Isi
Isi Basis DataBasis Data
• Yang disimpan dalam basis data • Data User
• Metadata • Indeks
Data User Data User
• Database merupakan kumpulan dari data (tabel) yang saling berkaitan.
• Sebuah tabel data disebut sebagai sebuah relation • Kolom (Columns) merupakan fields atau atribut • Baris (Rows) merupakan entitas
• Relation harus disusun dengan tepat sesuai dengan kebutuhan sistem
41
Metadata Metadata
• Metadata menggambarkan struktur dan format data • Tabel sistem menyimpan metadata berupa
– Jumlah dan nama tabel – Jumlah dan nama field
– Field yang menjadi primary key – Nama field, tipe data, dan ukurannya – Dan lain-lain
Indexing Indexing • Memperbaiki performansi • Memperbaiki accessibilitas • (Overhead data) 43 Aplikasi Metadata Aplikasi Metadata
• Menyimpan struktur dan format dari – form
– Laporan (report) – query
DBMS DBMS
• Design Tools Subsystem • Run-Time Subsystem • DBMS Engine
45
Design Tools Subsystems Design Tools Subsystems
• Tool untuk mendesain dan mengembangkan – tabel – form – query – report • Bahasa pemrograman – makro – Bahasa pemrograman
Run
Run--time Subsystemstime Subsystems
• Processes database components created by design tools
47
DBMS Engine DBMS Engine
• Perantara antara tool desain, run-time subsystems dan data • Juga menangani . . .
– Manajemen transaksi – locking
Creating Database Creating Database
• Mendefinisikan Skema database • Membuat tabel
• Mendefinisikan relationship antar tabel
49
Skema Database Skema Database
• Mendefinisikan struktur database – Tabel - subjects within the database – Relationship - one-to-many or 1:N
– Domain - set of values a column may have – Business rules - restrictions on data values
Creating Tabel (Contoh kasus : MS Access) Creating Tabel (Contoh kasus : MS Access)
51
Creating Creating TabelTabel
Relationship antar tabel Relationship antar tabel
53 Komponen Aplikasi Komponen Aplikasi • Form • Query • Report • Menu • Program Aplikasi
Form Form
55
Query Pada Database Query Pada Database
Hasil Query Hasil Query
57
Model Data Model Data
• Model data menjelaskan dan menggambarkan
struktur data dan hubungan (relationship) antar
data
• Model data dibangun dengan
• Interview dengan user
• Dokumentasi kebutuhan
• Pembangunan model data
• Pembangunan prototype database
• Proses penarikan kesimpulan
Entity
Entity--Relationship Diagram
Relationship Diagram
((E
E--R Diagram)
R Diagram)
Salah satu metode dalam mebuat model data
Salah satu metode dalam mebuat model data
adalah
adalah entity
entity--relationship diagram (E
relationship diagram (E--R Diagram)
R Diagram)..
Sebuah
Sebuah E
E--R Diagram
R Diagram
adalah sebuah representasi
adalah sebuah representasi
grafis dari model
grafis dari model E
E--R
R yang menggunakan
yang menggunakan
sekumpulan aturan standar.
sekumpulan aturan standar.
59
An Entity
An Entity--Relationship Diagram
Relationship Diagram
(E
E
E--R Diagram Example:
R Diagram Example:
San Juan Charters
San Juan Charters
61