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.
User
Client
Network dan Transmisi
Servers
- Network Management
- Gateway function termasuk akses keluar dan e-mail publik
- Penyimpanan
- File Sharing
- Batch processing
- Bulletin Board access
- 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)
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.
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.
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.
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