BAB 2 LANDASAN TEORI 2.1
Pengertian Peramalan Menurut Sofjan Assuri (1984) peramalan adalah kegiatan untuk memperkirakan
apa yang akan terjadi pada masa mendatang. Setiap keputusan seseorang tidak akan lepas dari usahanya untuk meningkatkan kesejahteraan orang tersebut di masa yang akan datang. Oleh karena itu perlu dilihat dan dikaji situasi dan kondisi pada saat kebijakan tersebut dilaksankan. Usaha melihat dan mengkaji situasi dan kondisi tersebut tidak terlepas dari kegiatan peramalan. 2.2
Kegunaan Peramalan Kegunaan peramalan dapat dilihat pada saat pengambilan keputusan. Setiap
orang selalu dihadapkan pada masalah pengambilan keputusan. Keputusan yang baik adalah keputusan yang didasarkan atas pertimbangan apa yang akan terjadi pada waktu keputusan dilaksanakan. Apabila kurang tepat ramalan yang disusun atau yang dibuat, maka makin kurang baiklah keputusan yang diambil. Oleh karena itu masalah pengambilan keputusan merupakan masalah yang selalu dihadapi. Peranan peramalan cukup penting baik dalam penelitian, perencanaan maupun dalam pengambilan keputusan.
Walaupun demikian perlu disadari bahwa suatu
peramalan adalah tetap ramalan, di mana selalu ada unsur kesalahan dan belum pernah mencapai 100% tepat suatu ramalan sehingga diperlukan usaha untuk memperkecil kemungkinan kesalahan tersebut. Akhirnya baik atau tidaknya suatu ramalan sangat tergantung pada pihak-pihak yang melakukannya, langkah-langkah peramalan, dan metode yang digunakan.
7
2.3
Metode-Metode Peramalan Oleh karena kemampuan untuk memperkirakan kegiatan-kegiatan atau
pengambilan keputusan ini sangat ditentukan oleh tepat tidaknya peramalan yang dilakukan atas dasar keadaan kondisi pada beberapa masa yang lalu, maka terdapat usaha memperkembangan teknik dan metode peramalan. Metode peramalan sangat berguna, karena akan membatu dalam mengadakan pendekatan analisis terhadap tingkah laku atau pola dari data yang lalu, sehingga dapat memberikan cara pemikiran, pengerjaan dan pemecahan yang sistematis, serta memberikan ketepatan hasil ramalan yang dibuat menjadi lebih tinggi. Menurut Sofjan Assauri (1984), peramalan secara umum dibedakan atas peramalan kuantitatif dan kualitatif, pada dasarnya metode peramlan kwantitatif ini dapat dibedakan atas: a. Metode peramlan yang didasarkan atas penggunaan analisis pola hubungan antara variabel yang akan diperkirakan dengan variabel waktu, yang merupakan deret waktu, atau “Time series”. Contohnya metode proyeksi trend dengan regresi. b. Metode peramalan yang didasarkan atas penggunaan analisis pola hubungan antara
variabel
yang
akan
diperkirakan
dengan
variabel
lain
yang
mempengaruhinya, yang disebut metode korelasi atau sebab akibat. Contohnya: metode regresi dan korelasi. Metode yang dipergunakan sangat besar manfaatnya, apabila dikaitkan dengan keadaan informasi atau data yang dipunyai sekarang. Apabila dari data yang lalu diketahui adanya pola musiman, maka untuk peramlan satu tahun ke depan sebaiknya
8
digunakan metode varian musim. Sedangkan apabila dari data yanglalu diketahui adanya pola hubngan anatar variabel-variabel saling mempengaruhi, maka sebaiknya dipergunakan metode sebab-akibat (causal) atau korelasi(“cross section”). Dalam tulisan digunakan metode peramalan Neural Network sebagai metodenya. 2.4
Jaringan Syaraf Biologi Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan
yang luar biasa. 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. Neuronneuron tersebut dapat bekerja secara parallel 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. Jadi semua neuron hanya memiliki dua kemungkinan yaitu mengirimkan sinyal kepada neuron lain atau tidak.
9
Gambar 2.1 Sel Saraf Biologi Sumber: Artificial Intelligence, halaman 207 Neuron pada otak merupakan sistem yang bersifat fault tollerant dalam dua hal. Pertama, otak manusia dapat mengenali sinyal input yang berbeda dari yang pernah diterima sebelumnya, contohnya manusia dapat mengenali seseorang yang wajahnya agak berbeda karena sudah lama tidak berjumpa. Kedua, otak manusia tetap mampu bekerja meskipun beberapa neuronnya tidak mampu bekerja dengan baik. Jika sebuah neron rusak, neuron lain terkadang dapat dilatih untuk menggantikan fungsi sel yang rusak tersebut. Karena otak manusia yang begitu kompleks tetapi dapat memproses dengan cepat ditambah lagi otak mempunyai kemampuan belajar, para ahli mulai mengaplikasikan cara kerja otak ini ke dalam mesin komputer. Diharapkan komputer dapat bekerja dengan cepat dan memiliki kemampuan belajar juga. Kemampuan belajar komputer dinamakan Artificial Innteligence atau kecerdasan buatan.
10
2.5
Jaringan Syaraf Tiruan Jaringan Syaraf Tiruan adalah paradigma pemrosesan suatu informasi yang
terinspirasi oleh sistim sel syaraf biologi, sama seperti otak yang memproses suatu informasi. Elemen mendasar dari paradigma tersebut adalah struktur yang baru dari sistim pemrosesan informasi. Jaringan Syaraf Tiruan, seperti manusia, belajar dari suatu contoh. Jaringan Syaraf Tiruan dibentuk untuk memecahkan suatu masalah tertentu seperti pengenalan pola atau klasifikasi karena proses pembelajaran. Beberapa definisi tentang jaringan saraf tiruan adalah sebagai berikut. •
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".
11
•
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 melalui suatu proses belajar dan kekuatan hubungan antar sel saraf yang dikenal dengan bobot sinapsis digunakan untuk menyimpan pengetahuan.
•
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”. 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” Karena itu, jaringan syaraf secara umum dapat disimpulkan sebagai sebuah sistem yang dirancang sebagai model sebagaimana otak melakukan tugasnya yang dapat berupa perangkat-keras maupun perangkat-lunak yang menyimpan dan menggunakan pengetahuan dari pengalaman.
12
Dalam merancang suatu jaringan syaraf, selain memperhatikan struktur hubungan antara simpul masukan dengan simpul keluaran, perlu ditentukan juga cara atau metode pembelajarannya. Belajar bagi jaringan syaraf adalah cara memperbaharui bobot sinapsis disesuaikan dengan isyarat masukan dan keluran yang diharapkan. Secara umum suatu jaringan syaraf dibentuk atas sejumlah neuron sebagai unit pengolah informasi sebagai dasar operasi untuk menjalankan fungsi atau tugasnya. Model susunan neurons ditunjukkan pada berikut ini.
Gambar 2.2 Model neurons k tak-linear Sumber : http://achmad.blog.undip.ac.id/files/2009/06/pengantar-jaringan-syaraf.pdf Secara matematis, untuk neuron k berlaku persamaan:
dan ) dengan x1 x2 …….xp adalah isyarat masukan; wk1 , wk 2…. wkp , adalah bobot sinapsis untuk neurons k;
adalah keluaran kombinasi linear; θk adalah nilai ambang;
adalah fungsi aktivasinya; dan yk adalah isyarat keluaran neurons k.
(. )
13
Dari model neurons untuk jaringan syaraf seperti terlihat pada gambar 2.2 terdapat tiga bagian utama berikut. 1. Sekumpulan sinapsis atau jalur penghubung, yang mempunyai bobot atau kekuatan. Indeks yang tertulis pada notasi bobot sinapsis menunjukkan posisi masukan dan keluaran yang dihubungkan. 2. Unit penjumlah untuk menjumlahkan isyarat masukan. 3. Fungsi aktivasi untuk membatasi amplitude keluaran. 2.5.1
Perbandingan Jaringan Syaraf Tiruan dengan Konvensional Teknologi jaraingan syaraf tiruan memmberikan perubahan epistemologis pada
sistem pemrograman dibandingkan dengan pemrograman konvensional. Umumnya komputer konvensional menggunakan pendekatan algoritma (komputer konvensional mejalankan sekumpulan perintah untuk memecahkan masalah). Jika suatu perintah tidak diketahui oleh komputer konvensional maka komputer konvensional tidak dapat memecahkan masalah yang ada. Sangat penting mengetahui bagaimana memecahkan suatu masalah pada komputer konvensional karena sangat bermanfaat untuk melakukan sesuatu yang belum diketahui bagaimana melakukannya. Jaringan Syaraf Tiruan dan suatu algoritma komputer konvensional tidak saling bersaing namun saling melengkapi satu sama lain. Pada suatu kegiatan yang besar, sistim yang diperlukan biasanya menggunakan kombinasi antara keduanya (biasanya sebuah komputer konvensional digunakan untuk mengontrol Jaringan Syaraf Tiruan untuk menghasilkan efisiensi yang maksimal). Jaringan Syaraf Tiruan tidak memberikan suatu keajiban tetapi jika digunakan secara tepat akan menghasilkan keluaran yang luarbiasa.
14
Perbedaan pemrograman jaringan syaraf tiruan dan pemrograman konvensional bisa dilihat dari tabel 2.1. Jaringan syaraf tiruan
Pemrograman konvensional
Komputasi dilakukan secara parallel dan Komputasi dilakukan secara serial. terdistribusi dalam unit pemrosesan data dengan jumlah yang banyak. Informasi terdistribusi dalam jaringan Informasi teralokasi dalam syaraf tiruan.
tempat
tertentu.
Disebut teknologi pemrosesan parallel terdistribusi
(parallel
distributed
processing) Tabel 2.1 Perberdaan Jaringan Syaraf Tiruan dengan Pemrograman Konvesional Sumber: Situngkir dan Surya, 2003 2.5.2
Karakteristik Jaringan Syaraf Tiruan Neural network merupakan sistem pemrosesan informasi yang memiliki
karakteristik serupa dengan jaringan neural biologis di mana setiap neuron menerima satu set input dan setiap input dikalikan dengan sebuah bobot (weight) yang bersesuaian dengan kekuatan. Jumlah seluruh input berbobot tersebut menentukan kemungkinan neuron untuk menambah sinyal. Nilai ini yang disebut level aktifasi (activation level). Secara matematis untuk sebuah neuron, setiap input Xi, yang dimodulasikan oleh sebuah bobot Wi, sehingga jumlah total input adalah
atau dalam bentuk vector :
.
15
di mana
X=
,
,…,
dan W =
,
,…,
Karakteristik dari Jaringan saraf tiruan ialah adalah sebagai berikut. 1. Arsitektur jaringan: pola hubungan antar neuron 2. Algoritma pembelajaran: metode yang menentukan nilai bobot penghubung 3. Fungsi aktivasi: menentukan nilai output berdasarkan total nilai input-nya. 2.5.3
Komponen Jaringan Syaraf Tiruan Seperti halnya neuron biologis, neuron yang merupakan procces element,
jaringan syaraf tiruan juga memiliki neuron yang merupakan dasar dari operasi yang berfungsi untuk memproses informasi. Sel saraf tiruan ini biasa disebut processing element, neuron atau unit. Neuron ini memiliki sifat-sifat sebagai berikut.
1. Setiap neuron menerima sinyal-sinyal dari neuron lainnnya melalui sambungan yang disebut synapsis. 2. Sebagian signal input cenderung menyebabkan neuro tereksitasi (excitation) sementara sebagian yang lainnya menyebabkan penghambatan (inhibition) 3. Ketika efek kumutatif dari sinyal-sinyal tersebut melebihi suatu batas threshold, maka neuron yang bersangkutan akan menambahkan sinyal ke neuron lainnya. Masing-masing neuron akan meneruskan informasi yang diterimanya menuju neuron lainnya. Hubungan antar neuron ini disebut edge dan memiliki nilai yang disebut bobot atau weight (disimbolkan dengan w1,w2, ..., wn). Selain bobot, setiap unit juga memiliki input, output dan error. Input yang disimbolkan dengan (x1,x2, ..., xn) merupakan nilai atau angka yang ingin dilatih maupun diuji di dalam suatu jaringan, yang nilainya harus berupa angka. Output yang disimbolkan dengan (y1, y2,..., yn) merupakan hasil keluaran dari suatu unit yang merupakan solusi atau pemahaman
16
jaringan terhadap data input, sedangkan error merupakan tingkat kesalahan yang terdapat dalam suatu unit dari proses yang telah dilakukan. Dalam jaringan terkadang ditambah sebuah unit input yang nilainya selalu sama dengan satu. Unit ini disebut bias. Jaringan Saraf Tiruan
memiliki banyak neuron yang tersebar di seluruh
bagiannya. Masing-masing neuron dikelompokkan ke dalam beberapa lapisan dan memiliki hubungan satu dengan yang lain yang disebut dengan layer. Layer terdiri dari beberapa bagian, sebagai berikut. 1. Lapisan masukan (input layer) Lapisan ini merupakan tempat di mana seluruh bobot awal dimasukkan (inisialisasi input) yang selanjutnya diproses dan dikirimkan ke lapisan di atasnya. 2. Lapisan tersembunyi (hidden layer) Lapisan ini merupakan lapisan di antara lapisan masukan dan lapisan keluaran. Di sini bobot yang diterima dari lapisan input juga diproses untuk selanjutnya dikirim ke lapisan di atasnya yaitu lapisan output. 3. Lapisan keluaran (output layer) Lapisan ini merupakan lapisan akhir pada arsitektur jaringan di mana nilai output dari jaringan dihasilkan. Pada lapisan ini ditetapkan nilai output actual untuk dibandingkan dengan nilai output target guna mengetahui apakah
sudah sesuai
dengan hasil yang diinginkan. 2.5.4 Arsitektur Jaringan Syaraf Tiruan Dalam jaringan syaraf tiruan arsitektur juga dianggap penting. Terdapat tiga arsitektur sebagai berikut. 1. Jaringan Lapis Tunggal (Single Layer Network)
17
2. Jaringan Multilapis (Multi Layer Networks) 3. Jaringan Kompetitif (Competitive Layer Netwok) A. Jaringan Lapis Tunggal (Single Layer Network) Jaringan lapis tunggal merupakan jaringan yang hanya memiliki satu buah lapisan dengan bobot-bobot yang terhubung. Jaringan ini hanya menerima nilai inputdan secara langsung mengolahnya untuk menjadi nilai output tanpa melalui lapisan tersembunyi. Pada gambar 2.3, lapisan input masukan dapat dimasukkan nilai-nilai X1 sampai Xi,. sedangkan laipsan output-nya dilambangkan yaitu Y. Banyaknya Y pun dapat ditentukan sesuai dengan keperluannnya.
Gambar 2.3 Model Single Layer Sumber: Fausett, Laurance, 1994, halaman 4 B. Jaringan Multilapis (Multi Layer Network) Jaringan multilapis merupakan jaringan yang memiliki satu buah atau lebih lapisan di antara lapisan input dan lapisan output. Jaringan multi lapis ini dapat menyelesaikan permasalahan yang lebih kompleks dibandingkan dengan jaringan lapis tunggal. Tentu saja dengan pembelajaran yang lebih rumit. Namun demikian pada banyak kasus, pembelajaran dengan jaringan multilapis lebih sukses dalam
18
menyelesaikan masalah meskipun membutuhkan waktu lebih lama. Dalam Tulisan ini multi layer yang dibahas adalah bacpropagation.
Gambar 2.4 Model Multilayer Sumber: Fausett, Laurance, 1994, halaman 13 C. Jaringan Kompetitif (Competitive Layer Netwok) Jaringan kompetitif sering disebut feedback loop karena unit output ada yang memberikan informasi terhadap unit masukan.
Gambar 2.5 Model Competitive Layer Sumber: http://repository.usu.ac.id/bitstream/123456789/16302/4/Chapter%20II.pdf
19
2.5.5
Fungsi Aktivasi (Activation Function) dan Eror
Operasi dasar dari sebuah jaringan syaraf tiruan adalah penjumlahan input berbobot (weighted input) dan mengaplikasikan fungsi aktivasi untuk menghasilkan output (netoutput), atau disebut level aktivasi untuk unit input. Fungsi aktivasi yang digunakan adalah fungsi identitas. Pada dasarnya fungsi aktivasi yang sama digunakan untuk semua jaringan pada layer tertentu. Pada umumnya fungsi aktivasi yang sering digunakan adalah non-linier. Beberapa fungsi aktivasi yang digunakan dalam jaringan saraf tiruan adalah sebagai berikut. 1. Fungsi Sigmoid Biner (Binary Sigmoid Function) Fungsi ini pada umumnya digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode backpropagation.
Fungsi ini mencakup fungsi-fungsi
berbentuk kurva S. Fungsi sigmoid biner memiliki nilai antara 0 sampai 1. Oleh karena itu, fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Contoh yang sering digunakan adalah fungsi logistic. Fungsi sigmoid biner dirumuskan sebagai : 1 1
Fungsi ini memiliki turuanan pertama : 1 Di mana nilai
merupakan parameter kecuraman yang diketahui nilainya. Umumnya
dipilih sama dengan 1.
20
Gambar 2.6 Kurva Fungsi Sigmoid Biner Sumber: Christanus Kartanus Kartawinata,2006,halaman 19 2. Fungsi Sigmoid Bipolar (Bipolar Sigmoid Function / tansig) Fungsi sigmoid biner sangat dekat denggan fungsi hyperbolic tangent. Fungsi sigmoid biner dapat diskalakan sehingga memiliki daerah hasil pada sembarang interval sesuai dengan permasalahan yang diberikan. Pada umumnya daerah hasilnya dari range -1 sampai dengan 1. Fungsi hasil proses penskalaan tersebut disebut dengan fungsi sigmoid bipolar. Jika f(x) adalah fungsi sigmoid biner,maka fungsi sigmoid bipolarnya dirumuskan sebagai : 2
1 2
1
1
Dengan turunaan pertama 1 1 2
1
1 1
21
Gambar 2.7 Kurva Fungsi Sigmoid Bipolar Sumber: Christanus Kartanus Kartawinata,2006, halaman 20 3. Fungsi Tangga Biner (Binary Step Function) Fungsi tangga biner sering digunakan pada single layer networks. Fungsi ini digunakan untuk mengubah input yang merupakan variabel kontinunya menjadi output bernilai biner (0 atau 1). Nilai threshold menjadi garis pemisah antara daerah dengan respon aktivasi positif dan daerah dengan respon aktifasi negative. Fungsi tangga biner dengan threshold disebut juga fungsi nilai ambang (threshold) atau fungsi Heaviside. Fungsinya sebagai berikut. 1 jika x f( x ) = 0 jika x < Dimana
adalah suatu nilai threshold
22
Gambar 2.8 Kurva Fungsi Tangga Biner Sumber: Christanus Kartanus Kartawinata,2006,halaman 14 4. Fungsi Tangga Bipolar (Bipolar Step Function) Fungsi tangga bipolar serupa dengan fungsi tangga biner, hanya berbeda pada daerah hasil (range) yaitu antara -1 sampai 1. fungsi ini juga memiliki threshold. Fungsinya sebagai berikut. 1 jika x 0 jika x = -1 jika x <
f( x ) =
Gambar 2.9 Kurva Fungsi Tangga Bipolar Sumber: Christanus Kartanus Kartawinata,2006, halaman 16 5. Fungsi Linier dan fungsi identitas (Identity Function) Fungsi linier atau indentitas meiliki nilai output dan input yang sama. Fungsinya sebagai berikut. F(x)= x
atau y = x
23
Gambar 2.10 Kurva Fungsi Linear Sumber: Christanus Kartanus Kartawinata,2006,halaman 16 Perhitungan kesalahan pada output jaringan menentukan apakah jaringan sudah mengenali pola atau belum. Jika error yang diinginkan belum terpenuhi, maka jaringan dianggap belum mengenali pola. Error jaringan dihitung dengan persamaan Mean Square Error (MSE). MSE digunakan tiap satu epoch pelatihan, dengan menghitung seluruh pola output aktual dari tiap pola input untuk dihitung selisihnya dengan pola output yang diinginkan. Jika nilai MSE ≤ error yang diinginkan maka jaringan dianggap sudah mengenali pola tetapi jika belum maka jaringan terus dilatih dan dihitung kembali tiap epochnya sampai nilai MSE ≤ error yang diinginkan. Rumus menghitung nilai MSE ialah :
1 n
y
y
Dimana yt = nilai target keluaran yang diinginkan = nilai keluaran actual atau nilai keluaran asli N = banyak output / keluaran
24
Sebagai contoh akan dilakukan perhitungan nilai MSE untuk suatu jaringan syaraf tiruan dengan pola masukan dan menghasilkan 1 pola keluaran sebagai berikut. Nilai masukan = 0,9 Nilai keluaran asli = 0,78 Nilai target keluaran = 0,8 Jika nilai error yang diinginkan adalah 0.1, maka perhitungan nilai MSE ialah:
1 n 1 0,8 1
y
y
0.78
1 0.02 1 0,0004 Karena MSE < 0.1 maka jaringan dianggap sudah mengenali pola. 2.6
Proses Pembelajaran Seperti halnya otak manusia yang membutuhkan belajar dalam mengenali
sesuatu, pada jaringan syaraf tiruan
juga demikian. Setiap neuron dibangun untuk
dilatih dalam mempelajaripola yang akan dijalankan. Pada saat pelatihan dilakukan, nilai dari masing-masing hubungan antar neuron ditetapkan untuk menentukan output. Semakin banyak pelatihan yang dilakukan maka akan semakin kecil tingkat dari suatu error di lapisankeluarannya, sehingga pengenalan suatu pola akan segera tercapai. Proses pembelajaran ini ditandai dengan proses perubahan bobot sinapsis sesuai dengan pemberian masukan pada jaringan. Dengan kata lain, belajar adalah suatu proses ketika parameter bebas jaringan syaraf beradaptasi melalui proses berkelanjutan atas
25
rangsangan oleh lingkungan dimana jaringan tersebut digunakan. Ada dua metode yang digunakan dalam proses pembelajaran jaringan syaraf tiruan yaitu: 1. Pembelajaran Terawasi (Supervised Learning) Supervised learning merupakan metode pembelajaran dalam jaringan syaraf tiruan dimana output target yang diinginkan telah diketahui sebelumnya dan diharapkan setelah proses pelatihan output target tercapai.
Pada metode
pasangan data (masukan dan keluaran) dipakai untuk melatih jaringan. Pada proses pembelajarannya pola maskuan diberikan pada lapisan input untuk terus dirambatkan sampai pada lapisan output.
Nilai yang diperoleh dari proses
perhitungan pola pembelajaran pada lapisan output akan dicocokan dengan pola output target awal. Jika diperoleh perbedaan anatara kedua nilainya maka akan muncul error. Apabila error belum sesuai dengan yang diinginkan maka pelatihan akan terus dilakukan dengan terus memodifikasi bobot sampai dihasilkan error yang sesuai. Contoh: andaikan dimiliki jaringan syaraf yang akan digunakan untuk mengenali pasangan pola, misalnya pada operasi AND Input
Target
0
0
0
0
1
0
1
0
0
1
1
1
Tabel 2.2 Tabel Operasi AND
26
Terdapat beberapa tipe pembelajaran terawasi beberapa diantaranya adalah Hebb Rule, Perceptron, Delta Rule, Backpropagation, heterroassociative Memory, Bidirectional Associative Memory (BAM), Learning Vector Quantization (LVQ). Dalam pembahsan ini yang kita gunakan adalah propagasi balik atau backpropagation. 2. Pembelajaran Tak Terawasi (Unsupervised Learning) Pembelajaran tak terawasi merupakan metode pembelajaran dalam jaringan syaraf
tiruan
yang
tidak
memerlukan
output
target
dalam
proses
pembelajarannya. Pelatihan dilakukan hanya pada data input saja. Model jaringan syaraf tiruan yang menggnakan metode unsupervised learning adalah kohenen, hebbian. 2.7
Jaringan Backpropagation
Backpropagation atau ada yang menterjemahkannya menjadi propagasi balik, pertama kali dirumuskan oleh Werbos dan
dipopulerkan
oleh
Rumelhart
dan
McClelland untuk dipakai pada jaringan saraf tiruan. Backpropagation merupakan salah satu dari beberapa metode yang digunakan dalam jaringan saraf tiruan dan yang paling sering digunakan dalam berbagai bidang aplikasi, seperti pengenalan pola, peramalan dan optimisasi. Hal ini dimungkinkan karena metode ini menggunakan pembelajaran yang terbimbing. Pola masukan dan target diberikan sebagai sepasang data. Bobot-bobot awal dilatih dengan melalui tahap maju untuk mendapatkan error keluaran yang selanjutnya error ini digunakan dengan tahap mundur untuk memperoleh nilai bobot yang sesuai agar dapat memperkecil nilai error sehinggga target keluaran yang dikehendaki tercapai. Tujuan dari model ini adalah untuk mendapatkan
27
keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama proses pelatihan berlangsung serta kemampuan jaringan memberikan respon yang benar terhadap pola masukan yang berbeda dengan pola masukan selama pelatihan. Ditinjau dari klasifikasi, backpropagation termasuk ke dalam supervised learning networks dimana ada proses training. Karakteristik yang digunakan dalam backpropagation sebagai berikut. a. Prosesing elemennya mengunakan fungsi aktivasi yang tergolong fungsi-fungsi kuva S sebagai contoh fungsi sigmoid. b. Topologinnya terdiri dari satu input layer (lapisan masukan) dengan o node, satu output layer (lapisan keluaran) dengan p node dan lebih dari atau sama dengan satu hidden layer (lapisan tersembunyi) dengan m node. c. Menggunakan Error Correction Learning Rule 2.7.1
Arsitektur Backpropagation Hubungan antar neuron dalam suatu jaringan dan membentuk lapisan disebut
arsitektur jaringan atau topologi jaringan. Backpropagation terdiri dari beberapa lapisan, yaitu lapisan input, lapisan tersembunyi dan lapisan output. Masing-masing neuron dalam tiap lapisan saling terhubung dengan lapisan di atasnya. Neuron-neuron pada lapisan input terhubung dengan neuron-neuron pada lapisan tersembunyi (hidden layer) melalui edge yang disebut bobot, begitu juga pada lapisan tersembunyi neuronneuronnya terhubung melalui edge dengan neuron-neuron pada lapisan output. Terdapat masing-masing 1 buah bias pada lapisan input dan lapisan tersembunyi yang bernilai = 1. Topologinya dapat dilihat dari gambar berikut ini. Adapun V merupakan bobot pada lapisan tersembunyi atau hidden layer, sedangkan W merupakan bobot pada lapisan
28
keluaran, b (pada gambar diberi tanda satu) merupakan bias pada lapisan tersembunyi dan lapisan keluaran, x merupakan masukan atau input, Y merupakan hasil keluaran atau output.
Gambar 2.11 Arsitektur Backpropagation Sumber: http://repository.usu.ac.id/bitstream/123456789/16302/4/Chapter%20II.pdf Terdapat no, np dan nm buah neuron pada lapisan input, lapisan tersembunyi dan lapisan output. Sehingga terdapat no × np edge dari lapisan input ke lapisan tersembunyi dan np × nm
edge dari lapisan tersembunyi ke lapisan output. Setiap edge memiliki bobot
(weight). Vij merupakan bobot garis dari unit masukan xi pada lapisan input ke masingmasing unit zj pada lapisan tersembunyi dengan vj0 merupakan bobot garis yang menghubungkan bias di unit masukan ke unit zj pada lapisan tersembunyi. wkj merupakan bobot dari unit lapisan tersembunyi
zj ke unit keluaran yk dengan wk0
merupakan bobot dari bias di lapisan tersembunyi ke unit keluaran yk. Pada umumnya nilai bobot yang digunakan dalam suatu arsitektur jaringan antara - 0.5 sampai 0.5. Nilai masukan pada lapisan input dinotasikan sebagai x1, x2, x3, ..., xno. Pada lapisan
29
tersembunyi neuron-neuronnya dinotasikan dengan zn1, zn2, zn3, ..., znp. Begitu juga neuron-neuron pada lapisan output dinotasikan dengan yn1, yn2, yn3, ..., ynm . 2.7.2
Algoritma Backpropagation Algoritma backpropagation (BP) merupakan pengembangan dari algoritma least
mean square yang dapat digunakan untuk melatih jaringan dengan beberapa layer. Backpropagation menggunakan pendekatan algoritma steepest descent. Algoritma Backpropagation terdiri dari dua tahap berikut. 1. Algoritma Palatihan / Training Backpropagation Algoritma training digunakan untuk menyimpan pasangan-pasangan pola ke dalam backpropagation networks. Algoritma ini terdiri dari dua fase yaitu feedforward dan backward. Struktur algoritma pelatihan backpropagation adalah : Langkah 0: Pemberian inisialisasi penimbang (diberi nilai kecil secara acak) Langkah 1: Ulangi langkah 2 hingga 9 sampai kondisi akhir iterasi dipenuhi Langkah 2: Untuk masing-masing pasangan data pelatihan (training data) lakukan langkah 3 hingga 8 Propagasi maju (Feedforward) Langkah 3: masing-masing unit masukan (Xi, , i = 1,2....o) menerima sinyal masukan Xi dan sinyal tersebut diteruskan ke unit-unit bagian berikutnya (unit-unit lapisan tersembunyi) Langkah 4: Masing-masing unit dilapisan tersembunyi ( Zj, j=1,2,…,p) dikalikan dengan faktor penimbang dan dijumlahkan serta ditambah dengan biasnya.
30
_
Kemudian menghitung sinyal outputnya sesuai dengan fungsi aktivasi yang digunakan: 1
_
_
1
Langkah 5: Masing-masing unit keluaran (yk , k=l,2,3...m) dikalikan dengan faktor penimbang dan dijumlahkan.
_ Menghitung kembali sesuai dengan fungsi aktifasi _ Langkah mundur (Backward) Langkah 6: Masing-masing unit keluaran (Yk , k=l,...,m) menerima pola target sesuai dengan pola masukan saat pelatihan/training dan dihitung erornya, _ karena f ’(y_ink)= yk menggunakan fungsi sigmoid , maka f ’(y_ink) = f (y_ink)(1- f ’(y_ink)) =
1
Menghitung perbaikan faktor penimbang (kemudian untuk memperbaiki wjk) ∆ Menghitung perbaikan koreksi bias (yang nanti akan digunakan untuk memperbaiki nilai W0k)
31
∆ dan menggunakan nilai dk pada semua unit lapisan sebelumnya. Langkah 7: masing-masing penimbang
yang
menghubungkan
unit-unit
lapisan
keluaran dengan unit-unit pada lapisan tersembunyi (Zj, j=1..,p) dikalikan delta dan dijumlahkan sebagai masukan ke unit-unit lapisan berikutnya. _ Selanjutnya dikalikan dengan turunan dari fungsi aktivasinya untuk menghitung kesalahannya. _
_
Kemudian menghitung perbaikan penimbang (digunakan untuk memperbaiki Vij) ∆ Kemudian menghitung perbaikan bias (untuk memperbaiki v0j) ∆ Memperbaiki penimbang dan bias. Langkah 8: Masing-masing keluaran unit ( yk ,k=1,..,m ) diperbaiki bias dan penimbangnya ( j= 0,...,p ), Wjk(baru) = Wjk(lama) + ΔWjk masing-masing unit tersembunyi (Zj, j=1,....,p) diperbaiki bias dan penimbangnya (j=0,...,o), Vjk(baru) = Vjk(lama) + ΔVjk Langkah 9: Uji kondisi pemberhentian (akhir iterasi).
32
2. Algoritma Pengujian Backpropagation Setelah melakukan algoritma pelatihan maka dilakukan Algoritma Pengujian backpropagation. Pada proses pengujian, tahap yang dilakukan hanya sampai tahap maju saja, tidak ada tahap mundur apalagi tahap modifikasi bobot. Seluruh bobot input diambil dari nilai bobot terakhir yang diperoleh dari proses pelatihan. Pada tahap pen gujian ini, jaringan diharapkan dapat mengenali pola berdasarkan data baru yang diberikan (generalisasi). Prosedur aplikasinya adalah sebagai berikut. Langkah 0: Inisialisasi bobot (algoritma pelatihan). Langkah 1: Untuk tiap vector masukan, lakukan langkah 2-4. Langkah 2: Untuk i = 1,2….,n : atur aktivasi unit masukan xi. Langkah 3: Untuk j = 1,2….,p : Z_in
v
Langkah 4: untuk k = 1,2…,m : y_in
w yk = f(y_ink)
Langkah 5: Jika yk
0,5 maka yk = 1, lainnya yk = 0.
2.7.3 Optimalisasi Arsitektur Backpropagation Masalah utama yang terdapat dalam backpropagation ialah lamanya proses iterasi yang dilakukan. Backpropagation tidak dapat memastikan berapa epoch yang harus
33
dilalui sampai pola yang diinginkan terpenuhi. Oleh karena itu terdapat beberapa cara yang digunakan untuk mengoptimalkan proses iterasi. 1. Penentuan bobot dan bias awal Bobot awal merupakan unsur yang terpenting dalam pembentukan jaringan yang baik, karena bobot awal mempengaruhi kecepatan iterasi jaringan dalam mengenali pola. Bobot awal standar yang biasa dipakai dalam melakukan proses komputasi dinilai memberikan waktu yang lama. Nilai dari inisial bobot tidak boleh terlalu besar atau inisial sinyal input ke tiap unit tersembunyi atau output alan mempunyai nilai turuanan fungsi sigmoid yang kecil. Jika terlalu kecil maka net input pada lapisan tersembunyi akan mendekati nol yang mana akan berdampak pada lamanya proses pembelajaran. Sebuah prosedur umum dalam penginisialisasian nilai awal bobot biasanya merupakan nilai acak antara -0,5 dan 0,5 atau antara -1 dan 1
Inisialisasi
Nguyen-Widrow merupakan modifikasi sederhana bobot-bobot dan bias ke unit tersembunyi yang mampu meningkatkan kecepatan jaringan dalam proses pembelajaran jaringan. Inisialisasi Nguyen Widrow didefinisikan dengan rumus :
0,7 dengan n = jumlah neuron pada lapisan input. p = jumlah neuron pada lapisan tersembunyi. faktor skala.
34
Prosedur inisialisasi Nguyen Widrow adalah sebagai berikut. a. Inisialisasi bobot-bobot Inisialisasi bobot-bobot (vij) lama dengan bilangan acak dalam interval [-0.5, 0.5] b. Hitung ||vij|| = c. Bobot baru yang dipakai sebagai inisialisasi
|
|
d. Bias baru yang dipakai sebagai inisialisasi vj0 = bilangan acak dalam interval [-β, β] Analisis Nguyrn-Widrow ini berdasarkan pada fungsi aktivasi yang memiliki kesamaan dengan fungsi aktivasi sigmoid bipolar. tanh 2. Momentum
Pada backpropagation dengan momentum, perbahan bobot merupakan gabungan
anatara
gradient
sekarang
dengan
sebelumnya.
Momentum
memungkinkan untuk menggunakan learning rate yang kecil untuk menghindari masalah utama dalam pembelajaran yaitu saat training patterns tidak digunakan. Penambahan parameter momentum dalam tahap pengoreksian nilai bobot dapat mempercepat proses pelatihan yaitu dengan memodifikasi nilai bobot pada iterasi (1+t) yang nilainya ditentukan oleh nilai bobot pada iterasi ke-t dan (t-1). μ adalah konsanta yang menyatakan parameter momentum yang nilainya 0≤ μ ≤1. Maka persamaan untuk menentukan bobot baru ialah: 1 atau
1
35
Δ
1
Δ
,
dengan: wjk(t)
= bobot awal pola kedua (hasil dari iterasi pola pertama)
wjk(t-1)
= bobot awal pada iterasi pola pertama
dan 1
1
atau Δ
1
Δ
,
dengan
2.8
vij(t)
= bobot awal pola kedua (hasil dari iterasi pola pertama)
vij(t-1)
= bobot awal pada iterasi pola pertama
Peramalan Menggunakan Algoritma Backpropagation Peramaln adalah salah satu bidang yang bisa diselesaikan dengan neural network
terutama dengan algoritma backpropagation. Peramalan yang sering kita dengar adalah peramalan besarnya penjualan, nilai tukar valuta asing, predeksi besarnya larian sungai, banjir dan lain-lain. Langkah-langkah membangun struktur jaringan untuk peramalan sebagai berikut. 1. Transformasi Data Langkah awal sebelum melakukan proses pelatihan pada jaringan yang akan digunakan untuk peramalan adalah transformasi data. Sebab-sebab utama data ditransformasi adalah agar kestabilan taburan data dicapai. Selain itu berguna untuk menyesuaikan nilai data dengan range fungsi aktivasi yang
36
digunakan dalam jaringan (Siang 2005:121). Transformasi yang digunakan adalah Transformasi Linier pada interval a sampai b. b
X
a X
X
X X
Karena pada backpropagation digunakan fungsi aktivasi sigmoid biner jadi data ditranformasikan ke interval antara 0,1 sampai 0,9. Transformasi linier yang dipakai untuk mentransformasikan data ke interval [0.1,0.9] adalah sebagai berikut. Transformasi Linier pada selang [0.1, 0.9] 0,9
X
0,1 X
X
0,8 X X
X X X X X
0,1
0,1
dengan, X'= nilai data setelah transformasi linier. X = nilai data aktual. Xmin = nilai minimum data aktual keseluruhan. Xmax = nilai maksimum data aktual keseluruhan. 2. Pemilihan Koefisien Pemahaman dan Momentum Pemilihan koefisien pemahaman dan momentum mempunyai peranan yang penting untuk struktur jaringan yang akan dibangun. Dalam pembangunan jaringan yang akan digunakan dalam peramalan, hasil keputusan yang kurang memuaskan dapat diperbaiki dengan penggunaan koefisien pemahaman dan momentum secara
37
trial and error untuk mendapatkan nilai bobot yang paling optimum agar MAPE dan MSE jaringan dapat diperbaiki. 3. Memilih dan Menggunakan Struktur Jaringan yang Optimum Dalam melakukan peramalan perlu adanya satu batasan kriteria dimana hasil ramalan itu dapat dianggap akurat apa tidak. Kaedah penilaian yang digunakan adalah:
.
Percentage Error (PE) Ketepatan model diukur secara relative menggunakan Percentage Error.
| y
y | y
x 100%
dengan, y = nilai aktual pada waktu t y = nilai ramalan pada waktu t. a.
Mean Square Error (MSE)
1 n
e
1 n
dengan, n = bilangan ramalan.
y = nilai aktual pada waktu t. y = nilai ramalan pada waktu t.
y
y
38
b.
Mean Absolute Percentage Error (MAPE)
Pendekatan MAPE digunakan untuk menilai presentasi jaringan yang dilatih karena MAPE mengenal secara pasti signifikasi hubungan diantara data ramalan dengan data aktual melalui persentase dari data aktual serta indikator positif atau negative pada galat (error) diabaikan.
| PE | n dengan, n = bilangan ramalan. |PE| = nilai absolute PE Berdasarkan nilai MAPE dan PE yang terendah dari proses pelatihan diperoleh jaringan yang optimum. Keakuratan ramalan jaringan dilihat dari nilai MAPE, MSE dan PE dari proses pengujian dan validasi 2.9
Teori Perancangan Software Perancangan program aplikasi merupakan bagian terpenting dalam pembuatan
aplikasi ini. Perangkat lunak merupakan beberapa perintah yang dieksekusi oleh mesin komputer dalam menjalankan pekerjaannya. Dapat dikatakan perangkat lunak merupakan data elektronik yang disimpan sedemikian rupa oleh komputer, data yang disimpan bisa berupa intruksi atau program yang akan dijalankan maupun catatancatatan yang diperlukan oleh komputer untuk menjalankan perintah. Rekayasa peranti lunak mencakup 3 elemen yang mampu mengontrol proses pengembangan piranti lunak.
39
1. Metode-metode (methods) Menyediakan cara-cara teknis untuk membangun piranti lunak. Metode ini meliputi: a.
Perencanaan & estimasi proyek
b.
Analisis kebutuhan sistem dan software
c.
Desain struktur data
d.
Arsitektur program dan prosedur algoritma
e.
Coding, Testing dan pemeliharaan
2. Alat-alat bantu (tools) Mengadakan dukungan otomatis atau semi otomatis untuk metode-metode seperti
CASE
(Computer
Aided
Software
Engineering)
yang
mengkobinasikan software, hardware dan software engineering database. 3. Prosedur - Prosedur (Procedures) Pengembangan metode dan alat bantu terdiri dari a. Urut-urutan di mana metode tersebut diterapkan b. Dokumen, laporan-laporan, formulir-formulir yang diperlukan c.
Mengontrol kualitas software
d.
Mengkoordinasi perubahan yang terjadi pada software
Dalam perancangan software ini, digunakan metode siklus hidup pengembangan sistem. Metode siklus hidup pengembangan sistem atau sering disebut dengan System Development Life Cycle (SDLC) merupakan suatu tahapan-tahapan metode untuk merancang sebuah program aplikasi perangkat lunak. Nama lain dari metode SDLC yaitu metode waterfall. Metode ini disebut waterfall karena model langkah-langkah
40
yang dilakukan mirip dengan air terjun (bertingkat) . Jadi proses dilakukan secara bertingkat untuk menghasilkan suatu program aplikasi yang baik. Perancangan aplikasi perangkat lunak dengan metode waterfall dilakukan dengan 6 tahap. Tahapan-tahapan itu terdiri dari system engineering (perencanaan), analysis, design atau modeling, coding (pengkodean program), testing (pengujian) dan Maintence (pemeliharaan). Berikut ini penjelasan dari setiap tahapan dari waterfall tersebut.
Gambar 2.12 Gambar Alur Sistem Perancangan Waterfall Sumber: http://boombanks.wordpress.com/news/trend-terbaru-pengembangan-softwaresoftware-development-life-cycle/ 1. Sistem Engineering Tahap ini disebut juga tahap perencanaan. Karena software merupakan bagian
terbesar
menerapkan
dari
sistem, maka pekerjaan dimulai dengan
kebutuhan semua
elemen
sistem
dan
cara
mengalokasikan
sebagian kebutuhan tersebut ke software. Pandangan terhadap sistem adalah penting, terutama pada saat software harus berhubungan dengan elemen lain, seperti Hardware, Software, dan Database. Perancangan
41
merupakan suatu kegiatan menetukan program yang akan dirancang, tempat program akan dijalankan dan siapa yang merancang. 2. Analysis Tahap ini adalah tahap di mana analis kebutuhan software dilakukan. Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk software engineering, atau analis harus mengerti fungsi software yang diinginkan, performance dan interface terhadap elemen lainnya. Hasil dari analisis ini didokumentasikan dan direview, dibahas, ditinjau bersama-sama customer. 3. Design Proses desain menterjemahkan kebutuhan ke dalam representasi software yang dapat diukur kualitasnya sebelum mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software, dan dibuat sesuai agar pengguna mudah menggunakan. 4. Coding Tahap ini juga disebut tahapan construction. Pada tahap ini bentuk rancangan diubah menjadi suatu bahasa pemrograman yang dapat dimengerti oleh mesin komputer. 5. Testing Segera sesudah objek program dihasilkan, pengujian program dimulai. Proses testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan atau statements sudah diuji dan lingkungan external
42
menjamin bahwa
definisi
input
akan
menghasilkan
output
yang
diinginkan. Metode testing ada dua yaitu: a.
White box method Pada
white box method, uji dilakukan terhadap strukutur dan
prosedur program seperti flowchart (urutan); disebut juga metode low level. b.
Black box method Pada black box method, uji dilakukan terhadap kesesuaian antara input dan output. Metode ini disebut juga metode high level.
6. Maintance Pemeliharaan atau maintance adalah suatu kegiatan yang berguna memastikan bahwa program tersebut akan berjalan dengan baik sehingga diperlukan pemeliharaan secara berkala. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada kesalahan kecil yang tidak ditemukan sebelumnya, atau ada penambahan Pengembangan
fitur-fitur
yang
diperlukan
belum
ketika
ada
adanya
pada
software
perubahan
dari
tersebut. eksternal
perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya. 2.10
Teori Interaksi Manusia dan Komputer Suatu software dibuat sedemikian rupa sehingga manusia yang memakainya
(user) merasa nyaman. Hal-hal yang perlu diperhatikan adalah kombinasi warna, letak
43
dan kalimat juga menu-menu pada software tersebut. Juga tampilan gambar-gambar yang berhubungan dapat menjadi nilai tambah bagi suatu program aplikasi. Software yang baik tentunya harus user friendly, yang dimaksud dengan user friendly berdasarkan shneiderman (Designing the User Interface, 1998, halaman 15) adalah: 1. Waktu belajar tidak lama 2. Kecepatan penyajian informasi tepat 3. Tingkat kesalahan user rendah 4. Penghafalan sesudah melampaui jangka waktu 5. Kepuasan pribadi Juga menurut Shneiderman (Designing the User Interface, 1998, halaman 74-75) terdapat 8 hal penting yang harus diperhatikan dalam merancangan software dilihat dari segi user: 1. Konsistensi 2. User dapat menggunakan shortcut 3. Dapat memberi umpan balik yang membantu 4. Merancangan dialog yang memberikan penutup 5. Mempunyai pencegahan kesalahan 6. Memungkinkan undo dan redo 7. Berusaha supaya user memegang kendali 8. Mengurangi beban ingatan jangka pendek