7 BAB 2 LANDASAN TEORI
2.1
Pengoptimalan Dalam Kamus Besar Bahasa Indonesia, Pengoptimalan diartikan proses, cara,
perbuatan untuk menjadikan paling baik, paling tinggi, paling menguntungkan, dan sebagainya.
2.2
Model Optimisasi Menurut Nash & sofer (1996, p.3), Model optimisasi berusaha mengekspresikan
model matematika yang bertujuan memecahkan masalah dengan cara terbaik. Jika digunakan untuk tujuan bisnis, artinya memaksimalkan keuntungan dan efisiensi serta meminimalkan kerugian, biaya, dan resiko. Menurut Supranto (1983, p4), Persoalan optimisasi adalah suatu persoalan untuk membuat nilai suatu fungsi beberapa variabel menjadi maksimum atau minimum dengan memperhatikan pembatasan-pembatasan yang ada. Biasanya pembatasan-pembatasan tersebut meliputi tenaga kerja (men), uang (money), material yang merupakan input serta waktu dan ruang. Sedangkan menurut National Institude of Standard and Technology (NIST), Masalah optimasi adalah masalah komputasi dimana tujuannya adalah menemukan yang terbaik dari semua solusi yang mungkin. Secara garis besar, Optimisasi adalah “Tindakan untuk memberikan hasil paling baik, entah itu hasil maksimal ataupun hasil minimum, untuk membuat sistem yang seefektif mungkin untuk menemukan yang terbaik dari semua solusi yang mungkin”.
8 2.3
Riset Operasi Riset Operasi (RO) digunakan untuk menemukan jalan terbaik dari sebuah
masalah dalam batasan-batasan dari sumber-sumber yang terbatas. Kata riset pada RO ini menunjukkan bahwa RO menggunakan pendekatan riset dalam proses pemecahan masalah operasional, menggunakan teknik matematika untuk memodelkan dan menganalisa keputusan. Sebagai pemecah masalah, RO harus dilihat baik dari sisi ilmu pastinya, maupun dari ilmu lainnya. Ilmu pasti mendukung dalam teknik matematika dan algoritma untuk memecahkan masalah yang harus dipecahkan. Riset Operasi adalah sebuah seni dimana fase yang dilalui dan suksesnya solusi model matematika tergantung dari kreatifitas dan kemampuan personal dari pengambil keputusan (Taha, 1992, p1). Riset Operasi menggunakan model untuk membantu menyelesaikan masalah, maka langkah-langkah dalam mengambil keputusan dalam proses RO ditujukan untuk menjalankan model tersebut (lihat gambar 2.1) (Budnick, Mojena dan Vollman, 1997, p3).
9 Langkah-langkah Proses
Langkah 1 : Observasi lingkungan persoalan
Persepsi bahwa suatu tindakan perlu diambil
Langkah 2 : Analisis dan pengenalan masalah
Translasi dari yang dibutuhkan menjadi sebuah statement dari kebutuhan dan kriteria dari solusi masalah yang akan dipilih
Langkah 3 : Pengembangan Model
Konstruksi model matematik atau representasi dari masalah
Langkah 4 : Memilih data masukan yang sesuai
Masukkan spesifik ke dalam model yang merefleksikan kondisi masalah sebenarnya
Langkah 5 : Perumusan pemecahan dan pengetesan yang dapat dipertanggungjawabkan
Memanipulasi data masukkan untuk menghasilkan hasil
Langkah 6 : Penerapan pemecahan
Mencoba hasil untuk memastikan validitas dan implikasi error dalam mengestimasi data masukkan
Sumber : Budnick F.S., Mojena R. & Vollman T. E. (1977) p3. Gambar 2.1 Langkah-langkah dalam Proses Riset Operasional
10 2.4
Model Model adalah representasi atau abstraksi dari objek/situasi aktual. Model
menunjukkan relasi antara sebab dan akibat, antara objektif dan rintangan. Karena model adalah abstraksi dari suatu realita, maka model tersebut akan lebih sederhana dari objek nyata yang dimodelkan olehnya. Pada umumnya model digunakan sebagai pengganti dari suatu objek, karena seringkali suatu percobaan akan lebih mudah dilakukan terhadap model dibandingkan jika dilakukan terhadap objek sesungguhnya (Riggs, 1981, p7). Ada 3 jenis model yang dikenal (Riggs, 1981, p7-8), yaitu: 1. Model Ikonik/physical:
Penampilan fisik dari suatu objek skala yang lebih kecil, misalnya pada globe dan foto.
2. Model Analog/schematic:
Menggunakan objek lain (umumnya diagram) untuk
menggambarkan
karakteristik
objek,
contohnya flowchart dan DFD (Data Flow Diagram). 3. Model Matematik/symbolic: Menggunakan
simbol-simbol/rumus-rumus
matematika dalam menggambarkan sifat objek, misalnya model pemrograman linear dan model antrian.
11 2.5
Produksi
2.5.1
Pengertian Produksi Menurut James L. Riggs dalam bukunya ‘Production Systems: Planning,
Analysis and Control – third edition’, produksi adalah tindakan dengan tujuan dalam menghasilkan sesuatu yang berguna (Riggs, 1981, p5). Dengan melihat arti diatas maka dapat dikatakan bahwa produksi merupakan kegiatan yang dilakukan, yang menghasilkan sesuatu yang beguna.
2.5.2
Sistem Produksi Menurut James L. Riggs dalam bukunya ‘Production Systems: Planning,
Analysis and Control – third edition’, sebuah sistem produksi adalah proses rancangan yang dimana elemen-elemennya diubah menjadi produk yang berguna (Riggs, 1981, p6). Proses merupakan prosedur terstruktur untuk menyelesaikan konversi dari input menjadi output, seperti dalam gambar 2.2.
Input Stimulus
Proses Konversi
Output
Elemen
Transformasi
Produk yang berguna
Material
Mesin
Produk
Respon
Data
Intepretasi
Pengetahuan
Diagram Input-output dari sistem produksi
Energi
Kemampuan
Servis
Biaya Variabel
Biaya Tetap
Pendapatan
Organisme
Gambar 2.2 Diagram Blok dan Contoh dari Sistem Produksi (Riggs, 1981, p6)
12 Sistem apa saja adalah kumpulan dari komponen yang saling mempengaruhi. Setiap komponen dapat menjadi sebuah sistem yang menuju dirinya sendiri dengan perintah menurun. Sistem dapat dibedakan menurut objektifnya masing-masing. Objektif dapat menghasilkan sebuah komponen untuk dihubungkan dengan komponen lain untuk menghasilkan sistem yang lebih besar.
2.5.3
Luas Produksi Luas produksi merupakan jumlah atau volume hasil produksi yang seharusnya
diproduksikan oleh suatu perusahaan dalam satu periode. Oleh karena itu luas produksi ini juga harus direncanakan / ditentukan agar perusahaan dapat memperoleh laba yang maksimal. Jadi pengertian luas produksi merupakan ukuran terhadap apa dan berapa banyak barang yang dapat diproduksi oleh suatu perusahaan tertentu. Semakin banyak barang yang diproduksi, baik jumlah maupun jenisnya, semakin besar luas produksinya (Sukanto&Indriyo, 2000, p51-53). Penentuan luas produksi yang tepat berarti adanya alokasi sumber produksi yang lebih efisien. Bahan dasar, bahan-bahan pembantu dan faktor-faktor produksi yang lain dapat ditentukan pada volume produksi yang tepat sehingga pemborosan-pemborosan dan kerugian-kerugian finansial faktor-faktor produksi tersebut dapat dihindarkan. Di dalam beberapa perusahaan, apa yang harus diproduksi sudah ditentukan oleh alat-alat produksi yang dimiliki oleh perusahaan tersebut. Oleh karenanya, barang yang diproduksi tidaklah mudah untuk diubah-ubah selama jangka waktu tertentu.
13 2.6
Metode Numerik Menurut Steven C. Chapra dan Raymond P. Canale dalam bukunya “Numerical
Method for Engineers”(2002, p3), Metode numerik adalah teknik dimana permasalahan matematik diformulasikan agar bisa dipecahkan dengan operasi aritmatik. Menurut Djojodihardjo (2000, p2) dalam mengerjakan metode numerik terdapat beberapa cara pendekatan, yaitu : a.
Pendekatan atau penyederhanaan perumusan persoalan sehingga dapat dipecahkan secara eksak.
b.
Mengusahakan diperolehnya jawab pendekatan dari persoalan yang perumusannya eksak.
c.
Gabungan dari kedua cara pemecahan diatas.
Pada umumnya metode numerik tidak mengutamakan diperolehnya jawaban yang eksak (tepat), tetapi mengusahakan perumusan metode yang menghasilkan jawab pendekatan yang memiliki selisih sebesar suatu nilai yang ditentukan berdasarkan kesepakatan dari jawab eksak. Menurut Djojodiharjo (2000, p12) proses pemecahan persoalan, pada umumnya berlangsung dalam tiga tahap, yaitu : a.
Perumusan secara tepat dari model matematik dan model numerik yang berkaitan
b.
Penyusunan metode untuk memecahkan persoalan numerik
c.
Penerapan metode untuk menghitung jawaban yang dicari
14
Masalah nyata dalam sains dan rekayasa
Perumusan Model matematik dan numerik
Penyusunan Metode
Ketidakpastian
Penerapan Metode
Jawab
Gambar 2.3 Proses Pemecahan Persoalan Dalam Metode Numerik (Djojodihardjo, 2000, p13)
2.7
Galat Untuk mendapatkan jawaban yang eksak, jarang didapatkan secara numerik. Dari
formulasi hingga komputasi numerik, galat (kesalahan) dan ketidakpastian dapat terjadi. Perluasan dari model, yaitu penyertaan berbagai faktor yang menyempurnakan model matematik sehingga mendekati hakikat fisiknya belum tentu memperbaiki ketelitian hasil yang diperoleh, karena secara matematik mungkin lebih sukar dipecahkan dan adanya kemungkinan lebih banyak faktor ketidakpastian yang dimasukkan pada tahap komputasi numeriknya (Djojodihardjo, 2000, p12).
15 Nilai galat terdiri dari dua macam (Djojodihardjo, 2000, p15-16), yaitu : 1. Galat Absolut Galat absolut adalah selisih antara nilai sebenarnya dengan suatu pendekatan pada nilai sebenarnya 2. Galat Relatif Galat relatif adalah galat absolut dibagi nilai pendekatan. Lebih beralasan mendefinisikannya sebagai galat absolut dibagi nilai sebenarnya, tetapi biasanya nilai sebenarnya tidak diketahui.
2.8
Deret Taylor Dalam matematika, Deret Taylor adalah suatu penyajian atau perkiraan dari
suatu fungsi sebagai penghitungan penjumlahan dari nilai-nilai derivative pada titik tunggal. Secara rinci, Deret Taylor dari diferensiasi riil (atau kompleks) tidak terbatas fungsi f , menggambarkan sebuah interval (a − r ,1 + r ) adalah deret dari : ∞
∑ n =0
f ( n ) (a) ( x − a) n . n!
[2.1]
Disini, n! Adalah faktorial dari n dan f ( n ) (a ) menunjukan derivatif ke n dari f pada titik a; derivatif ke nol dari f adalah fungsi itu sendiri. Deret ini ditulis oleh matematikawan inggris Brook Taylor. Apabila a=0, deret ini dikenal dengan Deret Maclaurin, ditemukan oleh matematikawan skotlandia Colin Maclaurin (http://en.wikipedia.org/wiki/Taylor_series).
16 Untuk memperoleh pengertian lebih dalam mengenai perilakunya, penulis membentuknya suku demi suku. (Chapra dan Canale, 2002, p79-85) Misalkan untuk suku pertama dalam deret itu ialah : f ( xi +1 ) = f ( x)
[2.2]
Hubungan ini, dinamakan aproksimasi orde ke nol (zero-order aproximation), menunjukkan bahwa harga f pada titik yang baru sama dengan harga di titik yang lama. Aproksimasi orde pertama (first-order aproximation) dikembangkan dengan menambah suku lainnya agar memenuhi : f ( xi +1 ) = f ( xi ) + f ' ( xi )( xi +1 − xi )
[2.3]
Penambahan suku orde pertama terdiri dari sebuah kemiringan (slope) f ' ( xi ) dikalikan dengan jarak antara xi dan xi +1 . Jadi persamaan itu kini mempunyai bentuk sebuah garis lurus dan mampu memperkirakan suatu kenaikan atau penurunan fungsi antara xi dan xi +1 . Persamaan diatas hanya pasti untuk sebuah garis lurus atau linear. Karenanya sebuah suku aproksimasi orde kedua (second-order oproximation) ditambahkan ke dalam deret agar mencakup beberapa lengkungan yang boleh ditujukan oleh fungsi itu : f ( xi +1 ) = f ( xi ) + f ' ( xi )( xi +1 − xi ) +
Dengan
cara
serupa,
f ' ' ( xi ) ( xi +1 − xi ) 2 2!
suku-suku
tambahan
dapat
[2.4] dimasukkan
mengembangkan perluasan Deret Taylor yang lengkap. f ( x i + 1 ) = f ( x i ) + f ' ( x i )( x i + 1 − x i ) +
f ' ' ( xi ) ( xi +1 − xi ) 2 2!
untuk
17
+
f ' ' ' ( xi ) f ( n ) ( xi ) ( xi +1 − xi ) 3 + ... + ( xi +1 − xi ) n + Rn 3! n!
[2.5]
Suku-suku sisanya dimasukkan untuk memperhitungkan semua suku dari n + 1 sampai tak hingga : Rn =
f ( n +1) (ξ ) ( xi +1 − xi ) n +1 (n + 1)!
[2.6]
Dimana subskrip n mengandung arti bahwa ia merupakan sisa dari pendekatan orde ke- n dan ξ adalah suatu harga x yang terletak sembarang antara xi dan xi +1 . Pengenalan ξ demikian penting, hingga kita akan menggunakan seluruh pasal untuk menjabarkannya. Ada baiknya untuk memudahkan Deret Taylor dengan mendefinisikan suatu ukuran langkah h = xi +1 − xi dan menyatakan persamaan (2.5) sebagai f ( xi +1 ) = f ( xi ) + f ' ( xi )h +
f ' ' ( xi ) 2 f ' ' ' ( xi ) 3 h + h + .. 2! 3!
f ( n ) ( xi ) n + h + Rn n!
[2.7]
Di mana suku sisa sekarang adalah : Rn =
2.9
f ( n +1) (ξ ) n +1 h (n + 1)!
[2.8]
Penurunan Rumus Diferensiasi Numerik
Diferensiasi Numerik adalah pengembangan daripada Deret Taylor dimana pengembangan dilakukan untuk sebuah pemecahan masalah (Chapra dan Canale, 2002, p85).
18 Walaupun Deret Taylor sangat berguna sekali dalam memperkirakan, perluasan tersebut dapat diterapkan untuk metode numerik. Persamaan v' (t i ) =
v(t i +1 ) − v(t i ) R1 − t i +1 − t i t i +1 − t i
yang berasal dari perluasan deret
taylor dari v(t ) diberi suatu lebel resmi dalam sebuah metode numerik, yang disebut diferensi terbagi hingga, yang secara umum dapat dinyatakan : f ' ( xi ) =
f ( xi +1 ) − f ( xi ) + O( xi +1 − xi ) xi +1 − xi
[2.9]
Δf i + O ( h) h
[2.10]
atau f ' ( xi ) =
Dimana Δf i diacu debagai diferensi ke depan pertama dan h dinamakan ukuran langkah, yakni panjang interval dimana pendekatan dilakukan. Ini disebut diferensi “ke depan” (forward) karena memanfaatkan data pada i dan i+1 untuk menaksir turunan (gambar 2.4a). keseluruhan suku Δf i / h diacu sebagai suatu diferensi terbagi hingga pertama. Diferensi terbagi ke depan merupakan salah satu pengembangan dari Deret Taylor untuk mencari aproksimasi turunan secara numerik. Misalnya pendekatan diferensi terpusat (centered) dan ke belakang / mundur (backward) turunan pertama yang dapat dikembangkan dalam model yang mirip dengan persamaan (2.9). yang pertama memakai data pada xi +1 (gambar 2.4b), sedangkan yang terakhir memakai informasi yang berspasi sama disekitar titik di mana tutunan tersebut ditaksir (gambar 2.4c). aproksimasi turunan pertama lebih akurat dapat dikembangkan dengan memasukkan suku-suku berorde lebih tinggi dari Deret Taylor.
19
Gambar 2.4 Penjelasan Secara Grafik untuk (a) Forward, (b) Backward, dan (c) Centered Aproksimasi Finite-Devided-Difference untuk Derivatif Pertama (Chapra&Canale, 2006, p88)
20 2.10
Pendekatan Mundur
Deret Taylor dapat diperluas atau dikembangkan secara mundur ke belakang untuk perhitungan suatu nilai sebelumnya berdasarkan harga sekarang (Chapra dan Canale, 2002, p85-86). Pendekatan diferensi mundur dari turunan pertama. Deret taylor diperluas ke belakang, seperti pada f ( xi −1 ) = f ( xi ) − f ' ( xi )h +
f ' ' ( xi ) 2 h − ... 2
[2.11]
Dimana persamaan ini dipotong setelah turunan pertama, dan diatur kembali agar memenuhi
f ' ( xi+1 ) =
f ( xi ) − f ( xi−1 ) ∇f − O ( h) = i − O ( h) h h
[2.12]
di mana kesalahannya adalah O(h) dan ∇f i diacu sebagai diferensi mundur pertama. Dengan metode Euler, metode mundur memberikan pilihan perbaikan lain. Representasi seperti ini disebut metode mundur karena munculnya sebuah persamaan yang tidak diketahui asalnya di kedua sisi. Form pendekatan mundur dari metode euler bisa dikembangkan dengan mengevaluasi derivative dari masa depan (Chapra dan Canale, 2002, p727-728), y i +1 = y i +
dy i +1 h dt
[2.131
Ini disebut mundur (backward) atau tersembunyi (implicit), metode euler. Merubah
dy = − ay menghasilkan dt
y i +1 = y i − ay i +1 h
[2.14]
21 Yang bisa digunakan untuk memecahkan y i +1 =
2.11
yi 1 + ah
[2.15]
Rekayasa Piranti Lunak
Piranti lunak adalah produk dan juga alat untuk mengirimkan sebuah produk (Pressman, 2001, p4). Sebagai produk, piranti lunak memuat potensi komputer dalam piranti keras komputer. Sebagai alat untuk mengantarkan produk, piranti lunak bekerja sebagai basis kontrol dari komputer (sistem operasi), komunikasi informasi (jaringan), dan kreasi serta kontrol dari program lain. Salah satu cara perancangan piranti lunak adalah dengan menggunakan waterfall model (model air terjun). Menurut Sommerville (1996, p9-10), tahap – tahap utama dalam Waterfall model dapat digambarkan dalam aktivitas dasar pengembangan seperti berikut ini: 1. Analisis Kebutuhan Pada tahap ini, dianalisis apa yang menjadi kebutuhan dan yang menjadi tujuan dari dibuatnya piranti lunak ini. 2. Desain sistem dan piranti lunak Proses desain sistem terbagi dalam kebutuhan perangkat keras dan piranti lunak. Hal ini menentukan arsitektur piranti lunak secara keseluruhan. Desain piranti lunak mewakili fungsi sistem piranti lunak dalam suatu bentuk yang dapat ditransformasikan ke dalam satu atau lebih program yang dapat dieksekusi.
22 3. Implementasi dan pengujian unit Dalam tahap ini, desain piranti lunak direalisasikan dalam suatu himpunan program atau unit – unit program. Pengujian unit mencakup kegiatan verifikasi terhadap setiap unit sehingga memenuhi syarat spesifikasinya. 4. Integrasi dan pengujian sistem Unit program secara individual diintegrasikan dan diuji sebagai satu sistem yang lengkap untuk memastikan bahwa kebutuhan piranti lunak telah terpenuhi. Setelah pengujian, sistem piranti lunak disampaikan kepada pengguna. 5. Pengoperasian dan Pemeliharaan Secara normal, walaupun tidak selalu diperlukan, tapi merupakan tahap siklus hidup yang terpanjang. Sistem telah terpasang dan sedang dalam penggunaan. Pemeliharaan mencakup perbaikan kesalahan yang tidak ditemukan dalam tahaptahap sebelumnya, meningkatkan implementasi unit – unit sistem dan mempertinggi pelayanan sistem sebagai kebutuhan baru yang ditemukan. Analisis Kebutuhan Desain sistem dan piranti lunak Implementasi dan pengujian unit Integrasi dan pengujian sistem Pengoperasian dan pemeliharaan Gambar 2.5 Waterfall Model (Sommerville, 1996, p9)
23 2.11.1 Data Flow Diagram (DFD)
Data Flow Diagram adalah representasi secara grafis yang menggambarkan aliran informasi dan transformasi yang digunakan dari input menjadi output (Pressman, 2001, p311). Data Flow Diagram bisa digunakan untuk merepresentasikan sebuah sistem atau piranti lunak pada level abstraksi manapun. Adapun simbol-simbol yang digunakan dalam DFD (lihat gambar 2.6)
External Entity / Boundary
Data Flow
atau
Proses
Database
Gambar 2.6 Simbol-simbol Data Flow Diagram (Hartono, 1999, p700-709)
Ada
empat
komponen
dari
DFD
yaitu
(http://en.wikipedia.org/wiki/Data_flow_diagram) : 1. External Entities / Terminators Terminators merepresentasikan darimana informasi berasal dan kemana perginya.
24 2. Proses Mengubah input dalam proses untuk menghasilkan sebuah output. 3. Penyimpanan Data Merepresentasikan tempat asal datangnya sebuah data. 4. Aliran Data Menunjukkan bagaimana data berjalan dari teminators, proses dan penyimpanan data.
2.11.2 Diagram Alir (Flowchart)
Diagram alir adalah sebuah skema yang merepresentasikan sebuah algoritma atau sebuah proses (http://en.wikipedia.org/wiki/Flowchart). Adapun simbol-simbol dari diagram alir yang digunakan dalam ilmu komputer seperti pada gambar 2.7.
25
Simbol untuk mulai dan selesai
Simbol untuk menentukan aliran data yang dilakukan
Simbol untuk langkah proses
Simbol untuk input ataupun output
Simbol untuk merepresentasikan sebuah kondisi atau keputusan. Biasanya berisi pertanyaan ya/tidak atau test benar/salah Gambar 2.7 Simbol-simbol Diagram Alir (http://en.wikipedia.org/wiki/Flowchart)
2.11.3 State Tranition Diagram (STD)
State Transition Diagram mengindikasikan bagaimana sistem berjalan. STD merepresentasikan berbagai mode dari reaksi sistem dan darimana transisi dilakukan dari satu state ke state lain (Pressman, 2001, p429-430). State Transition Diagram merepresentasikan reaksi dari sebuah sistem dengan menggambarkan states tersebut dan event yang menyebabkan sistem merubah state. Komponen-komponen utama dalam STD adalah :
26
State
State Transition
Gambar 2.8 Komponen State Transition Diagram (Booch, 1994, p199-201)
1.
State dari sebuah objek merepresentasikan hasil dari tindakan yang dilakukan. Setiap state membutuhkan sebuah nama dan harus unik. State berkerjasama dengan sistem secara keseluruhan. Semua state yang mempunyai nama yang sama akan dianggap menunjuk state yang sama (Booch, 1994, p200).
2.
State Transition adalah sebuah tindakan yang memungkinkan state dalam sebuah sistem berubah. Setiap state transition menghubungkan dua buah state. Sebuah state bisa memiliki sebuah state transition yang menunjuk kepada dirinya sendiri, dan sudah biasa untuk memiliki berbagai state transition dari sebuah state yang sama, walaupun setiap transisi haruslah unik. Hal ini dilakukan agar tidak ada keadaan yang akan memicu lebih dari satu state transition dari sebuah state yang sama (Booch, 1994, p201).
2.11.4 Program Design Language (Pseudocode)
Program Design Language atau Pseudocode sebuah tata bahasa yang menggunakan perbendaharaan kata dari sebuah bahasa (Pressman, 2001, p429-430).
27 Sebuah pseudocode harus memiliki karakteristik seperti berikut : 1.
Sintak tetap dari kata kunci yang menentukan semua struktur, deklarasi data, dan karakteristik modul.
2.
Sintak bebas dari sebuah bahasa yang menjabarkan fitur proses.
3.
Fasilitas deklarasi data harus mengandung data struktur yang simpel dan kompleks sekaligus.
4.
Definisi subprogram dan teknik panggilan yang mendukung berbagai mode dari deskripsi piranti lunak.
2.12
Database
Database adalah kumpulan dari catatan atau informasi dimana disimpan dalam komputer secara terstruktur, sehingga program komputer dapat berinteraksi untuk menjawab pertanyaan. Program komputer yang digunakan untuk mengatur dan menyimpan database dikenal dengan Database Management System (DBMS) (http://en.wikipedia.org/wiki/Database). Dalam database ada sebuah deskripsi struktural dari tipe data yang disimpan dalam database yang dikenal dengan nama Schema. Schema menjelaskan objek yang direpresentasikan dalam database dan hubungannya antara database. Ada beberapa cara untuk mengatur schema untuk memodelkan struktur database yang dikenal dengan nama data model. Model yang paling sering digunakan saat ini adalah relational model yang menampilkan semua informasi dalam form dari beberapa tabel yang masing-masing terdiri dari kolom dan baris. Model yang lain seperti model hirarki dan model jaringan menggunakan representasi yang lebih terbuka untuk hubungannya.
28 Berbagai teknik digunakan untuk struktur model data. Kebanyakan sistem database dibuat berdasarkan satu buah model data, walaupun sudah mulai yang menawarkan lebih dari satu macam model data. Beberapa jenis model data : 1. Flat Model Model flat terdiri dari sebuah dimensi-dua elemen data, dimana semua kolom diasumsikan mempunyai nilai yang sama, dan semua baris diasumsikan berhubungan satu dengan yang lainnya. 2. Hierarchical Model Dalam model hirarki, data diatur kedalam struktur pohon. Struktur hirarki banyak digunakan pada saat awal-awal penggunaan mainframe DBMS. 3. Network Model Model network mengatur data menggunakan dua konsepsi dasar, dikenal dengan records dan sets. 4. Relational Model Model relational terdiri dari banyak tabel, masing-masing serupa dengan yang digunakan dalam model flat. Tiga syarat kunci yang digunakan secara luas dalam model database relational adalah relations, attributes, dan domains.