Minggu, 15 Agustus 2010

Tugas PBD

TUGAS PEMROGRAMAN BASISDATA
Soal 1
Apa bedanya client server dan web based dalam konteks software engineering ?
Klien-server atau client-server merupakan sebuah paradigma dalam Teknologi Informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke dalam dua pihak: pihak klien dan pihak server.
Arsitektur Client Server mendominasi sistem komputer kebanyakan hari ini .Semua , dari ATM sampai internet ada karena software yang berada di satu komputer – client , meminta servis atau data dari komputer lainnya – server . Arsitektur Client/Server , menggabungkan prinsip konvensional , konsep dan metode dari Object-Oriented dan Component based Software engineering.
Kenapa Client-Server Software Engineering begitu penting ?
Dampak dari sistem client-server (c/s) pada pemerintahan , bisnis , komersial , dan lingkungan sains sangat terasa. Dan perkembangan teknologi Software Engineering ( Component based – Software development, object request broker , java ,dsb) merubah jalan untuk mengembangkan sistem c/s. Proses Software Engineering yang solid harus diaplikasikan terhadap konstruksi sistem c/s.
Arsitektur Client/Server tidak mengimplementasikan suatu software sebagai suatu aplikasi monolitik yang hanya diterapkan pada satu mesin , sehingga arsitektur c/s membutuhkan lebih dari satu mesin untuk diterapkan . Arsitektur c/s juga memiliki beberapa subsistem yang berbeda yang dapat dialokasikan ke client , ke server ataupun ke kedua mesin
Jika kemudian system basis data terdistribusi pada site yang berbeda yang memilki otonomi tersendiri dan mungkin memperlihatkan beberapa format dari heterogenitas, mereka akan merujuk pada multidatabase system atau federated database system. Jika data dan DBMS secara fungsional terpenuhi dalam sebuah computer dengan multiprocessor, maka ia akan lebih merujuk pada parallel database system. Ini merupakan perbedaan mereka dengan system basis data terdistribusi yang mana integrasi logic diantara data-data yang terdistribusi lebih erat daripada yang dimiliki oleh multidatabase system atau federated database system, namun secara control fisik lebih lemah daripada yang dimiliki oleh parallel DBMS.
Terdapat beberapa macam model arsitektural untuk pengembangan system manajemen basis data terdistribusi, mulai dari system client/server, dimana query sites bersesuaian dengan client ketika data sites bersesuaian dengan server, untuk system peer to peer dimana tidak
terdapat perbedaan antara mesin client dan mesin server, beberapa arsitektur ini berbeda berkenaan dengan dimana ketersediaan tempat untuk masing-masing fungsi DBMS.
Dalam kasus client/server DBMS, server akan melaksanakan lebih banyak pekerjaan mengenai manajemen data. Yang berarti bahwa seluruh proses terhadap query dan proses optimalisasi, manajemen transaksi dan manajemen penyimpana diselesaikan di server. Sedangkan client, merupakan tambahan untuk aplikasi dan antar muka untuk user. Terdapat sebuah modul DBMS client yang bertanggung jawab untuk memanaje data yang telah di chached di client dan (kadang-kadang) memanaje kunci transaksi yang mungkin telah dichached juga. Sebuah standar fungsional dari distribusi client/server dapat dilihat pada.

Image and video hosting by TinyPic

Arsitektur client/server yang paling sederhana adalah system multiple-client/single-server. Dari sebuah perspektif manajemen data, hal ini tidak begitu berbeda dengan basis data
terpusat sejak basis data disimpan hanya dalam satu mesin saja (server) dimana juga merupakan tempat untuk software yang digunakan untuk memanaje basis data tersebut. Bagaimanapun jugam terdapat beberapa perbedaan penting dari system terpusat dalam bagaimana transaksi dieksekusi dan bagaimana chaced di manaje. Sebuah arsitektur yang lebih canggih adalah dimana terdapat beberapa server didalam system (yang kemudian disebut pendekatan multiple-client/multiple-server). Dalam kasus ini, terdapat dua alternative startegi manajemen yang mungkin dilaksanakan: yaitu dimana masing-masing client DBMS memanaje koneksinya sendiri kepada server atau tiap client hanya mengenal home servernya saja, dimana kemudian dibutuhkan komunikasi dengan server lain. Pendekatan terdahulu adalah dengan melaksanakan penyederhanaan code server, namun membebabi mesin client dengan beberapa tanggung jawab tambahan (heavy client) sedangkan pendekatan yang lain adalah dengan mengkonsentrasikan kemampuan manajemen data secara fungsional di server dan kemudian menyediakan transparansi akses data pada antarmuka user (light client).

Image and video hosting by TinyPic

Dalam kasus system peer-to-peer, tidak terdapat perbedaan antara client dan server dan masing-masing site dalam system dapat melaksanakan fungsi yang sama. Namun masing dimungkinkan untuk memisahkan modul yang digunakan untuk melayani permintaan user dari yang lain yang memanaje data, namun ini hanya merupakan pemisahan secara logic dan sama sekali tidak menyiratkan distribusi fungsional. Dalam proses eksekusi query (transaksi), ini memungkinkan bagi query global optimizer (monitor eksekusi global)) untuk berkomunikasi secara langsung dengan prosesor query local (local recovery managers) dimana bagian-bagian dari queryu di eksekusi. Sehingga, mekanisme komunikasi semakin dilibatkan, yang mendorong kearah struktur software yang lebih rumit.
Arsitektur system Client/Server
• Arsitektur client/server terus dikembangkan dan terus dimasukkan dalam paket DBMS komersial – seperti halnya mereka bergerak terus untuk mendukung distribusi.
• Software DDBMS kemudian dibagi menjadi dua level – client dan server
• Untuk menurunkan kompleksitasnya.
1. beberapa site dapat menjalankan hanya software client saja
2. sites yang lain dapat digunakan sebagai mesin server yang hanya akan menjalankan software server saja
3. dimana sites yang lain dapat mendukung kedua modul server dan client
Fungsi system Client/Server
• software client dan server saling berkomunikasi dengan menggunakan SQL
• server SQL bertanggung jawab atas manajemen data local dalam sebuah site, seperti halnya DBMS terpusat
fungsi client SQL juga diperluas
• menghasilkan rencana eksekusi proses terdistribudi dan menguraikan query menjadi query local yang kemudian akan diproese oleh server SQL local
• Memastikan konsistensi dari salinan data item hasil replikasi dengan menggunakan teknik pengendalian cocurrency terdistribusi
• Menjamin valensi dari transakso global dengan melaksanakan global recovery ketika terdapat beberapa sites mengalami kegagalan proses
Karakteristik Client-Server
Client
• Menyediakan antar muka untuk user
• Menyediakan format query atau perintah dalam bahasa yang telah dikenal
• Mengkomunikasikan format query dan perintah dengan server yang disesuaikan dengan metode komunikasi antar proses yang diterima
• Melaksanakan analisis terhadap data yang merupakan hasil yang dikembalikan oleh server
• Menampilkan hasil query dan perintah kepada user
Server
• Menyediakan servis pada client (bias lebih dari satu)
• Hanya merespon query atau perintah yang dikirimkan oleh klien; tidak memulai komunikasi dengan client
• Secara ideal, akan menyembunyikan keberadaan dari system client-server dari client
Keuntungan dan keterbatasan system Client-Server keuntungan
• Efisiensi jumlah pekerjaan
• Client mengakses pada remote data (via standards)

• Menyediakan fungsi DBMS secara penuh pada mesin client
• Pengukuran resource secara horizontal dan vertikal
• Harga dan performa yang lebih baik pada mesin client
• Kemampuan untuk menggunakan tool yang lebih familiar dengan user di client
• Secara keseluruhan menyediakan performa dan harga yang lebih baik Kelemahan
• Server membentuk bottleneck
• Server membentuk titik kegagalan tunggal
• Kesulitan dalam pengukuran database
Arsitektur tiga-tier
• Arsitektur ini memilki sebuah data management layer, sebuah application layer danb sebuah user interface layer.
1. data management layer memegang kendali atas skema basis data dan data.
2. The application layer memegang program yang mewujudkan aplikasi logic
3. The user interface layer memanaje form dan laporan yang dipresentasikan pada user
Contoh proses dari system client/server
Interaksi antara client dan server akan terjadi seperti halnya pada saat pemrosesan sebuah query SQL :
• client menguraikan query dari user dan kemudian memilah-milah query tersebut menjadi beberapa query local pada site independent
• setiap query akan dikirimkan pada site server yang sesuai
• setiap server memproses query local dan kemudian mengirimkan hasilnya ke site client
• site client kemudian akan meongkombinasikan hasil dari subqueries-subqueries untuk membentuk sebuah hasil/laporan dari query yang dimaksudkan oleh user

Web Based

Dalam rekayasa perangkat lunak, suatu aplikasi web (bahasa Inggris: web application atau sering disingkat webapp) adalah suatu aplikasi yang diakses menggunakan penjelajah web melalui suatu jaringan seperti Internet atau intranet. Ia juga merupakan suatu aplikasi perangkat lunak komputer yang dikodekan dalam bahasa yang didukung penjelajah web (seperti HTML, JavaScript, AJAX, Java, dll) dan bergantung pada penjelajah tersebut untuk menampilkan aplikasi.

Aplikasi web menjadi populer karena kemudahan tersedianya aplikasi klien untuk mengaksesnya, penjelajah web, yang kadang disebut sebagai suatu thin client (klien tipis). Kemampuan untuk memperbarui dan memelihara aplikasi web tanpa harus mendistribusikan dan menginstalasi perangkat lunak pada kemungkinan ribuan komputer klien merupakan alasan kunci popularitasnya. Aplikasi web yang umum misalnya webmail, toko ritel daring, lelang daring, wiki, papan diskusi, weblog, serta MMORPG.

Setelah uraian diatas maka di bawah ini adalah beberapa perbedaan client server dan web based

aplikasi berbasis web vs Client-Server Software dari beberapa aspek(perbedaan)

Biaya (system costs)

Kelebihan
• Web-based - Sistem biasanya ditawarkan pada langganan atau dasar penggunaan, tetap Anda kontrol biaya dan memungkinkan Anda untuk tumbuh ke dalam sistem tanpa biaya di muka yang besar.

• Client-Server - Anda mengendalikan upgrade dan dapat memutuskan hubungan dengan penyedia perangkat lunak bila Anda

• tidak peduli untuk memiliki fitur yang lebih baru atau dukungan.

• Web-based - Langganan cenderung berkelanjutan sehingga diperpanjang selama tahun, sistem ini dapat tampaknya biaya lebih dari sebuah aplikasi dalam-rumah (meskipun perbandingan biaya sebenarnya harus meliputi faktor-faktor lain mungkin).

• Client-Server - Software biasanya dibayar di muka dan biaya awal sistem bisa tinggi. Anda memiliki eksposur tinggi jika sistem tidak berubah untuk memenuhi kebutuhan anda. Juga, mungkin lisensi memerlukan kontrak pelayanan sebanyak 20% dari biaya sistem per tahun, apakah Anda menggunakannya atau tidak.

Lingkungan (environtmen)

Kelibihan
• Hardware • berbasis Web -, sistem operasi dan perangkat lunak database termasuk dalam harga aplikasi. Tidak ada biaya internal bagi perusahaan Anda untuk membeli, memelihara atau meningkatkan jaringan

• Client-Server - Internal staff yang memegang kendali penuh lingkungan. Anda dapat membuat keputusan TI bahwa Anda merasa adalah yang terbaik
cons •
• Web-based - Lingkungan komputasi biasanya dibagi dengan pelanggan lain. ementara database yang terpisah dan aman, beban sistem dapat menjadi faktor penyebab.

• Client-Server - Semua biaya untuk membeli, memelihara dan upgrade jaringan yang ada di bahu Anda dan yang biasanya tidak kompetensi inti perusahaan Anda. endorong ke ASP dapat benar-benar menghemat uang

Sistem Akses

Kelebihan

• Web-based - Software diakses dari mana saja dengan internet browser standar dan sebuah sambungan. User bahkan tidak perlu menggunakan komputer sendiri. Sebagian besar perusahaan memiliki akses internet yang masuk akal sehingga tidak ada biaya tambahan harus dikeluarkan.
• Client-Server - Software dapat diakses melalui jaringan lokal, menciptakan cukup cepat respon dan otonomi dari Internet.cons

Soal 2
Teknik Pengukuran Kualitas Software ( Software measuarements and Metric )

Deras masuknya produk perangkat lunak dari luar negeri di satu sisi menguntungkan pengguna karena banyaknya pilihan produk dan harga. Namun di sisi lain cukup mengkhawatirkan karena di Indonesia tidak ada institusi yang secara aktif bertugas membuat standard dalam pengukuran kualitas perangkat lunak yang masuk ke Indonesia. Demikian juga dengan produk-produk perangkat lunak lokal, tentu akan semakin meningkat daya saing internasionalnya apabila pengembang dan software house di Indonesia mulai memperhatikan masalah kualitas perangkat lunak ini.

Kualitas perangkat lunak (software quality) adalah tema kajian dan penelitian turun temurun dalam sejarah ilmu rekayasa perangkat lunak (software engineering). Kajian dimulai dari apa yang akan diukur (apakah proses atau produk), apakah memang perangkat lunak bisa diukur, sudut pandang pengukur dan bagaimana menentukan parameter pengukuran kualitas perangkat lunak.

Bagaimanapun juga mengukur kualitas perangkat lunak memang bukan pekerjaan mudah. Ketika seseorang memberi nilai sangat baik terhadap sebuah perangkat lunak, orang lain belum tentu mengatakan hal yang sama. Sudut pandang seseorang tersebut mungkin berorientasi ke satu sisi masalah (misalnya tentang reliabilitas dan efisiensi perangkat lunak), sedangkan orang lain yang menyatakan bahwa perangkat lunak itu buruk menggunakan sudut pandang yang lain lagi (usabilitas dan aspek desain).

APA YANG DIUKUR?
Pertanyaan pertama yang muncul ketika membahas pengukuran kualitas perangkat lunak, adalah apa yang sebenarnya mau kita ukur. Kualitas perangkat lunak dapat dilihat dari sudut pandang proses pengembangan perangkat lunak (process) dan hasil produk yang dihasilkan (product). Dan penilaian ini tentu berorientasi akhir ke bagaimana suatu perangkat lunak dapat dikembangkan sesuai dengan yang diharapkan oleh pengguna. Hal ini berangkat dari pengertian kualitas (quality) menurut IEEE Standard Glossary of Software Engineering Technology [3] yang dikatakan sebagai:

The degree to which a system, component, or process meets customer or user needs or expectation.

Dari sudut pandang produk, pengukuran kualitas perangkat lunak dapat menggunakan standard dari ISO 9126 atau best practice yang dikembangkan para praktisi dan pengembang perangkat lunak. Taksonomi McCall adalah best practice yang cukup terkenal dan diterima banyak pihak, ditulis oleh J.A. McCall dalam technical report yang dipublikasikan tahun 1977 [1].



Di lain pihak, dari sudut pandang proses, standard ISO 9001 dapat digunakan untuk mengukur kualitas perangkat lunak. Dan diskusi tentang ini berkembang dengan munculnya tema kajian tentang CMM (The Capability Maturity Model) yang dikembangkan di Software Engineering Institute, Carnegie Mellon University serta beberapa kajian lain seperti SPICE (Software Process Improvement and Capability dEtermination) dan BOOTSTRAP. CMM, SPICE dan BOOTSTRAP mengukur kualitas perangkat lunak dari seberapa matang proses pengembangannya.

Tulisan ini akan mencoba fokus ke bagaimana mengukur perangkat lunak dilihat dari sudut pandang produk. Untuk pengukuran proses pengembangan perangkat lunak akan dibahas pada tulisan lain.

PARAMETER DAN METODE PENGUKURAN

When you can measure what you are speaking about, and express it in numbers, you know something about it. But when you can not measure it, when you can not express it in numbers, your knowledge is of a meagre and unsatisfactory kind.
(Lord Kelvin)

Pendekatan engineering menginginkan bahwa kualitas perangkat lunak ini dapat diukur secara kuantitatif, dalam bentuk angka-angka yang mudah dipahami oleh manusia. Untuk itu perlu ditentukan parameter atau atribut pengukuran. Menurut taksonomi McCall [1], atribut tersusun secara hirarkis, dimana level atas (high-level attribute) disebut faktor (factor), dan level bawah (low-level attribute) disebut dengan kriteria (criteria). Faktor menunjukkan atribut kualitas produk dilihat dari sudut pandang pengguna. Sedangkan kriteria adalah parameter kualitas produk dilihat dari sudut pandang perangkat lunaknya sendiri. Faktor dan kriteria ini memiliki hubungan sebab akibat (cause-effect) [4][5]. Tabel 1 menunjukkan daftar lengkap faktor dan kriteria dalam kualitas perangkat lunak menurut McCall [1].

Kualitas software diukur dengan metode penjumlahan dari keseluruhan kriteria dalam suatu faktor sesuai dengan bobot (weight) yang telah ditetapkan [2]. Rumus pengukuran yang digunakan adalah:

Fa = w1c1 + w2c2 + … + wncn

Dimana:

Fa adalah nilai total dari faktor a
wi adalah bobot untuk kriteria i
ci adalah nilai untuk kriteria i

Kemudian tahapan yang harus kita tempuh dalam pengukuran adalah sebagai berikut:

Tahap 1: Tentukan kriteria yang digunakan untuk mengukur suatu faktor
Tahap 2: Tentukan bobot (w) dari setiap kriteria (biasanya 0 <= w <= 1) Tahap 3: Tentukan skala dari nilai kriteria (misalnya, 0 <= nilai kriteria <= 10) Tahap 4: Berikan nilai pada tiap kriteria Tahap 5: Hitung nilai total dengan rumus Fa = w1c1 + w2c2 + … + wncn CONTOH PENGUKURAN PERANGKAT LUNAK Untuk mempermudah pemahaman, akan diberikan sebuah contoh pengukuran kualitas perangkat lunak dari faktor usabilitas (usability). Yang akan diukur adalah dua buah perangkat lunak yang memiliki fungsi untuk mengkontrol peralatan elektronik (electronic device). Perangkat lunak yang pertama bernama TukangKontrol, sedangkan kedua bernama Caktrol. Contoh dan hasil pengukuran dapat dilihat pada Table 2 dan 3. Image and video hosting by TinyPic

Dari penghitungan yang ada di Tabel 3, dapat kita simpulkan bahwa dari faktor usabilitas, kualitas dari perangkat lunak bernama TukangKontrol lebih baik daripada Caktrol. Nilai total TukangKontrol untuk faktor usabilitas adalah 16.8, sedangkan Caktrol adalah 10.2 (dari maksimum total nilai 20).

Soal 3

Teknik Pengukuran Performa BasisData (DataBase Performace )

Pekerjaan seorang database administrator pun memerlukan seni.Hal ini tidak berlebihan karena melakukan tuning database memerlukan kreativitas dan tentunya juga pengetahuan yang memadai.

Apa saja yang dapat di-tune agar menghasilkan performa database yang jauh lebih baik? Diantaranya adalah :
1. Konfigurasi Database Server

Secara default,umumnya setiap DBMS telah memiliki konfigurasi awal.Jika akan melakukan tuning dengan mengubah konfigurasi,hasilnya tidak selalu tampak sesaat setelan kamu menerapkan konfigurasi baru. Adakalanya kamu perlu membiarkan server berjalan selama beberapa jam dan mengukur sejauh mana konfigurasi kamu berpengaruh terhadap kinerjanya.

2. Optimasi Pemanggilan Query
Bagaimana aplikasi melakukan manipulasi data?Beberapa pilihannya adalah dengan menggunakan method ADO,dynamic SQL (ad hoc query),ataupun stored procedure.

Menggunakan method ADO adalah menggunakan berbagai metode seperti rs.AddNew,rs.Update,atau rs.Delete.Cara ini relatif mudah untuk di pelajari dan di implementasikan,tetapi terkadang menghasilkan traffic yang besar pada jaringan,terutama jika aplikasi kamu mengolah data yang besar.

Cara lain adalah dengan menggunakan dynamic SQL,di mana kamu mengirimkan perintah Transact-SQL dalam bentuk string dari aplikasi agar di jalankan oleh database server.Umumnya menggunakan dynamic SQL akan lebih cepat di bandingkan dengan method ADO.

Tetapi karena database server menerimanya dari aplikasi kamu,maka harus di lakukan kompilasi kode Transact-SQL tersebut,menciptakan query plan dapat digunakan lagi kemudian sehingga mempercepat proses berikutnya.

Untuk kinerja yang optimal,kamu dapat mempertimbangkan stored procedure.Stored procedure memiliki kinerja yang lebih baik dan mengurangi traffic dan latency jaringan.

3. Gunakan JOIN dengan Tepat
Menggunakan perintah JOIN tampaknya sudah menjadi keharusan saat kamu bekerja dengan banyak tabel.Penggunaan join yang tidak tepat dapat mengakibatkan permasalahan dalam kinerja database kamu.

Jika kamu memiliki dua atau lebih tabel yang sering melakukan join,sebaiknya kolom yang di gunakan untuk join memiliki unique index,atau memiliki surrogate key agar mengurangi pembacaan I/O selama proses join.Tentunya hal ini akan lebih mengoptimalkan kinerja secara keseluruhan. Kolom yang di gunakan untuk join sebaiknya memiliki tipe data yang sama,dan jika di mungkinkan memiliki tipe data numeric daripada karakter.

Jika proses join sampai melibatkan empat atau lebih tabel untuk mendapatkan record yang kamu inginkan,pertimbangkan untuk melakukan denormalisasi agar jumlah tabel yang di join dapat berkurang. Terkadang hal ini di perlukan dengan pertimbangan kinerja database akan jadi lebih baik,jika kita menambahkan satu atau dua kolom tambahan agar dapat mengurangi jumlah tabel join yang terlampau banyak.




DAFTAR PUSTAKA
http://rpl07.wordpress.com/2007/06/20/clientserver-software-engineering-oleh-m-rizky-r-5105-100-135/
http://id.wikipedia.org/wiki/Klien-server
http://www.eecs.umich.edu/~teorey/lec.notes.pdf http://learning.unl.ac.uk/csp003n/lectures/w021-ddb-arch.pdf http://learning.unl.ac.uk/csp003n/pastpapers/sb03g-exama-03a.pdf
javascript:void(0)

A. McCall, P.K. Richards, and G.F. Walters, Factors in Software Quality, Tehnical Report RADC-TR-77-369, US Department of Commerce, 1977.
T.P. Bowen, G.B Wigle, and J.T. Tsai, Specification of Software Quality Attributes: Software Quality Evaluation Guidebook, Technical Report RADC-TR-85-37, Rome Air Development Center, Griffiss Air Force Base, 1985.

Jumat, 06 Agustus 2010

SI Kereta Api Online

BENTUK TIKET PENUMPANG
Bentuk tiket penumpang dugunakan sebagai tiket masuk penumpang ke dalam kereta api. Bentuk tiket penumpang bisa dilihat dalam Gambar.
Image and video hosting by TinyPic

BENTUK TIKET PENGIRIMAN BARANG
Bentuk tiket pengiriman barang merupakan tanda terima bagi pemesan.
Bentuk tiket tersebut bisa dilihat dalam Gambar.
Image and video hosting by TinyPic

BENTUK FORMULIR PEMESANAN TIKET PENUMPANG
Formulir pemesanan tiket penumpang merupakan data sementara dari pemesan tiket, di mana data akan diproses setelah pengisian. Bentuknya bisa dilihat dalam Gambar.
Image and video hosting by TinyPic

RANCANGAN MODEL
Rancangan model digambarkan berbentuk model logical, yaitu bentuk model sisitem yang lebih menjelaslkan fungsi-fungsi dalam sistem informasi secara logika yang mengalir. Model Logika tesebut biasa digambarkan menggunakan Data Flow Diagram (DFD) atau Diagram Alir Data (DAD).
Lingkup sistem yang dibangun dijabarkan dalam bentuk Diagram Konteks yang merupakan gambaran dari keseluruhan dari suatu sistem, yang bertujuan memberikan pandangan secara umum tentang sistem serta memperlihatkan sebuah proses yang berinteraksi dengan lingkungannya. Ada pihak luar atau lingkuangan yang memberi masukkan dan ada pihak yang menerima keluaran sistem. Secara garis besar, diagram konteks sistem informasi pemesanan tiket disajikan dalam Gambar 1.1.
Sistem informasi pemesanan tiket yang disajikan dalam diagram konteks pada Gambar 1.1 memiliki beberapa proses didalamnya, yaitu proses 1.0 Pembuatan informasi kereta api, proses 2.0 Pemesanan tiket secara langsung, proses 3.0 Pemesanan tiket melalui via telepon, proses 4.0 Pembatalan tiket, dan porses 5.0 Pembuatan laporan. Hubungan kelima proses tersebut disajikan dalam DFD level 0 dalam Gambar 1.2.
Image and video hosting by TinyPic


Image and video hosting by TinyPic

RANCANGAN BASIS DATA
Rancangan basis data merupakan proses untuk menentukan isi dan pengaturan data yang dibutuhkan untuk mendukung berbagai perancangan sistem. Untuk memperoleh struktur basis data sistem, perlu dilakukan Normalisasi. Proses normalisasi merupakan proses pengelompokan data ke dalam bentuk tabel atau relasi atau file untuk menyatakan entitas dan hubungan sehingga terwujud satu bentuk basis data yang mudah dimodifikasi. Tahap proses normalisasi untuk menghasilkan bentuk yang normal memerlukan beberapa langkah berikut.

BENTUK NORMALISASI TIDAK NORMAL
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan untuk mengikuti format tertentu. Bisa saja data tidak ada atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan saat menginput. Berdasarkan daftar yang diperoleh, bisa ditentukan field data yang dibutuhkan sistem, yakni yang ditunjukan pada Tabel.
Image and video hosting by TinyPic

Image and video hosting by TinyPic

NORMALISASI KE-1(1NF)
Bentuk normal kesatu memiliki ciri yakni pembentukan setiap data dalam satu record. Bentuk normal kesatu biasa dikenakan dalam tabel yang belum ternormalisasi. Tabel yang belum ternormalisasi adalah tabel yang memiliki atribut berulang sehingga tabel yang tidak normal bisa dikelompokan menjadi atribut yang berulang dan tidak berulang.
Kelompok tak berulang
Keberangkatan (kd_ka, nm_ka, kls_ka, gbr_ka, kpst_ka, gbr, kd_brkt, kt_tjn, tgl_brkt, jam_brkt).
Kelompok berulang
Pemesan (kd_pmsn, nm_pmsn, almt_pmsn, jkl_pmsn, status, no_telp)
Pemesanan tiket penumpang (no_pmsnan, tgl_pmsn, jam_pmsn, kt_tjn, dewasa, anak-anak, no_bang, kd_pmsn, kd_brkt)
Daftar harga tiket penumpang (no_pmsnan, jlh_pnmng, tot_byr)
Pengirim (kd_pngrm, nm_pngrm, almt_pngrm, no_telp)
Barang kiriman (kd_brg, nm_brg, kd_pngrmn)
Pemesanan tiket pengiriman barang (no_pbrg, tgl_pmsan, jam_pmsan, kt_tjn, kd_brg, kd_brkt)
Daftar harga tiket pengiriman barang (kd_brg, jlh_brg, tot_byr)
Tarif kereta api (tktdewasa, tktanak, tktbrg, tktspd, kd_brkt)
Pembatalan (kd_btl, jlh_tkt, tgl_btl, jam_btl, no_pbrg, no_pmsan)



NORMALISASI KE-2(2NF)
Bentuk normal kedua dilakukan bila data berada dalam bentuk normal pertama. Semua atribut bukan kunci haruslah bergantung pada kunci primer. Relasi keberangkatan bisa dipecah menjadi tabel berangkat dan daftar kereta api.
Berangkat (kd_brkt, kt_tjn, hrg_tkt, tgl_brkt, jam_brkt, kd_ka)
Daftar Kereta Api (kd_ka, nm_ka, kls_ka, grb_ka, kpst_ka, gbr)
Dari hasil normalisasi diatas dihasilkan tabel, yaitu:
1. Daftar Kereta Api (kd_ka, nm_ka, kls_ka, grb_ka, kpst_ka, gbr)
2. Pemesan (kd_pmsn, nm_pmsn, almt_pmsn, jkl_pmsn, status, no_telp)
3. Pemesanan tiket penumpang (no_pmsnan, tgl_pmsn, jam_pmsn, kt_tjn, Dewasa, Anak-anak, no_bang, kd_pmsn, kd_brkt)
4. Daftar harga tiket penumpang (no_pmsnan, jlh_pnmng, tot_byr)
5. Pengirim (kd_pngrm, nm_pngrm, almt_pngrm, no_telp)
6. Barang kiriman (kd_brg, nm_brg, kd_pngrmn)
7. Pemesanan tiket pengiriman barang (no_pbrg, tgl_pmsan, jam_pmsan, kt_tjn, kd_brg, kd_brkt)
8. Daftar harga tiket pengiriman barang (kd_brg, jlh_brg, tot_byr)
9. Tarif kereta api (tktdewasa, tktanak, tktbrg, tktspd, kd_brkt)
10. Pembatalan (kd_btl, jlh_tkt, tgl_btl, jam_btl, np_pbrg, np_pmsan)

STRUKTUR TABEL BASIS DATA
Melalui proses di atas, bisa dirancang basis data dari sistem. Basis database yang dirancang berisi tabel dari masing-masing relasi yang diperoleh melalui proses normalisasi di atas. Struktur tabel basis data tersebut adalah sebagai berikut.
TABEL DAFTAR KERETA API
Tabel daftar kereta api digunakan untuk menyimpan data mengenai kereta api. Tabel tersebut terdiri dari 6 field, yaitu kd_ka, nm_ka, kls_ka, grb_ka, kpst_ka, gbr yang bisa dilihat dalam Tabel.

Image and video hosting by TinyPic

TABEL BERANGKAT
Tabel berangkat merupakan tabel yang digunakan untuk menyimpan data mengenai kereta yang akan berangkat. Tabel tersebut terdiri dari 5 field, yaitu kd_brkt, tgl_brkt, jam_brkt, kd_ka yang dapat dilihat dalam Tabel.

Image and video hosting by TinyPic

TABEL PEMESAN
Tabel pemesan merupakan tabel yang digunakan untuk penyimpanan data pemesan tiket. Tabel tersebut terdiri dari 6 field, yaitu kd_pmsn, nm_pmsn, almt_pmsn, jkl_pmsn, status, no_telp yang dapat dilihat dalam Tabel.


Image and video hosting by TinyPic

TABEL PEMESANAN TIKET PENUMPANG
Tabel pemesanan tiket penumpang merupakan tabel yang digunakan untuk menyimpan data mengenai pemesanan tiket penumpang. Tabel itu terdiri atas 9 field, yaitu no_pmsnan, jam_pmsnan, tgl_pmsnan, kt_tjn, dewasa, anak-anak, no_bang, kd_pmsn, kd_brkt yang dapat dilihat dalam Tabel.

Image and video hosting by TinyPic

TABEL DAFTAR HARGA TIKET PENUMPANG
Tabel daftar harga tiket penumpang merupakan tabel yang digunakan untuk menyimpan data harga tiket penumpang. Tabel tersebut terdiri dari 4 field, yaitu no_pmsnan, jlh_pnmng, hrg_tkt, tot_byr yang dapat dilihat dalam Tabel.

Image and video hosting by TinyPic

TABEL PENGIRIM
Tabel pengirim merupakan tabel yang digunakan untuk menyimpan data pengirim barang. Tabel tersebut terdiri dari 4 field, yaitu kd_pngrm, nm_pngrm, almt_pngrm, no_telp yang bisa dilihat dalam Tabel.

Image and video hosting by TinyPic

TABEL BARANG KIRIMAN
Tabel barang kiriman merupakan tabel yang digunakan untuk menyimpan data barang yang akan dikirimkan. Tabel tersebut terdiri dari 3 field, yaitu kd_brg, jlh_brg, no_pngrmn yang bisa dilihat dalam Tabel.

Image and video hosting by TinyPic

TABEL PEMESANAN TIKET PENGIRIMAN BARANG
Tabel pemesanan tiket pengirman barang merupakan tabel yang digunakan untuk menyimpan data pemesanan tiket pengiriman barang. Tabel tersebut terdiri dari 6 field, yaitu no_pbrg, tgl_pmsan, jam_pmsan, kt_tjn, kd_brkt, kd_brg yang dapat dilihat dalam Tabel.

Image and video hosting by TinyPic

TABEL DAFTAR HARGA TIKET PENGIRIMAN BARANG
Tabel daftar harga tiket pengiriman barang merupakan tabel yang digunakan untuk menyimpan data mengenai pembatalan tiket pengirim barang. Tabel tersebut terdiri dari 4 field, yaitu kd_brg, jlh_brg, hrg_tkt, tot_byr, yang dapat dilihat dalam Tabel.

Image and video hosting by TinyPic

TABEL PEMBATALAN
Tabel pembatalan tiket pengiriman barang merupakan tabel yang digunakan untuk menyimpan data mengenai pembatalan tiket pengiriman barang. Tabel tersebut terdiri dari 6 field, yaitu kd_btl, tgl_btl, jam_btl, jlh_tktbtl, no_pmsnan, no_pbrg, yang dapat dilihat dalam Tabel.

Image and video hosting by TinyPic

RELASI ANTAR TABEL
Hubungan table-tabel yang terbentuk di atas bisa dilihat dalam Gambar

Image and video hosting by TinyPic

RANCANGAN INPUT
Berdasarkan rancangan output yang diperoleh, rancangan input adalah merancang dokumen dasar sistem, yang menjadi formulir yang digunakan untuk menangkap data dalam sistem yang akan dibangun. Berikut bentuk dokumen rancangan input yang digunakan dalam perancangan program.
Form data daftar kereta api berfungsi menginput data kereta api yang ada. Form tersebut mengacu pada tabel daftar kereta api. Didalamnya terdapat proses-proses data, yaitu proses Tambah data (digunakan untuk menambah data), Simpan data (jika data sifatnya masih belum ada/baru), serta Batal data (digunakan untuk membatalkan data). Form tersebut memiliki primary key, yaitu kode kereta api. Form daftar data kereta api tersebut dapat dilihat dalam Gambar.

Image and video hosting by TinyPic

KESIMPULAN
Sistem yang dibangun dijabarkan dalam bentuk Diagram Konteks yang merupakan gambaran secara keseluruhan dari suatu sistem, dengan tujuan memberikan pandangan secara umum tentang sistem dan memperlihatkan sebuah proses yang berinteraksi dengan lingkungannya. Ada pihak luar atau lingkungan yang memberi masukan dan ada pihak yang menerima keluaran sistem.