BAB II LANDASAN TEORI
2.1
Pembelajaran Matematika Proses belajar dipengaruhi oleh faktor internal dan eksternal. Kondisi
internal ini sebagai karakteristik siswa yang merupakan deskripsi umum dari sifatsifat siswa yang akan menerima pelajaran. Misalnya usia, minat, profesi, kesehatan, motivasi, tingkat prestasi, kemampuan, status sosial ekonomi, atau kemampuan berbahasa asing. (Dick & Carey, 1985 : 95). Kondisi eksternal dalam proses belajar mengajar dipengaruhi antara lain oleh pengajar serta sarana dan prasarana. Dalam hal ini bagaimana pengajar merancang dan menyediakan kondisi agar siswa berhasil dalam belajarnya. Kegagalan seseorang dalam belajar tidak semata-mata disebabkan oleh kemampuannya tetapi antara lain adanya gangguan dari informasi lain yang menghambat untuk mengingat kembali apa yang telah pernah dipelajarinya. Menurut Assubel (1978 : 151-153) bila bahan yang dipelajari masa lalu menghambat bahan yang dipelajari sesudahnya disebut hambatan proaktif. Sedangkan bila bahan baru yang dipelajari menghambat ingatan kembali tentang apa yang telah dipelajari di masa lalu disebut menjadi hambatan retroaktif. Materi pelajaran tidak dapat dipelajari dengan ingatan saja melainkan harus dengan percobaan atau praktek langsung. Hubungan antara informasi yang telah ada dalam struktur kognitif siswa dengan informasi baru oleh Aussubel disebut advanced organizer. Hal ini dapat dilakukan dengan menghubungkan pelajaran matematika menjadi pelajaran yang penekanannya pada belajar penemuan (discovery learning), yakni belajar untuk mencari dan menemukan konsep baru bagi siswa dan belajar bermakna (meaningful learning) yaitu hasil belajar dapat diaplikasikan dan dikembangkan bagi siswa. Sehingga diharapkan pelajaran matematika dasar yang diajarkan menjadi konsep-konsep dasar dan ikut dalam pembentukan konsep baru yang dapat benar-
7
8
benar dipahami, karena matematika merupakan salah satu cabang ilmu pengetahuan yang sebagian konsepnya bersifat abstrak meskipun beberapa konsep dalam isinya terdiri dari hal-hal yang konkrit serta sebagian materinya memerlukan pemahaman secara bermakna.
2.2
Tata Bahasa Indonesia Penulisan suatu kalimat dalam sebuah bahasa, akan mengikuti suatu
aturan tertentu yang berlaku pada bahasa tersebut. Aturan tersebut dikenal sebagai Tata Bahasa (grammar). Kalimat sederhana terbentuk dari minimal dua kata yang mengandung unsur Subjek-Predikat. Bentuk dan kategori frase. Kata dapat dibedakan berdasar kategori sintaksnya. Artinya kata yang mempunyai bentuk dan perilaku yang sama dimasukkan dalam satu kelompok. Kategori sintaksis sering juga disebut kategori atau kelas kata. Kelas kata yang ada dalam bahasa Indonesia meliputi: 1.
Verbal (kata kerja)
2.
Nominal (kata benda)
3.
Adjektiva (kata sifat)
4.
Adverb (kata keterangan)
5.
Kata tugas: a. Preposisi (kata depan) b. Konjungtor (kata sambung) c. Partikel penegas d. Artikula e. Interjeksi (kata seru)
9
Kata kerja, kata benda dan kata sifat dalam kalimat bisa juga berbentuk frase. 1. Kata kerja dan frase kata kerja Kata kerja mempunyai fungsi sebagai predikat, yang mengandung makna perbuatan(aksi), proses, dan keadaan yang bukan sifat/kualitas. Kata kerja ini dibagi menjadi kata kerja transitif dan intransitif. Kata kerja transitif merupakan kata kerja yang memerlukan objek. Misalnya menanam bunga. Sedangkan kata kerja intransitif adalah kata kerja yang tidak memerlukan objek. Misalnya berlari. Contoh dari frase kata kerja :
lari lari tergesa-gesa (kata kerja + kata sifat)
pergi sudah pergi (kata keterangan + kata kerja)
2. Kata benda dan frase kata benda Kata benda mengacu pada manusia, binatang, benda, konsep dan pengertian. Kata benda bisa menduduki posisi sebagai subjek, objek, pelengkap maupun keterangan. Contoh frase kata benda: -
saya dan adik, (kata benda + kata benda)
-
dua buah mangga (keteranan numeralia/jumlah + kata benda)
3. Kata sifat dan frase kata sifat Kata sifat memberikan makna keterangan (bersifat atributif) terhadap kata benda maupun kata kerja. Contoh frase kata sifat: -
tidak bodoh
-
cantik sekali
Untuk menjabarkan soal matematika dalam kalimat harus mengikuti kaidah. Namun pada tulisan ini, bentuk kalimat yang digunakan dibatasi. Misalnya kalimat berita untuk menjelaskan kondisi apa yang diketahui, dan kalimat tanya atau kalimat perintah untuk menjelaskan apa yang harus dijawab. a)
Kalimat Berita
10
Kalimat berita harus memenuhi aturan S-P (Subjek-Predikat) atau S-P-O (Subjek-Predikat-Objek) atau S-P-O-K (Subjek-Predikat-ObjekKeterangan). Tetapi pada tulisan ini, kalimat berita yang dianggap valid hanya kalimat berita yang memenuhi pola S-P-O atau S-P-O-K atau kalimat transitif. Pola kalimat ini bisa digambarkan dengan diagram berikut: Kalimat Berita
Subjek
Predikat
atau, Kalimat Berita
Subjek
Predikat
Objek
atau, Kalimat Berita
Subjek
Predikat
Objek
Keterangan
Dengan masing-masing format sebagai berikut: Subjek
Kata benda, atau Kata Sandang + Kata benda, atau Kata Benda + Kata Keterangan, atau Kata Sandang + Kata Benda + Kata Keterangan
Predikat
Kata kerja, atau Kata kerja + kata keterangan
Objek
Kata benda, atau Kata Sandang + Kata benda, atau Kata Benda + Kata Keterangan, atau Kata Sandang + Kata Benda + Kata Keterangan
11
Keterangan
Kata keterangan tempat, waktu
Contoh:
Pola S – P (intransitif) - Adik menggambar Pola S – P – O (transitif) - Adik menyimpan buah Pola S – P – O – K - Adik menyimpan buah di meja
b)
Kalimat Perintah Kalimat perintah adalah kalimat yang bertujuan memberikan
perintah kepada orang lain untuk melakukan sesuatu. Biasanya diakhiri dengan tanda seru (!).
Dalam bentuk lisan, kalimat perintah ditandai
dengan intonasi tinggi. Macam-macam kalimat perintah : 1. Kalimat perintah biasa, ditandai dengan partikel -lah. Contoh : Hitunglah jumlah kambing di padang rumput itu! 2. Kalimat larangan, ditandai dengan penggunaan kata jangan. Contoh Jangan membuang sampah sembarangan! 3. Kalimat ajakan, ditandai dengan kata mohon, tolong, silahkan. Contoh : Tolong temani nenekmu di rumah!
c)
Kalimat Tanya Kalimat tanya adalah kalimat yang isinya menanyakan sesuatu atau
seseorang sehingga diperoleh jawaban tentang suatu masalah. Biasanya diakhiri dengan tanda tanya (?). Secara lisan, kalimat tanya ditandai dengan intonasi yang rendah. Contoh : -
Berapakah jumlah itik di kolam itu?
-
Siapa yang membeli buku ini?
Struktur kalimat tanya yang dianggap valid memenuhi pola: Kata tanya + Objek, atau
12
Kata tanya + Objek + keterangan
Jenis Kalimat 1. Kalimat Tunggal Kalimat tunggal adalah kalimat yang hanya terdiri atas dua unsur inti pembentukan kalimat (subjek dan predikat) dan boleh diperluas dengan salah satu atau lebih unsur-unsur tambahan (objek dan keterangan), asalkan unsur-unsur tambahan itu tidak membentuk pola kalimat baru. Kalimat Tunggal
Susunan Pola Kalimat
Ayah merokok.
S-P
Adik minum susu.
S-P-O
Ibu menyimpan uang di dalam laci.
S-P-O-K
2. Kalimat Majemuk Kalimat majemuk adalah kalimat-kalimat yang mengandung dua pola kalimat atau lebih. Kalimat majemuk dapat terjadi dari: a. Sebuah
kalimat
tunggal
yang
bagian-bagiannya
diperluas
sedemikian rupa sehingga perluasan itu membentuk satu atau lebih pola
kalimat
baru,
di
samping
pola
yang
sudah
ada.
Misalnya: Anak itu membaca puisi. (kalimat tunggal) Anak yang menyapu di perpustakaan itu sedang membaca puisi. (subjek pada kalimat pertama diperluas) b. Penggabungan dari dua atau lebih kalimat tunggal sehingga kalimat yang baru mengandung dua atau lebih pola kalimat. Misalnya: Susi menulis surat (kalimat tunggal I) Bapak membaca koran (kalimat tunggal II) Susi menulis surat dan Bapak membaca koran.
13
2.3
Teori Bahasa dan Automata Teori bahasa dan automata merupakan bagian dari teori komputasi pada
ilmu komputer. Istilah automata berasal dari bahasa Yunani automatos yang berarti self acting(mesin yang bekerja sendiri). Dalam dunia matematika, teori automata berkaitan dengan teori mengenai mesin abstrak. Automata adalah suatu mesin sekuensial yang menerima input dan menghasilkan output yang masingmasing dalam bentuk diskrit. Teori bahasa merupakan suatu gagasan mendasar dalam komputasi yang menjadi tools untuk mengenali persoalan. Gagasan tersebut dimodelkan dengan simbol-simbol yang merepresentasikan suatu fungsi dari komputer digital. Teori bahasa pada awalnya lebih diarahkan untuk mengenali suatu tata bahasa dan dapat mendefinisikan spesifikasi format dari data tersebut. Sehingga dapat didefinisikan langkah-langkah algoritmik dalam pemrosesan tata bahasa. Pengertian mesin bukan hanya mesin elektronis/mekanis saja melainkan segala sesuatu (termasuk perangkat lunak) yang memenuhi ketiga ciri di atas. Penggunaan automata pada perangkat lunak terutama pada pembuatan compiler bahasa pemrograman. Secara garis besar ada dua fungsi automata dalam hubungannya dengan bahasa, yaitu : -
Fungsi automata sebagai pengenal (recognizer) string-string dari suatu bahasa, dalam hal ini bahasa sebagai masukan dari automata.
-
Fungsi automata sebagai pembangkit (generator) string-string dari suatu bahasa, dalam hal ini bahasa sebagai keluaran dari automata.
Mesin pengenal bersifat deterministik bila dalam setiap konfigurasi, hanya ada satu kemungkinan yang dapat dilakukan mesin, jika tidak, mesin pengenal bersifat non deterministik. Noam Chomsky (1959) melakukan penggolongan tingkatan bahasa menjadi empat, yang dikenal dengan Hirarki Chomsky. 1. Regular Grammar/Regular Language (RG/RL)
14
Mesin Pengenal : Finite State Automata (FSA) yang meliputi Deterministic Finite Automata (DFA) dan Nondeterministic Finite Automata (NFA). Dapat dibagi menjadi dua subkelas : a) left linear grammar/left linear language (LLG/LLL), jika P berbentuk A→ Bx|x b) right linear grammar/right linear language (RLG/RLL), jika P berbentuk A→ xB|x, di mana A,B Є N dan x Є T* 2. Context Free Grammar/Context Free Language (CFG/CFL) Mesin Pengenal : Push Down Automata (PDA) Ciri-ciri : bentuk produksi P A→β, di mana A Є N dan β Є (T Є N)* 3. Context Sensitive Grammar/Context Sensitive Language (CSG/CSL) Mesin Pengenal : Linear Bounded Automata (LBA) Ciri-ciri : bentuk produksi P α→β, α,β Є (T Є N) +, |α| ≤ |β| 4. Unrestricted Grammar/Unrestricted Language (UG/UL) Mesin Pengenal : Turing Machine ™ Ciri-ciri : bentuk produksi P α→β, α,β Є (T Є N) + Pada tulisan ini hanya akan dibahas Bahasa Reguler (kelas bahasa yang pertama), yang merupakan kelas bahasa yang paling sederhana, beserta mesin pengenalnya (FSA). Dengan menggunakan FSA sudah cukup untuk menganalisa kalimat matematika yang diinput pengguna.
15
2.4
Finite State Automata Finite State Automata(FSA) merupakan suatu mesin abstrak yang
digunakan untuk merepresentasikan penyelesaian suatu persoalan dari suatu sistem diskrit. Sebagai sebuah mesin, FSA akan bekerja jika diberikan suatu input, dengan hasil proses berupa nilai kebenaran. FSA memiliki state yang banyaknya berhingga, jika diberikan suatu input maka dapat terjadi perpindahan state dari sebuah state ke state lainnya. Perubahan state tersebut dinyatakan oleh suatu simbol transisi. Mekanisme FSA tidak memiliki memory sehingga selalu mendasarkan prosesnya pada posisi state ”saat ini”. Misalnya pada mekanisme kontrol pada sebuah lift, selalu didasari pada posisi lift saat itu pada suatu lantai, pergerakan ke atas atau ke bawah dan sekumpulan permintaan yang belum terpenuhi. Finite State Automata merupakan suatu tools yang berguna untuk merancang sistem nyata. Berikut contoh kasus yang dimodelkan dengan diagram transisi dalam mesin automata: seorang petani dengan seekor serigala, kambing dan seikat rumput berada pada suatu sisi sungai. Hanya ada sebuah perahu kecil yang dapat dimuati dengan petani tersebut dengan salah satu serigala, kambing atau rumput. Petani tersebut harus menyeberangkan ketiga bawaannya kesisi lain sungai. Tetapi jika petani meninggalkan serigala dan kambing pada suatu saat, maka kambing akan dimakan serigala. Begitu pula jika kambing ditinggalkan dengan rumput, maka rumput akan dimakan oleh kambing. Mungkinkah ditemukan suatu cara untuk melintasi sungai tanpa menyebabkan kambing atau rumput dimakan? Masalah ini dapat dimodelkan dengan memperhatikan mereka yang menempati setiap sisi sungai. Misalnya kita akan menggunakan kombinasi pada setiap sisi sungai sebagai keadaan/state yang mungkin.
Terdapat 16 kombinasi state untuk Petani (P), serigala (S), kambing (K) dan rumput (R) yaitu :
16
Sisi kiri
Sisi Kanan
Simbol State
PSKR
Ø
PSKR – Ø
SR
PK
SR – PK
SK
PR
SK – PR
KR
PS
KR – PS
PSR
K
PSR – K
PSK
R
PSK – R
PKR
S
PKR – S
PK
SR
PK – SR
PR
SK
PR – SK
PS
KR
PS – KR
K
PSR
K – PSR
R
PSK
R – PSK
S
PKR
S – PKR
SKR
P
SKR – P
P
SKR
P – SKR
Ø
PSKR
Ø – PSKR
Dari 16 kombinasi state tersebut, hanya 10 state yang mungkin, yaitu : Sisi kiri
Sisi Kanan
Simbol State
PSKR
Ø
PSKR – Ø
SR
PK
SR – PK
PSR
K
PSR – K
PSK
R
PSK – R
PKR
S
PKR – S
PK
SR
PK – SR
K
PSR
K – PSR
R
PSK
R – PSK
S
PKR
S – PKR
Ø
PSKR
Ø – PSKR
17
Berdasarkan kemungkinan state tersebut, dapat digambarkan diagram transisi dari persoalan tersebut dengan mesin automata, sbb :
Gambar 1. Diagram Transisi
18
Dengan 1. Lingkaran merepresentasikan kedudukan (state), 2. Label pada lingkaran adalah nama state tersebut. 3. Busur menyatakan transisi 4. Label pada busur adalah masukan / input 5. Lingkaran didahului dengan sebuah busur tanpa label adalah state awal 6. Lingkaran ganda menyatakan state akhir (final)
Untuk kasus petani dengan bawaanya, dapat didefinisikan FSA sebagai berikut : Q = { PSKR–Ø, SR–PK, PSR–K, PSK–R, PKR–S, PK–SR, K–PSR, R–PSK, S– PKR, Ø–PSKR} ∑ = {P, PK, PR, PS } δ =
P
PK
PR
PS
PSKR – Ø
SR - PK
-
-
-
SR – PK
PSR - K
PSKR–Ø
-
-
PSR – K
SR - PK
-
S - PKR
R - PKS
PSK – R
-
S - PKR
-
K - PSR
PKR – S
-
R - PKS
K - PSR
-
PK – SR
K - PSR
Ø-PSKR
K – PSR
PK - SR
-
PKR - S
PKS – R
R – PSK
-
PKR - S
-
PSR - K
S – PKR
-
PKS - R
PSR - K
-
Ø – PSKR
-
PK – SR
-
-
S = PSKR – Ø F = { Ø – PSKR }
2.4.1
Deterministic Finite Automata(DFA) Kata ”Deterministic” mengacu pada setiap input hanya memiliki satu
transisi dari state saat ini. Suatu Deterministic Finite Automata (DFA) didefinisikan dengan fungsi (DFA) M = (Q, ∑, ∂, S, F) Dimana :
19
Q : himpunan state/kedudukan ∑ : himpunan simbol input
∂ : fungsi transisi, dimana ∂ Є Q × ∑ Q S : State awal (initial state) F : State akhir (final state) Sebagai contoh, mesin automata B = ({q0, q 1, q 2 }, {0, 1}, δB, q0 , {q2 }) dimana δB = { ((q0,0), q 1), ((q0,1), q 0), ((q 1,0), q1), ((q 1,1), q 2), ((q2,0), q 2), ((q2 ,1), q2) } FSA tersebut dikatakan DFA, jika selalu memenuhi tabel transisi berikut : 0
1
q0
q1
q0
q1
q1
q2
* q2
q2
q2
Tabel merepresentasikan fungsi, sebagai contoh untuk menemukan nilai dari ∂(q,x) kita harus melihat pada baris dengan label q dan pada kolom dengan label x. State awal ditandai dengan dan semua state akhir ditandai dengan *.
Dengan diagram transisi yang digambarkan sebagai berikut:
Gambar 2. Diagram transisi DFA menerima semua string dengan substring 01
2.4.2 Nondeterministic Finite Automata(NFA) Pada mesin nondeterministic, beberapa pilihan muncul pada state selanjutnya dari suatu titik. Nondeterminsitic merupakan generalisasi dari deterministic, sehingga setiap deterministic finite automata secara otomatis merupakan nondeterministic finite automata. Suatu Nondetereministic Finite Automata (NFA) didefinisikan dengan fungsi (NFA) M = (Q, ∑, ∂, S, F) Dimana :
20
Q : himpunan state/kedudukan ∑ : himpunan simbol input
S Є Q: State awal (initial state) F ⊆ Q : State akhir (final state)
∂ : fungsi transisi, dimana ∂ : Q × {∑ Ù ε} P(Q) ε merupakan string kosong
Sebagai contoh, mesin automata B = ({q0, q 1, q 2 }, {0, 1}, δB, q0 , {q2 }) dimana δB = { ((q0,0), q 0) .((q0,0), q 1), ((q 0,1), q0), ((q 1,1), q 2), } FSA tersebut dikatakan NFA, jika selalu memenuhi tabel transisi berikut : 0
1
q0
{q 0, q1}
q0
q1
Ø
q2
* q2
Ø
Ø
Diagram berikut merupakan contoh dari NFA
Gambar 3. Diagram transisi NFA menerima semua string yang berakhir di 01
NFA bekerja dengan satu input string dan menghasilkan output dengan banyak pilihan. Seperti terlihat pada state q0. Dari state q0 terdapat dua panah dengan input 0. Pada NFA ini, memiliki pilihan untuk ke state q0 atau q1. Pada state q1, NFA memeriksa apakah input merupakan 1, dan jika ya, menuju ke state q2 sebagai state akhir.
21
2.5
Natural Language Processing Natural language processing, biasanya disingkat dengan NLP, mencoba
membuat komputer mampu memahami suatu perintah yang dituliskan dalam bentuk bahasa sehari-hari dan diharapkan komputer juga merespon dalam bahasa yang mirip dengan bahasa natural. Perlu diketahui pula, speech synthesis dan speech recognition sebenarnya bukan merupakan bagian dari NLP. Natural Language processor tidak memperdulikan bagaimana suatu kalimat diinputkan ke komputer. Tugasnya adalah mengekstrak informasi dari kalimat. NLP tidak bisa digunakan sendirian, kecuali dalam riset. Tetapi NLP dapat menyediakan front end untuk program komputer yang lain – terutama database manager dan generalized problem solver. Juga untuk menjalankan sistem operasi, banyak riset yang mengarah ke NLP driven Operating System. Dan yang paling utama adalah pada pengembangan robotika, dimana dituntut interaksi yang efektif antara mesin dan manusia.
Pendekatan untuk NLP Inti dari sistem NLP adalah parser. Parser adalah bagian dari program atau sistem yang membaca setiap kalimat, kata demi kata. Ada banyak jenis parser yang bisa digunakan, pada tulisan ini akan digunakan teknik State machine Parser. Ada 2 pendekatan yang bertolak belakang pada NLP. Pendekatan yang pertama mencoba untuk menggunakan semua informasi dalam satu kalimat seperti
yang
dilakukan
manusia.
Tujuan
dari
pendekatan
ini
adalah
memungkinkan komputer melakukan percakapan. Pendekatan yang lain memungkinkan komputer menerima perintah dalam bahasa natural, tetapi cukup dengan cara meng-ekstrak informasi yang esensial dari perintah tersebut. Dalam penyelesaian menerjemahkan makna leksikal suatu kalimat, akan dibuat satu tabel aturan data yang berisi kata atau frase yang mengindikasikan jika kata maupun frase tersebut sebagai sebuah operator. Dalam hal ini, digunakan akan digunakan metode compiler atau kompilator, seperti terlihat pada gambar berikut:
22
Gambar 4. Model Kompilator
Dimana program melakukan proses analisis dan sintesis. Bagian analisis berhubungan dengan pemisahan bagian-bagian dasar (token). Secara lebih rinci, setiap elemen analisis melakukan tugas-tugas berikut: 1. Penganalisa leksikal (scanner) Fungsi scanner adalah membaca seluruh teks program sumber per karakter, mengenali bagian dasar teks (bagian leksikografis terkecil/token) dan memisahkannya dengan spasi kosong. Keluaran dari penganalisa leksikal adalah token. Setiap token dalam daftar token dilengkapi dengan kode penanda token(id) dan keterangan jenis token. Id dibangkitkan dengan mereferensi kepada informasi yang tersimpan dalam tabel simbol. 2. Penganalisa sintaks (parser) Daftar token yang dihasilkan scanner, oleh parser selanjutnya akan dikelompokkan atas kalimat-kalimat sesuai urutan keberadaan token dalam program sumber. Kalimat dapat berupa ekspresi, statement/pernyataan, dan prosedur. Dengan mengacu pada tata aturan penulisan kalimat (tata bahasa/grammar), kalimat yang terbentuk akan dianalisa untuk menghasilkan pohon sintaks atau yang sejenisnya. Pohon sintaks mengidentifikasi kalimat yang
23
benar secara tata bahasa jika semua simpul daun berupa token dan setiap simpul yang bukan daun mewakili suatu tipe kelas sintaks. 3. Penganalisa semantik Pohon sintaks yang dihasilkan oleh parser kemudian digunakan oleh penganalisa semantik untuk menangkap makna yang dimaksud oleh kalimat tersebut. Keluaran dari proses analisa semantik adalah Kode Antara (intermediate code). Salah satu model kode adalah Notasi Polish.
Keluaran dari bagian analisa selanjutnya digunakan oleh bagian sintesis untuk membangkitkan program objek yang sesuai dengan program sumber dan mesin. 1. Pembangkit kode (code generator) Intermediate code akan diterjemahkan ke dalam bahasa rakitan (assembly) atau langsung ke dalam bahasa mesin. 2. Pengoptimal kode (code optimizer) Pada kompilator yang canggih, kode-kode objek dari pembangkit kode akan dianalisa dan langkah-langkah operasi serta kemunculan berulang dari suatu ekspresi akan direduksi. Hasil reduksi tersebut dimaksudkan untuk menghasilkan program objek yang lebih efisien.
2.6
Waterfall Model Dalam pengembangan aplikasi yang menggunakan waterfall model,
produk dibagi ke dalam beberapa elemen yang dirancang dan di-built secara terpisah. Dalam setiap increment satu fitur/fungsionalitas di-review pengguna dan dilanjutkan ke fitur berikutnya. Pada tahap awal development, aplikasi yang dikembangkan merupakan fitur utama. Setiap tahap biasanya membutuhkan waktu yang relatif singkat. Model pengembangan ini membantu dalam memperkenalkan suatu sistem baru secara lengkap, tidak dalam sekali waktu. Secara umum, tahap pengembangan menggunakan Incremental Model dapat dilihat pada gambar 4.
24
Gambar 4. Model Incremental
2.7
UML UML (Unified Modelling Language) adalah salah satu alat untuk
menggambarkan metode analisa dan design berorientasi objek (OOA&D) yang berkembang pada tahun 90-an. UML disebut juga sebagai bahasa pemodelan dan bukan merupakan metode. Banyak metode terdiri dari beberapa prinsip, baik bahasa pemodelan maupun proses. Bahasa pemodelan adalah notasi dari metode yang digunakan untuk menggambarkan desain. (Fowler, 1999)
25
Berikut adalah notasi-notasi yang digunakan dalam UML: (Larman, 1996) Tabel 1. Tabel Notasi UML Nama Use
Fungsi
Notasi
Case Menjelaskan requirement
Diagram
Action
fungsional dan hubungannya
NewUs eCase
(f rom Actors)
dengan requirement nonfungsional. Interaction
Menggambarkan hubungan
Adalah generalisasi dari Sequence
Diagram
objek secara dinamis yang
diagram dan Collaboration diagram
menjelaskan bagaimana grup dalam objek berhubungan dalam satu proses. Class Diagram Menggambarkan definisi class secara hubungan yang statik dan mendeksripsikan tipe-tipe objek dalam
NewClass attributes1 attributes2
NewClass2 attributesN
setAttributes1() setAttributes2() getAttributes1() getAttriutes2()
setAttributesN() getAttributesN()
sistem. Sequence
Mengilustrasikan interaksi
Diagram
actor dan operasi yang
Object 1
Object n
ObjectMessage/Function
diinisiasi olehnya.
Message to self Return Message
Collaboration
Mengilustrasikan interaksi
Diagram
objek dalam format graf atau jaringan.
Link to Self
Object 1
Link Mess age/function
Object N
26
Package
Mengilustrasikan layer-
Diagram
layer pada sistem dan
NewPackage
ketergantungan
SubPackage
SubPackageN
diantaranya.
State
Teknik untuk menjelaskan
Diagram
perilaku sistem.
Transition
Start
Menjelaskan semua kemungkinan state pada
Transition
NewState
NewState2
End
suatu objek.
Activity
Menggambarkan rangkaian
Diagram
aktivitas suatu sistem.
Start
Activity1
Activity2
Decision
Acitivity3
Activity4
End
Activity5
Deployment
Mengilustrasikan
Diagram
hubungan fisik antara <processor name> <device name>
komponen software dan hardware dalam delivery sistem.
preempti ve <process name>
Component
Menggambarkan
Diagram
bermacam-macam komponen dalam sistem dan ketergantungannya.
NewComponent
NewCom ponent2
27
2.5
Microsoft Visual Studio Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite)
yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .Net, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe. Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk bahasa mesin yang berjalan di atas Windows) ataupun managed code (dalam bentuk Microsoft Intermediate Language di atas .Net Framework). Selain itu, Visual Studio juga dapat digunakan untuk mengembangkan aplikasi Silverlight, aplikasi Windows Mobile (yang berjalan di atas .Net Compact Framework). Visual Studio kini telah menginjak versi Visual Studio 9.0.21022.08, atau dikenal dengan sebutan Microsoft Visual Studio 2008 yang diluncurkan pada 19 November 2007, yang ditujukan untuk platform Microsoft .Net Framework 3.5. Versi sebelumnya, Visual Studio 2005 ditujukan untuk platform .Net Framework 2.0 dan 3.0. Visual Studio 2003 ditujukan untuk .Net Framework 1.1, dan Visual Studio 2002 ditujukan untuk .Net Framework 1.0. Versi-versi tersebut di atas kini dikenal dengan sebutan Visual Studio .Net, karena memang membutuhkan Microsoft .Net Framework. Sementara itu, sebelum muncul Visual Studio .Net, terdapat Microsoft Visual Studio 6.0 (VS1998).
2.8
Microsoft .Net Framework Microsoft .Net Framework adalah sebuah komponen yang dapat
ditambahkan ke sistem operasi Microsoft Windows atau telah terintegrasi ke dalam Windows (mulai dari Windows Server 2003 dan versi-versi Windows
28
terbaru). Kerangka kerja ini menyediakan sejumlah besar solusi-solusi program untuk memenuhi kebutuhan-kebutuhan umum suatu program baru, dan mengatur eksekusi program-program yang ditulis secara khusus untuk framework ini. .Net Framework adalah kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi-aplikasi baru yang dibuat untuk platform Windows. Pada dasarnya, .Net Framework memiliki 2 komponen utama: CLR dan .Net Framework Class Library. Program - program yang ditulis untuk .Net Framework dijalankan pada suatu lingkungan software yang mengatur persyaratanpersyaratan runtime program. Runtime environment ini, yang juga merupakan suatu bagian dari .Net Framework, dikenal sebagai Common Language Runtime (CLR). CLR menyediakan penampilan dari application virtual machine, sehingga para programmer tidak perlu mengetahui kemampuan CPU tertentu yang akan menjalankan program. CLR juga menyediakan layanan-layanan penting lainnya seperti jaminan keamanan, pengaturan memori, garbage collection dan exception handling / penanganan kesalahan pada saat runtime. Class library dan CLR ini merupakan komponen inti dari .Net Framework. Kerangka kerja itu pun dibuat sedemikian rupa agar para programmer dapat mengembangkan program komputer dengan jauh lebih mudah, dan juga untuk mengurangi kerawanan aplikasi dan juga komputer dari beberapa ancaman keamanan. CLR adalah turunan dari CLI (Common Language Infrastructure) yang saat ini merupakan standar ECMA. Solusi-solusi program pembentuk class library dari .Net Framework melingkupi area yang luas dari kebutuhan program pada bidang user interface, pengaksesan data, koneksi basis data, kriptografi, pembuatan aplikasi berbasis web, algoritma numerik, dan komunikasi jaringan. Fungsi-fungsi yang ada dalam class library dapat digabungkan oleh programmer dengan kodenya sendiri untuk membuat suatu program aplikasi baru. Pada berbagai literatur dan referensi di Internet, .Net Framework seringkali disingkat menjadi .Net saja .Net seringkali juga dapat diartikan sebagai platform, yang merupakan suatu lingkungan terpadu untuk pengembangan dan eksekusi untuk berbagai macam bahasa pemrograman dan kumpulan library untuk bekerja sama membuat dan
29
menjalankan aplikasi berbasis Windows yang lebih mudah untuk dibuat, diatur, didistribusikan, dan diintegrasikan dengan sistem jaringan lain. Dalam perkembangannya, .Net seringkali dikaitkan pula dengan versi Visual Studio
yang sesuai dengan dukungan versi yang bersangkutan untuk
pengembangan aplikasi. Berikut ini versi .Net dan versi Visual Studio yang terkait: • .Net 1.0 dan Visual Studio .Net (atau seringkali disebut juga dengan Visual Studio .Net 2002) • .Net 1.1 dan Visual Studio .Net 2003 • .Net 2.0 dan Visual Studio 2005 • .Net 3.0 dan Visual Studio 2005 dengan tambahan addin untuk WPF, WCF dan WF • .Net 3.5 dan Visual Studio 2008 • .Net 4.0 dan Visual Studio 2010 .Net 2.0, 3.0 dan 3.5 memiliki CLR yang sama. Dengan demikian, struktur IL juga sama. Adapun fasilitas penambahan kata kunci pemrograman seperti pada LINQ yang sebenarnya lebih mengarah sebagai fitur bahasa pemrograman (programming language feature) sehingga bukan merupakan fitur CLR.
2.9
Microsoft SQL Server 2005 Microsoft SQL Server merupakan sistem manajemen basis data relasional
(RDBMS) produk Microsoft. Query utamanya adalah T-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar. Microsoft SQL Server dan Sybase/ASE dapat berkomunikasi lewat jaringan dengan menggunakan protokol TDS (Tabular Data Stream). Selain dari itu, Microsoft SQL Server juga mendukung ODBC (Open Database
30
Connectivity), dan mempunyai driver JDBC untuk bahasa pemrograman Java. Fitur yang lain dari SQL Server ini adalah kemampuannya untuk membuat basis data mirroring dan clustering. Pada versi sebelumnya, MS SQL Server 2000 terserang oleh worm komputer SQL Slammer yang mengakibatkan kelambatan akses Internet pada tanggal 25 Januari 2003. Dalam SQL Server, basis data bukanlah sebuah file tetapi merupakan sebuah konsep logis yang berisi sekumpulan objek-objek yang berhubungan. Objek-objek dalam sebuah basis data antara lain tabel, kolom, tipe data, stored procedure, trigger, rule, kunci utama (primary key), kunci tamu(foreign key), constraint, default, view dan index. Pernyataan-pernyataan dalam SQL Server dibagi menjadi dua yaitu DDL (Data Definition Language) untuk membuat tabel, indeks dan relasi basis data. Yang kedua adalah DML (Data Manipulation Language) untuk memilih, mengurutkan, dan melakukan perhitungan terhadap data. SQL Server 2005 memberikan bahasa dan antarmuka yang baik untuk pemrograman dan komunikasi pada server. Bahasa pemrograman server yang merupakan superset dari ANSI-SQL adalah Transact-SQL. Transact-SQL terdiri dari tiga kelompok perintah yaitu : • Data Manipulation Language yaitu SELECT, INSERT, UPDATE dan DELETE. • Data Definition Language, yang digunakan untuk membuat objek basis data baru seperti CREATE, ALTER dan DROP tabel, index, mengatur sekuritas dan mengelola basis data. • Control Of Flow, untuk menambahkan logika pemrograman seperti pernyataan IF dan pengulangan WHILE. Dalam SQL Server 2000, terdapat alat bantu dan utilitas antara lain: • Books Online Merupakan kumpulan halaman HTML. Bagian kiri buku dibagi menjadi 4 yaitu Contents, Index, Search dan Favorites. • Service Manager
31
Utilitas yang digunakan untuk menjalankan (start) dan memberhentikan (stop dan pause) komponen-komponen server. • Enterprise Manager Alat bantu administratif, hal-hal yang dapat dilakukan adalah mendefinisikan kelompok-kelompok server, membuat basis data, objek, login, user dan hak-hak pada setiap server, memanggil Query Analyzer dan lain-lain. • Query Analyzer Alat bantu grafis yang bisa digunakan untuk mendesain, mengetes, dan menjalankan perintah-perintah Transact-SQL, stored procedure, batch, dan script secara interaktif. • Analysis Service Alat bantu untuk menganalisis data yang disimpan di dalam data warehouse dan data marts. • Client Network Utility • Server Network Utility