Saturday, December 17, 2005

Tipe Data

Bagi para insan TI, terutama pembuat program (programmer), tidak asing lagi dengan data, tipe data, dan nilai data dalam suatu pemrograman. Data berbicara tentang suatu fakta yang terukur, baik terlihat (tangible) maupun yang tidak terlihat (intangible). Contoh data adalah fakta-fakta tentang kondisi badan kita, antara lain berat, tinggi, maupun usia. Sedangkan tipe data adalah aspek yang membatasi karakteristik dari suatu data, baik dari sisi nilai maupun operasi yang diberlakukan terhadap suatu data. Contoh, kita kenal integer di dalam bahasa Pascal, atau int dalam bahasa C. Kalau suatu data bertipe integer, maka data tersebut nilainya hanya berupa bilangan bulat, dan operasi yang bisa dilakukan adalah tambah, kali, bagi dan sejenisnya.
Lebih lanjut mengenai tipe data, kita bisa kaji dari sisi kelas maupun level abstraksinya. Terdapat dua kelas tipe data kalau kita lihat dari kompleksitasnya, yaitu :
Tipe data atomik, adalah tipe data yg dipandang sebagai satu kesatuan tunggal dan tidak dapat dipecah-pecah lagi (non decomposible entity).Contoh : Integer, Char, float/real.
Tipe data berstruktur, adalah tipe data yang dipandang sebagai satu kesatuan tunggal dan dapat dipecah-pecah lagi (decomposible entity).Contoh : Array, Structure, dll.
Sedangkan atas level abstraksinya, tipe data dapat dikelompokkan ke dalam tiga level, yaitu :
Tipe data abstrak, adalah tipe data yang merupakan hasil imajinasi kita dengan memberikan beberapa batasan domain maupun operasinya. Contoh : usia, daftarnilai.
Tipe data virtual, adalah tipe data yang ada/dikenal oleh bahasa pemrograman. Contoh : integer, array of integer.
Tipe data fisikal, adalah tipe data yang nyata dalam main processor.

Hubungan antara kelas dan level tipe data dapat kita lihat lebih lanjut di buku Data Structure with Abstract Data Types and Pascal, Daniel F.Stubbs & Neil W. Webre (1985), Book / Cole Publishing Company, P9.

Dengan pertimbangan aspek nilai dan operasi dari suatu tipe data, kita dapat menentukan pemilihan yang tepat suatu tipe data. Bagaimana seandainya kita ingin membuat suatu batasan sendiri untuk suatu tipe data ? Beberapa teknik abstraksi bisa kita gunakan, antara lain dengan melakukan spesifikasi sebagaimana yang ada di buku yang penulis rujuk di atas. Hal penting untuk melakukan spesifikasi adalah pendefinisian domain dan operation. Untuk pendefinisian domain, dalam beberapa literatur lain sering juga disebut object, perlu terlebih dahulu mendefinisikan component element dan structure. Component element atau cukup disebut element adalah aspek yang membatasi nilai data, sedangkan structure adalah aspek pengorganisasian nilai datanya. Sejalan dengan pendefinisian domain, perlu juga dilakukan pendefinisian set of operations atau di beberapa literatur sering disebut function. Jika spesifikasi sudah dilakukan, maka sampai tahap ini perangcangan sudah siap untuk masuk tahap selanjutnya yaitu representasi dan implementasinya. Sebelum melanjutkannya, pemilihan bahasa pemrograman yang akan digunakan perlu dipertimbangkan. Sebagaimana level tipe data yang dijabarkan sebelumnya, representasi data di dalam setiap bahasa pemrograman bisa berbeda, contoh representasi usia, kita kenal int di bahasa C, integer di bahasa Pascal. Jadi pada tahap representasi ini, fokus utama adalah mewujudkan suatu domain ke bahasa pemrograman yang dipilih. Tahap berikutnya yaitu implementasi, dilakukan penulisan program sesuai bahasa yang dipilih untuk setiap operasi yang sudah didefinisikan pada saat proses spesifikasi.
Contoh Spesifikasi untuk tipe data abstrak letterstring :

Elements : Nilai elemennya adalah karakter ‘a’-’z’,’A’-’Z’, dan termasuk juga spasi. Kita sebut nilai-nilai tersebut sebagai kumpulan karakter (letters).

Structure : Terdapat hubungan secara linear di antara elemen letters di dalam suatu string.

Domain : letterstring berisi 0 sampai 80 karakter. Domain dari tipe letterstring adalah seluruh kemungkinan nilai yang memenuhi aturan-aturan tersebut.

Operations :
letter leftletter( letterstring s)
Kondisi awal :Jumlah karakter input s minimal 1.
Kondisi akhir :leftletter berisi karakter awal (paling kiri) di dalam string s.

append( letter l; letterstring s)
Kondisi awal : Jumlah karakter input s kurang dari 80.
Kondisi akhir :String s lebih panjang dibandingkan sebelumnya, dan isi l adalah karakter terbaru dan berada paling kanan di dalam s.

boolean empty( letterstring s )
Kondisi awal :Tidak ada.
Kondisi akhir :Jika s tidak berisi satupun karakter maka empty bernilai true selain itu empty bernilai false.

boolean full( letterstring s )
Kondisi awal :Tidak ada.
Kondisi akhir :Jika s berisi 80 karakter maka full bernilai true selain itu full bernilai false.

reverse ( letterstring s )
Kondisi awal :Tidak ada.
Kondisi akhir :Urutan dari isi s dibalik, sehingga elemen pertama dan terakhir bertukar tempat, elemen kedua dari awal dan kedua dari akhir bertukar tempat, demikian seterusnya.

Dengan memilih bahasa C sebagai bahasa yang akan digunakan untuk penulisan program, maka representasi dan implementasinya adalah sebagai berikut :

Representation
struct letterstring {
int n;
letter str[80];
};

Implementation
int empty( letterstring s ) {
if (s.n<1) return(1); else return(0);
};

int full( letterstring s ) {
if (s.n>=80) return(1); else return(0);
};

void append( letter l; letterstring *s) {
if (s.n<80)
s.str[++s.n] = l;
};

letter leftletter( letterstring s) {
if (s.n>0)
return(s.str[0] );
};

void reverse ( letterstring *s ) {
int i; letterstring temp;
for(i=0;i<80;i++) temp.str[i] = temp.str[80-i+1];
for(i=0;i<80;i++) s.str[i] = temp.str[i];
};

CO

Friday, December 16, 2005

Pengantar Basis Data

Pengantar Basis Data

Basis Data
Pengertian basis data menurut Connoly dan Begg (2002, p14), “database is a shared collection of logically related data, and a description of this data, designed to meet the information needs of an organization.”. Jadi basis data merupakan sekumpulan data maupun keterangan tentang data, yang secara logis saling berhubungan untuk digunakan bersama, dalam rangka memenuhi kebutuhan informasi dari suatu organisasi.

Database Management System (DBMS)
Mengacu pada Connoly (2002, p16), DBMS adalah suatu perangkat lunak yang bisa digunakan untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke basis data. DBMS umumnya memiliki fasilitas untuk mendefinisikan basis data (Data Definition Language), dan fasilitas yang dapat mendukung pegolahan data ( Data Manipulation Language).

Siklus Hidup Basis Data ( Database Application Lifecycle)
Tahapan daur hidup aplikasi basisdata (Connolly, Database Systems: A Practical Approach to Design, Implementation, and Management, 2002, p272), meliputi aktivitas-aktivitas utama sebagai berikut :
· Perencanaan Basis Data (Database Planning)
Mengatur dan merencanakan aktivitas-aktivitas dengan mengikuti langkah-langkah dari aplikasi database dan diterapkan seefektif dan seefisien mungkin. Ada tiga masalah pokok yang harus diperhatikan dalam merumuskan strategi sistem informasi (Connoly, 2002, p273) :
- Mengidentifikasikan rencana dan tujuan perusahaan dengan menentukan sistem informasi yang diperlukan
- Mengevaluasi sistem informasi yang ada untuk melihat kelebihan dan kekurangannya.
- Penilaian mengenai peluang IT yang mungkin dapat menghasilkan keuntungan yang kompetitif.

· Definisi Sistem Basis Data (System Definition)
Menjelaskan batasan-batasan untuk aplikasi database, pengguna database, dan area-area aplikasi. Menentukan jangkauan beserta batasan dari aplikasi basisdata, penggunanya, dan area aplikasinya. Sebelum dilakukan perancangan basisdata, amatlah penting untuk mengidentifikasikan batasan dari sistem yang sedang berjalan(ditelusuri), serta bagaimana sistem tersebut berinteraksi dengan bagian lain dalam sistem informasi organisasi (Connolly, 2002, h274).

· Pengumpulan dan Analisa Kebutuhan (requirement collection & analysis)
Proses mengumpulkan dan menganalisa kebutuhan-kebutuhan dari informasi tentang bagian dari perusahaan yang akan dibuat sebuah basis data dan menggunakan informasi ini untuk mengidentifikasikan kebutuhan user dan sistem yang baru (Connolly,2002,p276). Informasi yang dikumpulkan mencakup :
- Deskripsi tentang data yang digunakan
- Keterangan secara lengkap bagaimana data tersebut digunakan
- Kebutuhan tambahan lainnya untuk aplikasi data yang baru

· Desain Basis Data (database design)
Adalah aktifitas untuk merancang basis data yang dapat mendukung operasi dan tujuan perusahaan. Pendekatan yang bias digunakan adalah top-down, bottom-up, inside-out, mixed. Pada pendekatan top-down, terdapat tiga tahap dalam aktifitas perancangan, meliputi conceptual design, logical design, physical design.

· Desain Konseptual Basis Data (conceptual database design)
Langkah awal dalam conceptual database adalah dengan membuat model data secara konseptual dari perusahaan yang brsangkutan. Data tersebut merupakan informasi-informasi mengenai perusahaan. Dalam menentukan model data secara konseptual data yang digunakan tidak termasuk dalam sasaran DBMS, program aplikasi, bahasa pemrograman, dan masalah dalam pembuatan basis data. Dalam conceptual database design data yang ada dikembangkan dengan representasi secara konseptual yang mencakup mengidentifikasi entity, relationship dan atribut yang sangat penting dalam perancangan basis data tersebut.
Desain konseptual bertujuan untuk merepresentasikan kebutuhan informal, deksripsi lengkap, namun tidak bergantung pada kriteria DBMS. Merepresentasikan isi dari database tanpa mengkhawatirkan bagaimana informasi ini diimplementasikan pada sistem. (McGraw Hill, 2003, p160)

· Desain Logikal Basis Data (logical database design)
Desain logikal mentranslasikan skema konseptual yang didefinisikan pada fase sebelumnya ke model data yang sesuai dengan DBMS. Model logikal merepresentasikan data dengan tanpa tergantung dengan fisiknya, meskipun DBMS yang digunakan harus mendukung data model itu. (McGraw Hill, 2003, p161)
Dalam logical database design, model data yang telah diperoleh dalam conceptual database design diubah dalam bentuk logical model dimana data yang ada dipengaruhi oleh model data yang menjadi tujuan basis data (database). Hal ini dilakukan untuk menterjemahkan representasi konseptual ke dalam bentuk struktur logic dalam database. Logical data model merupakan sumber informasi dalam merancang physical database. Logical database design memberikan sarana yang membantu para perancang physical database

· Desain Fisikal Basis Data (Physical database design)
Desain fisikal berupa skema logikal telah lengkap dan detil dari implemetasi fisiknya (organisasi file dan peng-indeks-an) pada DBMS tertentu. Model ini bergantung pada DBMS tertentu yang dipilih dan organisasi fisik data pada sistem itu. (McGraw Hill, 2003 ,p162).
Physical database design dilakukan untuk memutuskan struktur logik secara fisik diimplementasikan ke dalam tujuan database management system (DBMS), para perancang juga harus membuat keputusan mengenai bagaimana basis data (database) tersebut dapat diimplementasikan / diterapkan dalam perusahaan. Oleh karena itu, physical database design harus disesuaikan dengan DBMS yang spesifik.

· Pemilihan DBMS (DBMS selection)
Pemilihan DBMS dilakukan untuk memilih DBMS yang cocok atau sesuai dengan aplikasi basis data. Berikut ini adalah langkah-langkah utama dalam memilih DBMS (Connolly, 2002, p284) :
1. menggambarkan cakupan tugas berdasarkan kebutuhan perusahaan
2. membuat perbandingan mengenai dua atau tiga produk DBMS
3. mengevaluasi produk-produk DBMS tersebut
4. merekomendasikan pemilihan DBMS dan membuat laporan hasil dari evaluasi produk DBMS tersebut.

· Desain Aplikasi (application design)
Rancangan dari user interface dan program aplikasi yang digunakan untuk memproses basis data (Connolly, 2002, p287)

· Prototyping
Membangun suatu model kerja dari aplikasi database (Connolly,2002,p291). Tujuan utama mengembangkan suatu prototipe aplikasi database adalah mengijinkan user untuk menggunakan prototipe untuk mengidentifikasikan corak sistem apakah sistem bekerja dengan baik. Dan jika mungkin meningkatkan corak baru kepada aplikasi database.

· Implementasi (implementation)
Implementasi merupakan realisasi secara fisik dari basis data dan desain aplikasi (Connolly,2002, p292). Pengendalian keamanan integritas untuk aplikasi juga telah diterapkan. Sebagian dari kendali ini telah diterapkan dengan menggunakan DDL, tetapi yang lain mungkin perlu untuk digambarkan di luar dari DDL, sebagai contoh penggunaan yang disediakan DBMS atau kendali sistem operasi.

· Data Conversion & Loading
Pemindahan data yang ada dalam basis data yang baru dan mengubah aplikasi yang sedang berjalan agar dapat digunakan dalam basis data yang baru (Connolly, 2002,p293) langkah ini diperlukan hanya ketika suatu sistem basis data baru sedang menggantikan suatu sistem basis data yang lama.

· Testing
Testing adalah suatu proses melaksanakan progaram aplikasi dengan tujuan menemukan kesalahan (Connoly, 2002, p293). Sebelum diterapkan dalam suatu sistem, basis data harus dilakukan testing terlebih dahulu.

· Operational Maintenance
Suatu proses untuk memonitor dan merawat sistem aplikasi setelah instalasi. Dalam langkah-langkah yang sebelumnya, aplikasi basis data telah secara penuh diterapkan dan diuji. Sistem sekarang pindah kesuatu langkah pemeliharaan yang melibatkan atifitas yang berikut (Connolly, 2002, p293) :
- monitoring performance dari sistem. Jika performance jatuh dibawah suatu tingkatan yang bisa diterima penyetelan atau reorganisasi basis data mungkin diperlukan.
- maintaining dan meningkatkan mutu aplikasi basis data (ketika diperlukan).

CO

World Cup 2010

Sepak bola (World Cup 2010) hanya sebuah aktifitas yg dimainkan di area panjang 100-110m x lebar 64-75m, tetapi magnetnya bisa menghisap rat...