BAB 2 LANDASAN TEORI
2.1
Jaringan Syaraf Biologi Jaringan syaraf adalah merupakan salah satu representasi buatan dari otak
manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan di sini digunakan karena jaringan syaraf ini diimplementasikan
dengan
menggunakan
program
komputer
yang
mampu
menyelesaikan sejumlah proses pembelajaran (Fausett, 1994). Otak manusia terdiri dari neuron-neuron dan penghubung yang disebut sinapsis. Neuron bekerja berdasarkan sinyal yang diberikan neuron lain dan meneruskannya pada neuron lainnya. Diperkirakan manusia memiliki 1011 neuron. Masing-masing neuron saling berhubungan dengan jumlah hubungan tersebut mencapai 104 buah per neuron. Jadi jumlah koneksi untuk setiap neuron adalah 1015 buah. Neuron-neuron tersebut dapat bekerja secara paralel dengan kecepatan luar biasa. Dengan jumlah yang begitu banyak maka otak manusia mampu mengenali pola, melakukan perhitungan, serta mengontrol organ-organ tubuh dengan baik. Neuron memiliki 3 komponen utama, yaitu dendrit, badan sel (soma) dan akson.Dendrit berfungsi menerima sinyal informasi dari satu atau beberapa neuron yang terhubung. Sinyal yang diterima oleh dendrit diteruskan ke badan sel. Jika total sinyal yang diterima oleh badan sel cukup kuat untuk mengaktifkan sebuah neuron maka neuron tersebut akan mengirimkan sinyal ke semua neuron terhubung melalui akson.
8
Gambar 2.1 Sel Syaraf Biologi Sumber: http://belajaripaterpadu.blogspot.com/
2. 2
Jaringan Syaraf Tiruan
2. 2. 1 Definisi Jaringan Syaraf Tiruan Artificial Neural Network (Jaringan Syaraf Tiruan/ANN) adalah sebuah bentuk perhitungan yang meniru bentuk jaringan syaraf pada makhluk hidup. Sama seperti pada jaringan syaraf asli, jaringan syaraf tiruan memiliki neuron untuk memproses input/output. Karena itulah, pada sebagian besar kasus, ANN merupakan sistem yang adaptif, karena struktur sistemnya dapat berubah seiring dengan berubahnya informasi internal ataupun eksternal yang diproses pada saat learning phase (tahap pembelajaran). Pembuatan sistem ANN dimaksudkan agar komputer dapat mengenali suatu pola, bentuk, atau struktur tertentu karena komputer tidak mempunyai intelegensia, meskipun pada kenyataannya, sebuah komputer dapat melakukan operasi, misalnya mengenali wajah manusia, dalam waktu yang jauh lebih singkat daripada manusia.
9 Beberapa definisi tentang jaringan saraf tiruan adalah sebagai berikut. A. Hecht-Nielsend (1988) mendefinisikan sistem saraf buatan sebagai berikut. "Suatu neural network (NN), adalah suatu struktur pemroses informasi yang terdistribusi dan bekerja secara paralel, yang terdiri atas elemen pemroses (yang memiliki memori lokal dan beroperasi dengan informasi lokal) yang diinterkoneksi bersama dengan alur sinyal searah yang disebut koneksi. Setiap elemen pemroses memiliki koneksi keluaran tunggal yang bercabang (fan out) ke sejumlah koneksi kolateral yang diinginkan (setiap koneksi membawa sinyal yang sama dari keluaran elemen pemroses tersebut). Keluaran dari elemen pemroses tersebut dapat merupakan sembarang jenis persamaan matematis yang diinginkan. Seluruh proses yang berlangsung pada setiap elemen pemroses harus benar-benar dilakukan secara lokal, yaitu keluaran hanya bergantung pada nilai masukan pada saat itu yang diperoleh melalui koneksi dan nilai yang tersimpan dalam memori lokal". B. Menurut Zurada, J.M. (1992), Introduction To Artificial Neural Systems, Boston: PWS Publishing Company, mendefinisikan sebagai berikut. “Sistem saraf tiruan atau jaringan saraf tiruan adalah sistem selular fisik yang dapat memperoleh, menyimpan dan menggunakan pengetahuan yang didapatkan dari pengalaman”. C. Menurut Haykin, S. (1994), Neural Networks: A Comprehensive Foundation, NY, Macmillan, mendefinisikan jaringan saraf sebagai berikut: “Sebuah jaringan saraf adalah sebuah prosesor yang terdistribusi paralel dan mempuyai kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk digunakan. Hal ini menyerupai kerja otak dalam dua hal yaitu pengetahuan diperoleh oleh jaringan
10 melalui suatu proses belajar dan kekuatan hubungan antar sel saraf yang dikenal dengan bobot sinapsis digunakan untuk menyimpan pengetahuan. D. DARPA Neural Network Study (1988, AFCEA International Press, halaman 60) mendefinisikan jaringan syaraf buatan sebagai berikut. “Sebuah jaringan syaraf adalah sebuah sistem yang dibentuk dari sejumlah elemen pemroses sederhana yang bekerja secara paralel, yang fungsinya ditentukan oleh stuktur jaringan, kekuatan hubungan, dan pegolahan dilakukan pada komputasi elemen atau nodes”
Biasanya, sebuah model neuron untuk ANN terdiri atas tiga bagian berikut. A.
Synapsis (Jalur Penghubung) Antara neuron yang masing-masing memiliki weight (bobot). Tiap Synapsis memiliki indeks tertentu untuk menunjukkan input mana yang akan diproses menjadi output.
B.
Summing Unit untuk menghitung total input.
C.
Activation Function (Fungsi Aktivasi) untuk membatasi output.
11
Gambar 2..2 Jaringan Syaraf S Sederrhana Sumber: http://www..wikipedia.oorg
2.2.2
Arsitektur Jarin ngan Syaraff Tiruan Arsittektur jaringgan syaraf tirruan dapat diibedakan meenjadi 3 maccam.
A. Jarin ngan syaraf dengan d lapisan tunggal (ssingle layer net). Jarin ngan dengan lapisan tungggal hanya memiliki m satuu lapisan denngan bobot-bbobot terhu ubung. Jarinngan ini hanyya menerim ma input kem mudian secarra langsung akan meng golahnya meenjadi outpuut tanpa haruus melalui lapisan l terseembunyi. Deengan kata lain, ciri-ciiri dari arsittektur syaraaf dengan laapisan tungggal adalah hanya h terdiri dari satu lapisan l inputt dan satu lappisan outputt, tanpa lapissan tersembuunyi.
Gambar 2.3 Jaringan Syaraf S Tiruann Satu Layerr w.informawoorld.com Sumberr: http://www
12 B. Jaringan syaraf dengan banyak lapisan (multi layer net). Jaringan dengan banyak lapisan memiliki satu atau lebih lapisan yang terletak di antara lapisan input dan lapisan output (memiliki satu atau lebih lapisan tersembunyi). Umumnya, ada lapisan bobot-bobot yang terletak di antara 2 lapisan yang bersebelahan. Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang lebih sulit daripada jaringan dengan lapisan tunggal, tentu saja dengan pembelajaran yang lebih rumit.
Gambar 2.4 Jaringan Syaraf Tiruan Multi Layer Sumber: http://www.odec.ca/projects/2006/stag6m2/img/fig1.gif C. Jaringan syaraf dengan lapisan kompetitif (competitive layer) Arsitektur ini memiliki bentuk berbeda dari kedua arsitektur lainnya, di mana antarneuron saling dihubungkan. Jaringan ini sering disebut feedback loop karena unit output ada yang memberikan informasi terhadap unit masukan.
13
Gambar 2.5 Jaringan Syaraf Tiruan Competitive Layer Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf,2010
2.2.3
Fungsi Aktivasi
Beberapa fungsi aktivasi yang sering digunakan dalam ANN adalah. A. Fungsi undak biner (hard limit) Jaringan dengan lapisan tunggal sering menggunakan fungsi undak (step function) untuk mengkonversikan input dari suatu varuabel yang bernilai kontinu ke suatu output biner (0 atau 1). Fungsi undak biner (hard limit) dirumuskan sebagai (Demuth, 1998): y = 0, jika x < 0 y = 1, jika x ≥ 0
14
G Gambar 2.6 Jaringan J Syaaraf Tiruan Hard H Limit Sumber: Neuro-Fuzzy N y Integrasi Sistem S Fuzzyy & Jaringann Syaraf, 20110 gsi bipolar (ssymmetric haard limit) B. Fung Fung gsi bipolar hampir h samaa dengan funngsi undak biner, b hanya saja output yang dihassilkan beruppa 1, 0, ataau -1. Funggsi Symmettric Hard Limit L dirumuuskan sebag gai berikut (Demuth, ( 1998): y = 1, jika x ≥ 0 y = -1, jika x < 0
T Symmeetric Hard Limit L Gambaar 2.7 Jaringgan Syaraf Tiruan Sumber: Neuro-Fuzzy N y Integrasi Sistem S Fuzzyy & Jaringann Syaraf, 20110
15 C. Fung gsi linier (ideentitas) Fung gsi linier meemiliki nilai output yanng sama deengan nilai inputnya. Fungsi linierr dirumuskann sebagai (D Demuth, 1998): y=x
Gambaar 2.8 Jaringgan Syaraf Tiiruan Linearr Sumber: Neuro-Fuzzy N y Integrasi Sistem S Fuzzyy & Jaringann Syaraf, 20110 D. Fung gsi saturatingg linear Fung gsi ini akan bernilai b 0 jikka inputnya kurang dari -0,5 dan akkan bernilai 1 jika inputtnya lebih daari 0,5. Sedaangkan jika nilai n input teerletak di anntara -0,5 dann 0,5, makaa outputnyaa akan berniilai sama deengan nilai input ditam mbah 0,5. Fungsi F saturrating linearr dirumuskann sebagai (D Demuth, 19988): y = 1, jika x ≥ 0,5 y = x + 0,5, jiika − 0,5 ≤ x ≤ 0,5 y = 0, jika x ≤ −0,5
16
Gam mbar 2.9 Jariingan Syaraff Tiruan Satuurating Lineaar Sumber: Neuro-Fuzzy N y Integrasi Sistem S Fuzzyy & Jaringann Syaraf, 20110 E. Fung gsi symmetriic saturatingg linear Fung gsi ini akan bernilai -1 jika j inputnyaa kurang daari -1,dan akan bernilai 1 jika inputtnya lebih dari d 1. Sedanngkan jika nilai n input teerletak antaraa -1 dan 1, maka outpu utnya akan bernilai b samaa dengan nillai inputnya. Fungsi sym mmetric saturrating linea ar dirumuskaan sebagai (D Demuth, 19998): y = 1, jika x ≥ 1 y = x, jika − 1 ≤ x ≤ 1 y = -1, jika x ≤ −1
Gambar 2..10 Jaringan Syaraf Tiruuan Symmetrric Saturatingg Linear Sumber: Neuro-Fuzzy N y Integrasi Sistem S Fuzzyy & Jaringann Syaraf, 20110
17 F. Fungsi sigmoid biner Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode backpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Oleh karena itu,fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Namun, fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai outputnya 0 atau 1. Fungsi sigmoid biner dirumuskan sebagai (Demuth, 1998):
y = f ( x) =
1 dengan f ' ( x) = σf ( x)[1 − f ( x)] 1 + e −σx
Gambar 2.11 Jaringan Syaraf Tiruan Sigmoid Biner Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf, 2010 G. Fungsi sigmoid bipolar Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output dari fungsi ini memiliki range antara -1 sampai 1. Fungsi sigmoid bipolar dirumuskan sebagai (Demuth, 1998):
1 − e− x σ y = f ( x) = dengan f ' ( x) = [1 + f ( x)][1 − f ( x)] −x 1+ e 2
18
Gambar 2.12 Jaringan Syaraf Tiruan Sigmoid Bipolar Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf, 2010
2.2.4
Algoritma Pembelajaran Salah satu bagian terpenting dari konsep jaringan syaraf tiruan adalah proses
pembelajaran. Tujuan utama dari proses ini adalah melakukan pengaturan terhadap bobot-bobot yang ada pada jaringan syaraf, hingga didapat bobot akhir yang tepat sesuai dengan pola data yang dilatih. Selama proses pembelajaran, akan terjadi perbaikan bobot-bobot berdasarkan algoritma tertentu. Nilai bobot akan bertambah jika informasi yang diberikan ke neuron yang bersangkutan tersampaikan. Begitu pula sebaliknya, jika informasi tidak disampaikan oleh suatu neuron ke neuron yang lain, maka nilai bobot yang menghubungkan keduanya akan dikurangi. Pada saat pembelajaran dilakukan pada input yang berbeda, nilai bobot akan diubah secara dinamis hingga mencapai nilai yang cukup seimbang. Apabila nilai ini telah tercapai, berarti tiap-tiap input telah berhubungan dengan output yang diharapkan. Pada dasarnya ada dua metode pembelajaran, yaitu metode pembelajaran terawasi (supervised learning) dan metode pembelajaran yang tidak terawasi (unsupervised learning).
19 A. Pembelajaran terawasi (supervised learning) Metode pembelajaran pada jaringan syaraf disebut terawasi jika output yang diharapkan telah diketahui sebelumnya. Misalkan jaringan syaraf akan digunakan untuk mengenali pasangan pola, misalkan pada sebuah operasi logika matematika AND. Pada proses pembelajaran, satu pola input akan diberikan ke satu neuron pada lapisan input. Pola ini akan dirambatkan ke sepanjang jaringan syaraf hingga sampai ke neuron pada lapisan output. Lapisan output ini akan membangkitkan pola output yang nantinya akan dicocokkan dengan pola output targetnya. Apabila terjadi perbedaan antara pola output hasil pembelajaran dengan pola target, maka akan muncul error. Apabila nilai error ini masih cukup besar, berarti perlu dilakukan lebih banyak pembelajaran lagi. Modelmodel pembelajaran yang menggunakan supervised learning di antaranya adalah Backpropagation, Bidirective Associative Memory (BAM), dan Hopfield.
B. Pembelajaran tak terawasi (unsupervised learning) Metode pembelajaran yang tak terawasi tidak memerlukan target output. Pada metode ini, tidak dapat ditentukan hasil yang seperti apakah yang diharapkan selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah mengelompokkan unit-unit yang hampir sama dalam suatu area tertentu. Pembelajaran ini biasanya sangat cocok untuk pengelompokan (klasifikasi) pola. Modelmodel pembelajaran yang menggunakan unsupervised learning di antaranya adalah Adaptive Resonance Theory (ART) dan Competitive.
20 2. 3
Backpropagation
2.3.1
Definisi Backpropagation merupakan algoritma pembelajaran yang terawasi dan biasanya
digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk mendapatkan nilai error ini, tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu. Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi yang dapat dideferensiasikan, seperti sigmoid (Fausett, 1994).
Algoritma Backpropagation (Fausett, 1994) Langkah 1 Inisialisasi bobot (ambil bobot awal dengan nilai random yang kecil). Langkah 2 Tetapkan: Maksimum Epoch, Target Error, dan Learning Rate (α). Langkah 3 Inisialisasi: Epoch = 0. Langkah 4 Selama (Epoch < Maksimum Epoch) dan (MSE (Mean Squared Error) < Target Error), kerjakan langkah-langkah berikut. Langkah 4.1 Epoch = Epoch + 1 Langkah 4.2 Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran, kerjakan: Feedforward Langkah 4.2.1 Tiap-tiap unit input (Xi, i = 1, 2, 3, …, n) menerima sinyal xi dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada di atasnya (lapisan tersembunyi).
21 Langkah 4.2.2 Tiap-tiap unit pada suatu lapisan tersembunyi (Zi, j = 1, 2, 3, …, p) menjumlahkan sinyal-sinyal input terbobot: n
z_inj = b1j +
∑ i =1
xivij
Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: zj = f(z_inj) kemudian, kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output). Langkah ini dilakukan sebanyak jumlah lapisan tersembunyi. Langkah 4.2.3. Tiap-tiap unit output (Yk, k = 1, 2, 3, …, m) menjumlahkan sinyal-sinyal input terbobot. p
y_in = b2k +
∑ i =1
ziwij
gunakan fungsi aktivasi untuk menghitung sinyal outputnya: yk = f(y_ink) kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unitunit output).
Backpropagation Langkah 4.2.4 Tiap-tiap unit output (Yk, k = 1, 2, 3, …, m) menerima target pola yang berhubungan dengan pola input pembelajaran, hitung informasi errornya: δ2k = (tk – yk) f `(y_ink) φ2jk = δk - zj
22 β2k = δk kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai wjk) Δwjk = α φjk kemudian
hitung
koreksi
bobot
(yang
digunakan
untuk
sebanyak
jumlah
lapisan
memperbaiki nilai wjk) Δb2k = α βk Langkah
4.2.4
juga
dilakukan
tersembunyi, yaitu menghitung informasi error dari suatu lapisan tersembunyi ke lapisan tersembunyi sebelumnya. Langkah 4.2.5 Tiap-tiap unit tersembunyi (Zj, j = 1, 2, 3, ..., p) menjumlahkan delta inputnya (dari unit-unit yang berada pada lapisan di atasnya): m
δ_inj =
∑ k =1
δkwjk
kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error: δ1j = δ_inj f `(z_inj) φ1ij = δj xj β1j = δ1j hitung koreksi bobot (digunakan untuk memperbaiki nilai vij): Δvij = α φ1ij hitung koreksi bias (digunakan untuk memperbaiki nilai b1j): Δb1j = α φ1j
23 Langkah 4.2.6 Tiap-tiap unit output (Yk, k = 1, 2, 3, ..., m) memperbaiki bias dan bobotnya (j = 0, 1, 2, 3, ..., p): wjk(baru) = wjk(lama) + Δwjk b2k(baru) = b2k(lama) + Δb2k Tiap-tiap unit tersembunyi (Zj, j = 1, 2, 3, …,p) memperbaiki bias dan bobotnya (i = 0, 1, 2, 3, …, n): vij(baru) = vij(lama) + Δvij b1j(baru) = b1j(lama) + Δb1j Langkah 4.3 Hitung MSE (Mean Squared Error).
Pemilihan bobot awal sangat mempengaruhi jaringan syaraf dalam mencapai minimum global (atau mungkin hanya lokal saja) terhadap nilai error, serta cepat tidaknya proses pelatihan menuju kekonvergenan. Apabila nilai bobot awal terlalu besar, maka input ke setiap lapisan tersembunyi atau lapisan output akan jatuh pada daerah di mana turunan fungsi sigmoidnya akan sangat kecil. Sebaliknya, apabila nilai bobot awal terlalu kecil, maka input ke setiap lapisan tersembunyi atau lapisan output akan sangat kecil, yang akan menyebabkan proses pelatihan akan berjalan sangat lambat. Biasanya bobot awal diinisialisasi secara random dengan nilai antara 0,5 sampai 0,5 (atau -1 sampai 1, atau interval yang lainnya) (Fausett, 1994). Sementara, Metode NguyenWidrow akan menginisialisasi bobot-bobot lapisan dengan nilai antara -0.5 sampai 0,5. Sedangkan bobot-bobot dari lapisan input ke lapisan tersembunyi dirancang sedemikian rupa sehingga dapat meningkatkan proses pembelajaran. Parameter α merupakan laju pembelajaran yang menentukan kecepatan iterasi. Nilai α terletak antara 0 dan 1 (0 ≤ α ≤ 1). Semakin besar harga α, semakin sedikit iterasi yang dipakai. Tetapi, jika harga α
24 terlalu besar, maka akan merusak pola yang sudah benar sehingga pemahaman menjadi lambat. Setelah pelatihan selesai dilakukan, jaringan dapat digunakan untuk pengenalan pola. Dalam hal ini, hanya Propagasi Maju yang dipakai untuk menentukan keluaran jaringan. Apabila fungsi aktivasi yang dipakai bukan sigmoid biner, maka langkahlangkahnya harus disesuaikan.
25 Flowchart Algoritma Backpropaga B ation
Gamb bar 2.13 Flowchart Algooritma Backppropagation
26 2.4
Penyakit Jantung
2.4.1
Definisi Jantung Jantung adalah organ miogenis yang dapat ditemukan di semua hewan yang
mempunyai sistem saluran (termasuk semua hewan vertebrata). Jantung berfungsi untuk memompa darah melalui pembuluh darah dengan kontraksi yang ritmis dan berulangulang. Istilah cardio sendiri berasal dari kata Yunani kardia, yang berarti “Jantung/Hati”. Jantung hewan vertebrata terdiri atas otot cardiac, di mana jenis serat ototnya hanya akan ditemukan di jantung dan tidak di organ lain, dan juga serat penghubung. Jantung manusia sehat berdetak rata-rata 72 kali per menit, dan beratnya kurang lebih 250-300 gram untuk wanita dewasa dan 300-350 gram untuk pria dewasa. Jantung manusia umumnya berbentuk kerucut tumpul yang memiliki empat rongga yang dibagi menjadi 2 bagian, yaitu bagian kanan dan kiri yang dipisahkan oleh dinding otot yang dikenal dengan istilah septum. Pada bagian kiri dan kanan terbagi lagi menjadi 2 bilik. Rongga bilik sebelah atas disebut dengan atria dan dua bilik bawah yang disebut dengan ventricle yang memiliki peran dalam memompa darah menuju arteri.
27
Gambar 2.14 Tampak Penampang Jantung Manusia Sumber: The Visual Dictionary of Human Anatomy, 1996
2.4.2
Jenis-Jenis Penyakit Jantung Penyakit jantung atau cardiopathy adalah istilah untuk menggambarkan beberapa
variasi penyakit yang menjangkiti jantung. Di tahun 2007, penyakit jantung adalah penyebab kematian tertinggi di Amerika Serikat, Inggris, Kanada, dan Wales. Penyakit jantung menyebabkan 25, 4% dari total kematian di Amerika Serikat. Jenis-jenis penyakit jantung di antaranya adalah sebagai berikut.
A. Penyakit Jantung Koroner Penyakit jantung koroner adalah kegagalan saluran koroner mensuplai sirkulasi ke bagian otot cardiac dan serat otot di sekitarnya. Penyakit jantung koroner sering disebut juga dengan penyakit arteri koroner, meskipun penyakit jantung koroner dapat juga disebabkan oleh saluran koroner yang berkontraksi tidak wajar (coronary vasospasm).
28 B. Cardiomyopathy Adalah penyakit otot jantung. Ditandai oleh mulai rusaknya myocardium karena alasan apapun. Penyakit ini dapat mengakibatkan arrythmia (detak jantung menjadi tidak teratur) ataupun kematian otot cardiac mendadak. C. Penyakit Cardiovascular Adalah penyakit-penyakit yang menyerang jantung itu sendiri dan/atau menyerang pembuluh darah, terutama pembuluh nadi dan pembuluh balik yang berasal dari dan mengarah ke jantung. Penyakit jenis ini termasuk umum, biasanya penyebabnya adalah diabetes melitus, tekanan darah tinggi, dan kelebihan kolestrol. D. Ishaemic Penyakit yang disebabkan oleh berkurangnya suplai darah ke organ-organ tubuh E. Gagal jantung Juga disebut Congestive Heart Failure (CHF) atau Congestive Cardiac Failure (CCF), adalah sebuah kondisi yang bisa disebabkan oleh kelainan otot cardiac, baik secara fungsional maupun secara struktural yang mempengaruhi fungsi jantung untuk memompa jumlah darah yang cukup ke seluruh tubuh. F. Inflammatory Heart Disease (Penyakit Peradangan Jantung) Penyakit ini disebabkan oleh pembengkakan di otot jantung dan/atau serat otot yang mengelilinginya. G. Penyakit Katup Jantung Penyakit jenis ini melibatkan satu atau lebih katup jantung, terutama 2 katup utama aortic dan tricuspid di rongga kanan jantung, dan juga 2 katup utama aortic dan mitral di rongga kiri jantung.
29 2.5
Software Software (piranti lunak) adalah kumpulan program komputer dan data terkait
yang menyediakan instruksi kerja ke komputer beserta cara penanganan instruksi tersebut. Dengan kata lain, piranti lunak adalah kumpulan sejumlah program, prosedur, algoritma, dan dokumentasi.
2.5.1 Prinsip Dasar Pembuatan Software Dalam pembuatan sebuah piranti lunak, terdapat 3 prinsip dasar sebagai berikut: A. Determine users' skill levels (tentukan tingkat kemampuan pengguna) Pembagian tingkat kemampuan pengguna adalah hal yang penting, karena tidak semua pengguna dapat memahami cara kerja piranti lunak dalam sekali pakai. Biasanya tingkat kemampuan pengguna dibedakan menjadi tiga macam.
1) Novice or first-time users Pengguna pada tingkat ini adalah pengguna yang pengetahuan mengenai penggunaan atau konsep piranti lunaknya rendah atau tidak ada. Untuk pengguna tingkat ini, penting untuk membatasi kata-kata yang digunakan dalam program agar dapat cepat dipahami. Jumlah langkah penggunaan piranti lunak juga harus sesedikit mungkin agar pengguna dapat melakukan tugas sederhana tanpa masalah. Jika diperlukan, dapat dibuat panduan penggunaan program. 2) Knowledgeable intermittent users Pengguna pada tingkat ini memiliki pengetahuan mengenai penggunaan dan konsep piranti lunak yang bervariasi dan wawasan luas konsep antar muka, namun masih kesulitan untuk menentukan struktur menu atau lokasi fitur
30 tertentu. Untuk mengurangi beban pada memori pengguna, sebaiknya dibuat struktur menu, penggunaan istilah yang konsisten, dan desain antar muka yang tampak dengan jelas. 3) Expert frequent users Pengguna pada tingkat ini sudah mempunyai pengetahuan yang tinggi mengenai konsep pekerjaan dan konsep antar muka. Pengguna tingkat ini mencari cara pintas (shortcut) untuk menyelesaikan pekerjaan mereka lebih cepat. Pengguna pada tingkat ini juga menginginkan waktu respon program yang singkat, umpan balik (feedback) yang pendek dan tidak mengalihkan perhatian, dan penggunaan cara singkat ataupun penggunaan macro yang dapat mengerjakan beberapa perintah sekaligus.
B. Identify the tasks (kenali tugas yang akan dilakukan) Setelah mengenali jenis pengguna, pembuat piranti lunak perlu mengenali jenis tugas yang akan dikerjakan. Untuk langkah ini, diperlukan pemahaman mengenai frekuensi pekerjaan tertentu beserta urutannya, beserta tugas apa saja yang tersedia untuk dikerjakan. Sebaiknya aksi yang dapat dilakukan dikelompokkan menjadi pekerjaan-pekerjaan yang tidak terlalu kecil, agar pengguna tidak perlu melakukan terlalu banyak aksi untuk pekerjaan tingkat tinggi.
Terdapat 8 prinsip dasar untuk desain sebuah sistem yang disebut 8 Golden Rules of interface design (Shneiderman, 1998:72-73) yang dapat diaplikasikan ke sebagian besar sistem interaktif. Kedelapan prinsip ini adalah sebagai berikut.
31 1) Strive for consistency (berusaha mencapai konsistensi) Konsisten dalam kesamaan terminologi dalam membuat menu, tampilan, jenis hutuf, dan help screen. Selain itu konsisten dalam warna, kapitalitas, dan tampilan adalah juga penting. 2) Cater to universal usability Memungkinkan frequent users menggunakan shortcuts. Setelah para users mulai tanggap dalam mengakses sebuah situs, maka users akan menginginkan shortcut-shortcut yang mempercepat geraknya dalam pengaksesan situs tersebut. 3) Offer informative feedback (berikan umpan balik yang informatif) Untuk setiap operator action, beberapa di antaranya harus mempunyai sistem feedback. Untuk setiap tindakan yang sering dan sederhana, maka respon yang diberikan juga sederhana, tetapi jika tindakan yang dilakukan jarang dan termasuk dalam major actions, maka respon juga harus lebih substansial. 4) Design dialogs to yield closure (rancang dialog untuk keadaan sukses) Bertujuan untuk membuat seorang user merasa aman dalam melakukan sebuah tindakan dengan memberikan gambaran hasil akhir dari suatu pilihan, serta pemberian banyak option kepada user sehingga dapat ikut mempengaruhi hasil akhir. 5) Prevent errors (cegah kesalahan) Suatu program harus dirancang agar kesalahan yang dibuat seorang user dapat ditekan seminimal mungkin, dan pesan kesalahan yang dimunculkan harus dapat dimengerti oleh user awam.
32 6) Permit easy reversal of actions (mengijinkan pembalikan aksi dengan mudah) Tindakan harus dapat dibalikkan menjadi keadaan sebelumnya sehingga membuat user merasa aman karena ia tahu bahwa kesalahan yang dibuat dapat diperbaiki. 7) Support internal locus of control (dukung pemakai menguasai sistem) Membuat user merasa memegang kendali atas site tersebut. Kesulitan user dalam menavigasi situs atau dalam mendapatkan data yang diinginkan akan menimbulkan rasa tidak puas. 8) Reduce short-term memory load (kurangi beban memori jangka pendek) Manusia hanya dapat mengingat tujuh info ditambah atau dikurang dua info pada suatu waktu. Batasan ini berarti suatu program harus dibuat sesederhana mungkin sehingga tidak membuat seorang pengguna bingung karena terlalu banyak informasi. C. Prevent errors (mencegah kesalahan) Pencegahan kesalahan adalah hal yang sangat penting dalam pembuatan piranti lunak, bagian ini memerlukan bagian tersendiri. Bahkan seorang analis berpengalaman melakukan kesalahan di hampir setengah spreadsheet yang mereka gunakan, bahkan saat spreadsheet tersebut digunakan untuk menggunakan keputusan bisnis penting (Panko, 2008). Salah satu langkah yang umum dilakukan pada tahap ini adalah memberi pesan error yang informatif, dalam artian memberikan umpan balik ke pemakai berupa kesalahan yang terjadi dalam bahasa yang mudah dimengerti beserta cara penanggulangannya, jika memang kesalahan tersebut dapat diperbaiki oleh
33 pengguna. Cara yang lebih efektif adalah dengan membuat program sedemikian rupa sehingga kemungkinan terjadi kesalahan diminimalisir atau ditiadakan.
2.6
Teori Perancangan Software
2.6.1
Rekayasa Piranti Lunak Rekayasa Piranti Lunak (Software Development) adalah suatu disiplin ilmu yang
membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisis kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. (O’Brien, 1999). Istilah ini juga mengacu kepada pengkodean dan pemeliharaan source code sebuah program, namun dengan cakupan yang lebih luas, yaitu mengikutsertakan semua hal yang terlibat mulai dari tahapan konsep program yang ingin dibuat, sampai kepada tahap manifestasi program tersebut dengan proses yang terencana dan terstruktur. Istilah Software development dapat meliputi penelitian, pengembangan, pembuatan prototipe, modifikasi, pemakaian ulang, pengkodean ulang, pemeliharaan, atau semua aktivitas lain yang menghasilkan produk piranti lunak. Pembuatan piranti lunak dilakukan untuk bermacam-macam tujuan. Tiga tujuan yang paling umum adalah memenuhi kriteria spesifik yang diperlukan untuk keperluan bisnis/pelanggan, agar piranti lunak tersebut dapat memenuhi kebutuhan pengguna potensial (potential user), dan penggunaan pribadi. Software development process (proses pembuatan software) adalah sebuah struktur yang menekankan pada pembuatan sebuah produk piranti lunak. Ada beberapa model yang dipakai untuk proses tersebut, yang masing-masing menjelaskan pendekatan kepada tugas atau aktivitas yang dilakukan dalam proses tersebut.
34 Salah satu model yang cukup dikenal dalam dunia rekayasa perangkat lunak adalah The Waterfall Model. Ada 5 tahapan utama dalam The Waterfall Model. Disebut waterfall (berarti air terjun) karena memang diagram tahapan prosesnya mirip dengan air terjun yang bertingkat. Tahapan-tahapan dalam The Waterfall Model secara ringkas adalah sebagai berikut. A. Tahap investigasi dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan dilakukan untuk menentukan apakah sistem informasi yang dikembangkan merupakan solusi yang layak B. Tahap analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada (sebelum diterapkan sistem informasi yang baru). C. Tahap disain bertujuan menentukan spesifikasi detil dari komponen-komponen sistem informasi (manusia, hardware, software, network, dan data) dan produkproduk informasi yang sesuai dengan hasil tahap analisis. D. Tahap
implementasi
merupakan
tahapan
untuk
mendapatkan
atau
mengembangkan hardware dan software (pengkodean program), melakukan pengujian, pelatihan dan perpindahan ke sistem baru. E. Tahapan perawatan (maintenance) dilakukan ketika sistem informasi sudah dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila diperlukan.