Senin, 16 Agustus 2010

Tugas 3 - PBD


A. Perbedaan Client-Server dengan Web Based
Client Server
Diawal perkembangannya perangkat komputer adalah barang yang mahal dan mewah. Pengembangan dan pengoperasiannya rumit dan terpusat. Namun seiring dengan berjalannya waktu yang tadinya proses tersentralisasi dikembangakan menjadi proses terdistribusi sampai pada end user . Hal ini sangat dipengaruhi oleh adanya perkembangan teknologi LAN ( Local Area Network ) di pertengahan tahun 1980 an.

Dengan LAN sebuah PC dapat melakukan komunikasi satu dengan lainnya dan dapat saling berbagi resource baik perangkat keras ataupun database . LAN mampu memberikan interkonektivitas yang tidak pernah ada sebelumnya. Untuk dapat melakukan hal tersebut dibutuhkan sebuah komputer pemproses yang memfasilitasi dan melayani proses sharing semua resource yang ada. Perangkat ini disebut dengan Server .

Untuk melakukan Sharing File biasanya dibutuhkan sebuah File Server begitu juga untuk sharing Printer dibutuhkan sebuah Printer Server. Namun ternyata hal seperti ini belumlah cukup. Jumlah PC yang bertambah dengan sangat cepat seiring dengan berkembangnya sebuah organisasi. Jumlah end user dan client juga bertambah banyak. Kebutuhan akan perangkat menjadi bertambah pula, tidak hanya membutuhkan sebuah printer server, juga dibutuhkan server-server lainnya seperti server pengolahan gambar, server pengolahan suara, dan lainnya. Server-server ini dengan database dan applikasinya harus dapat diakses oleh beberapa PC, ataupun diakses oleh sebuah komputer mainframe melalui sebuah LAN. Sistem seperti ini disebut Sistem Client Server seperti digambarkan pada Gambar dibawah ini.


Komponen dan Fungsi Sistem Client Server

Gambaran umum konfigurasi Client Server diperlihatkan pada gambar 2. Dengan pendekatan Client Server setiap PC dapat melakukan secara independen sebuah pemrosesan lokal dan mensharing perangkat enterprise melalui LAN. Untuk kasus yang lebih luas kemampuan akses dapat dilakukan melalui MAN ( Metropolita Area Network ) atau WAN ( Wide Area Network ). Sebuah database dan program applikasi enterprise misalnya diletakan pada sebuah server dimana setiap end user dapat melakukan akses melalui Client Processo r, LAN dan Server.


User

User disini adalah end user yang mengakses client untuk mendapatkan sebuah layanan. End user bisa saja seorang manager perusahaan, professional, karyawan di sebuah perusahaan, atau pelanggan. Ada timbul sedikit kerancuan. Pelanggan dalam sebuah bisnis atau perdagangan disebut dengan client , tapi client ini adalah manusia, jangan dibingungkan dengan istilah client pada pemrosesan komputer. Dapat kita katakan sebuah user atau end user adalah ketika melakukan proses akhir menggunakan sistem client server.


Client

Client dapat berupa sebuah pemproses yang powerful atau dapat juga berupa terminal tua dengan kemampuan proses yang terbatas. Secara mendasar client adalah sebuah PC dengan sistem operasinya sendiri. Sebagian besar pemrosesan banyak dilakukan di sebuah server dimana bagian-bagian dalam lingkup pekerjaannya ditentukan oleh program komputer, inilah yang menyebabkan sistem client server berbeda dengan sistem transaksi tradisional. Sistem client server memungkinkan sebuah teknologi dan applikasinya digunakan bersamaan.

Applikasi disini termasuk didalamnya adalah pemroses pesan seperti e-mail, pemproses file lokal seperti DBMS untuk browsing dan penghitungan, atau sharing resource seperti sistem image processing, sistem optical character, sistem advance grafic processing, plotter warna, atau sebuah printer. Perangkat-perangkat ini bisa saja berasal dari berbagai vendor yang ada.

Untuk memfasilitasi query pemprosesan dari client, sebagian besar sistem client server menggunkaan Structured Query Language (SQL) yang merupakan struktur bahasa tingkat tinggi. SQL dengan database relationalnya adalah standar de facto untuk hampir sebagian besar sistem client server. Salah satu komponen terpenting sistem client server adalah User Interface (UI), yang digunakan user untuk berkomunikasi. Bagi user yang seorang programmer, UI tidak mesti user friendly, tapi untuk end user yang bukan programmer sangat dibutuhkan UI yang user friendly. Dibutuhkan Graphical User Interface (GUI) untuk end user karena GUI menampilkan grafis untuk melakukan akses dengan icon-icon tanpa perlu memasukan perintah pemrograman. Kedepannya GUI tidak hanya digunakan untuk menggantikan akses perintah pemprograman tapi juga digunakan untuk grafik, voice, video, animasi, untuk selanjutnya menjadi sebuah teminal multimedia.


Network dan Transmisi

Server dan client dapat terkoneksi dengan sebuah media transmisi. Media transmisi ini dapat berupa kabel, wireless, atau fiber. Dengan media ini memungkinkan sebuah perusahaan untuk melakukan enterprice network lebih besar dalam sebuah workgroup atau departemen. Untuk itu dibutuhkan interoperability sebagai contoh operasi dan pertukaran informasi yang heterogen melalui berbagai perangkat software dalam jaringan. Esensinya adalah keterbukaan dalam melakukan pertukaran baik komponen dan software yang berasal dari vendor yang berbeda-beda. Dengan interoperability baik vendor dan customer akan mendapatkan keuntungan.

Interoperability memberikan dampak pada arsitektur jaringan. Awal sebuah arsitektur jaringan adalah SNA namun arsitektur ini bersifar proprietary dan tidak terbuka dengan vendor lainnya. Kemudian sebagian besar orang beralih ke OSI yang di standarkan oleh ISO ( International Standards Organization ). OSI banyak di gunakan di Eropa namun kurang berkembang di Amerika Serikat. Di Amerika Serikat muncul TCP/IP yang kemudian di dukung oleh Unix User Group.


Servers

Konektivitas adalah hal yang terpenting namun bukan satu-satunya faktor untuk mendapatkan efisiensi dan efektivitas sharing resource yang dimiliki. Dibutuhkan sebuah perangkat yang memiliki kemampuan mengontrol software, menjalankan program applikasi, dan mengakses database dengan mudah dan cepat. Untuk itulah diperlukan sebuah Server. Sebuah Server harus mendukung spesifikasi yang mendukung resource sharing seperti Network Server Operating System, Multiple User Interface, GUI ( Graphic User Interface ), dialog oriented cleint – server languange seperti SQL dan database arsitektur. Saat ini resuorce bisa tersebar secara spasial tidak hanya berada dalam batasan sebuah negara namun sudah antar negara yang membutuhkan interkoneksi yang tinggi.

Beberapa software dapat diperoleh dari vendor atau software house. Software tersebut bisa bersifat mainframe centric (sentral) atau PC server centric. Namun selain semua hal yang tersedia pada paket software tersebut tetap dibutuhkan in house sofware development. Juga perlu untuk mengintegrasikan sistem client server dengan sistem informasi yang telah ada dan menggunakan sistem tersebut tidak hanya sebagai end user tapi juga bekerja diantara group end user.

Server melakukan pemprosesan mirip dengan pemrosesan yang ada disisi client. Namun ada sedikit perbedaan, biasanya sebuah server tidak mempunyai User Interface karena didesain untuk networking, memproses database dan memproses applikasi. Pembeda antara pemrosesan client dan server ada pada tanggungjawab dan fungsi dari pemrosesan yang dilakukan. Sebagai contoh sebuah server dapat bertindak sebagai repository dan penyimpanan informasi dalam kasus pada file server. Tipe dari Server tergantung pada kebutuhan dan tujuan sistem. Dalam beberapa kasus sebuah server harus mampu melakukan multitaskting (membentuk multi fungsi secara simultan), menggunakan multiple operating system, lebih portable, memiliki skalabilitas, dan memiliki waktu respon yang cepat untuk melakukan teleprosesing . Dengan kapabilitas seperti itu menjadikan server memiliki harga yang relatif mahal. Penyebab mahalnya harga server adalah :

  1. Network Management
  2. Gateway function termasuk akses keluar dan e-mail publik
  3. Penyimpanan
  4. File Sharing
  5. Batch processing
  6. Bulletin Board access
  7. Facsimile transmission

Pemrosesan Database

Beberapa prinsip pemrosesan data pada server termasuk didalamnya adalah integritas, sekuriti, dan recovery data. Enterprise data yang dibutuhkan oleh sebuah perusahaan membutuhkan sebuah integrasi, pengaksesan data yang di kendalikan dan kelola dengan securiti yang baik, dan recovery data dapat dilakukan jika terjadi kegagalan sistem.

Beberapa data management dilakukan secara otomatis. Biasanya dilakukan oleh DBMS yang berada di Server yang mengontrol akses diantara pemprosesan multiple sistem dan mengintegrasikan akses data melalui network management.


Pemrosesan Applikasi

Data digunakan oleh program applikasi yang mana sebagian besarnya berada di server. Ada beberapa applikasi client server yang disediakan oleh vendor. Tools applikasi ini menjadikan pengembangan sistem client-server menjadi lebih kompetitif. Pengembangan applikasi client-server dapat dilakukan dengan beberapa cara yakni :
  • Fungsi pemprosesan didistribusikan diantara client dan server. Porsi dari client dijalankan oleh end user dengan menggunakan bahasa pemrograman database seperti SQL yang memberikan semacam request data dan kemudian mengekstrak data tersebut dari lokasinya dimana semua proses tersebut dikontrol oleh sistem operasi.

  • UI dan GUI menjadi lebih sering digunakan karena tingkat kemudahan penggunaan menjadi lebih penting.

  • Digunakannya Advance networking seperti LAN

  • Code generator juga digunakan, Metodelogi Objeck Oriented akan menambah tingkat penggunan.

  • Tools pengembangan seperti SQL Server, FLOWMARK, Progress, ObjectView, Oracle menjadi sangat diperlukan

Ketika sebuah applikasi diproses dan permintaan akan data dilakukan oleh client, maka hasilnya dikirimkan melalui LAN. Hasil dari applikasi tersebut dapat saja dilakukan perubahan bentuk untuk mendapatkan tampilan yang lebih baik. Semuanya ini dilakukan di sisi client oleh end user melalui UI (User Interface)

Web Based
Web based jika diartikan ke bahasa Indonesia, "berbasis-web", atau "berbasis internet". Dapat diartikan sebagai segala sesuatu yang dapat diakses lewat web. Seperti layanan mail yahoo, wikimu juga dikatakan sebagai "sesuatu" (read:forum) yang berbasis web, yang dapat diakses lewat internet



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



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.


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




C. Teknik Pengukuran Performance Basis Data

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://putroweb.blogspot.com/2009/03/pengertian-client-server.html

http://romisatriawahono.net/2006/06/05/teknik-pengukuran-kualitas-perangkat-lunak/

http://caturdwiprihasmoro.blogspot.com/2010/08/tugas-pemograman-basis-data.html