[3] bab 2 - bina nusantara | library & knowledge...

19
BAB 2 LANDASAN TEORI 2.1 Sistem Pengenalan (Recognition System) Mengutip dari buku Pattern Recognition and Machine Learning yang ditulis oleh Bishop, Christopher (2006) yang diterbitkan di Berlin, Jerman, bahwa: “Sistem pengenalan adalah suatu tindakan di mana sistem berusaha mengidentifikasi dan menganalisis suatu tindakan yang kemudian akan dikenali oleh sistem itu sendiri dengan menampilkan hasil analisisnya.” Konstantinos Koutroumbas dan Sergios Theodoridis pun menjabarkan beberapa contoh sistem pengenalan yang ada pada buku terbitan Boston-Academic Press tahun 2008, antara lain: Pengenalan Tulisan Tangan (Handwriting Recognition), di mana sistem berusaha untuk mengenali tulisan tangan manusia agar dapat ditanggapi dengan baik oleh komputer. Gambar 2.1 Salah Satu Contoh Aplikasi Pengenalan Tulisan Tangan (http://www.mobileread.com/forums/attachment.php?attachmentid=12127&d=12078815 31 )

Upload: doankhanh

Post on 20-May-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

BAB 2

LANDASAN TEORI

2.1 Sistem Pengenalan (Recognition System)

Mengutip dari buku Pattern Recognition and Machine Learning yang ditulis oleh Bishop,

Christopher (2006) yang diterbitkan di Berlin, Jerman, bahwa:

“Sistem pengenalan adalah suatu tindakan di mana sistem berusaha mengidentifikasi dan

menganalisis suatu tindakan yang kemudian akan dikenali oleh sistem itu sendiri dengan

menampilkan hasil analisisnya.”

Konstantinos Koutroumbas dan Sergios Theodoridis pun menjabarkan beberapa contoh sistem

pengenalan yang ada pada buku terbitan Boston-Academic Press tahun 2008, antara lain:

Pengenalan Tulisan Tangan (Handwriting Recognition), di mana sistem berusaha

untuk mengenali tulisan tangan manusia agar dapat ditanggapi dengan baik oleh

komputer.

Gambar 2.1 Salah Satu Contoh Aplikasi Pengenalan Tulisan Tangan

(http://www.mobileread.com/forums/attachment.php?attachmentid=12127&d=12078815

31)

Page 2: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

Pengenalan Pola (Pattern Recognition), di mana sistem berusaha untuk mengenali

pola tindakan manusia berupa gerak-gerik dari manusia agar dapat dimengerti dan

dianalisis oleh komputer.

Gambar 2.2 Salah Satu Contoh Pengenalan Pola

(http://www.huliq.com/files/imagecache/article_main/Visual%20pattern%20recognition

%20search%20engine%20for%20the%20iPhone%20180408.jpg)

Pengenalan Gambar (Image Recognition), di mana sistem berusaha untuk mengenali

suatu gambar atau foto dengan menganalisis keseluruhan pola gambar yang ada agar

dapat dikenali oleh komputer.

Gambar 2.3 Salah Satu Contoh Pengenalan pada Gambar

(http://www.jens-langner.de/lrecog/images/lrecog1b.jpg)

Page 3: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

Pengenalan Suara (Speech Recognition), di mana sistem berusaha untuk mengenali

suara atau vokal yang ada dengan menganalisis suara tersebut agar dapat dikenali

oleh komputer.

Gambar 2.4 Salah Satu Contoh Aplikasi Pengenalan Suara

(http://llt.msu.edu/vol8num3/review1/pic4.jpg)

Pengenalan Wajah (Face Recognition), di mana sistem berusaha untuk mengenali

wajah seseorang dengan menganalisis pola-pola dan bentuk wajah yang nantinya

dapat dikenali oleh komputer.

Gambar 2.5 Salah Satu Contoh Aplikasi Pengenalan Wajah

(http://togaptar.files.wordpress.com/2010/04/face-recognition.jpg)

Page 4: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.2 System Development Life Cycle (SDLC)

Mengutip dari buku Software Engineering: Seventh Edition karangan Roger S. Pressman

yang diterbitkan oleh McGraw-Hill, pengertian dari SDLC adalah:

“System Development Life Cycle atau Siklus Hidup Pengembangan Sistem adalah proses

perancangan sistem serta metodologi yang digunakan untuk mengembangkan sistem-

sistem tersebut.”

Dalam penelitian skripsi ini, penulis menggunakan proses Waterfall Model sebagai pola

pengembangan sistem. Definisi yang diartikan oleh Roger S. Pressman dalam bukunya Software

Engineering: Seventh Edition dijelaskan bahwa:

“Waterfall Model sebuah proses perancangan yang secara berurutan dan sering

digunakan dalam proses pengembangan perangkat lunak.”

Langkah-langkahnya dapat dilihat pada Gambar 2.6.

Gambar 2.6 Proses Metode Waterfall

(Gambar diambil berdasarkan penjabaran Roger S. Pressman pada buku Software

Engineering: Seventh Edition)

Page 5: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.3 Use Case Diagram

Use Case Diagram akan memberikan penjelasan secara fungsional mengenai sistem yang

dirancang dan dikembangkan dan juga menjelaskan proses-proses yang dapat dilakukan oleh

pengguna dilihat dari sudut pandang si pengguna itu sendiri. Berdasarkan pengertian dari buku

Software Engineering: Seventh Edition karangan Roger S. Pressman maka Use Case dapat

didefinisikan sebagai berikut:

“Sebuah Use Case menggambarkan bagaimana seorang user berinteraksi dengan sistem

dengan mendefinisikan langkah-langkah yang diperlukan untuk mendapatkan hasil yang

spesifik.”

Gambar 2.7 Elemen-elemen Utama pada Diagram Use Case

(http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/images/actor.jpg)

Pada Use Case Diagram, figur utama direpresentasikan sebagai seorang aktor yang

diasosiasikan dengan satu kategori dari user atau dengan elemen interaksi lainnya. Tapi untuk

sistem yang kompleks biasanya memiliki lebih dari satu aktor.

Kemudian pada Use Case Diagram, sebuah Use Case digambarkan dengan bentuk oval.

Aktor dihubungkan dengan Use Case yang berhubungan melalui garis-garis.

Page 6: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.4 Sequence Diagram

Sequence Diagram digunakan untuk menunjukkan komunikasi yang dinamis antar objek

selama proses eksekusi sebuah tugas. Ini menunjukkan bahwa perintah yang bersifat sementara

pada suatu pesan dikirim antar objek untuk menyelesaikan tugas tersebut.

Mengacu pada penjelasan Sequence Diagram, Roger S. Pressman menjabarkan elemen-

elemen yang terdapat pada Sequence Diagram pada buku Software Engineering: Seventh

Edition, antara lain:

Aktor (User): subjek yang berinteraksi dengan sistem.

Objek: objek atau komponen pada suatu sistem.

Separator: batas antara subsistem.

Message: prosedur pesan atau proses antar objek atau elemen

komponen.

Return Message: pesan balik antar objek.

Page 7: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.5 Class Diagram

Class Diagram digunakan untuk melakukan permodelan pada kelas, termasuk atribut,

operasi dan hubungan mereka dan asosiasi dengan kelas-kelas lainnya. Definisi Class Diagram

pun kembali diperjelas lewat definisi yang ada pada buku Software Engineering: Seventh Edition

karangan Roger S. Pressman sebagai berikut:

“Class Diagram menyediakan sebuah pandangan yang statis dan struktural pada sebuah

sistem. Ini tidak menunjukkan komunikasi yang dinamis antar objek kelas-kelas pada

diagram.”

Gambar 2.8 Struktur Class Diagram

Page 8: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

Elemen utama pada Class Diagram adalah kotak yang digunakan untuk merepresentasikan

kelas-kelas dan interface. Setiap kotak dibagi menjadi bagian-bagian horisontal.

Bagian paling atas menyatakan nama kelas tersebut.

Bagian tengah menyatakan daftar atribut-atribut yang dimiliki oleh kelas tersebut. Sebuah

atribut menunjuk pada suatu objek yang dikenali oleh kelas tersebut.

Dan bagian paling bawah menyatakan operasi-operasi yang dilakukan oleh kelas tersebut.

Sebuah operasi menunjuk pada apa yang bisa dilakukan oleh objek-objek dari kelas tersebut.

Lalu terdapat juga hubungan antar class antara lain:

Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang

memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain.

Panah navigability menunjukkan arah query antar class.

Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).

Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan

mewarisi semua atribut dan metode class asalnya dan menambahkan fungsionalitas baru,

sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah

generalisasi.

Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class

kepada class lain.

Page 9: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.6 Activity Diagram

Activity Diagram menggambarkan perilaku dinamis dari sebuah sistem atau bagian dari

sebuah sistem melalui aliran kontrol antar proses yang ditampilkan oleh sistem.

Roger S. Pressman menjabarkan komponen yang terdapat pada Activity Diagram pada buku

Software Engineering: Seventh Edition, antara lain:

Node Awal: titik awal mulainya aktivitas.

Activity Box: berisi proses yang terjadi.

Decision: sebuah logika di mana terdapat dua operasi untuk

menentukan suatu keputusan

Concurrent Activity: beberapa kegiatan yang terjadi secara

bersamaan atau parallel.

Node Akhir: akhir dari aktivitas.

Page 10: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.7 Interaksi Manusia dan Komputer (IMK)

Berdasarkan jurnal yang ditulis oleh Dr. Reinhard Oppermann pada tahun 2001 yang

berjudul User-interface design, bahwa:

“Interaksi Manusia dan Komputer (IMK) adalah ilmu yang berhubungan dgn

perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan

oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya.”

IMK berfokus pada perancangan dan evaluasi user interface. User interface adalah

bagian sistem komputer yang memungkinkan manusia berinteraksi dengan komputer.

Tujuan dari merancang sebuah user interface adalah sebagai berikut:

• penentuan sasaran masyarakat pemakai dan tugas-tugasnya sangat penting

• desain yang baik bagi komunitas yang satu bisa tidak sesuai bagi komunitas lainnya

• desain yang efisien bagi sekumpulan tugas dapat tidak efisien bagi kumpulan lainnya

Dalam merancang sebuah user interface digunakanlah delapan aturan emas perancangan

antarmuka pengguna. Shneiderman mengemukakan 8 (delapan) aturan yang dapat digunakan

sebagai petunjuk dasar yang baik untuk merancang suatu user interface.

Page 11: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

Delapan aturan ini disebut dengan Eight Golden Rules of Interface Design yang telah dijabarkan

oleh Shneiderman, yaitu:

Konsistensi

Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan

pada prompt, menu, serta layar bantuan.

Memungkinkan pengguna untuk menggunakan shortcut

Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan kecepatan

interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah tersembunyi, dan

fasilitas makro.

Memberikan umpan balik yang informatif

Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik.

Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan

umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal yang penting,

maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara ketika

salah menekan tombol pada waktu input data atau muncul pesan kesalahannya.

Merancang dialog untuk menghasilkan suatu penutupan

Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal,

tengah, dan akhir. Umpan balik yang informatif akan memberikan indikasi bahwa

cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan

berikutnya.

Page 12: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

Memberikan penanganan kesalahan yang sederhana

Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan

kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan

cepat dan memberikan mekanisme yang sedehana dan mudah dipahami untuk

penanganan kesalahan.

Mudah kembali ke tindakan sebelumnya

Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui

kesalahan yang dilakukan dapat dibatalkan, sehingga pengguna tidak takut untuk

mengeksplorasi pilihan-pilihan lain yang belum biasa digunakan.

Mendukung pusat kendali internal

Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang

dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol pengguna.

Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna menjadi inisiator

daripada responden.

Mengurangi beban ingatan jangka pendek

Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak

tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan

untuk kode, mnemonic, dan urutan tindakan.

Page 13: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.8 Pengenalan Tulisan Tangan (Handwriting Recognition)

Seperti yang telah dijelaskan pada Bab 1, bahwa engenalan tulisan tangan merupakan

sebuah aplikasi yang dapat mengubah tulisan tangan berupa teks biasa menjadi sebuah struktur

data yang bisa secara otomatis diproses dan dimengerti oleh komputer. Aplikasi ini dapat juga

digunakan untuk mengembangkan metode interaksi pengguna komputer dan antarmuka dengan

mengenali gerak-gerik dari pola penulisan tangan yang menunjukkan pelaksanaan dari perintah

sistem operasi tersebut.

Berdasarkan survei yang dilakukan oleh IEEE (Institute of Electrical and Electronics

Engineers) bertajuk IEEE Transaction on Pattern Analysis and Machine Intelligence pada tahun

2000, ada berbagai upaya dalam membangun sebuah pengenalan tulisan tangan untuk

matematika. Upaya ini ternyata kurang berhasil karena sebuah himpunan matematika yang

dipertimbangkan telah dibatasi. Untuk membangun suatu pengenalan tulisan tangan yang baik

untuk matematika, maka diperlukan pengetahuan yang baik dan meluas dalam bidang

matematika, terutama pemahaman dalam bidang pengenalan karakter dan ekspresi matematika

itu sendiri.

Dengan cara ini, akurasi pengenalan tulisan tangan dalam bidang matematika dapat

ditingkatkan menjadi lebih baik lagi sehingga nantinya interaksi antara manusia dan komputer

dapat berjalan dengan baik.

Page 14: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.9 Identifikasi Karakteristik Matematika

Kata "matematika" berasal dari bahasa Yunani Kuno μάθημα (máthēma), yang

berarti pengkajian, pembelajaran, ilmu, yang ruang lingkupnya menyempit, dan arti teknisnya

menjadi "pengkajian matematika", bahkan demikian juga pada zaman kuno. Berdasarkan salah

satu artikel pada situs http://mathworld.wolfram.com/ yang ditulis oleh Eric Weisstein bahwa:

“Notasi matematika adalah suatu sistem yang simbolik yang merepresentasikan objek-

objek yang digunakan pada matematika, ilmu-ilmu fisik, teknik dan ekonomi.”

Sebagian notasi matematika terkesan sulit untuk dipahami karena begitu kompleks baik dari segi

bentuk maupun definisinya itu sendiri dari setiap notasi matematika yang ada. Beberapa notasi

matematika utama meliputi:

Teks, contohnya angka 1, 2, 3, 10, 20, 100 dan seterusnya dan juga huruf a/A sampai

dengan z/Z.

Operator, contohnya +, -, x, : dan lain-lain.

Page 15: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.10 Ekspresi Persamaan Matematika

Ekspresi sangatlah bervariasi dari segi kompleksitas sehingga akan lebih baik dalam

menentukan bagaimana masing-masing teknik visualisasi pengenalan mempengaruhi

kemampuan subjek untuk melihat dan memperbaiki kesalahan dari pengenalan itu sendiri.

Berdasarkan jurnal yang berjudul Semantics Engineering with PLT Redex yang ditulis oleh

Findler Felleisen pada tahun 2009, maka ekspresi persamaan matematika dibagi menjadi 4,

antara lain:

Ini adalah contoh ekspresi yang sederhana. Tipe ekspresi ini merupakan polynomial yang

sederhana yang dirancang agar lebih mudah untuk dikenali dan tidak terlalu banyak

memakan ruang.

5x + 3y − 2z + w = 0

3x − 5y + z − 4w = 5

7x − y + 3z − 2w = −6

x − 2y + 7z − 2w = 2

Ekspresi ini dirancang sehingga subyek harus menulis urutan ekspresi secara vertikal

(seolah-olah bekerja secara simultan sebagai sebuah persamaan), yang secara khusus

menilai keefektifan dari teknik itu sendiri.

Page 16: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

Untuk ekspresi yang compact, pengguna menulis suatu persamaan matematika yang lebih

terstruktur seperti di mana superscripts ditampilkan sehingga akan ada lebih banyak

simbol. Divisi baris juga digunakan dalam ekspresi untuk membuat mereka lterlihat

lebih compact. Ekspresi ini dirancang untuk membantu pengujian yang pada pengguna

dalam tingkat frustasi dan gangguan akibat perubahan mendadak dalam mengkonversi

simbol matematika yang disesuaikan.

Ekspresi yang panjang dirancang untuk menguji gangguan pada pengguna karena mereka

menulis di layar dan harus menggunakan scroll bar secara horisontal untuk

memberikan ruang bagi seluruh ekspresi.

Page 17: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

2.11 Bahasa Pemrograman LaTex

Berdasarkan situs resmi dari LaTex (http://www.latex-project.org/), berikut penjelasan

singkat mengenai LaTex.

“LaTeX adalah sebuah sistem typesetting yang berkualitas tinggi, tetapi juga mencakup

fitur yang dirancang untuk memproduksi dokumentasi secara teknis dan ilmiah. LaTeX

adalah standar de facto untuk berkomunikasi dan mempublikasikan dokumen ilmiah.

LaTeX tersedia sebagai perangkat lunak bebas.”

Gambar 2.9 Salah Satu Contoh Rangkaian Coding dari Program LaTex dan Output yang

Dihasilkan (http://www.latex-project.org/)

Page 18: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

Fitur-fitur yang disediakan pada LaTex antara lain:

Typesetting untuk artikel, jurnal, laporan teknis, buku, dan slide presentasi.

Kontrol atas dokumen besar berisi sectioning, referensi silang, tabel dan gambar.

Typesetting untuk formula matematika.

Multi-Lingual Typesetting.

Menggunakan font PostScript atau Metafont.

2.12 Bahasa Pemrograman MathML

MathML (Mathematical Markup Language) merupakan salah satu program pembelajaran

yang digunakan dalam bidang matematika.

Berdasarkan situs http://www.w3.org (W3C Recommendation), dijelaskan bahwa:

“MathML merupakan aplikasi berbasis XML yang digunakan untuk menggambarkan

notasi matematika dan menangkap kedua struktur dan konten.”

Dijelaskan pula bahwa, MathML dapat digunakan untuk encode baik notasi matematika

dan konten matematis.

Sekitar 38 buah dari tag MathML menggambarkan struktur notasi secara abstrak,

sementara yang lain sekitar 170 buah memberikan cara yang jelas dalam menentukan makna

yang dimaksudkan dari sebuah ekspresi matematika itu sendiri.

Page 19: [3] Bab 2 - BINA NUSANTARA | Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00538...2.2 System Development Life Cycle (SDLC) Mengutip dari buku Software

Gambar 2.10 Salah Satu Contoh Rangkaian Coding dari Program MathML

(http://www.w3.org)