BAB II LANDASAN TEORI 2.1 Perdagangan Saham Belajar menginvestasikan uang adalah pengalaman yang sangat berharga, meskipun kadang-kadang proses di dalamnya begitu rumit. Begitu juga dengan pasar saham, saham pada dasarnya adalah kepemilikan individu dalam perusahaan itu sendiri. Saham adalah surat berharga yang merupakan instrument bukti kepemilikan atau penyertaan dari individu atau instansi dalam suatu perusahaan (Sapto Rahardjo, 2006). Harga saham dapat berfluktuasi tergantung pada faktor-faktor seperti nilai kinerja perusahaan tersebut dan prospek di masa depannya. Selain faktor tersebut, kestabilan secara keseluruhan dan integritas pasar saham juga dapat sangat mempengaruhi harga saham. Tujuan dari Perdagangan saham adalah membeli saham dalam sebuah perusahaan dengan harga rendah dan menjualnya ketika harga saham telah meningkatkan untuk mendapatkan keuntungan. Perdagangan saham memungkinkan investor untuk berpartisipasi dalam cara kerja perekonomian itu sendiri, membantu pertumbuhan bisnis dan idealnya menghasilkan keuntungan bagi semua orang (Yeo Keong, 2011). Ketika perusahaan menjual saham itu sendiri dan memungkinkan investor untuk menjadi pemilik parsial (merupakan bagian dari keseluruhan), itu menghasilkan modal yang kemudian dapat digunakan untuk memperluas dan mendanai usaha bisnisnya. Membeli saham pada dasarnya adalah membeli bagian dari bisnis, dan kapan saja, investor dapat menjual saham kembali ke perusahaan itu sendiri. Namun, jika perusahaan telah jatuh pada masa sulit investor akan menerima jumlah lebih rendah dari awalnya membeli. Oleh karena itu, sangatlah penting bagi investor untuk berbuat cerdas, yaitu teliti dalam mengambil keputusan apakah akan membeli atau menjual saham. Dengan adanya perdagangan saham dan dibutuhkannya ketelitian dalam mengambil suatu keputusan untuk membeli atau menjual saham, diperlukannya suatu pengetahuan perdagangan (trading) untuk melakukan aktivitas tersebut dalam mencari keuntungan. Salah satunya dengan mengetahui teknik-teknik perdagangan saham dengan baik. 7 8 2.2 Analisis Saham Saham merupakan pilihan investasi yang cepat mengalami perubahan dan rentan terhadap berbagai isu yang berkembang. Bagi pemodal tentu saja hal tersebut penting untuk diketahui dan dipantau sehingga pemodal dapat mengambil posisi atas saham yang dipegangnya. Analisis saham sangat diperlukan bagi para trader dalam melakukan aksi perdagangan saham, berbagai macam instrumen telah disediakan bagi para trader dalam melakukan pengambilan keputusan. Bagi investor yang ingin melakukan investasi terhadap saham khususnya untuk investasi jangka menengah harus mengetahui tentang tipe-tipe analisa dalam saham baik dalam analisa saham fundamental baik dalam analisa saham teknikal. Media untuk melihat arah dari pergerakan saham salah satunya adalah melalui grafik. Didalam grafik tersebut terdapat candlestick dan indikator yang digunakan untuk melihat arah dari setiap pergerakan saham. Didalam analisa saham pada grafik atau chart terdiri dari High, low, open dan closing price. Perhatikan Gambar 2.1 berikut ini, H H C Tekanan Penjual O O Dorongan Pembeli C L L Gambar 2.1 Candlestick pada grafik saham Keterangan: H = Highest Price L = Lowest Price O = Opening Price C = Closing Price a. Tren naik C O nilai open kurang dari close (O < C) 9 O b. Tren turun nilai close kurang dari open (C < O) C Pada lilin (candle) yang berwarna putih menunjukkan menunjukkan tren harga yang naik atau closing price lebih tinggi nilainya dibandingkan dengan opening price. Sebaliknya, lilin berwarna hitam menunjukkan menunjukkan harga bergerak turun atau closing price lebih rendah nilainya dibandingkan dengan opening price. Garis vertikal diatas dan dibawah itu adalah highest price dan lowest price selama periode yang telah ditentukan, misalnya dalam per-jam, harian, bulanan, bahkan tahunan. Jika menggunakan istilah Bearish dan Bullish, warna putih dikatakan sebagai bullish pattern dan yang berwarna hitam adalah bearish pattern. Pattern disini adalah interpretasi dari candlestick yang ada. Ketika banyak pembeli yang melakukan pembelian saham, harga pasar semakin meningkat sehingga pada akhir periode pasar ditutup diatas harga pembukaan, akhirnya terbentuklah candle naik (putih). Besarnya dorongan beli bisa diukur dari pergerakan pasar dari low sampai close. Semakin besar dorongannya, maka semakin besar tubuh lilin (body candle) yang terbentuk. Sehingga besarnya tubuh lilin putih ini menunjukan dominasi pembeli. Ketika banyak trader atau pemain saham yang melakukan penjualan, harga pasar semakin menurun, sehingga pada akhir periode biasanya nilai penutupan pasar dibawah harga pembukaan. Kondisi inilah yang menyebabkan lilin yang terbentuk berwarna hitam (turun). Pada lilin turun atau berwarna hitam tekanan penjual diukur dari high sampai close. Semakin besar tekanan penjualan, maka harga akan semakin jatuh dan semakin membentuk tubuh lilin hitam yang panjang. Sehingga besarnya tubuh lilin hitam ini menunjukan besarnya dominasi penjual. 2.2.1 Indeks Saham Keberadaan indeks saham pada umumnya lebih di ketahui masyarakat baik AS, Eropa maupun Asia, karena seringnya indeks saham tersebut muncul dalam laporan berita. Sebagian kecil kalangan trader dan mayoritas orang belum sepenuhnya memahami bagaimana indeks ini diperdagangkan. Pada umumnya anggapan yang muncul adalah indeks diperdagangkan persis 10 seperti saham atau hanya dianggap sebagai informasi yang dapat dijadikan indikator pergerakan harga saham di suatu sektor. Padahal kenyataannya, indeks saham berbeda dengan saham. Indeks saham tidak diperdagangkan di bursa saham (stock exchange) karena indeks bukanlah saham. Indeks saham atau stock indexes (STODEX) adalah harga atau nilai dari sekelompok saham yang dikumpukan berdasarkan kategori tertentu. Indeks ini merupakan indikator pergerakan harga dari seluruh saham yang diwakilinya. Misalnya Indeks Harga Saham Gabungan (IHSG) yang mewakili seluruh pergerakan harga saham yang diperdagangkan di Bursa Efek Indonesia atau Jakarta Industrial Classification (JASICA) yang mewakili pergerakan harga dari sektor industri tertentu (http://www.mifx.com). 2.2.2 Macam-macam Analisis Saham Ada beberapa cara yang dapat digunakan untuk menganalisis saham. Tetapi pada garis besarnya cara-cara tersebut dapat dikelompokkan menjadi dua, yaitu analisis teknikal dan analisis fundamental. Banyak cara yang dilakukan para trader atau pemain saham untuk menganalisa grafik baik secara fundamental maupun teknikal, di mana hasil analisa inilah nanti yang digunakannya untuk melakukan transaksi dengan membuka posisi Buy atau Sell atau mungkin menahan diri untuk tidak melakukan transaksi terlebih dahulu. 2.3 Analisis Teknikal (Technical Analysis) Menganalisis pasar saham menggunakan analisis teknikal merupakan suatu pengalaman berdasarkan kemungkinan, karena pasar bukanlah mesin yang bisa menggunakan sebuah formula dengan sempurna. Analisis teknikal merupakan suatu teknik analisis yang menggunakan data catatan mengenai pasar itu sendiri untuk berusaha mengakses permintaan dan penawaran suatu saham tertentu maupun pasar secara keseluruhan (Yeo Keong, 2011). Pendekatan analisis ini menggunakan data pasar yang dipublikasikan, seperti: harga saham, volume perdagangan , indeks harga saham gabungan dan individu, serta faktor-faktor lain yang bersifat teknis. Oleh 11 sebab itu pendekatan ini juga disebut pendekatan analisis pasar (market analisis) atau analisis internal (internal analisis). Beberapa kesimpulan menyangkut pendekatan analisis teknikal adalah sebagai berikut: 1. Analisis teknikal didasarkan pada data pasar yang dipublikasikan. 2. Fokus analisis teknikal adalah ketepatan waktu, penekanannya hanya pada perubahan harga. 3. Teknik analisa berfokus pada faktor-faktor internal melalui analisis pergerakan di dalam pasar dan atau saham. 4. Para analisis teknikal cenderung lebih berkonsentrasi pada jangka pendek, karena teknikteknik analisa teknikal dirancang untuk mendeteksi pergerakan harga dalam jangka waktu yang relatif pendek. Pada intinya, analisis teknikal adalah benar-benar menggunakan suatu kombinasi tertentu dari indikator-indikator untuk meraih tujuan perdagangan yaitu mengenali awal dari suatu tren (tren kenaikan atau tren penurunan) yang bisa dipercaya. 2.3.1 Beberapa Contoh Analisis Teknikal Ada beberapa teknik analisis yang dapat digunakan dalam pendekatan teknikal, antara lain adalah tren analisis, ini mengasumsikan bahwa perilaku harga dimasa lalu bisa direfleksikan dalam harga di masa yang akan datang. Berikut beberapa Technical Analysis: 1. Moving Average (MA) Indikator rata-rata pergerakan (Moving Average) memperlihatkan nilai harga rata-rata selama suatu periode waktu di dalam pergerakan harga terakhir. 2. Bollinger Bands Bollinger bands merupakan salah satu dari beberapa indikator yang popular bagi kalangan trader dunia. Bollinger bands adalah indiKator teknikal yang memiliki tiga garis utama yang bergerak mengikuti rata-rata pergerakan harga sepanjang periode tertentu. 3. Moving Average Convergence Divergence (MACD) Moving Average Konvergensi atau Divergensi (Moving Average Convergence Divergence /MACD) telah terbukti menjadi suatu indicator yang dapat dipercaya dan 12 mudah digunakan. MACD memiliki karakterisitik mengikuti tren tertentu dengan menggunakan moving average (Yeo Keong, 2011). 4. Relative Strentgh Index (RSI) RSI adalah suatu ukuran momentum harga di dalam tren yang terakhir. Jika indikator yang lain diperhatikan sebagai eksistensi dari suatu tren, maka RSI melakukan konfirmasi apakah momentum (kecepatan dan kekuatan) dari tren masih kuat. 5. Stochastic Oscillator Stochastic oscillator adalah indikator yang menunjukkan lokasi harga penutupan terakhir dibandingkan dengan range harga terendah atau tertinggi selama periode waktu tertentu. 2.4 Algoritma Semut Algortima semut atau biasa dikenal dengan Ant Colony Optimazation (ACO) adalah teknik probabilistik yang bertujuan untuk menyelesaikan masalah optimasi untuk menemukan jalur yang terbaik melalui graf. Sesuai dengan nama algoritmanya, ACO terinspirasi oleh prilaku semut dalam mencari makanan dengan mengikuti jejak bau yang ditinggalkanya atau di kenal dengan nama feromon. Koloni semut dapat menemukan jalan terpendek antara sumber makanan dan sarang mereka berdasarkan jejak kaki pada lintasan yang telah mereka lalui. Semut dibilang sebagai serangga sosial yang hidup berkoloni karena kolaborasi bersama mereka mampu menampilkan perilaku yang kompleks dan menyelesaikan tugas-tugas yang sulit dari sudut pandang seekor semut. Mereka didasarkan pada prinsip bahwa menggunakan mekanisme komunikasi sederhana, sebuah kelompok semut dapat menemukan jalur terpendek antara dua titik (Tehrani dan Khodyar, 2010). ACO merupakan salah satu metode metaheuristik yang menerapkan semut sebagai agen dengan update feromon-nya untuk dapat melakukan proses pencarian solusi yang efektif dan efisien (Leksono, 2009). Secara realita, semut berjalan secara acak dalam menemukan sumber makanan dan kembali lagi ke sarang dengan meninggalkan jejak feromon. Jika semut lain menemukan jalur tersebut, maka mereka tidak akan berjalan secara acak lagi tetapi mulai mengikuti jejak feromon yang ditinggalkan oleh jejak semut sebelumnya. Kemudian mereka kembali meninggalkan jejak feromon dan menguatkan jejak tersebut. Jejak feromon akan memudar seiring dengan berjalannya waktu. Untuk jalur-jalur yang panjang, jalur tersebut akan jarang dilalui oleh semut, 13 sedangkan untuk jalur-jalur yang pendek, jejak tersebut akan mempunyai ketebalan feromon yang tinggi sehingga membuat jalur tersebut yang akan dipilih dan jalur yang panjang akan ditinggalkan. Gambar 2.2 Semut membangun solusi, yaitu, jalur dari sumber ke node tujuan (Marco Dorigo, 2004) Gambar di atas menerangkan urutan dari kinerja semut dalam menemukan jalur terpendek dari sumber makanan menuju ke sarang. Destination adalah tempat terakhir yang dikunjungi semut yang di anggap sebagai sarang makanan. Dari sumber atau tempat pertama semut melakukan perjalanan (tour), semut akan dengan sendirinya menemukan jalur terpendek dari jalur yang sudah ada. Semut akan memilih jalur dimana jalur tesebut sering dilalui semut dengan di tandai dengan ketebalan feromon di setiap jalurnya. 2.4.1 Sejarah Algoritma Semut Pada tahun 1996, dunia ilmu pengetahuan pun ikut belajar dari semut dengan diperkenalkannya algoritma semut, atau ACO, sebagai sebuah simulasi multi agen yang menggunakan metafora alami semut untuk menyelesaikan problem ruang fisik. Algoritma semut diperkenalkan oleh Moyson dan Manderick dan secara meluas dikembangkan oleh Marco Dorigo, merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan 14 menemukan jalur terbaik. Algoritma ini diambil dengan analogi oleh perilaku semut dalam menemukan jalur dari koloninya menuju makanan (www.scribd.com) 2.4.2 Cara Kerja Semut Mencari Jalur Optimal Agar semut mendapatkan jalur optimal, diperlukan beberapa proses: 1. Pada awalnya, semut berkeliling secara acak, hingga menemukan makanan. Lihat Gambar2.3. 2. Ketika menemukan makanan mereka kembali ke koloninya sambil memberikan tanda dengan jejak feromon. 3. Jika semut-semut lain menemukan jalur tersebut, mereka tidak akan bepergian dengan acak lagi, melainkan akan mengikuti jejak tersebut. 4. Kembali dan menguatkannya jika pada akhirnya mereka pun menemukan makanan. 5. Seekor semut yang secara tidak sengaja menemukan jalur optimal akan menempuh jalur ini lebih cepat dari rekan-rekannya, dan dengan sendirinya meninggalkan feromon dari jalurjalur yang lebih lambat ditempuh. 6. Feromon yang berkonsentrasi tinggi pada akhirnya akan menarik semut-semut lain untuk berpindah jalur, menuju jalur paling optimal, sedangkan jalur lainnya akan ditinggalkan. 7. Pada akhirnya semua semut yang tadinya menempuh jalur yang berbeda-beda akan beralih ke sebuah jalur tunggal yang ternyata paling optimal dari sarang menuju ke tempat makanan. Lihat Gambar 2.3. Gambar 2.3 Lintasan awal semut menuju tempat makanan (www.scribd.com) Keterangan Gambar 1: A: Tempat Awal Koloni (sarang) B: Tujuan Koloni Semut (makanan) 15 Jalur 1 (biru): Lintasan yang ditempuh oleh semut 1 Jalur 2 (hitam) : Lintasan yang ditempuh oleh semut 2 Gambar 2.4 Lintasan optimal semut menuju tempat makanan (www.scribd.com) Keterangan Gambar 2: A: Tempat awal koloni (sarang) B: Tujuan koloni semut (makanan) Jalur optimal: Jalur yang dilewati semut setelah beberapa iterasi. Gambar 2.5 adalah diagram alur dari algoritma semut atau ant colony optimization. 16 Mulai Inisialisasi feromon, array data Perbaharui feromon untuk setiap edge yang dilalui semut i=0 i < IterasiMax Tidak Tidak Ya Jika solusi lokal lebih baik dari global Jika Semut ? Tidak Ya Ya Tentukan edge/lintasan selanjutnya Simpan solusi lokal sebagai solusi global Tambahkan langkah tersebut ke dalam langkah yang sudah dilakukan i=i+1 Ada Solusi? Catat Hasil Lintasan Semut Ya Tidak Semut berhasil membangun tour? Tidak Ya Selesai Gambar 2.5 Diagram alur algortima semut dalam membangun tour Pada awalnya semut menginisialisasi variable seperti feromon sebagai awal untuk membentuk suatu tour dari sarang menuju ke sumber makanan. Jika hasil inisialisasi tidak diketahui maka semut harus melakukan inisialisasi ulang. Kemudian semut menentukan lintasan selanjutnya yang akan dikunjungi, jika sudah menemukan titik optimasi pada suatu lintasan, 17 maka semut berhasil melakukan tournya. Untuk mempertegas jalur semut yang telah diketahui telah memecahkan masalah optimasi dengan membangun jalur terpendek oleh semut sebelumnya, semut yang lain memperbarui feromon dengan menulusuri jalur yang sama dengan semut sebelumnya. Setelah jalur telah dipertegas, catat hasil lintasan semut, dan semut di anggap selesai dalam memecahkan solusi dalam pencarian jalur terpendek pada suatu tour yang telah dibangun. Dengan kata lain jalur tersebut menjadi jalur yang akhirnya dipilih oleh semua semut untuk melakukan tour dari sarang menuju ke sumber makanan. Berikut adalah skema dari ACO: 1. Semut membangun solusi. 2. Menentukan daya tarik (feromon) berdasarkan pengalaman dari solusi sebelumnya. 3. Tentukan fungsi visibilitas yang spesifik, η, untuk soal yang diberikan (misalnya jarak). Hal yang dilakukan semut pada saat melakukan perjalanan (tour): 1. Inisialisasi semut dan simpul (node). 2. Pilih kemungkinan tepi (edge) berikutnya sesuai dengan feromon dan visibilitas. Prob (choose available edge e) = . . ∑ 3. Setiap semut menyimpan daftar tabu transisi yang tidak layak untuk iterasi. 4. Perbarui feromon sesuai dengan jumlah semut yang melintas. Memperbarui feromon (Pheromone update): (e) := 1 1 Parameter 0 . . e , jika tepi tidak dilalui e feromon baru, jika tepi dilalui 1 adalah disebut sebagai laju penguapan (evaporation rate). Feromon = memori jangka panjang dari koloni semut 1. kecil menandakan penguapan yang rendah kemudian mengakibatkan adaptasi yang lambat. 2. besar menandakan penguapan yang tinggi kemudian mengakibatkan adaptasi yang cepat. Adanya aturan probabilistik adalah agar kesalahan dapat ditemukan karena terdapat beberapa kemungkinan pada solusi yang ditimbulkan. Pembaruan feromon atau ∆ biasanya berisi dasar tarik konstan Q dan factor yang akan di optimalkan. 18 2.4.3 Menelusuri Jalur dan Pembaruan Feromon Teknik komunikasi yang dilakukan semut adalah mengikuti jejak yang ditinggalkan oleh semut-semut sebelumnya. Ketika mencapai node tujuan (sumber makanan), semut kembali lagi menuju ke sarangnya. Tujuan dari pembaruan feromon adalah untuk meningkatkan nilai feromon yang memiliki solusi yang terbaik dan meninggalkan solusi yang terburuk. Menurut Alfred Bruckstein yang membuktikan bahwa secara matematis semut-semut yang datang selanjutnya memang meluruskan jejak yang berkelok. Kesimpulan yang didapatnya sama yaitu setelah beberapa ekor semut, panjang jejak dapat diminimalkan menjadi jarak terpendek antara dua titik dengan kata lain, membentuk garis lurus. Jika setiap semut telah mengunjungi semua simpul dan kembali lagi ke simpul asal, maka akan diperoleh lebih dari satu kemungkinan solusi jarak tempuh karena ada lebih dari satu semut yang melintasi setiap jalur dalam graf. Yang dimaksud dengan iterasi adalah dimana setiap semut yang telah mengunjungi setiap simpul dalam graf dan kembali lagi ke simpul asal. Pada akhir setiap iterasi akan ditemukan beberapa kemungkinan solusi. Langkah berikutnya adalah memilih solusi yang terbaik yaitu dengan jarak tempuh minimum. Kemudian menambahkan feromon pada lintasan terpendek yang dihasilkan oleh solusi terbaik tersebut. Fungsi untuk menambahkan feromon ini disebutkan didalam Aturan Pembaruan feromon Global (Global Pheromone Updating Rule). Tujuan adanya penambahan feromon global ini adalah untuk mendorong semutsemut pada iterasi berikutnya agar memilih lintasan terpendek yang telah dicapai. Setiap jejak feromon yang ditinggalkan oleh semut akan terjadinya suatu penguapan, adanya suatu penguapan mengakibatkan tidak semua semut mengikuti jalur semut sebelumnya. Ini menimbulkan solusi yang dihasilkan akan lebih banyak. 2.5 Optimasi Optimisasi ialah suatu proses untuk mencapai hasil yang ideal atau optimal (nilai efektif yang dapat dicapai). Dalam disiplin matematika optimisasi merujuk pada studi permasalahan yang mencoba untuk mencari nilai minimal atau maksimal dari suatu fungsi nyata. Untuk dapat mencapai nilai optimal baik minimal atau maksimal tersebut, secara sistematis dilakukan pemilihan nilai variabel integer atau nyata yang akan memberikan solusi optimal. 19 Nilai optimal adalah nilai yang didapat melalui suatu proses yang dianggap menjadi jawaban yang terbaik dari semua solusi yang ada. Nilai optimal dapat dicari dengan dua cara, yaitu: 1. Cara konvensional, yaitu mencoba semua kemungkinan yang ada dengan mencatat nilai yang didapat. Cara ini kurang efektif, karena optimasi akan berjalan secara lambat. 2. Cara kedua adalah dengan menggunakan suatu rumus sehingga nilai optimal dapat diperkirakan dengan cepat dan tepat. 2.6 AmiBroker AmiBroker adalah perangkat lunak untuk Analisis Teknikal yang lengkap agar para trader/investor mengetahui saat terbaik dalam membeli dan menjual saham. Amibroker dilengkapi dengan berbagai macam indikator yang dapat disesuaikan dengan kebutuhan, sehingga memiliki peluang untuk mengoptimalkan profit. Saat laporan ini di tulis amiBroker telah sampai di versi 5.50 dan dapat digunakan di semua versi Windows. Amibroker memiliki banyak manfaat, yaitu: 1. Dapat terkoneksi secara real time dengan data saham BEI (untuk versi Professional dan bila berlangganan data real time). 2. Bisa juga digunakan untuk memantau saham-saham di bursa AS atau indeks saham global atau saham-saham di negara lainnya dengan data Yahoo Finance. 3. Dengan indikator yang tertentu bisa memunculkan sinyal jual atau beli yang jelas. Jadi tidak akan ketinggalan momen untuk membeli atau menjual saham. 4. Dapat digunakan untuk memfilter saham (stock filter / screener). Misalnya untuk memilih saham yang sedang uptrend. 5. Membuat sistem perdagangan sendiri dan mengetesnya (Backtesting). 6. Bisa menjadi sekretaris pribadi, kalau ada sinyal jual / beli bisa dikirim ke email. 7. Memiliki puluhan tools gambar dan indikator yang sudah terinstall dan ribuan indikator lainnya gratis didownload dari internet. 8. Dapat membuat indikator sendiri menggunakan AFL programming. Programmingnya mudah dipelajari. 9. Harganya relatif terjangkau dibandingkan dengan software lain sejenis. Bahasa 20 10. Lisensinya adalah lifetime seumur hidup. Untuk tampilan amiBroker screenshot-nya dapat dilihat pada Gambar 2.6. Gambar dibawah ini menggambarkan tentang grafik MA yang terdapat pada amiBroker. Dibawah grafik MA terdapat grafik MACD dan RSI. Masing-masing mempunyai gaya tersendiri dalam menampilkan arah dari pergerakan saham. Di dalam grafik tampak candlestick yang berwarna hitam dan putih, sedangkan merah biru hijau adalah indikator yang memperlihatkan arah dari pergerakan saham (arah tren saham). Gambar 2.6 Tampilan AmiBroker versi 5.50 (Screenshot) 2.6.1 AFL (Amibroker Formula Language) AFL merupakan bahasa pemrograman khusus yang digunakan untuk mendefinisikan dan membuat indikator kustom, scan, eksplorasi, back-tes dan komentar. AmiBroker dilengkapi dengan bahasa pemrograman yang memungkinkan untuk menulis aturan sistem perdagangan, menentukan indikator sendiri dan komentar kustom. AFL adalah alat seperti analisa otomatis dan editor formula. AFL digunakan untuk mendefinisikan aturan perdagangan dan eksplorasi di 21 jendela analisis Otomatis, komentar kustom di jendela Komentar dan formula indikator di jendela Formula Editor. Gambar dibawah ini adalah screenshot dari AFL MA (Moving Average) pada amiBroker 5.50. Gambar 2.7 Tampilan formula AFL (Screenshot) 2.6.2 AmiBroker Development Kit (ADK) AmiBroker Developlent Kit (ADK) adalah paket untuk C / C + + yang memungkinkan pengembang untuk mengembangkan indikator sendiri atau plugin Data DLL. Saat ini ada tiga jenis plugin yang didukung oleh antarmuka AmiBroker plugin yaitu: 1. AFL plugin 2. Data pluginss 3. Optimizer plugin 22 AFL plugin dapat mengekspos jumlah fungsi tak terbatas untuk mesin AFL. Fungsi yang disediakan oleh plugin yang terintegrasi erat dengan AFL pada amiBroker. Data plugins memungkinkan untuk menghubungkan sumber data eksternal. Antarmuka memungkinkan untuk menggunakan sumber data lokal seperti file berbasis database (Metastock files, ASCII files, FastTrack, Quotes Plus) serta internet berbasis feeds (eSignal, myTrack, QuoteTracker). Data plugins juga mendukung pemberitahuan informasi bahwa data baru saja tiba pada amiBroker dan amiBroker pun dapat memberitahu plugin tentang perubahan pengaturan atau tindakan pengguna (user). Plugin dapat dibuat dalam bahasa apapun yang memenuhi persyaratan berikut: 1. Kemampuan untuk membangun reguler API-seperti 32bit atau 64 bit Windows DLL (non ActiveX / COM). 2. Dukungan untuk tipe data / struktur ditentukan oleh pengguna. 3. Dukungan untuk jenis pointer data, pointer ke fungsi, fungsi memanggil dengan pointer 4. Dukungan untuk panggilan konvensi _cdecl. 2.7 Indikator Di dalam analisis teknikal, pada umumnya menggunakan beberapa indikator teknis pada grafik harga untuk menentukan apakah ada suatu kesempatan perdagangan yang bagus. Apakah indikator-indikator teknikal itu? Indikator-indikator teknikal adalah garis atau batang lurus atau titik atau grafik yang diperoleh dari rumusan dengan melibatkan harga di dalam suatu periode historis yang telah ditentukan. Indikator bisa dikatakan sebagai pointer atau indeks, atau instrument yang digunakan untuk memonitor operasi, kondisi mesin, data yang memberikan informasi tentang atau memprediksi kesehatan keseluruhan dari ekonomi atau pasar keuangan, contohnya adalah inflasi, suku bunga, pekerjaan, volume, dan insider trading. AmiBroker memberikan gaya dan warna disesuaikan grafik dalam indikator kustom. Fitur-fitur ini memungkinkan lebih banyak fleksibilitas dalam merancang indikator. Indikator pada amiBroker adalah garis grafik untuk menghasilkan sinyal perdagangan dan mengidentifikasi level support dan resistance, memprediksi arah pergerakan saham entah itu turun atau naik. Lihat Gambar 2.7. 23 Gambar 2.8 Indikator (garis berwarna biru, merah, hijau, abu-abu) pada amiBroker 2.8 Grafik Lilin (Candlestick Chart) Salah satu cara untuk menganalisis teknikal adalah dengan membaca grafik lilin. Dengan data yang diberikan candlestick yang telah terbentuk, maka pengguna bisa memprediksi seperti apa candle yang selanjutnya akan terbentuk. Apakah candle akan turun atau naik. Sehingga jika sudah memiliki gambaran lilin apa yang nantinya akan terbentuk, pengguna bisa mengambil keputusan apakah akan membeli atau menjual. 2.8.1 Definisi Grafik Lilin Grafik lilin (candlestick chart) adalah gaya grafik batang (chart bar) digunakan terutama untuk menggambarkan pergerakan harga dari turunan, keamanan, atau mata uang dari waktu ke waktu. Grafik candlestick merupakan kombinasi dari sebuah baris tabel dan grafik batang, dalam setiap batang mewakili rentang pergerakan harga selama suatu interval waktu tertentu. Hal ini paling sering digunakan dalam analisis teknis ekuitas dan harga mata uang pola. Untuk lebih menyoroti pergerakan harga, grafik lilin sering mengganti hitam atau putih dari tubuh lilin dengan warna seperti merah (untuk penutupan lebih rendah) dan biru atau hijau (untuk penutupan lebih tinggi). Pada Gambar 2.8 batang lilin yang digunakan adalah menggunakan warna hitam untuk bear candle (harga open di atas) dan putih untuk bull candle (harga open dibawah). 24 Ketika jika saham ditutup di atas jangkauan, maka itu berarti pembeli lebih agresif dan bersedia untuk membeli dengan harga sebesar apapun, dan penjual menjual dengan harga yang tinggi. Hal ini menyebabkan saham naik. Sebaliknya, jka saham ditutup dibawah jangkauan atau kisaran maka penjual lebih agresif dan menjual dengan harga sesuai permintaan atau murah. Pembeli hanya bisa membeli murah. Hal ini menyebabkan saham menjadi turun. Gambar 2.9 batang lilin menunjukkan naik dan turunya saham pada grafik (sumber: http://www.swing-tradestocks.com/ ) 2.8.2 Grafik Lilin Pada AmiBroker Candlestick Identification berasal dari AFL Candlestick Commentary yang sudah di modifikasi menjadi lilin warna-warni. Formula indikator yang memungkinkan untuk memilih pola batang lilin, menandai terjadinya lilin pada tabel, menampilkan frekuensi, dan menguji nilai prediksi saham. Batang lilin juga termasuk dalam indikator, lihat Gambar 2.9. Pada gambar dibawah ini batang lilin berwarna hitam dan putih, tetapi jika pengguna ingin mengatur sendiri dengan merubah tampilan dengan warna yang berbeda, itu bisa dilakukan hanya tinggal mengatur tampilan batang lilin di dalam amiBrokernya saja. 25 Gambar 2.10 Contoh bentuk candlestick pada amiBroker 2.9 Dynamic Link Library (DLL) Dalam menjalankan suatu aplikasi terdapat banyak file pendukung untuk menampilkan data-data dan fungsi sesuai kebutuhan user sebagai pemakai aplikasi. Dan salah satu cara untuk menjalankan aplikasi adalah menggunakan DLL (Dynamic Link Library) agar aplikasi yang kita buat akan lebih bersifat modular atau terancang sehingga lebih mudah untuk dikembangkan. Karena pada prinsipnya data dan fungsi yang terdapat pada file DLL dapat diperbaharui dan digunakan kembali tanpa membongkar aplikasi. DLL adalah file yang berisi kumpulan data dan fungsi yang digunakan dalam menjalankan aplikasi atau suatu fungsi program. File DLL merupakan bagian penting dari sistem operasi Windows, sebab file ini menentukan apakah suatu program aplikasi (file.exe) dapat berjalan atau tidak. Walaupun keberadaan nya tersebar di banyak tempat dalam sistem operasi, kebanyakan pengguna PC tidak tahu atau tidak peduli apa yang di lakukan file-file ini. DLL biasanya ditulis dengan bahasa C/C++, Delphi atau bahasa lainnya yang mendukung sistem operasi windows. Konsep asli di balik file DLL adalah untuk menyederhanakan suatu program. Hal ini diakui bahwa ada banyak fungsi umum untuk berbagai perangkat lunak. Sebagai contoh, kebanyakan program perlu menciptakan antarmuka grafis yang muncul di layar. Oleh karena itu, harus membuat kode program sendiri untuk membuat interface nya, program yang bersangkutan 26 akan memanggil sebuah DLL yang memuat fungsi tersebut. Idenya adalah untuk memiliki central library, di mana setiap orang (program) dapat memperoleh fungsi yang umum digunakan, atau yang diperlukan. Tujuannya adalah untuk menghemat kode program, meningkatkan kecepatan, lebih efisien, dan lain-lain. Mereka disebut tautan dinamis (dynamic link) karena mereka dimanfaatkan hanya ketika sebuah program memanggil mereka, dan merekapun juga berjalan di ruang memori (memory area) tersendiri. Lebih dari satu program dapat menggunakan fungsi DLL tertentu, bahkan pada waktu yang sama. Sehingga struktur program (aplikasi) menjadi lebih sederhana. Amibroker menyediakan sebuah bahasa pemrograman turunan dari bahasa C yang disebut dengan AFL, kemudian dari formula tersebut dapat memanggil file DLL yang dibuat menggunakan bahasa C. Sesuai dengan tujuan dari penulisan tugas akhir ini, penulis akan membuat file DLL tersebut yang berisikan algoritma semut yang akan digunakan untuk menganalisa pergerakan saham. 2.10 Jaringan Syaraf Tiruan (Artificial Neural Network (ANN)) Jaringan syaraf adalah merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan disini digunakan karena jaringan syaraf ini diimplementasikan dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran. Jaringan saraf tiruan (JST) atau dikenal sebagai artificial neural netwok adalah suatu metode komputasi yang meniru sistem jaringan saraf biologis. Metode ini menggunakan elemen perhitungan non-linier dasar yang disebut neuron dan diorganisasikan sebagai jaringan yang saling berhubungan, sehingga mirip dengan jaringan saraf manusia. JST dibentuk untuk memecahkan suatu masalah tertentu seperti pengenalan pola atau klasifikasi karena proses pembelajaran. JST 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, JST merupakan suatu sistem yang tak terprogram, artinya semua keluaran atau kesimpulan yang 27 ditarik oleh jaringan didasarkan pada pengalamannya selama mengikuti proses pembelajaran atau pelatihan. JST ditentukan oleh 3 hal, yaitu: 1. Pola hubungan antar neuron (disebut arsitektur jaringan). 2. Metode untuk menentukan bobot penghubung (disebut sebagai metode training/learning) 3. Fungsi aktivasi, yaitu fungsi yang digunakan untuk menentukan keluaran suatu neuron 2.10.1 Model Neuron Satu sel syaraf terdiri dari tiga bagian, yaitu: fungsi penjumlah (summing function), fungsi aktivasi (activation function), dan keluaran (output). Perhatikan Gambar 2.11. Gambar 2.11 Model Neuron (Sri Kusumadewi, 2003) Pada gambar neuron diatas lebih mirip dengan sel neuron biologis. Informasi (input) akan dikirim ke neuron dengan bobot tertentu. Input ini akan diproses oleh suatu fungsi yang akan menjumlahkan nilai-nilai bobot yang ada. Hasil penjumlahan kemudian akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktivasi setiap neuron. Apabila input tersebut melewati suatu nilai ambang tertentu, maka neuron tersebut akan diaktifkan, jika tidak, maka neuron tidak akan diaktifkan. Apabila neuron tersebut diaktifkan , maka neuron tersebut akan mengirimkan output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. 28 2.10.2 Konsep Jaringan Syaraf Tiruan Pada setiap pola-pola informasu input dan output yang diberikan kedalam JST diproses dalam neuron. Neuron-neuron tersebut terkumpul di dalam lapisan-lapisan yang disebut neuron layers. Lapisan-lapisan penyusun JST tersebut dapat dibagi menjadi 3, yaitu: 1. Lapisan Input (Input layer) Unit-unit di dalam lapisan input disebut unit-unit input. Unit-unit input tersebut menerima pola inputan data dari luar yang menggambarkna suatu permasalahan. 2. Lapisan tersembunyi (Hidden Layer) Unit-unit di dalam lapisan tersembunyi disebut unit-unit tersembunyi. Dimana outputnya tidak dapat secara langsung diamati. 3. Lapisan Keluaran (Output Layer) Unit-unit di dalam lapisan output disebut unit-unit output. Output dari lapisan ini merupakan solusi JST terhadap suatu permasalahan. 2.10.3 Arsitektur Jaringan JST memiliki tiga struktur jaringan yang sering digunakan dalam berbagai aplikasi, yaitu sebagai berikut. 1. Jaringan layar tunggal (Single layer network) Jaringan dengan lapisan tunggal terdiri dari satu layer input dan satu layer output. Setiap neuron/unit yang terdapat di dalam layer/lapisan input selalu terhubung dengan setiap neuron yang terdapat di layer output. Jaringan ini hanya menerima input kemudian secara langsung akan mengolahnya menjadi output tanpa harus melalui lapisan tersembunyi. Contoh algoritma JST yang menggunakan metode ini adalah perceptron, Hopfield. 2. Jaringan layar jamak (Multi layer network) Jaringan layar jamak memiliki tiga jenis layer yaitu layer input, layer output, dan layer hidden (tersembunyi). Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang lebih kompleks dibandingkan jaringan dengan lapisan tunggal. Contoh algoritma backpropagation. JST yang menggunakan metode ini adalah Madaline, 29 3. Jaringan dengan lapisan kompetitif ( Competitive layer network) Pada jaringan ini sekumpulan neuron bersaing untuk mendapatkan hak menjadi aktif. 2.10.4 Fungsi Aktivasi Fungsi aktivasi digunakan untuk menentukan keluaran suatu neuron. Beberapa fungsi aktivasi yang digunakan adalah: 1. Threshold (batas ambang) 1, 0, 0 0 Fungsi threshold merupakan fungsi threshold biner. Dalam kasus bilangan bipolar, maka angka 0 diganti menjadi -1. Sehingga persamaannya diganti menjadi: 1, 1, 0 0 2. Fungsi Sigmoid f(x) = 1/1+ Fungsi ini sering digunakan karena nilai fungsinya yang sangat mudah untuk didiferensiasikan. f(x) = f(x)(1-f(x)) 3. Fungsi Bipolar Fungsi bipolar menghasilkan output berupa 1, 0, atau -1. Fungsi bipolar dirumuskan sebagai: 1 0 1 Keterangan: - Jika x > 0 - Jika x = 0 - Jika x < 0 2.10.5 Metode Pelatihan Metode pelatihan JST dikelompokkan menjadi tiga yaitu: 1. Supervised Learning 30 Supervised learning menggunakan metode bahwa setiap pola yang diberikan kepada JST telah diketahui outputnya. Selisih antara pola output aktual (output yang dihasilkan) dengan output yang dikehendaki (output target) yang disebut error digunakan untuk mengoreksi bobot JST sehingga JST mampu menghasilkan output sedekat mungkin dengan pola target yang telah diketahui oleh JST. Contoh algortima yang menggunakan metode ini adalah perceptron, backpropagation. 2. Unsupervised Learning Unsupervised learning adalah metode yang tidak memerlukan target output. Pada metode ini tidak dapat ditentukan hasil seperti apakah yang diharapkan selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Contoh algortima yang menggunakan metode ini adalah Hebbian. 3. Hybrid Learning Hybrid learning merupakan gabungan metode antara supervised learning dan unsupervised learning. Contoh algortimanya yaitu RBF. 2.11 Bahasa Pemrograman C (C Programming Language) Bahasa C merupakan bahasa pemrograman sederhana yang mempunyai pengaruh besar terhadap bahasa pemrograman lainnya, terutama C ++ yang merupakan extensi dari C. Bahasa C, saat ini menjadi bahasa pengantar bagi pemula untuk memasuki dunia pemrograman. 2.11.1 Sejarah dan Standar C Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ritchie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell Laboratories). Bahasa C pertama kali digunakan di computer Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX. 31 C adalah bahasa standar, artinya suatu program yang ditulis dengan versi bahasa C tertentu yang akan dapat dikompilasi dengan versi bahasa C yang lain dengan sedikit modifikasi. Standar bahasa C yang asli adalah standar dari UNIX. Patokan dari standar UNIX ini diambilkan dari buku yang ditulis oleh Brian Kerninghan dan Dennis Ritchie berjudul “The C Programming Language”, diterbitkan oleh Prentice-Hall tahun 1978. Deskripsi C dari Kerninghan dan Ritchie ini kemudian dikenal secara umum sebagai “K&R C”. 2.11.2 Struktur Program C Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari program harus dimengerti terlebih dahulu. Struktur dari program C dapat dilihat sebagai kumpulan dari sebuah atau lebih fungsi-fungsi. Fungsi pertama yang harus ada di program C sudah ditentukan namanya, yaitu bernama main(). Suatu fungsi di program C dibuka dengan kurung kurawal ({) dan ditutup dengan kurung kurawal tutup (}). Di antara kurung-kurung kurawal dapat dituliskan statement-statement program C. Berikut ini adalah struktur dari program C. <preprosesor directive> { <statement>; <statement>; } Perhatikan Program sederhana berikut ini: #include <stdio.h> void main () { printf (“Hello ^^”); } Penjelasan: 1. Header File Header file adalah berkas yang berisi prototype fungsi. definisi konstanta. dan definisi variable. Fungsi adalah kumpulan code C yang diberi nama dan ketika nama tersebut dipanggil 32 maka kumpulan kode tersebut dijalankan. Contoh : stdio.h math.h conio.h 2. Preprosesor Directive (#include) Preprosesor directive adalah bagian yang berisi pengikut sertaan file atau berkas-berkas fungsi maupun pendefinisian konstanta. Contoh: #include <stdio.h> #include phi 3.14 3. Void Void artinya fungsi yang mengikutinya tidak memiliki nilai kembalian (return). 4. Main ( ) Fungsi main ( ) adalah fungsi yang pertama kali dijalankan ketika program dieksekusi. tanpa fungsi main suatu program tidak dapat dieksekusi namun dapat dikompilasi. 5. Statement Statement adalah instruksi atau perintah kepada suatu program ketika program itu dieksekusi untuk menjalankan suatu aksi. Setiap statement diakhiri dengan titik-koma (;). 2.12 Rapid Application Development (RAD) Rapid application development (RAD) adalah sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus pengembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier di mana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD 33 memungkinkan tim pengembangan menciptakan “sistem fungsional yang utuh” dalam peeriode waktu yang sangat pendek (kira-kira 60 sampai 90 hari). Perhatikan gambar di bawah ini, Gambar 2.11 adalah model dari RAD. Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD melingkupi fase-fase sebagai berikut: 1. Pemodelan Bisnis. Aliran informasi diantara funsi-fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan-pertanyaan berikut: Informasi apa yg mengendalikan proses bisnis? Informasi apa yg dimunculkan? Siapa yg memunculkan? Ke mana informasi itu pergi? Siapa yg memprosesnya? 2. Pemodelan Data. Aliran informasi yg di definisikan sebagai bagian dari fase bussiness modelling di saring ke dalam serangkaian objek data yg dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut atribut) masing-masing objek diidentifikasi dan hubungan antara objek-objek tersebut didefinisikan. 3. Pemodelan Proses. Aliran informasi yg didefinisikan di dalam fase data modelling ditransformasikan untuk mencapai aliran informasi yg perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan digunakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data. 4. Pembuatan Aplikasi. RAD mengasumsikan pemakaian teknik generasi ke-empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yg konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program yg ada (pada saat memungkinkan) atau menciptakan komponen yg bisa dipakai lagi (bila perlu). Pada semua kasus, alat-alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak. 5. Pengujian dan turnover. Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh. 2.13 White Box White box merupakan teknik pengujian dengan melihat ke dalam modul untuk meneliti kode-kode program yang ada, dan menganalisis terjadi kesalahan atau tidak. Jika terdapat modul 34 yang menghasilkan output tidak sesuai dengan proses bisnis yang dilakukan, maka harus dilakukannya perbaikan kemudian di compile ulang sampai berhasil. Pengujian white box, yang kadang-kadang disebut pengujian glass-box, disebut sebagai metode desain test case yang menggunakan struktur control desain procedural untuk memperoleh test case. Dengan menggunakan metode pengujian white box, perekayasa sistem dapat melakukan test case berupa: 1. Memberikan jaminan bahwa semua jalur independen pada suatu modul telah digunakan paling tidak satu kali. 2. Menggunakan semua keputusan logis pada sisi true dan false. 3. Mengeksekusi semua loop pada batasan mereka dan pada batas operasional mereka. 4. Menggunakan struktur data internal untuk menjamin validitasnya. 2.13.1 Pengujian Basis Path Pengujian basis path memungkinkan perancang test case mendapatkan ukuran kompleks logical dari perancang procedural dan menggunakan ukuran ini sebagai petunjuk untuk mendefinisikan himpunan jalur yang akan diuji. Basis Path menggunakan notasi graphatau flow graph untuk menggambarkan aliran kontrolnya. Pada pengujian basis path terdapat teknik untuk menguji program yaitu cyclomatic complexity. Cyclomatic complexity merupakan merupakan suatu sistem pengukuran yang menyediakan ukuran kuantitatif dari kompleksitas logika suatu program. Pada Basis Path Testing, hasil daricyclomatic complexity digunakan untuk menentukan banyaknya independent paths.Independent path adalah sebuah kondisi pada program yang menghubungkan node awal dengan node akhir. Terdapat 2 persamaan yang digunakan, yaitu: V(G)= E - N + 2 atau V(G)= P + 1 Keterangan: V(G)= cyclomatic complexity untuk flow graph G E=Jumlah edge(panah) N=Jumlah node(lingkaran) P=Jumlah predicate node 35 Gambar 2.12 RAD Modeling (sumber: Software Engineering: A Practitioner’s Approach, 6/e by R.S. Pressman & Associates, Inc.) 2.14 Diagram Alur Diagram alur atau flowchart merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut. Dalam penulisan diagram alur dikenal dengan dua model yaitu sistem diagram alur dan program diagram alur. Di dalam penulisan tugas akhir ini adalah menggunakan program diagram alur, yaitu bagian yang memperlihatkan urutan dan hubungan proses dalam suatu program. Dua jenis metode penggambaran program diagram alur: 1. Diagram alur secara konseptual, menggambarkan alur pemecahan masalah secara global. 2. Diagram alur secara detail, menggambarkan alur pemecahan masalah secara rinci. Tabel 2.1 dibawah ini adalah simbol-simbol dari diagram alur yang umum digunakan. 36 Gambar Penjelasan Simbol arus (flow), yaitu menjelaskan tentang jalanya arus suatu proses. Simbol penghubung (connector), berfungsi sebagai sambungan dari proses ke proses lainnya dalam halaman yang sama. Simbol Proses (process), yaitu menyatakan suatu tindakan (proses) yang dilakukan oleh computer. Simbol keputusan (decision), yaitu menunjukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban: ya/tidak. Simbol terminal, yaitu menyatakan permulaan dan akhir dari suatu program. Simbol input/output, yaitu menyatakan input atau output tanpa tergantung jenis peralatannya. Simbol display, yaitu mencetak keluaran dalam layar monitor. Tabel 2.1 Tabel Diagram Alur