bab 2 landasan teori 2.1 teori dasar 2.1.1...
TRANSCRIPT
7
BAB 2
LANDASAN TEORI
2.1 Teori Dasar
2.1.1 Data
Fakta yang sudah ditulis dalam bentuk catatan atau direkam ke
dalam berbagai bentuk media disebut data. Ada juga yang berpendapat
bahwa data merupakan aliran fakta yang mewakili kejadian yang terjadi
dalam suatu organisasi yang kemudian diatur menjadi sebuah bentuk yang
dapat dimengerti dan digunakan oleh pengguna (Laudon, 2000, p8).
Adapula yang berpendapat bahwa data adalah fakta yang dapat disimpan
dan memiliki arti (Navathe dan Elmasri, 2000, p4).
Dari beberapa pendapat di atas dapat disimpulkan bahwa data adalah
fakta yang sudah ditulis, memiliki arti, dan dapat disimpan ke dalam
berbagai bentuk media sehingga dapat diggunakan untuk mencapai suatu
tujuan tertentu.
Data diorganisasikan ke dalam suatu hirarki yang terdiri atas elemen,
rekaman (record), dan berkas (file).
• Elemen data
Elemen data adalah satuan data terkecil yang tidak dapat
dipecahkan lagi. Istilah lainnya adalah field.
7
8
• Rekaman
Rekaman adalah gabungan sejumlah elemen data yang saling
terkait. Dalam sistem basis data biasa disebut dengan istilah tuple.
• Berkas
Himpunan seluruh rekaman yang bertipe sama. Berkas berisi
kumpulan rekaman data yang saling berkaitan dengan suatu subyek.
Dalam basis data biasa disebut juga dengan istilah table.
2.1.2 Pengertian Basis Data
Basis data adalah sekumpulan informasi yang diatur dalam cara
tertentu hingga sebuah program komputer dapat dengan cepat memilih data
yang diinginkan. Basis data dapat diibaratkan sebagai sistem pengarsipan
elektronik.
Menurut Connolly dan Begg (2002, p14) basis data adalah
sekumpulan data yang terhubung secara logikal, dan data tersebut dirancang
untuk memenuhi kebutuhan informasi suatu organisasi. Basis data
merupakan sebuah tempat penampungan data yang sangat besar yang dapat
digunakan secara bersama – sama oleh berbagai departemen dan pemakai
lainnya. Dimana dalam basis data antara departemen satu dan departemen
lainnya dapat saling terhubung.
9
Menurut Date (2000, p10) basis data merupakan sekumpulan data
yang digunakan oleh sistem aplikasi yang digunakan oleh suatu perusahaan.
Basis data diperlukan karena :
• Merupakan salah satu komponen penting dalam sistem informasi
dalam menyediakan informasi.
• Menentukan kualitas suatu informasi : akurat, cepat, dan relevan.
• Mengurangi duplikasi data (data redundancy).
• Hubungan data dapat ditingkatkan (data reliability).
• Data lebih terorganisir.
• Keamanan data lebih terjamin dibandingkan dengan menggunakan
berkas.
2.1.3 Database Management System (DBMS)
DBMS merupakan sebuah sistem yang berjalan secara otomatis
melakukan manajemen koleksi data dan idealnya mampu memberikan
solusi data yang ternormalisasi. DBMS sangatlah penting karena merupakan
pusat aktifitas suatu manajemen data yang dapat digunakan untuk
mengakses dan memanipulasi data.
Menurut Connolly dan Begg (2002, p16) DBMS adalah program
yang dirancang untuk membantu pengguna untuk mendefinisi, membuat,
memelihara, dan mengkontrol akses ke database.
10
Pada umumnya DBMS menyediakan fasilitas :
• Memungkinkan pengguna untuk mendefinisikan basis data. Hal ini
dapat dilakukan di data definition language (DDL).
• Pengguna dapat memasukkan data, memperbaharui data, menghapus
data, dan mengambil data. Hal ini dapat dilakukan di data
manipulation language (DML).
• Menyediakan kontrol akses (pembatasan hak akses).
Dalam DDL dan DML, digunakan bahasa untuk mengeksekusinya
bahasa tersebut dinamakan query language. Query language yang paling
sering digunakan adalah structured query language (SQL).
Keuntungan dari DBMS adalah :
• Kontrol terhadap pengulangan data.
• Data konsisten.
• Lebih banyak informasi dari data yang sama
• Memudahkan penyebaran data.
• Meningkatkan integritas data.
• Meningkatkan keamanan data.
• Termasuk low cost untuk investasi jangka panjang.
11
• Meningkatkan produktivitas
• Meningkatkan kemampuan backup dan recovery data.
Sedangkan kerugian DBMS adalah :
• Kompleks.
• Membutuhkan storage yang tidak sedikit.
• Biaya DBMS tidak murah.
• Biaya untuk merubah dari satu DBMS ke DBMS lainnya.
• Apabila terjadi kerusakan, dampak kerusakannya cukup besar.
2.1.4 Data Definition Language (DDL)
Menurut Connolly dan Begg (2000 , p40) DDL adalah sebuah
bahasa yang mengijinkan DBA atau pengguna untuk menjelaskan dan
memberi nama suatu entitas, attribut, dan relationship yang dibutuhkan
untuk suatu aplikasi. DDL sendiri tidak dapat digunakan untuk
memanimpulasi suatu data.
Hasil kompilasi dari DDL adalah berbagai macam tabel yang
disimpan secara kolektif di dalam suatu file khusus yang biasa disebut data
dictionary. Data dictionary diintegrasikan dengan metadata. Metadata
adalah data yang mendeskripsikan objek di dalam basis data dan membuat
12
data lebih mudah untuk diakses dan dimanipulasi, metadata mengandung isi
dari suatu records, jenis data dan objek lainnya yang sangat berkaitan pada
pemakai atau yang dibutuhkan oleh DBMS.
Pada tingkat teoritis DDL dapat dibedakan untuk setiap skema pada
three level architecture, dan sebagian DDL untuk skema eksternal, skema
konseptual, dan skema internal. Bagaimanapun juga pelaksanaan DDL
merupakan salah satu spesifikasi yang memungkinkan terdapatnya skema
eksternal dan konseptual.
2.1.5 Data Manipulation Language (DML)
DML adalah suatu bahasa yang menyediakan sekumpulan operasi
yang mendukung suatu manipulasi dasar suatu data yang dilakukan di dalam
basis data (Connolly dan Begg, 2002, p41).
Operasi manipulasi dapat berupa :
• Memasukkan data ke dalam database.
• Memodifikasi data yang telah disimpan di dalam basisdata.
• Pengambilan kembali data yang telah disimpan di dalam basis data.
• Penghapusan data dari database.
Salah satu fungsi utama dari DBMS adalah untuk mendukung DML,
dimana pengguna dapat menyusun suatu pernyataan yang dapat
13
memanipulasi suatu data. Manipulasi data dilakukan pada tingkatan
external, conceptual, dan internal.
2.1.6 Normalisasi
Menurut Whitten, Bentley dan Dittman (2004, p558) sebuah teknik
untuk mendesign data model yang memenuhi kriteria sebagai berikut :
• Data model yang simpel. Sebuah data attribut yang menjelaskan
sebuah entitas hanya boleh menjelaskan entitas tersebut.
• Data model yang essentially nonredundan. Artinya bahwa setiap
data attribut selain dari foreign key menjelaskan suatu entitas.
• Data model harus fleksibel dan mampu beradaptasi dengan
kebutuhan yang mungkin muncul dimasa yang akan datang.
Menurut Connolly dan Begg (2002, p376) normalisasi adalah teknik
yang digunakan untuk menghasilkan relasi – relasi dengan sifat – sifat yang
diinginkan, dengan memberikan kebutuhan data dari sebuah organisasi.
Normalisasi adalah langkah formal yang digunakan untuk
menganalisa relasi berdasarkan primary key (atau candidate key) dan
ketergantungan fungsional. Teknik ini meliputi beberapa peraturan yang
bisa dites satu per satu sehingga basis data dapat dinormalisasi hingga tahap
manapun.
14
Tujuan dari normalisasi adalah sebagai berikut :
• Meminimalisasikan redundansi data
• Menghilangkan anomali data. Anomali terjadi apabila ada banyak
record yang berisi data yang sama, apabila data tersebut dihilangkan
maka akan menyebabkan table menjadi anomali.
• Meminimalisasikan attribut yang ada.
Tahapan dari normalisasi terdiri dari :
• Normalisasi tahap pertama (1NF) untuk menghilangkan data
berulang dan perhitungan.
• Normalisasi tahap kedua (2NF) untuk menghilangkan
ketergantungan parsial terhadap primary key.
• Normalisasi tahap ketiga (3NF) untuk menghilangkan
ketergantungan transitif.
• Boyce-Codd Normalization Form (BCNF) suatu hubungan dikatakan
BCNF jika dan hanya jika setiap determinan adalah candidate key.
2.1.7 Database Lifecycle
Untuk merancang aplikasis sistem basis data diperlukan tahapan –
tahapan terstruktur yang harus diikuti yang dinamakan dengan siklus hidup
basis data (database lifecycle). Perlu diingat dalam tahapan database
15
lifecycle, tidak harus selalu berurutan, namun juga melibatkan beberapa
pengulangan ke tahapan sebelumnya melalui putaran balik (feedback loop).
Tahapan tersebut dapat dilihat pada gambar 2.1.
Gambar 2.1 Database Lifecycle
(Connolly dan Begg, 2002, p272)
16
2.1.8 Perencanaan Basis Data (Database Planning)
Perencanaan basis data adalah kegiatan pengaturan yang
memungkinkan tahap – tahap dalam aplikasi basis data dapat diwujudkan
secara efisien dan seefektif mungkin (Connolly dan Begg, 2002, p273).
Tahap perencanaan basis data juga harus menjelaskan :
• Mission statement
Mission statement ini menjelaskan tujuan utama aplikasi basis data,
juga membantu menjelaskan tujuan proyek basis data, dan
menyediakan maksud yang lebih jelas dalam pembuatan aplikasi
basis data secara efektif dan efisien (Connolly dan Begg, 2002,
p274). Dengan merumuskan apa yang sebenarnya menjadi tujuan
dari proyek basis data ini diharapkan dapat lebih memfokuskan
pekerjaan pada tahap selanjutnya.
• Mission objective
Selain merumuskan tujuan dari sebuah proyek basis data, harus
diperhatikan juga mengenai tugas apa saja yang harus didukung oleh
bassi data tersebut. Setiap mission objective akan menjelaskan tugas
tertentu yang harus didukung oleh basus data dengan asumsi jika
basis data mendukung mission objective, maka mission statement-
nya juga akan sesuai (Connolly dan Begg, 2002, p274).
17
2.1.9 Pendefinisian Sistem (System Definition)
Pendefinisian sistem (system definition) menggambarkan ruang
lingkup dan batasan aplikasi basis data dan user view (Connolly dan Begg,
2002, p274). Hal ini sangat penting dilakukan dalam proses perancangan
basis data agar lebih terfokus pada proyek basis data yang dibuat.
User view sangat diperlukan untuk mengidentifikasi informasi –
informasi yang dibutuhkan oleh pengguna. User view menggambarkan apa
yantg dibutuhkan oleh aplikasi basis data dari sudut pandang jabatan
tertentu, seperti manajer atau pengawas, maupun dari sudut pandang area
aplikasi perusahaan, seperti pemasaran, personalia, atau pengawasan
persediaan, dalam hubungannya dengan data yang akan disimpan dan
transaksi yang akan dijalankan terhadap data itu (Connolly dan Begg, 2002,
p275).
2.1.10 Pengumpulan Kebutuhan dan Analisis (Requirement Collection and
Analysis)
Tahap selanjutnya yang dilakukan adalah tahap pengumpulan
kebutuhan dan analisa. Dalam tahap ini dilakukan proses pengumpulan dan
analisa informasi tentang bagian organisasi yang akan didukung oleh
aplikasi basis data, dan menggunakan informasi ini untuk mengidentifikasi
kebutuhan pengguna terhadap sistem yang baru (Connolly dan Begg, 2002,
p276).
18
Suatu proses resmi dalam menggunakan teknik – teknik seperti
wawancara atau kuisioner untuk mengumpulkan fakta – fakta tentang sistem
dan kebutuhan – kebutuhan dinamakan dengan teknik fact-finding
(Connolly dan Begg, 2002, p302).
Ada lima kegiatan dalam tahap ini :
1. Memeriksa dokumen
Pemahaman terhadap jalannya sistem akan cepat diperoleh dengan
memeriksa dokumen – dokumen, formulir, laporan, dan berkas yang
terkait dengan sistem yang sedang berjalan pada perusahaan. Dengan
pemeriksaan ini diharapkan dapat mengetahui data – data apa saja
yang akan disimpan di dalam basis data.
2. Wawancara
Wawancara bertujuan untuk mengumpulkan fakta – fakta,
memeriksa kebenaran fakta yang ada melibatkan pengguna akhir,
mengidentifikasikan kebutuhan – kebutuhan dan mengumpulkan ide
– ide dan pendapat (Connolly dan Begg, 2002, p306). Teknik ini
tidak dapat dibilang mudah, karena orang yang mewwancara harus
memiliki kemampuan berkomunikasi yang baik dalam menghadapi
berbagai macam karakteristik pengguna.
Keuntungan teknik wawancara menurut Connolly dan Begg
(2002, p306) antara lain :
19
- Memungkinkan orang yang diwawancara menanggapi
pertanyaan dengan bebas.
- Memungkinkan orang yang diwawancara merasa bahwa ia
bagian dari proyek.
- Memungkinkan pewawancara untuk menindak lanjuti
koemntar yang menarik.
- Memungkinkan pewawancara untuk mengamati bahasa tubuh
orang yang diwawancara.
Kerugian teknik wawancara ini menurut Connolly dan Bregg
(2002, p306) adalah :
- Sangat memakan waktu dan biaya.
- Keberhasilan tergantung pada kemampuan komunikasi.
- Keberhasilannya tergantung pada keinginan orang yang
diwaancara untuk ikut serta dalam wawancara.
3. Mengamati operasional perusahaan
Pengamatan ini memungkinkan untuk ikut serta atau mengamati
seseorang melakukan kegiatan untuk memepelajari sistem yang
sedang berjalan. Faktor yang mempengaruhi keberhasilan adalah
banyaknya aktivitas orang yang diamati.
20
Keuntungan menggunakan teknik ini :
- Validitas fakta dapat diperiksa.
- Pengamat dapat dengan jelas melihat apa yang dikerjakan.
- Pengamat juga dapat memperoleh data yang menjelaskan
lingkungan fisik dari tugas yang diberikan.
- Pengamat dapat membuat pengukuran kerja.
Kerugiannya antara lain :
- Sangat memakan waktu dan biaya
- Dapat terlewat dalam mengamati tugas yang melibatkan
tingkat kesulitan yang berbeda.
- Beberapa tugas tidak dilakukan dengan cara seperti pada saat
pengamatan.
4. Penelitian
Selain melakukan penelitian yang berasal dari dalam organisasi itu
sendiri, dapat juga dilakukan pengumpulan informasi yang berasal
dari luar organisasi. Beberapa contoh sumber informasi tersebut
antara lain, jurnal komputer, buku – buku referensi, dan internet.
Keuntungan metode ini adalah :
- Dapat menghemat waktu
21
- Peneliti dapat mengamati cara orang lain dalam memecahkan
masalah yang sama
- Membuat peneliti up to date terhadap perkembangan terkini.
Kerugian metode ini adalah :
- Sangkat memakan waktu
- Membutuhkan akses ke sumber informasi yang tepat
- Dapat tidak memecahkan masalah karena tidak
didokumentasikan
5. Kuisioner
Kuisioner adalah suatu dokumen dengan tujuan khusus yang
memungkinkan fakta – fakta dikumpulkan dari banyak orang sambil
menjaga kontrol terhadap tanggapan yang diberikan (Connolly dan
Begg, 2002, p308).
Keuntungan metode ini adalah :
- Orang dapat melengkapi dan mengembalikan kuisioner pada
waktunya
- Tidak mahasl untuk mengumpulkan data dari banyak orang
- Responden lebih mudah untuk memberikan jawaban yang
benar
22
- Tanggapan dapat ditabulasikan dan dianalisa dengan cepat
Kerugian dari metode ini adalah :
- Jumlah responden bisa rendah
- Kuisioner dapat dikembalikan dengan tidak lengkap
- Tidak diberi kesempatan untuk mengubah pertanyaan
- Tidak dapat mengamati bahasa tubuh responden
- Memakan waktu untuk menyiapkan kuisioner
2.1.11 Perancangan Basis Data (Database Design)
Database design adalah proses yang menghasilkan desain sebuah
basis data yang dapat mendukung operasi dan misi perusahaan (Connolly
dan Begg, 2002, p279). Tujuan utamanya adalah :
• Merepresentasikan data dan relasi antar data yang dibutuhkan oleh
seluruh area aplikasi utama dan user group
• Menyelidiki model data yang mendukung segala transaksi yang
diperlukan pada data
• Menspesifikasikan desain minimal yang secara tepat disusun untuk
memenuhi kebutuhan performa yang ditetapkan oleh sistem
23
Terdapat beberapa cara untuk mendesain suatu basis data antara lain
yang paling sering digunakan adalah bottom up approach dan juga top down
approach.
• Top down
Diawali dengan pembentukan model data yang berisi beberapa
entitas high level dan relasi yang kemudian menggunakan
pendekatan top down secara berturut – turut untuk
mengidentifikasikan entitas lower level, relasi dan atribut lainnya.
• Bottom up
Dimulai dengan attribut dasar (yaitu sifat – sifat dasar entitas dan
relasi), dengan analisis dari penggabungan antar attribut, yang
dikelompokkan ke dalam suatu relasi yang merepresentasikan tipe
dari entitas dan relasi antar entitas.
2.1.12 Perancangan Basis Data Konseptual
Perancangan basis data konseptual adalah proses membangun model
informasi yang digunakan organisasi, bebas dari semua pertimbangan fisik
(Connolly dan Begg, 2002, p419). Pertimbangan fisik yang dimaksud
meliputi DBMS yang akan digunakan, program aplikasi, bahasa
pemrograman, platform, perangkat keras, dan pertimbangan fisik lainnya.
Langkah - langkah dalam merancang basis data konseptual :
24
1. Mengidentifikasi tipe entitas
Salah satu metode untuk mengidentifikasikan entitas adalah dengan
menguji spesifikasi kebutuhan dari pemakai. Dari spesifikasi ini
diidentifikasikan kata benda dan ungkapan kata benda (noun
phrases) yang disebutkan.
2. Mengidentifikasi tipe relasi
Tujuannya untuk mengidentifikasikan relasi penting yang ada antara
tipe entitas yang telah diidentifikasikan. Dapat digunakan grammar
dari spesifikasi kebutuhan tersebut untuk mengidentifikasi relasi,
biasanya relasi digunakan kata kerja (verb). Langkah – langkah
dalam identifikasi tipe relasi :
- Gunakan ERD
- Cari batasan dari tipe relasi
- Periksa fan dan chasm trap
- Periksa masing – masing entitas ikut serta dalam relasi
- Dokumentasikan tipe relasi
3. Menghubungkan entitas dengan relasi
Tujuannya untuk menghubungkan attribut dengan entitas atau tipe
relasi yang sesuai dan mendokumentasikan detail dari setiap attribut.
25
Attribut – attribut bisa diidentifikasi dengan kata benda atau
ungkapan kata benda (noun phrases). Attribut dapat dibagi menjadi
3 yaitu :
- Attribut simple atau composite
Penting untuk mengetahui apakah sebuah attribut simple atau
composite. Composite attribute terdiri dari simple attribute.
Sebagai contoh attribut address dapat merupakan attribut
simple dan menyimpan semua detail dari sebuah alamat
dengan sebuah nilai tunggal.
- Attribut single valued atau multi valued
Sebuah attribut juga dapat merupakan single valued atau
multi valued. Sebagian besar attribut yang dijumpai
merupakan single valued, tetapi kadang – kadang akan
dijumpai attribut yang multi valued, yaitu attribut yang
menyimpan nilai yang banyak untuk sebuah entitas tunggal
yang ada.
- Attribut derived
Attribut yang nilainya tergantung pada nilai dari attribut yang
lain dinamakan derived attribute.
4. Menentukan domain attribut
26
Tujuannya untuk menetapkan domain attribut dalam model data
konseptual lokal dan mendokumentasikan setiap detail dari domain.
Domain merupakan sekumpulan nilai – nilai dari satu atau lebih
attribut yang menggambarkan nilainya.
5. Menentukan primary key dan candidate key
Untuk mengidentifikasikan candidate key untuk setiap entitas dan
jika terdapat lebih dari satu candidate key, maka pilih salah satu
sebagai primary key.
6. Memerlsa pemgilangan (redundancy)
Dalam langkah ini, kita menguji model dan konseptual lokal dengan
tujuan spesifik untuk mengidentifikasikan apakah ada redundancy
dalam data dan memindahkan data yang telah ada. Dua aktvitas
dalam langkah ini adalah :
- Menguji ulang relasi 1..1 (one to one)
- Menghilangkan relasi yang redundan
7. Validasi model konseptual lokal terhadap transaksi pemakai
Ada 2 cara pendekatan untuk memastikan model data konseptial
lokal mendukung transaksi yamg dibutuhkan dengan cara :
- Menggambarkan transaksi – transaksi
27
- Menggunakan jalur – jalur transaksi
8. Memeriksa kembali model data konseptual lokal dengan pemakai
Tujuannya untuk me-reviewmodel data konseptual lokal dengan
pemakai untuk memastikan model tersebut dengan representasi
sebenarnya dari view. Model data konseptual ini termasuk ER
diagram dan dokumentasi pendukung yang mendeskripsikan model
data. Bila ada kejanggalan dalam model data, maka harus dibuat
perubahan yang sesuai.
2.1.13 Perancangan Basis Data Logikal
Perancangan basis data logikal adalah proses membangun model
informasi yang digunakan organisasi berdasarkan model data tertentu, tetapi
tidak bergantung dari database management system (DBMS) dan
pertimbangan fisik lainnya (Connolly dan Begg, 2002, p441). Langkah -
langkah dalam metodologi perancangan basis data logikal adalah :
1. Hilangkan fitur – fitur yang tidak sesuai dengan model relasional
Tujuan dari langkah ini adalah untuk menghilangkan :
- Menghilangkan many to many binary (*:*) relationship types
- Menghilangkan many to many (*:*) recursive relation types
28
- Menghilangkan tipe relasi yang kompleks
- Menghilangkan multi valued attributes
2. Menghasilkan relasi untuk model data logikal lokal
Relasi yang dihasilkan dari kemungkinan struktur yang ada yaitu :
- Tipe strong entitiy
- Tipe weak entity
- Tipe relasi biner one to one (1:1)
- Tipe relasi biner one to many (1:*)
- Relasi rekursif one to one (1:1)
- Tipe relasi biner many to many (*:*)
- Tipe relasi superclass/subclass
- Tipe relasi kompleks
- Attrubut multi valued
3. Validasikan relasi dengan menggunakan normalisasi
Normalisasi adalah suatu teknik untuk menghasilkan himpunan relasi
dengan properti yang diinginkan berdasarkan kebutuhan – kebutuhan
data suatu organisasi (Connolly dan Begg, 2002, p376).
29
Proses normalisasi dimulai dengan memindahkan data sumber
ke bentuk tabel dengan format baris dan kolom. Tabel ini berbentuk
tidak normal dan disebut dengan unormalized table (Connolly dan
Begg, 2002, p388).
Unormalized form (UNF) adalah suatu tabel yang terdiri satu
atau lebih kelompok berulang (repeating group) (Connolly dan Begg,
2002, p387). Repeating group adalah sebuah attribut atau himpunan
atribut di dalam tabel yang memiliki lebih dari satu nilai (multi value)
untuk sebuah primary key pada tabel tersebut (Connolly dan Begg,
2002, p388).
Tingkatan normalisasi yang digunakan sebagai landasan
penulisan skripsi ini ada tiga tahap yaitu :
- First normal form (1NF)
Suatu relasi dikatakan 1NF jika titik temu tiap baris dan kolom
pada relasi tersebut mengandung satu dan hanya satu nilai
(Connolly dan Begg, 2002, p388).
Sebuah relasi akan berada dalam bentuk 1NF jika
repeating groupnya sudah hilang. Ada dua pendekatan untuk
menghilangkan repeating group yaitu :
• Dengan memasukkan data yang sesuai ke dalam kolom
yang kosong dari baris yang mengandung data berulang.
30
• Dengan menempatkan data yang berulang bersama
salinan atribut kunci pada relasi yang terpisah. Sebuah
primary key diidentifikasikan ke dalam relasi yang baru.
- Second normal form (2NF)
Relasi dikatakan 2NF jika relasi tersebut berada pada 1NF dan
setiap attribut selain primary key bergantung penuh (fully
functionally dependent) terhadap primary key (Connolly dan
Begg, 2002, p392)
Fully functionally dependent terjadi jika A dan B
merupakan attribut dari suatu relasi, dan B dikatakan bergantung
penuh terhadap A (A B), jika B bergantung terhadap A
namun bukan subset dari A (Connolly dan Begg, 2002, p391)
Untuk menghasilkan relasi dalam bentuk 2NF
melibatkan penghilangan ketergantungan sebagian (partial
dependency) dan menempatkan pada relasi yang baru bersama
salinan attribut penentunya (determinant attribut).
- Third normal form (3NF)
Suatu relasi dikatakan 3NF jika relasi tersebut sudah
membentuk 2NF, dan tidak ada attribut selain primary key yang
bergantung secara transitif (transitively dependent) terhadap
primary key (Connolly dan Begg, 2002, p394).
31
Transitive dependency ialah sebuah kondisi dimana A,
B, dan C merupakan attribut dari relasi yang A B C maka
C disebut bergantung transitif terhadap A melalui B (A tidak
functionaly dependent terhadap B atau C) (Connolly dan Begg,
2002, 394).
4. Validasikan relasi terhadap transaksi pemakai
Memastikan bahwa relasi yang telah dibuat memenuhi syarat untuk
mendukung transaksi yang dibutuhkan. Dalam langkah ini akan dicoba
operasi basis data secara manual, bila semua transaksi yang dibutuhkan
bisa berjalan semestinya, maka model data logikal terhadap transaksi
telah divalidasi.
5. Tentukan integrity constraint
Integrity constraint adalah batasan yang ditentukan untuk menghindari
data menjadi tidak konsisten. Integrity constraint yang umum adalah :
- Required data
Beberapa attribut tertentu harus memiliki data, dengan kata lain
tidak boleh kosong.
- Attribute domain constraint
Setiap attribut memiliki domain, batasan nilai yang legal.
Misalnya jenis kelamin harus diisi dengan pria atau wanita
32
- Entity integrity
Primary key dari suatu entitas tidak boleh kosong
- Referential integrity
Jika suatu foreign key memiliki nilai, maka nilai tersebut harus
menunjuk ke sebuah baris yang ada para relasi parent.
- Enterprise integrity
Kegiatan update entitas dibatasi oleh peraturan atau kebijakan
organisasi yang mengatur transaksi yang diwakilkan oleh update
yang dilakukan.
6. Tinjau kembali model data logikal lokal dengan pemakai.
Untuk memastikan logical data model dan dokumentasi pendukung
yang menjelaskan model telah merepresentasikan kebutuhan.
Langkah membuat dan memvalidasikan model data logikal
global :
- Gabungkan model data logikal lokal menjadi model global.
- Validasikan model data logikal lokal.
- Periksa untuk pengembangan yang akan datang.
- Tinjau kembali model data logikal global dengan pemakai
33
2.1.14 Perancangan Basis Data Fisikal
Suatu proses yang menghasilkan deskripsi implementasi basis data
pada penyimpanan sekunder. Menggambarkan struktur penyimpanan dan
metode akses yang digunakan untuk mencapai akses yang efisien terhadap
data. Dapat juga dikatakan, desain fisikal merupakan cara pembuatan
menuju sistem DBMS tertentu.
- Menerjemahkan model data logikal global target DBMS :
• Desain hubugan dasar
• Desain representasi dari data yang dihasilkan
• Desain batasan – batasan perusahaan
- Mendesain representasi fisikal :
• Analisa transaksi – transaksi
• Pilih organisasi file
• Pilih indeks – indeks
• Perkirakan kebutuhan penyimpanan (disk space).
- Mendesain user view
- Mempertimbangkan pengenalan dari redundansi terkontrol
- Awasi dan atur sistem operasional
34
2.1.15 Prototyping
Membangun suatu model kerja dari aplikasi basis data. Tujuan
utama mengembangkan suatu prototype aplikasi basis data adalah
mengijinkan pemakai untuk menggunakan prototype guna mengidentifikasi
corak sistem apakah bekerja dengan baik jika mungkin meningkatkan corak
baru pada aplikasi basis data. Dengan cara ini kita dapat memperjelas
kebutuhan pemakai dan pengembang sistem dalam mengevaluasi kelayakan
desain sistem tertentu. Prototype perlu mempunyai keuntungan yang utama
yang secara relatif cepat dan murah untuk dibangun.
Ada dua strategi yang digunakan saat ini yaitu requirement
prototyping dan evolutionary prototyping requirement. Rquirement
prototyping digunakan untuk menentukan kebutuhan suatu aplikasi basis
data yang diusulkan dan ketika kebutuhan terhadap suatu aplikasi basis data
tidak lengkap, maka prototype tersebut tidak digunakan lagi. Evolutionary
prototyping digunakan untuk tujuan yang sama, perbedaan yang penting
adalah bahwa prototype tidak dibuang namun dengan pengembangan lebih
lanjut prototype tersebut bekerja sama dengan aplikasi basis data
2.1.16 Implementasi
Adalah realisasi fisik dari desain basis data dan desain aplikasi.
Dalam penyelesaian tahap desain, kita sekarang berada di posisi untuk
menerapkan basis data dan program aplikasi. Penerapan basis data dicapai
35
dengan menggunakan data definition language (DDL) dari DBMS yang
dipilih atau graphic user interface (GUI).
2.1.17 Konversi Data dan Loading
Adalah mentransfer setiap data yang ada ke dalam basis data yang
baru dan mengubah setiap aplikasi yang ada untuk dijalankan ke basis data
yang baru. Tahapan ini hanya diperlukan jika sistem basis data yang baru
menggantikan yang lama. Saat ini adalah umum bagi sebuah DBMS untuk
memiliki utility untuk memuat file yang ada ke dalam basis data baru. Tools
ini biasanya memerlukan spesifikasi dari file sumber dan basis data tujuan,
kemudian secara otomatis mengubah ke dalam format yang dibutuhkan oleh
file basis data baru.
2.1.18 Testing
Suatu proses untuk mengetes aplikasi terhadap errors dan validasi
terhadap kebutuhan yang dispesifikasikan oleh user. Mendemonstrasikan,
mengecek basis data dan program aplikasi agar berjalan seperti yang
diharapkan.
36
2.1.19 Operational dan Maintanance
Pengimplementasian basis data dan aplikasi secara penuh. Sistem
akan dimonitor dan dipelihara secara berkala. Proses monitoring berlanjut
ke dalam keseluruhan aplikasi basis data dan pada waktunya mungkin
menuju reorganisasi basis data untuk memenuhi kebutuhan yang berubah.
2.1.20 Entity Relationship Modeling (ER Modeling)
Beberapa konsep dasar dalam model ER yaitu :
- Tipe Entitas
Tipe entitas adalah sekumpulan objek yang memiliki properti yang
sama, diidentifikasikan di dalam organisasi karena keberadaannya
yang bebas (independent existence) (Connolly dan Begg, 2002,
p331). Sedangkan entity occurrence adalah sebuah objek dari satu
tipe entitas yang dapat diidentifikasi secara unik (Connolly dan
Begg, 2002, p333). Keberadaan objek – objeknya secara fisik
(physical existence) seperti entitas pegawai, rumah, pelanggan atau
secara konseptual (conceptual existence) seperti penjualan,
pembelian.
Setiap tipe entitas dilambangkan dengan sebuah persegi
panjang yang diberi nama. Nama entitas biasanya adalah kata benda
tunggal.
37
Gambar 2.2 Representasi diagram dari tipe entitas Pegawai dan
Cabang (Connolly dan Begg, 2002, p333)
Tipe entitas dapat diklasifikasikan menjadi :
• Tipe entitas kuat, yaitu tipe entitas yang keberadaannya tidak
bergantung pada entitas lainnya (Connolly dan Begg, 2002,
p342)
• Tipe entitas lemah, yaitu tipe entitas yang keberadaannya
bergantung pada tipe entitas lainnya (Connolly dan Begg,
2002, p343)
Pegawai Cabang
Nama Entiti
38
Gambar 2.3 Representasi diagram tipe entitas kuat dan
tipe entitas lemah (Connolly dan Begg, 2002, p343)
- Tipe relationship
Tipe relationship adalah sekumpulan hubungan antartipe entitas
yang memiliki arti (Connolly dan Begg, 2002, p334). Sedangkan
relationship occurrence adalah sebuah hubungan yang dapat
diidentifikasikan secara unik, yang meliputi sebuah kejadian
(occurence) dari setiap tipe entitas di dalam relationship (Connolly
dan Begg, 2002, p334).
Tipe relationship digambarkan dengan sebuah garis yang
menghubungkan tipe – tipe entitas yang saling berhubungan. Garis
tersebut diberi nama sesuai dengan nama hubungannya dan diberi
tanda panah satu arah.
Klien PilihannoKlien (Pk)
nama
telp
tipePilihan
hrgSewa
Entitas kuat
Entitas lemah
menyatakan
39
Biasanya sebuah relationship menggunakan kata kerja seperti
mengatur, atau dengan sebuah frase singkat yang meliputi sebuah
kata kerja.
memiliki
Gambar 2.4 Representasi diagram dari tipe relationship
(Connolly dan Begg, 2002, p335)
• Derajat dari tipe relationship
Derajat dari tipe relationship adalah jumlah tipe entitas yang
ikut serta dalam sebuah relationship (Connolly dan Begg,
2002, p335)
Complex relationship types adalah sebuah
relationship antara tiga atau lebih tipe entitas (Connolly dan
Begg, 2002, p445). Sebuah relationship yang memiliki
derajat dua dinamakan binary (Connolly dan Begg, 2002,
p336). Gambar 2.4 juga merepresentasikan diagram
relationship derajat dua. Sedangkan relationship derajat tiga
dinamakan ternary, dan jika sebuah relationship berderajat
empat maka dinamakan quarternary (Connolly dan Begg,
2002, p336).
Lambang belah ketupat merepresentasikan
relationship yang memiliki derajat lebih dari dua. Namun
Pegawai Cabang
40
dari relationship tersebut ditampilkan di dalam lambang
belah ketupat. Panah yang biasanya terdapat di samping nama
suatu relationship dihilangkan. Representasi diagram derajat
tiga dari suatu tipe relation dapat dilihat pada gambar 2.5
Gambar 2.5 Representasi diagram derajat tiga dari suatu
tipe (Connolly dan Begg, 2002, p336)
• Recursive relationship
Recursive relationship adalah sebuah tipe relationship
dimana tipe entitas yang sama ikut serta lebih dari sekali pada
peran yang berbeda (Connolly dan Begg, 2002, p337).
Relationship dapat diberikan nama peran untuk
menentukan fungsi dari setiap entitas yang terlibat dalam
relationship tersebut. Representasi diagram recursive
relationship beserta nama perannya terlihat pada gambar 2.6.
MendaftarkanPegawai
Pegawai
Pegawai
41
Pegawai (pengawas) mengawasi pegawai (orang yang
diawasi)
Gambar 2.6 Representasi diagram recursive relationship
dan nama peran (Connolly dan Begg, 2002, p337)
- Attribut
Attribut adalah properti sebuah entitas atau relationship (Connolly
dan Begg, 2002, p338). Menurut Jeffery L Whitten (2004, p295),
attribut merupakan properti deskriptif atau karakteristik dari sebuah
entitas. Attribut menampung nilai yang menjelaskan setiap entity
occurrence dan menggambarkan bagian utama dari data yang
disimpan di dalam basis data.
Attribut domain adalah sekumpulan nilai yang dibolehkan
bagi satu atau lebih attribut (Connolly dan Begg, 2002, p338).
Attribut dapat diklasifikasikan menjadi :
Nama Peran
Pegawai Nama Peran
mengawasi
pengawas Orang yang diawasi
42
• Simple attribute adalah attribut yang terdiri dari komponen
tunggal dengan keberadaannya yang bebas (Connolly dan
Begg, 2002, p339)
• Composite attribute adalah attribut yang terdiri dari beberapa
komponen, dan keberadaan setiap komponen tersebut bebas
(Connolly dan Begg, 2002, p339)
• Single valued attribute adalah attribut yang hanya memiliki
sebuah nilai untuk setiap occurrence dari sebuah entitas
(Connolly dan Begg, 2002, p339)
• Multi valued attribute adalah sebuah attribut yang memiliki
banyak nilai untuk setiap occurrence dari sebuah tipe entitas
(Connolly dan Begg, 2002, p340)
• Derived attribute adalah attribute yang merepresentasikan
sebuah nilai yang diturunkan dari attribut lain yang
berhubungan atau kumpulan dari attribut (Connolly dan
Begg, 2002, p340)
2.1.21 Keys
Candidate key adalah himpunan attribut yang minimal yang secara
unik mengidentifikasikan setiap occurrence dari sebuah tipe entitas
(Connolly dan Begg, 2002, p340).
43
Composite key adalah sebuah candidate key yang terdiri atas dua
atau lebih attribut (Connolly dan Begg, 2002, p341)
Primary key adalah candidate key yang terpilih untuk
mengidentifikasikan secara unik setiap occurrence dari sebuah tipe entitas
(Connolly dan Begg, 2002, p341). Pada sebuah tipe entitas biasanya
terdapat lebih dari satu candidate key yang salah satunya harus dipilih
menjadi primary key. Pemilihan primary key didasarkan pada panjang
attribut, jumlah minimal attribut yang diperlukan, dan keunikannya.
Alternate key adalah setiap candidate key yang tidak terpilih menjadi
primary key atau biasa disebut sebagai secondary key (Whitten, 2004, p298)
Foreign key adalah sebuah primary key pada sebuah entitas yang
digunakan pada entitas lainnya untuk mengidentifikasikan sebuah
relationship (Whitten, 2004, p301).
2.1.22 Batasan Struktural (Structural Constaints)
Batasan – batasan yang menggambarkan pembatasan pada
relationship seperti yang ada pada real word harus diterapkan pada tipe
entitas yang ikut serta pada sebuah relationship. Jenis utama dari batasan
pada suatu relationship dinamakan multiplicity (Connolly dan Begg, 2002,
p344)
44
Multiplicity adalah jumlah occurrence yang mungkin terjadi pada
sebuah tipe entitas yang berhubungan ke sebuah occurrence dari tipe entitas
lain pada suatu relationship (Connolly dan Begg, 2002, p344)
Derajat yang biasanya digunakan pada suatu relationship adalah
binary relationship yang terdiri atas :
• One to one (1:1) relationship
Setiap relationship menggambarkan hubungan antara sebuah entity
occurrence pada entitas yang satu dengan sebuah entity occurrence
pada entitas lainnya yang ikut serta dalam relationship tersebut.
• One to many (1:*) relationship
Setiap relationship menggambarkan hubungan antara sebuah entity
occurrence pada entitas yang satu dengan satu atau lebih entity
occurrence pada entitas lainnya yang ikut serta dalam relationship
tersebut.
• Many to many (*:*) relationship
Setiap relationship menggambarkan hubungan antara satu atau lebih
entity occurrence pada entitas yang satu dengan satu atau lebih entity
occurrence pada entitas lainnya yang ikut serta dalam relationship
tersebut.
45
2.1.23 Cardinality dan Participation Constraints
Multiplicity sebenarnya terdiri atas dua constraint yang berbeda,
yaitu :
- Cardinality
Cardinality adalah nilai maksimum dari relationship occurrence
yang mungkin terjadi untuk sebuah entitas yang ikut serta pada suatu
relationship (Connolly dan Begg, 2002, p351).
- Participation
Participation menentukan apakah semua atau hanya beberapa entity
occurrence yang ikut serta dalam sebuah relationship (Connolly dan
Begg, 2002, p351) participation constraint dibagi menjadi :
• Mandatory participation
Mandatory participation melibatkan semua entity occurrence
pada relationship tertentu (Connolly dan Begg, 2002, p351)
• Optional participation
Optional participation melibatkan beberapa entity occurrence
pada relationship tertentu (Connolly dan Begg, 2002, p351)
46
2.1.24 Interaksi Manusia dan Komputer
Pengertian interaksi manusia dengan komputer :
Menurut Anderson (2000), pengertian interaksi manusia dan
komputer adalah disiplin ilmu yang berkaitan dengan perancangan, evaluasi,
implementasi sistem komputer interaktif yang digunakan oleh manusia,
serta studi fenomena – fenomena yang berkaitan dengannya.
2.1.25 Diagram Aliran Dokumen (DAD)
Menurut Mulyadi (2001, p60), DAD digunakan untuk
menggambarkan aliran dokumen yang terdapat dalam suatu sistem. Berikut
adalah simbol – simbol yang digunakan dalam DAD :
Tabel 2.1 Diagram Aliran Dokumen (DAD)
Simbol Keterangan
Dokumen. Simbol ini digunakan untuk
menggambarkan semua jenis dokumen.
Dokumen dan tembusannya. Simbol ini
digunakan untuk menggambarkan
dokumen asli dan tembusannya.
47
Catatan. Simbol ini digunakan untuk
menggambarkan catatan akuntansi
Penghubung pada halaman yang sama.
Dalam menggambarkan bagan alir, arus
dokumen dibuat mengalir dari atas ke
bawah dan kiri ke kanan. Karena
keterbatasan halaman, maka diperlukan
simbol penghubung.
Penghubung pada halaman yang
berbeda. Sama seperti simbol di atas,
namun simbol ini digunakan untuk
penghubung halaman yang berbeda.
Kegiatan manual. Simbol ini digunakan
untuk menggambarkan kegiatan manual.
Arsip sementara. Simbol ini digunakan
untuk menunjukkan tempat penyimpanan
dokumen
Arsip permanen. Simbol digunakan untuk
menggambarkan arsip permanen.
48
Simbol Keterangan
On-line computer process. Simbol ini
menggambarkan pengolahan data dengan
komputer secara on-line.
Keying. Simbol ini menggambarkan
pemasukan data ke dalam komputer
melalui on-line terminal.
Pita magnetik. Simbol ini
menggambarkan arsip komputer yang
berbentuk pita magnetik.
On-line storage. Simbol ini
menggambarkan arsip komputer berbentuk
on-line.
Keputusan. Simbol ini menggambarkan
keputusan yang harus dibuat.
Garis alir (flowline). Simbol ini
menggambarkan arah proses pengolahan
data.
49
Simbol Keterangan
Persimpangan garis alir. Jika dua garis
alir bersimpangan, untuk menunjukkan
arah masing – masing garis.
Pertemuan garis alir. Simbol ini
digunakan jika dua garis alir bertemu dan
salah satu garis mengikuti arus garis
lainnya.
Mulai/Berakhir. Simbol ini untuk
menggambarkan awal dan akhir suatu
sistem.
Dari Pemasok Masuk ke sistem. Simbol ini digunakan
untuk menggambarkan proses yang masuk
dari luar ke dalam sistem.
Ke sistem penjualan
Keluar ke sistem. Simbol ini digunakan
untuk menggambarkan proses yang keluar
dari sistem.
50
2.1.26 State Transition Diagram (STD)
State transition diagram adalah tool yang digunakan untuk
menggambarkan sequence dan variation dari tampilan layar yang dapat
terjadi semasa user session. Ada dua macam cara kerja dari STD, yaitu :
• Passive
Sistem ini melakukan kontrol terhadap lingkungan tetapi lebih
bersifat memberikan reaksi atau menerima data saja. Misalnya suatu
sistem yang tugasnya mengumpulkan atau menerima data melalui
sinyal yang dikirimkan satelit.
• Active
Sistem ini melakukan kontrol terhadap lingkungan secara aktif dan
dapat menerima data serta memberikan rspon terhadap lingkungan
dengan program yang telah ditentukan. Misalnya sistem komputer
yang ditempatkan pada peluru kendali atau sistem yang digunakan
pada proses kontrol.
Notasi yang digunakan pada STD, yaitu :
• Kotak
Kotak menggambarkan state. State adalah kumpulan keadaan atau
attribut yang mencirikan suatu benda pada waktu tertentu atau
51
kondisi tertentu. Misalnya menunggu pemakai mengisi password,
menunggu instruksi berikutnya atau menunggu nada panggil.
• Panah
Transition state atau perubahan state disimbolkan dengan anak
panah.
• Action
Action adalah yang dilakukan sistem bila terjadi perubahan state atau
merupakan reaksi terhadap kondisi action akan menghasilkan
kalkulasi dan lain sebagainya.
2.1.27 Waterfall Model
Waterfall model digunakan untuk urutan dalam pembuatan sebuah
software, dimulai dari analysis, design, code, test (Pressman, 2001, p28).
Gambar 2.7 Linear Sequential Model atau biasa disebut juga Waterfall
Model
Pada tahap analysis digunakan untuk mecari kebutuhan – kebutuhan
yang diinginkan oleh pelanggan. Pihak software engineer harus mengerti
Analysis Design Code Test
52
kebutuhan fungsi, performa, dan tampilan muka dari software yang akan
dibuat.
Pada tahap design digunakan untuk men-design algoritma, tampilan
layar, struktur data, software architecture. Hasil design yang sudah dibuat
akan didokumentasikan dan menjadi bagian dari software configuration.
Pada tahap code digunakan untuk mengubah design pada tahap
sebelumnya menjadi bahasa yang dapat dimengerti oleh mesin, sehinga pada
akhirnya akan menjadi sebuah software jadi.
Pada tahap test digunakan untuk menge-test apakah program yang
sudah dibuat memiliki bug ataupun kesalahan – kesalahan yang nantinya
akan diperbaiki kembali.
2.2 Teori Pendukung
2.2.1 Teori Penjualan
Menurut Romney dan Steinbart (2002, p517), penjualan merupakan
suatu set rekursif dari kegiatan bisnis dan operasi pemrosesan informasi
terkait yang dihubungkan dengan penyediaan barang dan pelayanan
pelanggan serta penerimaan pembayaran dari penjualan tersebut.
Menurut Mulyadi (2001, p204), kegiatan penjualan terdiri dari
transaksi penjualan barang atau jasa, bisa secara kredit maupun tunai.
• Kredit
53
Jika barang atau jasa telah dipenuhi kepada pelanggan, maka
perusahaan memiliki piutang terhadap pelanggan tersebut dalam
jangka waktu tertentu.
• Tunai
Barang atau jasa akan dipenuhi kepada pelanggan apabila pelanggan
telah membayar barang atau jasa tersebut terlebih dahulu.
Fungsi – fungsi yang terkait dengan sistem penjualan adalah :
• Fungsi Penjualan
Bertanggung jawab untuk menerima order, mengedit order, meminta
otorisasi kredit, menentukan tanggal pengiriman dan transaksi
penjualan.
• Fungsi Kredit
Bertanggung jawab untuk meneliti status kredit dan memberikan
otorisasi kredit kepada pelanggan.
• Fungsi Gudang
Bertanggung jawab untuk menyimpan dan menyiapkan barang yang
dipesan, dan mengirimkannya ke bagian pengiriman.
• Fungsi Pengiriman
54
Bertangung jawab untuk menyerahkan barang ke pelanggan
berdasarkan surat order pengiriman yang diterima dari bagian
penjualan.
• Fungsi Penagihan
Bertanggung jawab untuk melakukan pencatatan atas transaksi yang
timbul dari kegiatan penjualan.
• Fungsi Akuntansi
Bertanggung jawab untuk mencatat piutang yang timbul dari
transaksi penjualan kredit dan membuat laporan penjualan.
Jaringan prosedur yang membentuk sistem penjualan (Mulyadi,
2001, p219) adalah sebagai berikut :
• Prosedur order penjualan
Dalam prosedur ini, bagian order penjualan menerima order dari
pembeli dan menambah informasi penting pada surat order. Bagian
ini kemudian mengirimkan kepada bagian kredit untuk meminta
persetujuan kredit. Setelah disetujui, bagian penjualan mengisi faktur
penjualan dan surat order pengiriman ke bagian yang terkait.
• Prosedur persetujuan kredit
55
Bagian kredit menganalisis kredit yang diajukan oleh pelanggan
kemudian memberikan persetujuan atau membatalkan penjualan
kredit yang diajukan.
• Prosedur pengiriman
Bagian pengiriman mengirimkan barang kepada pembeli sesuai
dengan surat order pengiriman yang diterima dari bagian order
penjualan.
• Prosedur penagihan
Bagian ini membuat surat penagihan dan melampirkan faktur
penjualan untuk dikirimkan kepada pembeli.
• Prosedur pencatatan piutang
Bagian piutang mencatat tembusan faktur penjualan ke dalam kartu
piutang untuk mengadakan pengakuan piutang.
• Prosedur distribusi penjualan
Bagian ini mendistribusikan data – data penjualan menurut informasi
yang diperlukan manajemen.
• Prosedur pencatatan harga pokok penjualan
Dalam prosedur ini bagian kartu persediaan dan kartu biaya
membuat rekap harga pokok penjualan dan bukti memorial sebagai
56
dasar bagi bagian akuntansi untuk melakukan pencatatan harga
pokok produk yang dijual.