Studi Kasus - Perdagangan Saham

advertisement
Studi Kasus LinguSQL :
Perdagangan Saham
Api Perdana, S.Kom
E-seminar Nasional
Software Quality Assurance using Formal Method
Fakultas Ilmu Komputer UI
9 January 2008
Daftar Presentasi
• Tujuan Presentasi
• Fakta Singkat
• Kasus Kesalahan Perangkat Lunak
Transaksi Saham
• Bisnis Proses Transaksi Saham
• Aturan dan Batasan Transaksi Saham
• Bisnis Proses pada LinguSQL
• Kasus Verifikasi pada LinguSQL
• Algoritma Verifikasi pada LinguSQL
• Kesimpulan
Tujuan Presentasi
• Tujuan Utama :
– Pengenalan Sistem Transaksi Saham sebagai Studi Kasus
LinguSQL
• Cakupan :
– Pengenalan singkat mengenai pasar saham
– Pengenalan proses bisnis transaksi saham BEI
– Pengenalan kasus kesalahan pemrograman pada aplikasi
transaksi saham
– Simplifikasi studi kasus yang akan digunakan LinguSQL
– Identifikasi kasus verifikasi pemrograman dengan
LinguSQL
– Algoritma kasus verifikasi dengan LinguSQL
Pengenalan Pasar Saham
dan
Prosedur Transaksi Saham
Fakta Singkat
• Pasar modal adalah pasar dimana instrumen-instrumen
finansial jangka panjang seperti saham, ekuitas, mutual
funds dan instrumen derivatif diperdagangkan.*
• Pasar modal di Indonesia sudah ada sejak zaman
pemerintah Hindia Belanda tahun 1912, namun
perdagangan elektronik baru dilakukan pada tahun 1995
melalui Bursa Efek Jakarta.
• Bursa Efek Jakarta dan Bursa Efek Surabaya bergabung
menjadi Bursa Efek Indonesia pada 1 Desember 2008.
• Bursa Efek Indonesia diproyeksikan melakukan transaksi
harian sebesar 3,35 Triliun Rupiah pada tahun 2008.**
* dikutip dari situs bursa efek indonesia,
http://www.bei.co.id/MainMenu/Education/MengenalPasarModal/tabid/137/lang/en-US/language/en-US/Default.aspx
** dikutip dari situs republika
http://www.republika.co.id/koran_detail.asp?id=315840&kat_id=389
Studi Kasus
• Pasar saham sangat cocok sebagai studi kasus
LinguSQL, karena :
– Bersifat mission-critical
– Melibatkan kepentingan finansial dalam jumlah
yang besar
– Sistem elektronik yang melibatkan pencatatan
transaksi ke dalam basis data
– Telah terdapat kasus-kasus kesalahan pada
programming yang menyebabkan kerugian
finansial pada transaksi pasar saham
Contoh Kesalahan Aplikasi
Pasar Saham
• 1 Maret 07 : Kesalahan pada aplikasi Dow Jones menyebabkan
kesalahan penghitungan data indeks saham selama 70 menit.
Kerugian berkisar jutaan dollar.*
• 7 November 07 : Kesalahan penampilan data harga saham oleh
Infolect di London Stock Exchange menyebabkan closing auction
diperpanjang selama 3 jam. **
• 8 Desember 05 : Kelemahan verifikasi aplikasi transaksi saham
menyebabkan pegawai sekuritas memasukkan harga penjualan
perdana saham J-Com sebesar 610.000 saham dengan harga 1 Yen.
Harga penjualan yang benar adalah 610.000 yen untuk 1 saham, yang
menyebabkan kerugian sebesar 347 juta dollar. ****
• 8 November 83 : Akumulasi kesalahan pembulatan indeks saham di
Vancouver Stock Exchange menyebabkan penurunan indeks saham
sebesar +- 500 poin. ***
* http://business.timesonline.co.uk/tol/business/industry_sectors/media/article1454771.ece
** http://www.ft.com/cms/s/0/73eb3454-8d52-11dc-a398-0000779fd2ac.html
*** www5.in.tum.de/~huckle/Vancouv.pdf
**** http://search.japantimes.co.jp/cgi-bin/nb20051209a2.html
Proses Bisnis Transaksi Saham
Proses Perdagangan
1.
2.
3.
4.
5.
Seorang investor yang ingin melakukan transaksi jual-beli
saham harus melalui broker/sekuritas yang terdaftar di bursa
saham.
Perintah pembelian/penjualan yang diberikan kepada broker
akan diteruskan ke lantai bursa.
Di lantai bursa, trader akan memasukkan penawaran
pembelian/penjualan tersebut ke dalam Jakarta Automatic
Trading System (JATS).
Apabila terdapat penawaran pembelian/penjualan yang
cocok (matched) dengan perintah investor, sistem JATS akan
memfinalisasikan transaksi tersebut.
Penyelesaian transaksi (kliring & pembayaran) akan
diselesaikan 3 hari setelah kejadian transaksi sebenarnya.
Diagram Transaksi Saham
Diambil dari : http://www.bei.co.id/MainMenu/Trading/StockTradingMechanism/tabid/81/lang/en-US/language/en-US/Default.aspx
Batasan dan Aturan
Transaksi Saham
• Aktifitas transaksi saham memiliki aturan dan
batasan yang ditentukan oleh :
– Regulasi perdagangan saham
– Praktik ekonomi lokal, mis. periode transaksi,
proses penyelesaian, hari libur, dll.
– Keterbatasan sistem, mis. jumlah transaksi
• Aturan dan batasan tersebut dapat digunakan
sebagai titik verifikasi LinguSQL.
Batasan dan Aturan
Transaksi Saham
Contoh Aturan dan Batasan :
•
•
•
•
•
•
Transaksi saham hanya dapat dilakukan pada hari kerja, Senin-Kamis (9.30-12.00,
13.30-16.00) dan Jumat (9.30-11.30, 14.00-16.00).
Tiap broker/sekuritas memiliki batas jumlah transaksi (trading limit) sesuai jumlah
jaminan untuk aktifitas transaksi selama satu hari.
Harga penawaran penjualan dan pembelian yang diajukan oleh broker tidak boleh
lebih/kurang sebesar X% dari harga normal (X adalah variabel yang ditentukan oleh
regulator sesuai dengan nilai saham, antara 20-50%)
Sistem melakukan keputusan pemetaan penjualan dan pembelian berdasarkan
prioritas harga dan waktu.Harga yang lebih tinggi akan lebih diprioritaskan daripada
harga rendah, apabila sama akan diproses berdasarkan waktu pencatatan.
Sistem harus melakukan pemeriksaan data transaksi untuk mencegah data-data
invalid masuk ke dalam database, misal kesalahan entri data, data yang tidak sesuai
skema baku, kesalahan sistem broker, dll.
Sistem harus memberi peringatan apabila terjadi fluktuasi dalam harga saham atau
volume perdagangan dalam satu hari. Anomali tersebut dapat menyebabkan sebuah
jenis saham diberi status suspend, dan tidak diperdagangkan selama masa
penyelidikan.
Studi Kasus LinguSQL :
Simulasi Transaksi Saham
Simulasi Transaksi Saham :
Studi Kasus LinguSQL
• LinguSQL akan menggunakan sebuah studi
kasus sederhana dari sistem transaksi saham
yang berdasarkan prosedur nyata.
• Sistem ini mensimulasikan aktifitas transaksi
saham dari pembelian, penjualan, dan finalisasi
transaksi yang terjadi pada pasar saham
Indonesia.
• Hasil akhir yang diharapkan adalah komponen
aplikasi kritis yang :
– Terverifikasikan secara formal (whitebox)
– Tervalidasikan dengan skenario (blackbox)
Diagram Simulasi
Transaksi Saham
Alur Simulasi Transaksi Saham
1.
2.
3.
4.
Seorang trader memasukkan penawaran pembelian saham ke
sistem dan kemudian akan tercatat di database permintaan beli
saham.
Trader lainnya memasukkan penawaran penjualan saham ke
sistem dan tercatat di database penawaran jual saham.
Sebuah mekanisme atau algoritma penyelesaian transaksi akan
berusaha memasangkan/memetakan harga yang cocok antara
permintaan jual dan beli.
Pada saat pengembangan mekanisme atau algoritma tersebut,
sebuah proses verifikasi akan dijalankan untuk memastikan
bahwa mekanisme tersebut telah mematuhi secara benar seluruh
batasan dan aturan yang ada.
•
5.
Kasus verifikasi ditentukan oleh pengembang dengan mengacu
pada aturan dan batasan pada praktek perdagangan saham.
Jika proses pemetaan dan proses verifikasi telah berhasil
dilakukan, sistem akan menghasilkan sebuah data transaksi final
yangakan tercatat di dalam database transaksi saham.
Komponen Transaksi Saham :
Studi Kasus LinguSQL
Aplikasi transaksi saham yang disimulasikan melibatkan
3 (tiga) komponen inti, yaitu :
1. Database
komponen ini berisi data-data yang hendak digunakan
dalam proses penyelesaian transaksi.
– Database Permintaan Beli Saham
Id
Timestamp
Broker_Id
Stock_Id
Amount
Buy_Price
Amount
Sell_Price
– Database Penawaran Jual Saham
Id
Timestamp
Broker_Id
Stock_Id
Komponen Transaksi Saham :
Studi Kasus LinguSQL
– Database Saham
Id
Update_Timestamp
Current_Price
Volume
Description
– Database Transaksi Saham
Id
Timestamp
Broker_Buy_Id
Broker_Sell_Id
Stock_Id
Amount
2. Mekanisme Penyelesaian Transaksi
Komponen ini berfungsi untuk melakukan pemetaan
antara permintaan beli saham dan penawaran jual
saham yang cocok secara harga.
Price
Komponen Transaksi Saham :
Studi Kasus LinguSQL
3. Mekanisme Verifikasi & Validasi
– Komponen ini berfungsi untuk melakukan verifikasi dan
validasi pada program mekanisme penyelesaian transaksi.
– Verifikasi dan validasi dilakukan untuk titik-titik berdasarkan
batasan dan aturan dari proses bisnis seperti telah dijelaskan
sebelumnya.
– Verifikasi dilakukan dengan pembuktian correctness sebuah
kode program secara formal.
– Validasi dilakukan dengan menjalankan beberapa skenario
dan mengecek apakah hasil dari operasi tersebut sesuai
dengan yang diharapkan.
Kasus Verifikasi
Simulasi Transaksi Saham
Kasus Verifikasi
Simulasi Transaksi Saham
• Batasan waktu
– Verifikasi pemeriksaan waktu dan periode transaksi yang valid.
• Batasan trading limit
– Verifikasi trading limit broker untuk tiap transaksi yang dilakukan
• Batasan jangkauan harga penawaran
– Verifikasi bahwa harga penawaran dan penjualan tidak boleh
melebihi/kurang dari batas yang telah ditentukan
• Prioritas pemetaan
– Verifikasi bahwa sistem melakukan pemetaan berdasarkan prioritas
yang telah ditentukan
• Pemeriksaan data input
– Verifikasi seluruh data transaksi yang masuk telah sesuai dan patuh
dengan bentuk dan skema baku yang telah ditentukan
• Pemeriksaan Anomali
– Verifikasi seluruh transaksi saham untuk mengetahui adanya
fluktuasi harga atau volume perdagangan saham
Algoritma Verifikasi :
Batasan Waktu
•
•
Verifikasi pemeriksaan waktu dan periode transaksi yang
valid.
Waktu dan periode yang valid adalah Senin-Kamis (9.3012.00, 13.30-16.00) dan Jumat (9.30-11.30, 14.0016.00).
Algoritma Prosedur :
1. Untuk pencatatan transaksi, sistem harus memeriksa
timestamp dari masing-masing transaksi.
2. Untuk tiap transaksi dengan waktu valid, masukkan ke
database yang sesuai.
3. Untuk tiap transaksi dengan waktu invalid, masukkan ke
database terpisah untuk pemeriksaan.
Algoritma Verifikasi :
Batasan Waktu (2)
Algoritma Verifikasi Prosedur :
1. Pastikan format waktu yang digunakan sesuai
dengan standar baku
2. Lakukan prosedur pemeriksaan waktu
3. Lakukan pemeriksaan untuk seluruh data valid
apakah memenuhi batasan waktu.
4. Lakukan pemeriksaan untuk seluruh data tidak
valid apakah benar di luar batasan waktu yang
ditentukan
Algoritma Verifikasi :
Batasan Trading Limit
•
•
Verifikasi trading limit broker untuk tiap transaksi yang dilakukan
Trading limit masing-masing broker ditentukan oleh KPEI sesuai
dengan reputasi dan nilai jaminan.
Algoritma Prosedur :
1. Sebelum pencatatan transaksi, sistem harus memeriksa total jumlah
transaksi yang telah dilakukan oleh broker tersebut pada hari itu.
2. Lakukan pembandingan antara trading limit dengan total transaksi
yang telah dilakukan ditambah transaksi yang akan dilakukan.
3. Jika total transaksi melebihi trading limit maka lakukan penolakan
secara otomatis.
4. Jika total transaksi belum melebihi trading limit maka lakukan
pencatatan transaksi tersebut.
Algoritma Verifikasi :
Batasan Trading Limit (2)
Algoritma Verifikasi Prosedur :
1. Pastikan trading limit dari broker tidak sama dengan nol
atau minus
2. Catatkan transaksi dengan nilai transaksi yang masih
dibawah nilai total trading limit
3. Lakukan prosedur pengecekan trading limit untuk
transaksi tersebut
4. Sistem harus menerima transaksi tersebut
5. Catatkan transaksi dengan nilai transaksi yang diatas
nilai total trading limit
6. Lakukan prosedur pengecekan trading limit untuk
transaksi tersebut
7. Sistem harus menolak transaksi tersebut
Algoritma Verifikasi :
Batasan Jangkauan Harga
•
•
Verifikasi bahwa harga penawaran dan penjualan tidak
boleh melebihi/kurang dari batas yang telah ditentukan
Batas yang digunakan pada simulasi ini adalah +- 20%
Algoritma Prosedur :
1. Sebelum pencatatan transaksi, sistem harus memeriksa
harga saham paling terakhir
2. Lakukan pembandingan antara harga saham dengan
harga saham yang ditawarkan untuk dibeli/dijual
3. Jika perbedaan mencapai +- 20% maka sistem akan
menolak transaksi tersebut
4. Jika perbedaan harga belum tidak melanggar jangkauan
tersebut maka sistem akan mencatat transaksi
Algoritma Verifikasi :
Batasan Jangkauan Harga (2)
Algoritma Verifikasi Prosedur :
1.
Pastikan nilai saham yang tercatat tidak nol atau minus
2.
Catatkan transaksi dengan nilai transaksi yang masih diantara jangkauan
harga
3.
Lakukan prosedur pengecekan jangkauan harga untuk transaksi tersebut
4.
Sistem harus menerima transaksi tersebut
5.
Catatkan transaksi dengan nilai transaksi yang berada diatas jangkauan
harga
6.
Lakukan prosedur pengecekan jangkauan harga untuk transaksi tersebut
7. Sistem harus menolak transaksi tersebut
8.
Catatkan transaksi dengan nilai transaksi yang berada dibawah jangkauan
harga
9.
Lakukan prosedur pengecekan jangkauan harga untuk transaksi tersebut
10. Sistem harus menolak transaksi tersebut
Algoritma Verifikasi :
Proses Pemetaan Jual/Beli
•
•
Proses pemetaan ini adalah fungsi utama dari sistem simulasi
transaksi saham
Verifikasi yang dilakukan melingkupi ketepatan prioritas serta
kenetralan hasil pemetaan
Algoritma Prosedur :
1. Sistem mengambil data-data dari permintaan beli saham dan
penawaran jual saham
2. Data-data tersebut diurutkan dari yang memiliki nilai total transaksi
paling besar ke yang paling kecil
3. Lakukan pencocokan permintaan pembelian dengan penjualan
dimulai dari yang paling besar nilainya
4. Jika ada permintaan/penawaran dengan harga yang sama maka
yang diutamakan adalah yang paling dulu terdaftar
5. Masukkan seluruh hasil pemetaan ke database transaksi saham
Algoritma Verifikasi :
Proses Pemetaan Jual/Beli (2)
Algoritma Verifikasi Prioritas :
1. Catatkan beberapa transaksi pembelian dan penjualan
dengan nilai yang sama namun waktu yang berbeda ke
dalam database
2. Lakukan proses pemetaan transaksi saham
3. Simpan data transaksi saham yang dihasilkan
4. Tukar waktu pencatatan di dalam transaksi pembelian
dan penjualan
5. Lakukan proses pemetaan transaksi saham
6. Bandingkan hasilnya dengan data transaksi saham
sebelumnya, hasilnya harus berbeda
Algoritma Verifikasi :
Proses Pemetaan Jual/Beli (3)
Algoritma Verifikasi Netralitas :
1. Catatkan beberapa transaksi pembelian dan penjualan
ke dalam database
2. Lakukan proses pemetaan transaksi saham
3. Simpan data transaksi saham yang dihasilkan
4. Ubah data broker pada transaksi pembelian dan
penjualan pada database
5. Lakukan proses pemetaan transaksi saham
6. Bandingkan hasilnya dengan data transaksi saham
sebelumnya, hasilnya harus sama dengan hasil
transaksi sebelumnya
Algoritma Verifikasi :
Pemeriksaan Data Input
•
•
Verifikasi seluruh data transaksi yang masuk telah sesuai dan patuh dengan
bentuk dan skema baku yang telah ditentukan
Contohnya adalah pemeriksaan kelengkapan data transaksi, broker yang
invalid, atau saham yang invalid.
Algoritma Prosedur :
1. Sebelum melakukan pencatatan transaksi, sistem melakukan pemeriksaan
kelengkapan seluruh field data transaksi.
2. Apabila terdapat field yang hilang maka data tersebut akan dimasukkan ke
database tersendiri untuk pemeriksaan.
3. Sistem melakukan pemeriksaan field identitas broker yang melakukan
transaksi
4. Apabila broker tersebut invalid atau dalam status suspend maka data
tersebut akan dimasukkan ke database tersendiri untuk pemeriksaan.
5. Sistem melakukan pemeriksaan field identitas saham transaksi
6. Apabila saham tersebut invalid atau dalam status suspend maka data
tersebut akan dimasukkan ke database tersendiri untuk pemeriksaan.
Algoritma Verifikasi :
Pemeriksaan Data Input (2)
Algoritma Verifikasi Kevalidan Saham:
1. Pastikan seluruh field pada data transaksi telah terisi
dengan benar
2. Catatkan transaksi pembelian dengan data identitas
saham yang valid
3. Lakukan prosedur pemeriksaan data
4. Sistem harus mencatatkan transaksi tersebut
5. Catatkan transaksi pembelian dengan data identitas
saham yang tidak valid
6. Lakukan prosedur pemeriksaan data
7. Sistem harus memasukkan transaksi tersebut ke
database tersendiri
Algoritma Verifikasi :
Pemeriksaan Data Input (3)
Algoritma Verifikasi Kevalidan Broker:
1. Pastikan seluruh field pada data transaksi telah terisi
dengan benar
2. Catatkan transaksi pembelian dengan data identitas
broker yang valid
3. Lakukan prosedur pemeriksaan data
4. Sistem harus mencatatkan transaksi tersebut
5. Catatkan transaksi pembelian dengan data identitas
broker yang tidak valid
6. Lakukan prosedur pemeriksaan data
7. Sistem harus memasukkan transaksi tersebut ke
database tersendiri
Kesimpulan
• LinguSQL menggunakan studi kasus transaksi saham
karena sifatnya yang mission-critical, bergantung kepada
database, serta memiliki kepentingan finansial yang tinggi.
• Aplikasi simulasi transaksi saham yang digunakan hanya
melibatkan pencatatan transaksi penjualan,pembelian,
serta proses pemetaan final transaksi saham.
• Verifikasi LinguSQL dilakukan pada tahap pengembangan
dan berfungsi untuk memastikan kebenaran algoritma
sebuah komponen.
• Kasus verifikasi untuk transaksi saham dapat
menggunakan batasan dan aturan yang berlaku di dunia
nyata.
Selanjutnya :
Presentasi simulasi transaksi saham
dalam LinguSQL dan demo.
Terima Kasih
Download