• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI. 4.1 Lingkungan Implementasi. 4.2 Perangkat Keras. 4.3 Perangkat Lunak

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV IMPLEMENTASI. 4.1 Lingkungan Implementasi. 4.2 Perangkat Keras. 4.3 Perangkat Lunak"

Copied!
15
0
0

Teks penuh

(1)

IV-1

BAB IV

IMPLEMENTASI

Bab ini menjelaskan tentang implementasi perangkat lunak berdasarkan hasil analisis dan perancangan yang telah dibuat pada bab sebelumnya. Penjelasan mengenai implementasi perangkat lunak meliputi lingkungan implementasi, perangkat keras dan perangkat lunak yang digunakan, implementasi kelas, serta antarmuka perangkat lunak.

4.1 Lingkungan Implementasi

Dio-StockAnalyzer dikembangkan pada lingkungan berbasis windows dengan menggunakan sistem operasi Microsoft Windows XP Professional Edition Service Pack 2. Selain itu lingkungan ini juga telah dilengkapi dengan .NET Framework 2.0.

4.2 Perangkat Keras

Perangkat keras yang digunakan adalah seperangkat komputer dengan spesifikasi sebagai berikut:

1. Monitor : 17”

2. CPU : AMD Athlon(tm) XP 2400+, ~2.0 GHz

3. Harddisk : 120 GB

4. Kartu Grafis : ATI Radeon 9600 128 MB

5. Memori : 512 MB DDR SDRAM

6. Perangkat Masukan : Tetikus, Papan Kunci

4.3 Perangkat Lunak

Dio-StockAnalyzer dikembangkan menggunakan bahasa pemrograman C# dengan kakas bantuan IDE Sharp Develop 2.2.1.2648. Pemilihan IDE ini dikarenakan kakas ini sifatnya Open Source dan memiliki fungsionalitas dan stabilitas yang tidak kalah dengan kakas lain yang sifatnya komersial. Selain itu kakas ini lebih ringan dalam penggunaan prosesor dan memori dibandingkan dengan versi komersial sehingga saat pengembangan tidak ada hambatan dalam hal kecepatan proses, baik saat perancangan maupun saat kompilasi. Untuk memudahkan pembangunan grafik digunakan library pihak ketiga yaitu ZedGraph v514 untuk C# yang kompatibel

(2)

dengan .NET 2.0. Library ini juga sifatnya Open Source dan dapat menampilkan grafik yang cukup lengkap walaupun tampilannya tidak semenarik versi komersial. Selain itu, digunakan juga library PluginDefinition v1.0 yang berisi kelas interface yang digunakan untuk mengimplementasikan indikator teknikal dengan konsep plugin sederhana.

4.4 Batasan Implementasi

Beberapa batasan dalam implementasi perangkat lunak Dio-StockAnalyzer adalah: 1. Tidak semua data saham di server yahoo finance ditampilkan pada daftar

saham saat pertama kali aplikasi dijalankan. Hal ini dikarenakan kesulitan dalam pengisian nama perusahaan karena tidak dicantumkan pada data saham yang di-download sehingga harus diisikan secara manual. Akan tetapi pengguna dapat menambahkan data saham yang baru pada bagian manajemen data dari perangkat lunak. Penambahan tersebut hanya dapat dilakukan jika file yang terkait data baru tersebut ada di server yahoo finance.

2. Grafik harga saham dan volume hanya untuk satu data saham dalam sekali pembangkitan.

3. Analisis Rate of Change dan grafik yang dibangkitkan hanya untuk satu data saham dalam sekali analisis.

4. Tidak dilakukan validasi terhadap plugin lain yang dibuat dan digunakan dalam aplikasi ini.

4.5 Implementasi Kelas

Implementasi kelas-kelas berdasarkan perancangan modul-modul perangkat lunak pada bab sebelumnya dilakukan dengan bahasa C# sebagai berikut:

4.5.1 Kelas FormMain

Kelas ini merupakan kelas utama pada perangkat lunak Dio-StockAnalyzer. Pada kelas ini diimplementasikan fungsi-fungsi utama perangkat lunak yaitu manajemen data, pembangkitan grafik, analisis teknikal, dan koneksi internet.

namespace DioStockAnalyzer {

public partial class FormMain : Form {

(3)

List<MyPluginDefinitions.dStock> stock = new List<MyPluginDefinitions.dStock>();

DataTable dt = new DataTable(); WebClient wc = new WebClient();

WebProxy webProxy;

string proxyFile = "proxy.conf"; bool useProxy = false;

private bool useAuth = false; string proxyServer = ""; int port = 8080; string username = ""; string passwd = ""; /*konstruktor FormMain*/ public FormMain();

/*fungsi untuk menampilkan tooltip saat pointer mouse berapa di atas suatu mode pada grafik*/

private string MyPointValueHandler( ZedGraphControl control, GraphPane pane,CurveItem curve, int iPt ); /*fungsi dari tombol untuk meng-generate grafik pada panel tertentu dan memanggil fungsi untuk analisis*/

void ButtonDrawClick(object sender, EventArgs e); /*fungsi untuk meng-generate grafik dan memanggil fungsi untuk analisis*/

void genGraph(ZedGraphControl chart,int num, string ylabel, string title);

/*fungsi pada tombol untuk menjalankan fungsi analisis*/

void BtnAnalisisClick(object sender, EventArgs e); /*fungsi untuk menampilkan daftar data saham*/

void DirectoryLister();

/*fungsi dari tombol untuk mengupdate data saham*/

void BtnUpdateStockClick(object sender, EventArgs e); /*fungsi untuk memanggil form download untuk mendownload saham tertentu*/

void getQuote(List<string> symbol);

/*fungsi pada tombol untuk menambahkan data saham baru*/

void BtnAddStockClick(object sender, EventArgs e); /*fungsi pada tombol untuk mengatur setting proxy*/

void BtnProxyClick(object sender, EventArgs e); /*fungsi untuk meload setting proxy dari file konfigurasi*/

void loadProxyConfiguration();

/*fungsi pada tombol untuk memanggil form pelaporan sinyal perdagangan*/

void BtnReportClick(object sender, EventArgs e); /*fungsi pada tombol untuk menampilkan help cara membaca grafik*/

(4)

/*fungsi untuk menampilkan daftar indikator teknikal*/ void LoadMethod();

/*fungsi pada tombol untuk memanggil form pengisian parameter*/

private void button1_Click(object sender, EventArgs e);

/*fungsi untuk mengupdate daftar parameter indikator teknikal*/

void refreshParameterList();

/*fungsi pada tombol untuk menampilkan deskripsi mengenai indikator yang dipilih*/

private void btnShowDesc_Click(object sender, EventArgs e);

} }

Gambar IV-1 Implementasi Kelas FormMain 4.5.2 Kelas FormAddStock

Kelas ini digunakan untuk menangani penambahan file data saham. Pada kelas ini dilakukan interaksi dengan pengguna untuk meminta masukan kemudian mengirimkan masukan tersebut ke kelas FormMain untuk diproses.

namespace RateofChange {

public partial class FormAddStock : Form {

public string symbol = "";

/* konstruktor kelas FormAddStock */ public FormAddStock();

/* tombol untuk memanggil fungsi penambahan data */

void BtnAddStockClick(object sender, EventArgs e); }

}

Gambar IV-2 Implementasi Kelas FormAddStock 4.5.3 Kelas FormProxy

Kelas ini digunakan untuk menangani konfigurasi koneksi internet. Pada kelas ini dilakukan interaksi dengan pengguna untuk meminta masukan kemudian mengirimkan masukan tersebut ke kelas FormMain untuk diproses.

namespace RateofChange {

(5)

{

/* konstruktor kelas FormProxy */ public FormProxy();

/* tombol untuk mengakses fungsi konfigurasi koneksi Internet */

void BtnSaveProxyClick(object sender, EventArgs e); }

}

Gambar IV-3 Implementasi Kelas FormProxy 4.5.4 Kelas Program

Modul utama untuk menjalankan program utama serta modul untuk menampilkan antarmuka program.

namespace RateofChange {

static class Program {

[STAThread]

static void Main(); }

}

Gambar IV-4 Implementasi Kelas Program 4.5.5 Kelas PluginHandler

Kelas ini digunakan untuk menangani plugin yang terletak dalam suatu folder khusus dimana plugin ini berisi implementasi dari technical indicator.

namespace DioStockAnalyzer {

public class PluginHandler {

static private PluginHandler m_Instance = null; private System.Collections.Hashtable m_haPlugins = new System.Collections.Hashtable();

private PluginHandler();

/*fungsi berisi singleton untuk menginstansiasi plugin handler*/

static public PluginHandler Create();

/*fungsi untuk mendeteksi plugin-plugin yang ada di dalam folder "indicators"*/

public int LoadPlugins(); /*fungsi untuk meload plugin*/

(6)

/*fungsi yang mengembalikan daftar plugin*/ public System.Collections.Hashtable GetPlugins(); }

}

Gambar IV-5 Implementasi Kelas PluginHandler 4.5.6 Kelas dStock

Kelas ini digunakan untuk menampung data-data saham yang di-load dari file data historis saham untuk kemudian diproses lebih lanjut.

namespace MyPluginDefinitions {

public class dStock {

private DateTime date; private double open; private double high;

private double low; private double close; private double volume;

/* konstruktor default kelas dStock */ public dStock();

/* konstruktor dengan parameter input alamat file data saham */ public dStock(string input);

} }

Gambar IV-6 Implementasi Kelas dStock 4.5.7 Kelas FormReport

Kelas ini digunakan untuk menampilkan laporan sinyal-sinyal perdagangan hasil analisis menggunakan Rate of Change.

namespace RateofChange {

public partial class FormReport : Form {

/*konstruktor dengan parameter data sinyal jual dan beli*/

public FormReport(string stockname, DateTime start, DateTime end, string type, List<DateTime> buysignals, List<DateTime> sellsignals);

/*fungsi yang menampilkan daftar sinyal beli dan jual*/

void genReport(string stockname, DateTime start, DateTime end, string type, List<DateTime> buysignals, List<DateTime> sellsignals);

(7)

}

Gambar IV-7 Implementasi Kelas FormReport 4.5.8 Kelas FormDownload

Kelas ini digunakan untuk men-download file data saham dari situs sumber data saham di internet. namespace RateofChange { /// <summary> /// Description of FormDownload. /// </summary>

public partial class FormDownload : Form {

List<string> symbol = new List<string>(); WebClient wc = new WebClient();

/* konstruktor kelas FomrDownload */

public FormDownload(List<string> sym, WebClient client); /* fungsi untuk mendownload file dari internet */

public void StartDownload(); }

Gambar IV-8 Implementasi Kelas FormDownload 4.5.9 Kelas MyPluginDefinitions

Kelas ini merupakan interface untuk mengimplementasikan plugin.

namespace MyPluginDefinitions {

/*interface untuk membuat plugin*/ public interface IMySpecialPlugin {

/*fungsi yang mengembalikan deskripsi singkat dari plugin*/

string GetShortDescription();

/*fungsi yang mengembalikan deskripsi lengkap dari plugin*/

string GetLongDescription();

/*fungsi untuk menampilkan dialog pengisian parameter plugin*/

void ShowDialog(System.Windows.Forms.IWin32Window owner); /*fungsi untuk menjalankan analisa melalui plugin*/

void Analyze(List<dStock> stockinput, GraphPane graphinput, double[] dateinput, double[] openinput, double[] highinput, double[] lowinput, double[] closeinput, double[] volumeinput);

(8)

/*fungsi yang mengembalikan daftar parameter dari plugin*/

String[] getParameterStringList();

/*fungsi untuk menampilkan laporan sinyal perdagangan hasil analisa plugin*/

void showReport(String stockname); }

}

Gambar IV-9 Implementasi Kelas MyPluginDefinitions 4.5.10 Kelas RateofChange

Kelas ini merupakan implementasi dari indikator teknikal Rate of Change dalam bentuk plugin. Di dalam kelas ini terdapat fungsi-fungsi untuk menganalisa data historis saham dengan metode Rate of Change, lalu mendeteksi sinyal-sinyal perdagangan dan kemudian menampilkan laporannya.

namespace RateofChange {

public class RateofChange : MyPluginDefinitions.IMySpecialPlugin {

private List<MyPluginDefinitions.dStock> stock; public Parameters objForm;

private List<DateTime> buydate = new List<DateTime>(); private List<DateTime> selldate = new List<DateTime>(); private int periode;

private bool showsignal; public RateofChange();

#region MySpecialPlugin Members

/*fungsi yang mengembalikan deskripsi singkat dari indikator ROC*/

public string GetShortDescription();

/*fungsi yang memanggil form pengisian parameter indikator ROC*/

public void ShowDialog(System.Windows.Forms.IWin32Window owner);

/*fungsi yang mengembalikan deskripsi lengkap dari ROC*/ public string GetLongDescription();

/*fungsi yang menjalankan analisa saham dengan metode ROC*/ public void Analyze(List<MyPluginDefinitions.dStock>

stockinput, GraphPane graphinput, double[] dateinput, double[] openinput, double[] highinput, double[] lowinput, double[] closeinput, double[] volumeinput);

/*fungsi untuk menghitung nilai-nilai ROC*/ double[] ROC();

/*fungsi yang mengembalikan nilai ROC tertinggi*/ double maxROCValue(double[] ROCList);

(9)

/*fungsi yang mengembalikan nilai ROC terendah*/ double minROCValue(double[] ROCList);

/*fungsi yang menghasilkan data sinyal beli*/ PointPairList BuySignal(double[] ROCList); /*fungsi yang menghasilkan data sinyal jual*/ PointPairList SellSignal(double[] ROCList);

/*fungsi yang mengembalikan daftar parameter ROC*/ public String[] getParameterStringList();

/*fungsi yang menampilkan laporan sinyal-sinyal perdagangan*/ public void showReport(String stockname);

#endregion }

}

(10)

4.6 Implementasi Antarmuka

Antarmuka dibangun menggunakan IDE Sharp Develop dengan tambahan library ZedGraph untuk membangun grafik.

4.6.1 Antarmuka Utama

Gambar IV-11 Antarmuka Utama Antar muka utama ini memiliki bagian-bagian berikut:

1. Bagian ini digunakan untuk mengelola data saham yang dapat digunakan oleh aplikasi. Pada bagian ini terdapat table daftar saham yang berisi nama perusahaan dan simbol saham tersebut di bursa saham. Selain itu terdapat tombol-tombol berikut:

a. Add, tombol ini digunakan untuk menampilkan form penambahan data saham. Saham yang ditambahkan akan ditambahkan sebagai baris baru di tabel.

b. Update, tombol ini digunakan untuk memutakhirkan data-data saham yang tercantum di tabel.

1

2

3

(11)

c. Proxy, tombol ini digunakan untuk menampilkan form konfigurasi koneksi internet.

2. Bagian ini digunakan untuk menggambar grafik harga saham. Untuk menggambar grafik pengguna harus menekan tombol Draw. Terdapat tiga tombol radio untuk memilih tipe grafik yang diinginkan:

a. Line, grafik yang ditampilkan adalah tipe garis biasa b. Bar, grafik yang ditampilkan adalah tipe batang

c. Candle, grafik yang ditampilkan adalah tipe Japanese Candle Stick. Grafik yang dihasilkan akan digambarkan pada bagian 3.

3. Bagian ini berfungsi untuk menampilkan grafik saham yang terdiri dari grafik historis harga saham di bagian atas, grafik volume perdagangan di bagian tengah, dan grafik hasil analisis di bagian bawah.

4. Bagian ini digunakan untuk melakukan analisis Rate of Change. Pada bagian ini terdapat combo box berisi pilihan indikator teknikal yang ingin digunakan untuk menganalisa grafik historis saham (dalam Tugas Akhir ini kita memilih Rate of Change (ROC)). Di bawah combo box tersebut terdapat tombol untuk menampilkan deskripsi mengenai plugin indikator teknikal yang kita pilih tersebut (dalam hal ini Rate of Change). Di bawahnya lagi terdapat kotak berisi daftar parameter dari indikator teknikal yang kita pilih. Untuk mengubah nilai dari parameter-parameter tersebut di bawah kotak daftar parameter tersebut terdapat tombol Edit Parameter yang bila diklik akan menampilkan dialog untuk pengubahan nilai parameter-parameter tersebut. Bila parameter-parameter tersebut sudah diisi sesuai kebutuhan, lalu kita mengklik tombol analize untuk menjalankan analisa sesuai indikator teknikal yang dipilih di atas dan hasilnya ditampilkan pada panel yang paling bawah dari bagian 3. Setelah melakukan analisa kita juga bisa melihat laporan berisi daftar sinyal-sinyal perdagangan yang terdeteksi dari grafik analisa dengan mengklik tombol Signal Report.

(12)

4.6.2 Antarmuka Tambah Data Saham

Gambar IV-12 Antarmuka Tambah Data Saham

Gambar IV-12 menampilkan antar muka penambahan data saham. Antarmuka ini ditampilkan setelah pengguna menekan tombol Add pada antarmuka utama. Pengguna harus memasukkan nama perusahaan dan simbol saham di bursa saham lalu menekan tombol Add. Tombol Cancel digunakan untuk membatalkan proses penambahan.

4.6.3 Antarmuka Konfigurasi Koneksi Internet

Gambar IV-13 Antarmuka Konfigurasi Koneksi Internet

Gambar IV-13 merupakan antarmuka pengaturan koneksi internet. Terdapat dua pilihan utama pada antarmuka ini, yaitu:

1. Pilihan koneksi langsung ke internet dengan pengaturan otomatis.

2. Pilihan koneksi dengan konfigurasi manual. Pilihan ini membutuhkan nama proxy yang ada, port, dan otentikasi yang membutuhkan username dan password.

(13)

4.6.4 Antarmuka Bantuan Cara Membaca Grafik Harga Saham

Gambar IV-14 Antarmuka Bantuan Cara Membaca Grafik Harga Saham

Gambar IV-14 menampilkan antarmuka berupa dialog yang menjelaskan cara membaca masing-masing model grafik yang merepresentasikan data historis saham.

(14)

4.6.5 Antarmuka Deskripsi Singkat Indikator Teknikal Rate of Change

Gambar IV-15 Antarmuka Deskripsi Singkat Indikator Teknikal Rate of Change

Gambar IV-15 menampilkan antarmuka yang berisi deskripsi singkat mengenai indikator teknikal (dalam Tugas Akhir ini yaitu Rate of Change) yang dipilih pada antarmuka utama di bagian 4 sebelumnya.

4.6.6 Antarmuka Pengubahan Nilai Parameter Rate of Change

Gambar IV-16 Antarmuka Pengubahan Parameter Rate of Change

Gambar IV-16 menampilkan antarmuka untuk pengubahan nilai parameter yang dibutuhkan untuk menjalankan analisa dengan indikator teknikal Rate of Change. Period diisi dengan periode perhitungan (misalnya 12) dalam satuan hari. Terdapat kotak cek untuk menentukan apakah ingin ditampilkannya sinyal-sinyal perdagangan

(15)

pada grafik hasil analisis atau tidak. Klik OK bila ingin menyetujuinya dan Cancel untuk membatalkan pengubahan.

4.6.7 Antarmuka Laporan

Gambar IV-17 Antarmuka Laporan Kemunculan Sinyal-sinyal Perdagangan

Gambar IV-17 menampilkan antarmuka laporan hasil analisis. Pada laporan tersebut terdapat nama perusahaan beserta simbol nya, tanggal dilakukan analisis, periode yang digunakan, serta daftar tanggal-tanggal munculnya sinyal pembelian dan penjualan.

Gambar

Gambar IV-1 Implementasi Kelas FormMain
Gambar IV-3 Implementasi Kelas FormProxy
Gambar IV-5 Implementasi Kelas PluginHandler
Gambar IV-8 Implementasi Kelas FormDownload
+7

Referensi

Dokumen terkait

Teori tersebut juga sesuai dengan hasil penelitian yang dilakukan Merry Fanada (2012) yang menyebutkan bahwa ada hubungan yang bermakna antara Status Imunisasi

Penelitian tentang posisi pemberitaan kasus Ervani Emy Handayani di Surat Kabar Harian Kedaulatan Rakyat dan Harian Jogja ini merupakan sebuah diskusi mengenai arah

bahwa calon mahasiswa baru Program S1 Kependidikan Bagi Guru Dalam Jabatan Melalui Pengakuan Pengalaman Kerja dan Hasil Belajar (PPKHB) Universitas Negeri Padang semester

Proyek akhir ini membuat software simulasi sistem kontrol Induced Draft (ID-Fan) yang dibangun menggunakan software Visual Basic 6.0 berdasarkan fungsi dan kalkulasi logic

Mesnet donatısı hesabı yapılırken Xküçük/Xbüyük oranına bakmak gereklidir.Buna göre Xk/Xb&lt;0,8 olması durumunda aradaki moment farkının 2/3’lük kısmı

Sakit, merah, dan bengkak adalah gejala utamanya. Intensitas sakit mencerminkan hebatnya pembengkakan palpebra. 1 Kalau menunduk, rasa sakit bertambah. Pada pemeriksaan terlihat

 Adjustable guard yaitu  pengaman yang dipasan pada mesin-mesin seperti geregaji mesin, pengaman mesin  jenis ini merupakan pengaman mesin yang diatur pemasangannya

Fitur-fitur yang dikerjakan pada Manage Akun Penyedia jasa dan user, Manage Artikel Penyedia Jasa, dan Manage Kategori Produk Makanan adalah Lihat profil user,