JARINGAN SARAF TIRUAN
Jaringan Saraf Tiruan (Artificial Neural Network)
merupakan salah satu sistem pemrosesan informasi yang didesain dengan
menirukan cara kerja otak manusia dalam menyelesaikan suatu masalah
dengan melakukan proses belajar melalui perubahan bobot sinapsisnya.
Jaringan saraf tiruan mampu melakukan pengenalan kegiatan berbasis data
masa lalu. Data masa lalu akan dipelajari oleh jaringan saraf tiruan
sehingga mempunyai kemampuan untuk memberikan keputusan terhadap data
yang belum pernah dipelajari. Selain itu jaringan saraf tiruan merupakan
suatu metode komputasi yang meniru sistem jaringan saraf biologi.
Metode ini menggunakan ini elemen perhitungan non-linear dasar yang
disebut neuron yang diorganisasikan sebagai jaringan yang saling
berhubungan, sehingga mirip dengan jaringan saraf manusia. Jaringan
saraf tiruan dibentuk untuk memecahkan masalah tertentu seperti
pengenalan pola klafikasi karena proses pembelajaran. Layaknya neuron
biologi, jaringan saraf tiruan merupakan sistem yang bersifat “foult tolerant” dalam
2 hal. Pertama dapat mengenali sinyal input yang agak berbeda dari
yang pernah diterima. Kedua tetap mampu bekerja meskipun beberapa
neuronnya tidak mampu bekerja dengan baik. Jika sebuah neuron rusak,
neuron yang lainnya dapat dilatih untuk menggantikan fungsi neuron yang
rusak tersebut.
Jaringan saraf tiruan seperti manusia,
belajar dari suatu contoh karena mempunyai karakteristik yang adaptif,
yaitu dapat belajar dari data-data sebelumnya dan mengenal pola data
yang selalu berubah. Selain itu, jaringan saraf tiruan merupakan sistem
yang terprogram artinya semua keluaran atau kesimpulan yang ditarik oleh
jaringan didasarkan pada pengalamannya selama mengikiuti proses
pembelajaran/pelatihan. Hal yang ingin dicapai dengan melatih jaringan
saraf tiruan adalah untuk mencapai keseimbangan antara kemampuan
memorisasi dan generalisasi. Kemampuan memorisasi adalah kemampuan
jaringan saraf tiruan unutk mengambil kembali secara sempurna sebuah
pola yang dipelajari. Sedangkan kemampuan generalisasi merupakan
kemampuan jaringan saraf tiruan untuk menghasilkan respons yang bisa
diterima terhadap pola-pola input yang serupa (namun tidak identik)
dengan pola-pola yanhg sebelumnya telah dipelajari. Hal ini sangat
bermanfaat bila pada suatu saat ke dalam jarinagn saraf tiruan itu
diinputkan informasi baru yang belum pernah dipelajari, maka jarinagn
saraf tiruan itu masih akan tetap dapat memberikan tanggapan yang baik,
memberikan keluaran yang paling mendekati.
Cara pembelajaran atau pelatihan
jaringan saraf tiruan dikelompokkan menjadi beberapa bagian, 2
diantaranya supervised learning dan unsupervised learning.
A. SUPERVISED LEARNING 1
Supervised learning merupakan suatu
pembelajaran yang terawasi dimana jika output yang diharapkan telah
diketahui sebelumnya. Biasanya pembelajaran ini dilakukan dengan
menggunakan data yang telah ada. Pada metode ini, setiap pola yang
diberikan kedalam jaringan saraf tiruan telah diketahui outputnya. Satu
pola input akan diberikan ke satu neuron pada lapisan input. Pola ini
akan dirambatkan di 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. Nah, apabila
terjadi perbedaan antara pola output hasil pembelajaran dengan pola
output target, maka akan muncul error. Dan apabila nilai error ini masih
cukup besar, itu berarti masih perlu dilakukan pembelajaran yang lebih
lanjut. Contoh algoritma jaringan saraf tiruan yang mernggunakan metode
supervised learning adalah hebbian (hebb rule), perceptron, adaline,
boltzman, hapfield, dan backpropagation.
Pada kesempatan ini saya akan membahas tentang metode hebb rule dan perceptron.
v Hebb rule merupakan metode
pembelajaran dalam supervised yang paling sederhana, karena pada metoode
ini pembelajaran dilakukan dengan cara memperbaiki nilai bobot
sedemikian rupa sehingga jika ada 2 neuron yang terhubung, dan keduanya
pada kondisi hidup (on) pada saat yang sama, maka bobot antara kedua
dinaikkan. Apabila data dipresentasiakn secara bipolar, maka perbaikan
bobotnya adalah
wi(baru)=wi(lama)+xi*y
Keterangan:
wi : bobot data input ke-i;
xi : input data ke-i;
y : output data.
Misalkan kita menggunakan pasangan
vektor input (s) dan vektor output sebagai pasangan vektor yang akan
dilatih. Sedangkan vektor yang hendak digunakan sebagai testing adalah
vektor (x).
Algoritma pasangan vektor diatas adalah sebagai berikut:
0. Insialisasi semua bobot dimana:
wij=0;
i =1,2……n;
j =1,2…..m
1. Pada pasangan input-output(s-t), maka terlebih dahulu dilakukan langkah-langkah sebagai berikut:
a. Set input dengan nilai yang sama dengan vektor inputnya:
xi=si; (i=1,2……,n)
b. Set outputnya dengan nilai yang sam dengan vektor outputnya:
yj=tj; (j=1,2,…..,m)
c. Kemudian jika terjadi kesalahan maka perbaiki bobotnya:
wij(baru)=wij(lama)+xi*yj;
(i=1,2,….,n dan j=1,2,….,m)
sebagai catatan bahwa nilai bias selalu 1.
Contoh:
Sebagaimana yang kita ketahui dalam
fungsi OR jika A & B= 0 maka “OR” 0, tetapi jika salah satunya
adalah 1 maka “OR” 1, atau dengan kata lain jika angkanya berbeda maka
hasilnya 1. Misalkan kita ingin membuat jaringan syaraf untuk melakukan
pembelajaran terhadap fungsi OR dengan input dan target bipolar sebagai
berikut:
Input Bias Target
-1 -1 1 -1
-1 1 1 1
1 -1 1 1
1 1 1 1
X= T= Bobot awal=
-1 -1 -1 w=
-1 1 1 0
1 -1 1 0
1 1 1 b=0
(catatan penting: bobot awal dan bobot bias kita set=0)
Data ke-1
w1 = 0+1=1
w2 =0+1=1
b =0-1=-1
Data ke-2
w1 = 1-1=0
w2 =1+1=2
b =0+1=1
Data ke-3
w1 = 0+1=1
w2 =2-1=1
b =0+1=1
Data ke-4
w1 = 1+1=2
w2 =1+1=2
b =1+1=2
Kita melakukan pengetesan terhadap
salah satu data yang ada, misal kita ambil x=[-1-1] dan kita masukkan
pada data ke-4 maka hasilnya adalah sebagai berikut:
y=2+(-1*2)+(-1*2)=-2
karena nilai yin=-2, maka y=f(yin)=f(-2)=-1 (cocok dengan output yang diberikan)
Perceptron merupakan salah satu bentuk
jaringan syaraf tiruan yang sederhana. Perceptron biasanya digunakan
untuk mengklasifikasikan suatu tipe pola tertentu yang sering dikenal
dengan pemisahan secara linear. Pada dasarnya, perceptron pada jaringan
syaraf dengan satu lapisan memiliki bobot yang bisa diatur dan suatu
nilai ambang(thershold). Algoritma yang digunakan oleh aturan
perceptron ini akan mengatur parameter-parameter bebasnya melalui proses
pembelajaran. Nilai thershold( pada fungsi aktivasi adalah
non negatif. Fungsi aktivasi ini dibuat sedemikian rupa sehingga terjadi
pembatasan antara daerah positif dan daerah negatif.
Garis pemisah antara daerah positif dan daerah nol memiliki pertidaksamaan yaitu:
w1x1+ w2x2+b >
Sedangkan garis pemisah antara daerah negatif dengan daerah nol memiliki pertidaksamaan:
w1x1+ w2x2+b < -
Misalkan kita gunakan pasangan vektor input (s) dan vektor output (t) sebagai pasangan vektor yang akan dilatih.
Algoritmanya adalah:
0. Inisialisasi semua bobot dan bias:
(agar penyelesaiannya jadi lebih sederhana maka kita set semua bobot dan bias sama dengan nol).
Set learning rate( ): (0< 1).
1. Selama kondisi berhenti bernilai false. Lakukan langkah-langkah sebagai berikut:
(i) Untuk setiap pasangan pembelajaran s-t, maka:
a. Set input dengan nilai sama dengan vektor input:
xi=si;
b. Hitung respon untuk unit output:
yin=b+y-
c. Perbaiki bobot dan bias jika terjadi error:
jika y≠t maka:
wi(baru)=wi(lama)+
b(baru)=b(lama)+
jika tidak, maka:
wi(baru)= wi(lama)
b(baru)=b(lama)
Selanjutnya lakukan tes kondisi berhenti: jika tidak terjadi perubahan pada bobot pada (i) maka kondisi berhenti adalah TRUE, namun jika masih terjadi perubahan pada kondisi berhenti maka FALSE.
Nah, algoritma seperti diatas dapat
digunakan baik untuk input biner maupun bipolar, dengan tertentu, dan
bias yang dapat diatur. Pada algoritma tersebut bobot-bobot yang
diperbaiki hanyalah bobot-bobot yang berhubungan dengan input yang
aktif (xi≠0) dan bobot-bobot yang tidak menghasilkan nilai y yang benar.
Sebagai contoh, misalkan kita ingin
membuat jaringan syaraf yang melakukan pembelajaran terhadap fungsi AND
dengan input biner dan target bipolar sebagai berikut:
Input Bias Target
1 1 1 1
1 0 1 -1
0 1 1 -1
0 0 1 -1
Bobot awal : w=[0,0 0,0]
Bobot bias awal : b=[0,0]
Learning rate( ) : 0,8
Thershold(tetha) : 0,5
Epoh ke-1(siklus perubahan bobot ke-1)
Data ke-1
yin=0,0+0,0+0,0=0,0
Hasil aktivasi= 0(-0,5 < yin < 0,5)
Target = 1
Bobot baru yang diperoleh:
w1= 0,0+0,8*1,0*1,0=0,8
w2= 0,0+0,8*1,0*1,0=0,8
Maka bobot bias barunya:
b= 0,8+0,8*-1,0=0,8
Data ke-2
yin=0,8+0,8+0,0=1,6
Hasil aktivasi= 1(yin > 0,5)
Target = -1
Bobot baru yang diperoleh:
w1= 0,8+0,8*-1,0*1,0=0,8
w2= 0,8+0,8*-1,0*1,0=0,0
Maka bobot bias barunya:
b= 0,8+0,8*-1,0=0,0
Data ke-3
yin=0,0+0,0+0,8=0,8
Hasil aktivasi= 1( yin > 0,5)
Target = -1
Bobot baru yang diperoleh:
w1= 0,0+0,8*1,0*0,0=0,0
w2= 0,8+0,8*-1,0*1,0=0,8
Maka bobot bias barunya:
b= 0,0+0,8*-1,0=-0,8
Data ke-4
yin=-0,8+0,0+0,0=-0,8
Hasil aktivasi= -1( yin < – 0,5)
Target = -1
Epoh ke-10(siklus perubahan bobot ke-10)
Data ke-1
yin=-3,2+1,6+2,4=0,8
Hasil aktivasi=-1(yin >0,5)
Target = 1
Data ke-2
yin=-3,2+1,6+0,0=-1,6
Hasil aktivasi=-1(yin <-0,5)
Target = -1
Data ke-3
yin=-3,2+0,0+2,4=-0,8
Hasil aktivasi=-1(yin <-0,5)
Target = -1
Data ke-4
yin=-3,2+0,0+0,0=-3,2
Hasil aktivasi=-1(yin <-0,5)
Target = -1
Siklus perubahan setiap bobot tersebut
terus diulangi sampai tidak terjadi perubahan bobot lagi. Nah pada
algoritma ini perubahan bobot(epoh) sudah tidak terjadi pada langkah
ke-10 sehingga pembelajaran dihentikan. Dan hasil yang diperoleh adalah:
Nilai bobot(w1)=1,6
Nilai bobot(w2)=2,4
Bobot bias(b) =-3,2.
Dengan demikian garis yang membatasi daerah positif dan daerah nol memenuhi pertidaksamaan:
1,6x1+2,4x2-3,2 > 0,5
Sedangkan garuis yang membatasi antara daerah negatif dan daerah nolnya memenuhi pertidaksamaan:
1,6x1+2,4x2-3,2 < – 0,5
B. UNSUPERVISED LEARNING 1
Unsupervised learning merupakan
pembelajan yang tidak terawasi dimana tidak memerlukan target output.
Pada metode ini tidak dapat ditentukan hasil seperti apa yang diharapkan
selama proses pembelajaran, nilai bobot yang disusun dalam proses range
tertentu tergantung pada nilai output yang diberikan. Tujuan metode
uinsupervised learning ini agar kita dapat mengelompokkan unit-unit yang
hampir sama dalam satu area tertentu. Pembelajaran ini biasanya sangat
cocok untuk klasifikasi pola. Contoh algoritma jaringan saraf tiruan
yang menggunakan metode unsupervised ini adalah competitive, hebbian,
kohonen, LVQ(Learning Vector Quantization), neocognitron.
Pada kali ini saya akan membahas
tentang metode kohonen. Jaringan syaraf self organizing, yang sering
disebut juga topology preserving maps, yang mengansumsikan sebuah
struktur topologi antar unit-unit cluster. Jaringan syaraf self
organizing ini pertama kali diperkenalkan oleh Tuevo Kohonen dari
University of Helsinki pada tahun 1981. Jaringan kohonen SOM(Self
Organizing Map) merupakan salah satu model jaringan syaraf yang
menggunakan metode pembelajaran unsupervised. Jaringan kohonen SOM
terdiri dari 2 lapisan(layer), yaitu lapisan input dan lapisan
output. Setiap neuron dalalm lapisan input terhubung dengan setiap
neuron pada lapisan output. Setiap neuron dalam lapisan output
merepresentasikan kelas dari input yang diberikan.
Penulisan istilah yang ada pada struktur jaringan kohonen Self Organizing Map adalah sebagai berikut:
X : vektor input pembelajaran.
X=(x1, x2,…, xj,…..,xn)
: learning rate
: radius neighborhood
X1 : neuron/node input
w0j : bias pada neuron output ke-j
Yj : neuron/node output ke-j
C : konstanta
Berikut ini adalah tahapan Algoritma dari kohonen self organizing map adalah sebagai berikut :
Langkah 1. Inisialisasikan bobot wij. Set parameter-parameter tetangga dan set parameter learning rate.
Langkah 2. Selama kondisi berhenti masih bernilai salah, kerjakan langkah-langkah berikut ini :
a. Untuk masing-masing vektor input x, lakukan :
Titik Pusat
(0,0) x,y
b. Untuk masing-masing j, lakukan perhitungan :
D(j)= )
c. Tentukan J sampai D( j) bernilai minimum.
d. Untuk masing-masing unit j dengan spesifikasi tetangga tertentu pada j dan untuk semua I, kerjakan :
wij(baru)=(wij)lama+ [xi –wij( lama)]
e. Perbaiki learning rate ( )
f. Kurangi radius tetangga pada waktu-waktu tertentu.
g. Tes kondisi berhenti.
Sebagai contohnya, data yang digunakan
adalah penelitian berupa realisasi penerimaan keuangan daerah tingkat
II suatu propinsi serta jumlah penduduk pertengahan tahunnya dalam
sebuah kabupaten/kota. Atribut-atribut yang digunakan dalam penelitian
ini adalah:
a. X1 = Jumlah penduduk
b. Pendapatan Daerah Sendiri(PDS) yang terdiri dari:
1. Pendapatan Asli Daerah(PDA) yang berupa:
ü X2 = Pajak Daerah
ü X3 = Retribusi Daerah
ü X4 = Bagian laba usaha daerah
ü X4 = Penerimaan lain-lain
2. Bagian pendapatan dari pemerintah dan instansi yang lebih tinggi yang berupa:
ü X6 = Bagi hasil pajak
ü X7 = Bagi hasil bukan pajak
ü X8 = Subsidi daerah otonom
ü X9 = Bantuan pembangunan
ü X10= Penerimaan lainnya
3. Pinjaman pemerintah daerah
ü X11= Pinjaman Pemerintah Pusat
ü X12= Pinjaman Lembaga Keuangan Dalam Negeri
ü X13= Pinjaman Dari Luar Negeri
Data set yang digunakan sebagai input tersebut dinormalkan dengan nilai rata-rata sebagai acuan yang analog dengan persamaan:
f(x)-
Berdasarkan data yang tesebut maka
akan terlihat untuk masing-masing atribut memiliki nilai terendah, nilai
tertinggi, dan nilai rata-rata. Selanjutnya dari nilai rata-rata
tersebut maka akan menjadi acuan untuk menentukan input dari data menuju
ke input pada jaringan saraf tiruan kohonen dengan pengkodean 1 dan
0. Kemudian data-data input tersebut akan diproses oleh JST sehingga
menghasilkan output berupa kelompok daerah tingkat II berdasarkan
penerimaan daerah. Jaringan kohonen SOM ini akan menghubungkan antara
neuron input dan neuron output dengan koneksi bobot, yang mana bobot ini
selalu diperbaiki pada proses iterasi pelatihan jaringan. Kemudian
aliran informasi system JST ini akan mengelompokan tingkat kesejahteraan
daerah tingkat II, diawali dengan dimasukkannya data penerimaan daerah.
Data-data inilah yang akan berfungsi sebagai input awal selain
parameter input berupa learning rate( ), dan radius neighborhood(R).
C. ALGORITMA DAN BAHASA PEMROGRAMAN
Sebelum membahas lebih jauh tentang
algoritma terlebih dahulu kita harus tahu tentang pengertian algoritma.
Algoritma berasal dari nama Abu Ja’far Ibn Musa Al-Kwarizmi, seorang
ilmuan yang berasal dari Persia menulis sebuah buku “Aljabar wal
muqabala(rule of restoration end reduction)” yang dalam bukunya
menjelaskan langkah-langkah dalam menyelesaikan berbagai persoalan
aritmetika. jadi algoritma merupakan tekhnik penyusunan langkah-langkah
dalam menyelesaikan masalah dalam bentuk kalimat dengan jumlah kata yang
terbatas, tetapi tersusun secara logis dan sistematis. Sedangkan
menurut saya sendiri, algoritma adalah sebuah alur cerita yang
terstruktur dengan baik atau langkag-langkah yang logis dalam
menyelesaikan suata masalah tertentu.
Jenis Proses Algoritma
1. Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.
2. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu
3. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
4. Concurrent Process: beberapa instruksi dikerjakan secara bersama.
Sifat algoritma
1. Input dimana suatu algoritma
memilki input atau masukan atau bisa juga disebut sebagai kondisi awal
sebelum algoritma dilaksanakan.
2. Output adalah suatu algoritma akan
menghasilkan output yang merupakan keluaran atau hasil dari input yang
telah diproses melalui algoritma.
3. Definiteness yaitu langkah-langkah
yang dituliskan dalam algoritma yang terdefinisi dengan jelas sehingga
mudah mudah dilaksanakan oleh penggunanya.
4. Finiteness dimana suatu algoritma harus mempunyai kondisi akhir atau output setelah melakukan langkah awal atau input.
5. Effectiveness yaitu suatu langkah
dalam algoritma bisa dilaksanakan dalam suatu selang waktu tertentu
sehingga pada akhirnya memberi solusi yang diharapkan.
6. Generality yaitu langkah-langkah
algoritma berlaku untuk setiap himpunan yang sesuai dengan persoalan
yang akan kita berikan, tidak hanya untuk himpunan tertentu.
Struktur dalam algoritma
Agar algoritma dapat ditulis teratur maka sebaiknya dibagi kedalam beberapa bagian yaitu:
· Bagian kepala(header) memuat nama algoritma serta informasi atau keterangan tentang algoritma yang ditulis.
· Bagian deklarasi/definisi variabel
memuat definisi tentang nama variabel, nama tetapan, nama prosedur, nama
fungsi, tipe data yang akan digunakan dalam algoritma.
· Bagian deskripsi/rincian laangkah
memuat langkah-langkah penyelesaian masalah, termasuk beberapa perintah
seperti baca data, tampilkan, ulangi, yang mengubah data input meenjadi
output, dan sebagainya.
Dalam bidang komputer, algoritma
sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman,
terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik
maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak
efisien. Pelaksana algoritma adalah Komputer. Manusia dan
komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah
kepada komputer berupa instruksi-instruksi yang disebut program.
Nah, alat yang digunakan untuk membuat program tersebut adalah bahasa
pemrograman. Bahasa pemrograman adalah kumpulan instruksi-instruksi
tersendiri yang biasanya disebut source code yang dibuat oleh programmer
itu sendiri. Bahasa pemrograman sangat bermacam-macam diantaranya
adalah C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan
masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara
memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output
yang sama. Dalam makalah ini kita akan membuat algoritma dengan
menggunakan bahasa pascal.
Paradigma Pemrograman:
1. Pemrograman Prosedural
�� Berdasarkan urutan-urutan, sekuensial
�� Program adalah suatu rangkaian
prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi
yang dikerjakan secara berurutan.
�� Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah
diubah.
2. Pemrograman Fungsional
�� Berdasarkan teori fungsi matematika
�� Fungsi merupakan dasar utama program.
3. Pemrograman Terstruktur
�� Secara berurutan dan terstrukrtur.
�� Program dapat dibagai-bagi menjadi prosedur dan fungsi.
�� Contoh: PASCAL dan C
4. Pemrograman Modular
�� Pemrograman ini membentuk banyak modul.
�� Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
�� Sebuah program dapat merupakan kumpulan modul-modul.
�� Contoh: MODULA-2 atau ADA
5. Pemrograman Berorientasi Obyek
�� Pemrograman berdasarkan prinsip
obyek, dimana obyek memiliki data/variabel/property dan
method/event/prosedur yang dapat dimanipulasi
�� Contoh: C++, Object Pascal, dan Java.
6. Pemrograman Berorientasi Fungsi
�� Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.
�� Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.
7. Pemrograman Deklaratif
�� Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma.
�� Contoh: PROLOG
Langkah-langkah dalam pemrograman komputer
· Mendefinisikan masalah
Ini merupakan langkah pertama yang sering dilupakan orang. Menurut hukum Murphy (oleh Henry Ledgard):
“Semakin cepat menulis program, akan
semakin lama kita dapat menyelesaikannya”. Hal tersebut berlaku untuk
permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus
dipecahkan dengan menggunakan komputer, dan apa inputan serta outputnya.
· Menemukan solusi
Setelah masalah didefinisikan, maka
langkah berikutnya adalah menentukan solusi. Jika masalah terlalu
kompleks, maka ada baiknya masalah tersebut dipecah menjadi modul-modul
kecil agar lebih mudah diselesaikan.
· Memilih algoritma
Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut
· Menulis program
Pilihlah bahasa yang mudah dipelajari,
mudah digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki
tingkat kompatibilitas tinggi dengan perangkat keras dan platform
lainnya.
· Menguji program
Setelah program jadi, silahkan uji program tersebut dengan segala macam
kemungkinan yang ada, termasuk error-handlingnya sehingga program tersebut akan benar-benar handal dan layak digunakan.
· Menulis dokumentasi
Menulis dokumentasi sangat penting
agar pada suatu saat jika kita akan melakukan perubahan atau membaca
source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita
akan mudah membacanya. Caranya adalah dengan menuliskan
komentar-komentar kecil tentang apa maksud kode tersebut, untuk apa,
variabel apa saja yang digunakan, untuk apa, dan parameter-parameter
yang ada pada suatu prosedur dan fungsi.
· Merawat program
Program yang sudah jadi perlu dirawat
untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi. Atau
mungkin juga pengguna membutuhkan fasilitas baru yang dulu tidak ada.
Setelah membahas tentang algoritma dan bahasa pemrograman khususnya bahasa pascal, kita juga harus tahu yang dimaksud dengan FLOWCHART.
Flowchart merupakan bentuk atau gambaran suatu langkah-langkah atau
urutan prosedur dari sebuah program. Flowchart berfungsi membantu
programmer atau orang yang menjalankan program agar mampu menganalisa
dan memecahan masalah ke dalam segmen-segmen yang lebih kecil dalam
bentuk gambar atau bagan serta untuk menganalisa suatu alternative lain
dalam system pengoperasian.
Dalam membuat flowchart seseorang
tidak boleh menggambarkannya begitu saja, karena terdapat langka-langkah
yang harus diperhatikan diantaranya:
Ø Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
Ø Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
Ø Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
Ø Setiap langkah dari aktivitas harus
diuraikan dengan menggunakan deskripsi kata kerja, misalkan kita akan
membuat program “MENGHITUNG KONVERSI WAKTU”.
Ø Setiap langkah aktivasi harus berada pada urutan yang benar.
Ø Lingkup dan range dari aktifitas
yang sedang digambarkan harus ditelusuri dengan hati-hati.
Percabangan-percabangan yang memotong aktivitas tidak perlu digambarkan
pada flowchart yang sama. Symbol konektor harus digunakan dan
percabangannya diletakkan pada halaman yang terpisah atau hilangkan
seluruhnya bila percabangannya tidak berkaitan dengan system.
Ø Gunakan simbol-simbol flowchart yang standar.
Contoh algoritma dengan mengunakan bahasa pemrograman yaitu pascal:
Ø Algoritma Sapa.
Algoritma_Sapa
{Algoritma ini menunjukkan pemakaian
instruksi pilihan sapa 1 menggunakan Bahasa Jerman dan pilihan sapa 2
menggunakan Bahasa Korea}
Deklarasi
integer pilihan;
Deskripsi
write(‘masukkan angka 1 atau 2’);
read;
IF pilihan=1
then write(“Halo, Guten Morgen”);
else write (“Wie gehts?”);
endif
IF pilihan=2
then write (“Halo, joheun achimeyo”);
else write (“ottokhe jinaeseyo?”);
endif
endif.
FLOWCHART
START
|
Pilihan
|
1: Halo, Guten Morgen
Wie gehts?
2: Halo, joheun achimeyo
Ottokhe jinaeseyo?
|
END
|
Masukkan angka 1 atau 2
1. Halo, Guten Morgen
Wie gehts?
2. Halo, Joheun achimaeyo?
Ottokhe jinaeseyo
|
PROSES
|
Algoritma diatas menunjukkan IF=
pilihan yaitu 1 dan 2, dimana pilihan 1 menggunakan bahasa Jerman dan
pilihan 2 menggunakan bahasa Korea. Pertama-tama kita memasukkan kaliamt
sapa menggunakan bahasa Jerman, kemudian memasukkan kalimat sapa dengan
menggunakan bahasa Korea. Setelah itu data akan diproses, jika kita
menekan angka 1 lalu menekan tombol enter pada program pascalnya maka
kalimat yang muncul adalah bahasa Jerman yaitu: (“Halo, guten morgen”)
dan (“Wie gehts?”). Sementara jika kita menekan angka 2 maka maka
kalimat yang muncul adalah (“Halo, joheun achimeyo”) dan (“Ottokhe
jinaeseyo?”).
Ø Algoritma Konversi_waktu
Algoritma konversi_waktu
{Algoritma ini menunjukkan konversi waktu meliputi jam, menit dan detik}
Deklarasi
Real f,c;
Deskripsi
write(“Program konversi waktu”);
write(“masukkan jumlah jam:”);
read;
write(“masukkan jumlah menit:”);
read;
write(“masukkan jumlah detik:”);
read;
write;h:=(j*3600)+(m*60)+d;
read;
write(“jadi hasil konversi:’,h,’detik”);
read;
end.
START
|
Var: j, m, d
|
OUTPUT
|
END
|
Masukkan jumlah jam
Masukkan jumlah menit
Masukkan jumlah detik
|
PROSES
h=(j*3600)+(m*60)+d
|
Algoritma diatas menunjukkan proses
konversi dari jam ke menit dan detik. Pertama-tama kita memasukkan
jumlah jam, kemudian jumlah menit dam yang terakhir jumlah detiknya.
Jika kita kita menekan “enter” pada program yang kita buat maka kita
akan diperintahkan untuk memasukkan jam, setelah itu tekan kembali enter
dan kita akan diminta untuk memasukkan jumlah menit, dan jika kita
menekan enter maka yang selanjutnya muncul adalah masukkan jumlah detik.
Nah, setelah semua data diinput maka hasil yang akan keluar adalah
hasil konversi dari jam, menit dan detik.
No comments:
Post a Comment