Laman

TUGAS III PEMROGRAMAN BASIS DATA

Bismillahirrahmanirrahiim

Soal :
Apa perbedaan Client-Server dan Web Based dalam contex engineering?
Sebelum kita dapat mengetahui perbedaan Client-Server dan Web Based, alangkah baiknya kita mengetahui pengertian nya dulu, oke kita mulai dengan Client Server Software Engineering.


Pendahuluan
 
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.



 
 
Struktur yang digambarkan pada gambar di atas tidaklah paten , dapat dirubah – rubah sesuai dengan kebutuhan , asalkan masih tetap dalam konteks arsitektur yang digambarkan di atas
Komponen Software untuk 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 :

User Interaction / Presentation Subsistem .
Subsistem ini mengimplemetasikan semua fungsi yang tergabung dalam Graphical User Interface , Gunanya untuk berinteraksi dengan user dan terletak di client .

Application subsystem
Subsistem ini mengimplementasikan requirement yang didefiniskan aplikasi dengan konteks dari domain dimana aplikasi tersebut beroperasi . Contohnya , aplikasi bisnis bisnis memproduksi berbagai macam laporan cetak yang berdasarkan input numeric , kalkulasi , informsai database dan sumber – sumber yang lainnya . Contoh lain adalah Sebuah aplikasi groupware dapat menyediakan fasilitas bulletin board atau e-mail . dimana pada kedua kasus , software aplikasi dapat dipartisi menjadi komponen yang berada baik di server ataupun di client .

Database Management Subsistem
Subsistem ini melakukan pemanipulasian data dan manajemen yang harus di lakukan oleh sebuah aplikasi . Manipulasi data dan manajemen mungkin semudah pencatatan sebuah baris , dan mungkin dapat sekompleks memproses transaksi SQL yang rumit .

Distribusi dari Komponen Software
Setelah requirement dari aplikasi c/s ditentukan , maka Perancang Software harus menentukan bagaimana pendistribusian komponen software yang dibutuhkan oleh client dan server secara tepat .
Saat semua fungsi dari ketiga subsistem di atas dibebankan kepada server ,maka sebuah fat server design terbentuk . sebaliknya , jika client mengimplementasikan banyak dari user interaction / presentation , application , dan database komponen , maka sebuah fat client terbentuk .

Fat Client biasa nya dapat ditemukan saat arsitektur file server dan database server diterapkan . Pada kasus ini , server menyediakan manajemen data , tetapi aplikasi lainnnya dan GUI terletak pada client. Fat Server biasanya ditemukan pada desain sebuah sistem transaksi dan groupware . Server menyediakan dukungan aplikasi yang diperlukan untuk melakukan transaksi dan komunikasi dilakukan dari client . Software di client hanya fokus kepada GUI dan manajemen komunikasi .

Distributed Presentation 
Pada pendekatan client/server , logika database dan logika aplikasi berada pada server , biasanya sebuah mainframe . Server juga berisi aplikasi untuk menyiapkan tampilan informasi . Contohnya adalah Virtual Class, Semua aplikasi baik database , tampilan ataupun logika aplikasi terletak di server , client hanya membutuhkan sebuah browser untuk menampilkan GUI yang disediakan oleh server .

Remote Presentation
Adalah sebuah extensi dari pendekatan distributed presentation , primary database dan logika aplikasi terletak di server , dan data akan dikirimkan ke client untuk ditampilkan menggunkan GUI yang berada di client .

Distributed Logic
Client memiliki semua fungsi user presentation dan sebuah fungsi yang berkaitan dengan data entry . Seperti field-level validation , server query formula (SQL) , dan server update information . Server hanya menjalankan pekerjaan dan proses yang diberikan oleh client query , Server file updates , client version control , dan aplikasi yang berkaitan tentang itu .

Remote data management
Aplikasi yang berada di server membuat sebuah data sourcedengan format data yang telah di extrak dari tempat lain (contohnya dari corporate level source) . Aplikasi di alokasikan di client digunakan untuk mengevaluasi data yang telah di format oleh server . Decission support system termasuk ke dalam kategori ini Pedoman untuk Mendistribusikan Subsistem dari Aplikasi Presentation / Interaction subsitem terletak di client. Ketersediaan PC, lingkungan windows dan kekuatan kopmuter dibutuhkan oleh gui untuk membuat pendekatan ini efektif dalam hal biaya. Jika database di share oleh beberapa user yang terhubung dengan LAN , maka database ditaruh di server . DBMS dan kemampuan akses database juga ditaruh di server bersamaan dengan fisik database.Data statis yang digunakan sebagai referensi terletak di client . Peletakan data dekat dengan user meminimalisir trafik jaringan yang tidak perlu.

Analisis Pemodelan
Kebutuhan aktifitas pemodelan untuk sistem c/s sedikit berbeda dari metode pemodelan yang diaplikasikan ke arsitektur komputer konvensional .Oleh karena itu prinsip dasar analaisis dan metodologi pemodelan dapat diterapkan di software c/s . Dengan catatan , bahwa kebanyakan sistem c/s yang modern menggunakan komponen yang reusable .Karena analisis pemodelan menghindari spesifikasi dari detail implementasi , maka isu – isu yang berkaitan dengan alokasi komponen ke klien dan server hanya berupa desain.

Desain arsitektur untuk sistem client/server
Desain arsitektur dari c/s seringkali dinyatakan sebagai communicating processes style :

Tujuannya adalah untuk mencapai qualitas kestabilan . Sebuah server ada untuk melayani satu atau lebih client untuk kebutuhan penyediaan data . Yang mana terletak di jaringan . Client mengorganisasi panggilan ke server, yang bekerja secara asynchronous ataupun synchronous . Jika server bekerja secara synchronous , maka akan ia akan mengembalikan control ke client bersamaan dengan dengan pengembailan data . Jika server bekerja secara asynchronously , maka hanya akan mengembalikan data (Tanpa kontrol ) ke Client .

Pendekatan Desain Konvensional untuk software Aplikasi
Di sistem c/s , DFD dapat digunakan untuk membangun system scope , mengidentifikasi fungsi high-level , menentukan area data , membolehkan dekomposisi dari high-level function . tetapi , biarbagaimanapun dekomposisi hanya berhenti pada proses bisnis awal , dan tidak berlanjut sampe ke level proses yang lebih kecil .

Di konteks c/s , sebuah Elementary business process (EBP) – Proses bisnis awal , didefinisikan sebagai satu set tugas yang di lakukan tanpa henti oleh satu user pada client . Tugas tersebut dilakukan sekaligus atau tidak sama sekali .

ERD juga bias digunakan untuk memperluas role . ERD dapat digunakan untuk mendokompisi subject data area ( data stores) lebih lanjit dari DFD untuk membangun high-level view dari database yang akan diimplemtasikan dengan RDBMS .

Desain Database
Sebuah RDBMS dapat dijadikan sebagai solusi untuk desain database . RDBMS dapat mendistribusikan data dengan mudah lewat SQL . keuntungan SQL dsebagai aristektur c/s adalah “nonnavigational” . Di dalam RDBMS , tipe data dapat dispesifikan dengan menggunakan SQL , tanpa menggunakan informasi navigational . implikasi dari hal ini adlah RDMBS harus handal dalam memilihara lokasi dari data dan kapabel dalam mendefinisikan jalur terbaik untuk hal itu . Dalam database system yang kurang handal , request untuk data , harus mengindikasikan apa yang harus diakses , dan dimana harus mengakses data tersebut . Harus dicatat , bahwa distribusi data dan teknik memanaje tersedia untuk desainer , antara lain :

  • · Manual extract : User diperbolehkan untuk mengcopy secara manual data yang diinginkan dari server ke client . Pendekatan ini sangat berguna apabila data statis diperlukan dan kontrol dari pengekstrakan dapat dihandle oleh user .
  • · Snapshot : teknik ini mengotomatisasi manual extract dengan menentukan sebuah “snapshot” dari data yang harus di transfer dari server ke client pada interval yang telah ditentukan . Pendekatan ini sangat berguna untuk mendistribusikan data statis yang jarang diupdate .
  • · Replication : teknik ini dapat digunakan apabila banyak kopi dari data harus dijaga pada situs yang berbeda (contoh : antara server yang berbeda atau antara client dan server) , disini level kompleksitas meningkat karena konsistensi data , update , keamanan , dan pemrosean harus di koordinasi pada banyak situs .
  • · Fragmentation : Pada pendekatan ini , sistem database di fragmentasi lewat beberapa mesin . Walaupun sangat menggiurkan dalam teori , namun fragmentation sangat sulit diimplementasikan dan jarang ditemui .
Overview dari pendekatan desain
Langkah untuk mendesain sebuah proses bisni s awal (EBP – Elementary Business Process) yang mengombinasikan elemen dari desain konvesional dengan element dari object oriented desain . Dengan asumsi bahwa requirement model yang mendefinisikan objek bisnis telah dibuat dan diperbaharui lebih dulu dari pendesainan EBP .

Langkah – langkah berikut ini untuk membuat desain :
  1. Untuk setiap proses bisnis , identifikasikan file yang akan dibuat , di update , dan direferensi , atau dihapus
  2. Gunakan file yang didapat dari langkah 1 sebagai basis untuk mendefinisikan komponen atau objek
  3. Untuk setiap komponen , gunanakan business rule an informasi objek bisnis lain yang telah di buat untuk file yang bersangkutan .
  4. Tentukan rule yang relevan dengan proses dan dekomposisi rule tersebut ke level method .
  5. Jika diperlukan , tentukan komponen tambahan lainnya yang dibutuhkan untuk mengimplementasikan method yang akan di buat di pada step 4
Iterasi proses desain
Desain yang digunakan untuk merepresentasikan business object juga digunakan untuk merepresentasikan interface, application , dan database object :

  • Methods menjelaskan bagaiman business rule diimplementasikan
  • Elementary proses mendefinisikan business proses yang di identifikasikan di model analisis
  • Process mengidentifikasikankomponenyang membuat solusi untuk Elementary Business Process
  • Component mendeskripsikan komponen yang tertera di structure chat
  • Business Rule mengidentifikasikan komponen yang siginfikan terhadap implementasi dari business rule yang diberikan.

waaah ternyata banyak juga urain tentang client-server, pasti ribet kan, ^-^ . okey sekarang kita lanjutkan tentang web based.


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.

Cons
  • 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 
cons

  • · Web-based - Akses membutuhkan koneksi internet. Meskipun akses ke Internet ini berkembang, itu masih belum di semua tempat
 
  •  Client-Server - Pengguna harus berada di jaringan lokal untuk mengakses perangkat lunak, kecuali perusahaan telah melakukan investasi pada aplikasi akses remote seperti Citrix atau PC Anywhere. Remote akses memerlukan software aplikasi tambahan pengguna yang  mahal

Daftar Pustaka/ Copas
  • http://rpl07.wordpress.com/2007/06/20/clientserver-software-engineering-oleh-m-rizky-r-5105-100-135/
  • http://id.wikipedia.org/wiki/Klien-server
  • www.theiqgroup.com
 
 
 
 
kita ke no 2

Soal: Teknik pengukuran kualitas software
 
Teknik pengukuran kualitas software 

 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].

Tabel 1: Faktor dan Kriteria dalam Kualitas Perangkat Lunak
 
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.
 
Tabel 2: Contoh Pengukuran Usabilitas Dua Perangkat Lunak
 

Tabel 3: Hasil Pengukuran Usabilitas Dua Perangkat Lunak

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).

Catatan: Edisi lengkap dari tulisan ini dapat dibaca di majalah SDA Magazine edisi Juni 2006.
REFERENSI
[1] J.A. McCall, P.K. Richards, and G.F. Walters, Factors in Software Quality, Tehnical Report RADC-TR-77-369, US Department of Commerce, 1977.
[2] 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.
[3] IEEE Standard Glossary of Software Engineering Technology, IEEE Std 610.12-1990, Institute of Electrical and Electronics Engineers, New York, 1990.
[4] Hans Van Vliet, Software Engineering – Principles and Practice, John Wiley & Sons, 2000.
[5] James F. Peters and Witold Pedrycz, Software Engineering: An Engineering Approach, John Wiley & Sons, 2000.


 kita ke no 3
 soal: Teknik pengukuran performa basisdata

TUNING DATABASE
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/copas
http://milik-ku.blogspot.com/2009/04/pekerjaan-seorang-database.html

TUGAS PEMROGRAMAN BASIS DATA

Bismillahirrahmanirrahiim,


Sebelum kita membahas lebih jauh tentang basis data, maka saya mencoba memberikan beberapa point alasan perancangan basis data yang saya ketahui seperti dibawah ini.

Pertanyaan: mengapa perancangan basis data di perlukan? jawabannya:

Sistem basis data telah menjadi bagian dalam sistem informasi suatu organisasi Kebutuhan menyimpan data dalaml jumlah besar semakin mendesak Fungsi-fungsi dalam organisasi semakin dikomputerisasikan Semakin kompleks data dan aplikasi yang digunakan, maka relationship antar data harus dimodelisasikan Dibutuhkannya kemandirian data.

Setelah kita mengetahui beberapa alasan perancangan basis data maka kita akan bertanya, apa tujuan dari perancangan basis data?

Dibawah ini adalah beberapa point tujuan perancangan basis data yang saya ketehaui:

untuk memenuhi kebutuhan-kebutuhan konten informasi dari pengguna dan aplikasi-aplikasi tertentu menyediakan struktur informasi yang alami dan mudah dipahami mendukung kebutuhan-kebutuhan pemrosesan dan objektifitas kinerja (waktu respon, waktu pemrosesan, dan ruang penyimpanan).

oke, maka sekarang kita telah mengetahui alasan dan tujuan perancangan basis data, mari kita lanjutkan. ^_^

Basis Data

Apa itu basis data ? Saya akan mencoba menguraikannya seperti di bawah ini:

Basis data (bahasa Inggris: database), atau sering pula dieja basisdata yang disimpan di dalam, adalah kumpulan informasi komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi.

Istilah "basis data" berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis.

Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut.

Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel. (sumber wikipedia)

Maka Basis Data dapat juga di artikan kumpulan dari item data yang saling berhubungan satu dengan yang lainnya yang diorganisasikan berdasarkan sebuah skema atau struktur tertentu, tersimpan di hardware komputer dan dengan software untuk melakukan manipulasi untuk kegunaan tertentu Ada juga yang mendefinisikan basis data adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut

Alasan Perlunya Database

Basis data merupakan salah satu komponen penting dalam system informasi, karena merupakan dasar dalam menyediakan informasi. Basis data menentukan kualitas informasi : akurat, tepat pada waktunya dan relevan. Informasi dapat dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya mendapatkannya. Basis data mengurangi duplikasi data (data redudancy). Dengan mengaplikasikan basis data hubungan data dapat ditingkatkan. Basis data dapat mengurangi pemborosan tempat simpanan luar.

Bahasa basis data

Bahasa basis data terdiri atas:

  • Data Definition Language (DDL), merujuk pada kumpulan perintah yang dapat digunakan untuk mendefinisikan objek – objek basis data, seperti membuat sebuah tabel basis data atau indeks primer atau sekunder.
  • Data Manipulation Language (DML), mengacu pada kumpulan perintah yang dapat digunakan untuk melakukan manipulasi data, seperti penyimpanan data ke suatu tabel, kemudian mengubahnya dan menghapusnya atau hanya sekedar menampilkannya kembali.


Objektif Basis Data

Secara lebih lengkap, pemanfaatan basis data dilakukan untuk memenuhi sejumlah tujuan (objektif) seperti berikut :

a. Kecepatan dan kemudahan (Speed)
b. Efisiensi ruang penyimpanan (Space)
c. Keakuratan (Accuracy)
d. Ketersediaan (Avaibility)
e. Kelengkapan (Completeness)
f. Keamanan (Security)
g. Kebersamaan pemakaian (Sharability)


Data Flow Diagram (DFD)
DFD merupakan diagram yang mengunakan notasi-notasi atau simbol-simbol untuk mengambarkan sistem jaringan kerja antar fungsi-fungsi yang berhubungan satu sama lain dengan aliran dan penyimpanan data.

Adapun yang digunakan dalam DFD adalah:

1. Kesatuan Luar (External Entity)

Kesatuan luar (entity) di lingkungan luar sistem yang dapat berupa orang, organisasi atau sistem lainnya yang berada di lingkungan luarnya yang akan memberikan input atau menerima output dari sistem. Suatu kesatuan luar dapat disimbolkan dengan suatu notasi persegi panjang atau suatu persegi panjang dengan sisi kiri dan atasnya berbentuk garis tebal.

2. Aliran data

Aliran data di DFD diberikan simbol suatu panah. Aliran data ini mengalir diantara process (process), simpanan data (data store) dan kesatuan luar (External entity). Aliran data ini menunjukkan arus dari data yang dapat berupa masukan untuk sistem atau hasil dari proses sistem.

3. Proses

Suatu process adalah kegiatan atau kerja yang dilakukan oleh orang, mesin atau komputer dari hasil suatu aliran datayang masuk ke dalam proses untuk dihasilkan aliran data yang akan keluar dari proses. Suatu proses dapat disimbolkan dengan notasi lingkaran atau dengan simbol empat persegi panjang dengan sudut-sudut tumpul.

4.Penyimpan Data (Data Store)

Penyimpan data (data store) merupakan penyimpan data yang dapat berupa:

• Suatu file atau basis data di sistem komputer.
• Suatu arsip atau catatan manual.
• Suatu kotak tempat data di meja seseorang.
• Suatu tabel acuan manual.
• Suatu agenda atau buku.

Simpanan data di DFD dapat disimbolkan dengan sepasang garis horisontal paralel yang tertutup di salah satu ujungnya atau tanpa ditutup.

Contoh Kasus dibawah ini adalah program aplikasi sistem informasi penjualan pelumas, DFD yang dirancang akan dijelaskan berikut ini:

Berikut ini adalah gambar proses bisnis perusahaan  mulai dari pengadaan pelumas
sampai penjualannya

PROSES BISNIS


Data Flow Diagram (DFD) nya:


Diagram Konteks /DFD Level 0 





DFD Level 1


DFD Level 2, Proses 1.4




DFD Level 3, Proses 1.4.2





DFD Level  4, Proses 1.4.2.6






Entity Relational Diagram (E-R Diagram)

Entity Relational Diagram merupakan salah satu pemodelan data konseptual yang paling sering digunakan dalam proses pengembangan basis data bertipe relasional. Model E-R adalah rincian yang merupakan representasi logika dari data pada suatu organisasi atau area bisnis tertentu.

Model E-R terdiri dari beberapa komponen dasar yaitu sebagai berikut:

1. Entitas

Entitas adalah sesuatu atau objek di dunia nyata yang dapat dibedakan dari sesuatu atau objek yang lainnya. Sebagai contoh, setiap mahasiswa dalam suatu universitas adalah suatu entitas. Setiap fakultas dalam suatu universitas adalah juga suatu entitas. Dapat dikatakan bahwa entitas bisa bersifat konseptual/abstrak atau nyata hadir di dunia nyata.

2. Atribut

Atribut adalah properti deskriptif yang dimiliki oleh setiap anggota dari himpunan entitas. Sebagai contoh entitas mahasiswa, atribut-atribut yang dimiliki adalah nim, nama mahasiswa, alamat dan lain-lain.

3. Hubungan antar relasi (Relationship)

Hubungan antar relasi adalah hubungan antara suatu himpunan entitas dengan himpunan entitas yang lainnya. Misalnya, entitas mahasiswa memiliki hubungan tertentu dengan entitas matakuliah (mahasiswa mengambil matakuliah). Pada penggambaran model E-R, relasi adalah perekat yang menghubungkan suatu entitas dengan entitas yang lainnya.

4. Kardinalitas/Derajat Relasi

Kardinalitas relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Sebagai contoh: entitas-entitas pada himpunan entitas mahasiswa dapat berelasi dengan satu entitas, banyak entitas atau tidak satupun entitas dari himpunan entitas kuliah. Kardinalitas relasi yang terjadi di antara dua himpunan entitas dapat berupa:

-Satu ke Satu(One to One)
Setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B, begitupun sebaliknya.

-Satu ke Banyak(One to Many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A.

-Banyak ke Satu(Many to One)
Setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B, tetapi tidak sebaliknya dengan entitas B.

-Banyak ke Banyak(Many to Many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, dan demikian sebaliknya, dimana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas pada himpunan entitas A.

Entity Relational Diagram (E-R Diagram)  nya:
ER-Diagram


Proses Perancangan Basis Data

Terdapat enam tahap utama pada proses desain basis data yaitu :

1. Koleksi dan analisa kebutuhan
2. Desain basis data konseptual
3. Pemilihan DBMS
4. Pemetaan model data (disebut juga desain basis data logika)
5. Desain basis data fisik.
6. Implementasi dan tuning sistem basis data

Metodologi Perancangan Basis Data

Metodologi perancangan basis data adalah kumpulan teknik terorganisasi untuk pembuatan rancangan basis data. Teknik terorganisasi ini merupakan kumpulan tahap-tahapan yang memiliki aturan-aturan terurut. Teknik yang digunakan pada perancangan basis data dibagi menjadi dua, yaitu:

a. Perancangan basis data tingkat logik.

b. Perancangan basis data tingkat fisik.

Perancangan basis data secara logik dimulai dengan penciptaan model konseptual dari organisasi dan seluruhnya tak bergantung rincian implementasi seperti perangkat lunak DBMS, program aplikasi, bahasa pemrograman, platform perangkat keras, dan pertimbangan fisik lainnya. Model konsep ini kemudian dipetakan menjadi model data secara logik yang telah dipengaruhi model data target basis data seperti model relasional.

Dalam perancangan basis data secara logik, kita dapat melakukannya dengan cara :

a. Menerapkan Normalisasi terhadap struktur tabel yang telah diketahui.

b. Langsung membuat model Entity-Relationship (ER).

Model data secara logik merupakan sumber informasi perancangan fisik. Model ini menyediakan perancang suatu kendaraan untuk pertimbangan dalam merancang basis data yang efisien.

Perancangan basis data secara fisik adalah proses memproduksi deskripsi implementasi basis data pada penyimpanan sekunder, mendeskripsikan struktur-struktur penyimpanan dan metode-metode pengaksesan dalam meningkatkan efektifitas pengaksesan. Pada tahap ini, perancangan fisik telah ditujukan untuk system DBMS tertentu. Perancangan basis data tingkat fisik sudah dikaitkan dengan platform dan perangkat lunak system manajemen basis data dimana basis data diimplementasikan.

Langkah-langkah Metodologi Perancangan Basis Data

Berikut adalah perancangan basis data relasional :
- Dimulai dari perancangan basis data logik untuk basis data relasional pada tahap 1 sampai dengan tahap 3.
- Perancangan dan implementasi basis data fisik untuk basis data relasional pada tahap 4 sampai dengan tahap 7.

a. Tahap 1

Membangun rancangan data konseptual lokal berdasarkan pandangan pemakai. Yaitu mengidentifikasikan himpunan entitas - himpunan entitas. Mengidentifikasikan keterhubungan-keterhubungan (relationship), mengidentifikasikan dan asosiasikan atribut-atribut pada entitas atau keterhubungan, menentukan domain atribut, menentukan atribut-atribut candidate key dan primary key, melakukan spesialisasi/generalisasi, menggambarkan diagram ER, melakukan review model data konsep dengan pemakai.

b. Tahap 2

Membangun dan validasi model data logik lokal. Yaitu memetakan model data konsep ke model data logik, melakukan turunan relasi-relasi dari model data logik, validasi model menggunakan normalisasi, validasi model berdasarkan transaksi – transaksi pemakai, menggambarkan ER nya, mendefinisikan kontsrain-konstrain (batasan-batasan) integritas, melakukan review model data logik dengan pemakai.

c. Tahap 3

Membangun dan validasi model data logik global. Yaitu menggabungkan model data logik lokal menjadi model global, validasi model data logik global, periksa untuk pertumbuhan masa datang, menggambarkan diagram ER akhir, melakukan review model logik global dengan pemakai.

d. Tahap 4

Menerjemahkan model data logik global untuk DBMS target. Yaitu merancang relasi-relasi basis untuk DBMS target, merancang aturan-aturan integritas untuk DBMS target.

e. Tahap 5

Merancang dan implementasi representasi fisik. Yaitu menganalisa transaksi-transaksi, memilih organisasi file, memilih indeks-indeks sekunder, mempertimbangkan penambahan redudansi yang terkendali, estimasikan ruang disk yang diperlukan.

f. Tahap 6

Merancang dan mengimplementasikan mekanisme pengamanan. Yaitu merancang view-view pemakai, merancang aturan-aturan pengaksesan.

g. Tahap 7

Memonitor dan menyesuaikan system yang sedang operasi.


Terdapat beberapa kunci (key) di dalam teknik perancangan basis data, diantaranya :

1. Kunci Kandidat (Candidate Key)

Kunci kandidat adalah satu atribut atau satu set atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entity. Satu set atribut menyatakan secara tidak langsung dimana anda tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik. Jika kunci kandidat berisi lebih dari satu atribut, maka biasanya disebut sebagai composite key (kunci campuran atau gabungan).
Contoh :

File mahasiswa berisi : Nomor Pegawai, No KTP, Nama Pegawai, Tempat Lahir, Tanggal Lahir, Alamat, Kota. Kunci kandidat dalam file mahasiswa di atas dapat dipilih sebagai berikut : Nomor Pegawai, No KTP, Nama (tidak dapat dipakai karena sering seseorang punya nama yang sama dengan orang lain), Nama + Tanggal Lahir (mungkin bisa dipakai sebagai kunci karena kemungkinan orang dengan nama yang sama dan tanggal lahir yang sama cukup kecil), Nama + Tempat Lahir + Tanggal Lahir (dapat dipakai sebagai kunci), Alamat dan Kota (bukan kunci).

2. Kunci Primer (Primery Key)

Primary key adalah satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasi secara unik suatu kekadian spesifik, tetapi juga dapat mewakili setiap kejadian dari suatu entity. Setiap kunci kandidat dapat menjadi kunci primer tetapi sebaliknya sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entity yang ada.
Contoh :

No Pegawai (karena sifatnya yang unik maka tidak mungkin pegawai mempunyai Nomor Pegawai yang sama), No KTP (Bisa dipakai misalnya untuk pegawai yang baru belum mendapatkan nomor pegawai maka bisa digunakan nomor KTP untuk sementara sebagai kunci primer, Kode_Kuliah (bisa dipakai untuk data mata kuliah karena kode mata kuliah bersifat unik untuk tiap mata kuliah).

3. Kunci Alternatif (Alternate Key)

Kunci alternatif adalah kunci kandidat yang tidak dipakai sebagai kunci primer. Kunci alternatif ini sering digunakan untuk kunci pengurutan misalnya dalam laporan.

4. Kunci Tamu (Foreign Key)

Kunci tamu adalah satu atribut aatau satu set minimal atribut yang melengkapi satu hubungan yang menunjukkan ke induknya. kunci tamu ditempatkan pada entity anak dan sama dengan kunci primer induk yang direlasikan. Hubungan antara entity induk dengan anak adalah hubungan satu lawan banyak (one to many relationship)
Contoh :

File Transaksi Gaji Bulanan :
No Pegawai, No Bukti, Tanggal, Jumlah Gaji Kotor, Jumlah Potongan, Jumlah Gaji Bersih, Jumlah Pajak. Kunci Tamu : No Pegawai (karena Gaji berhubungan dengan file Pegawai). Kunci Primer : No Bukti (karena unik dan mewakili entity). Kunci Kandidat : No Pegawai + Nomor Bukti (Unik dan menunjukkan hubungan dengan file Pegawai).

Dalam hubungan dua buah file yang punya relationship banyak lawan banyak maka terdapat 2 kunci tamu pada file konektornya.
Contoh :

File Proyek berisi atribut : No Proyek, Tgl Mulai, Tgl Selesai, Anggaran.
File Pegawai berisi atribut : No Pegawai, Nama
Hubungan antara file tersebut adalah banyak lawan banyak yaitu satu pegawai mengerjakan lebih dari 1 proyek dan 1 proyek dikerjakan oleh beberapa pegawai maka untuk menunjukkan hubungan tersebut dipakai file konektor yang berisi kunci tamu dari kedua file.
File Proyek Pegawai berisi atribut : No Proyek, No Pegawai, Jam Kerja.
Maka pada file proyek pegawai terdapat kunci tamu yaitu nomor proyek dan no pegawai. Kedua atribut tersebut juga merupakan kunci primer.

Kebergantungan Fungsi

Kebergantungan Fungsi didefinisikan sebagai hubungan antara satu relasi dengan relasi lainnya. Misalnya : sebuah relasi R, atribut Y dan R adalah bergantung fungsi pada atribut X dari R jika dan hanya jika setiap nilai X dalam R punya hubungan dengan tepat satu nilai Y dalam R (dalam setiap satu waktu).
File relasi pegawai atribut berisi : No Pegawai, No KTP, Nama, Tempat Lahir, Tgl Lahir, Alamat, Kota. Isi dari atribut nama bergantung pada No Pegawai. Jadi dapat dikatakan bahwa atribut nama bergantung secara fungsi pada No Pegawai dan Nomor Pegawai menunjukkan secara fungsi nama. jika anda mengetahui no pegawai maka anda dapat menentukan nama pegawai tersebut. Notasi untuk kebergantungan fungsi ini adalah No Pegawai 1DPD atau Nama = f(No Pegawai).

Skema Basis Data nya:

SKEMA BASIS DATA
Perancangan Sketsa User Interface

Perancangan user interface diperlukan pada program aplikasi ini dengan tujuan untuk mempermudah pengguna dalam menggunakan program apikasi ini. Dengan adanya user interface ini berbagai pengguna baik yang awam, maupun yang sudah berpengalaman dapat mengoperasikan program ini tanpa adanya kesulitan yang besar.

Program aplikasi sistem informasi penjualan pelumas ini menggunakan jenis menu pull down yaitu setiap menu memiliki sub-menu masing-masing. Tujuan penggunaan jenis menu ini adalah untuk mempermudah pengguna dalam memilih fitur yang akan digunakan. Untuk lebih jelasnya, akan dipaparkan dalam gambar berikut ini.
STRUKTUR MENU