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 perangkat lunak yang digunakan, implementasi kelas, serta antarmuka perangkat lunak.
4.1 Lingkungan Implementasi
PRStock 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 3.5.
4.2 Perangkat Keras
Perangkat keras yang digunakan adalah seperangkat komputer dengan spesifikasi sebagai berikut:
1. Monitor : 15”
2. CPU : Intel Pentium IV 2.4 GHz
3. Harddisk : 120 GB
4. Kartu Grafis : GeForce2 MX 400 64 MB
5. Memori : 512 MB DDR SDRAM
6. Perangkat Masukan : Tetikus, Papan Kunci
4.3 Perangkat Lunak
PRStock dikembangkan menggunakan bahasa pemrograman Visual C# dengan kakas bantuan 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
▸ Baca selengkapnya: yang digunakan sebagai anoda pada aki adalah
(2)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 dengan .NET 2.0. Library ini juga sifatnya Open Source dan dapat menampilkan grafik yang cukup lengkap walaupun tampilannya tidak semenarik versi komersial.
4.4 Batasan Implementasi
Beberapa batasan dalam implementasi perangkat lunak PRStock adalah sebagai berikut :
1. Tidak semua data saham yang disediakan oleh situs Yahoo! Finance ditampilkan pada daftar pilihan pengunduhan 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 pengunduhan data dari perangkat lunak. Penambahan tersebut hanya dapat dilakukan jika file yang terkait data baru tersebut disediakan oleh situs Yahoo! Finance.
2. Grafik pergerakan harga saham hanya dapat ditampilkan dalam bentuk candlestick chart.
3. Laporan yang ditampilkan hanya meliputi kondisi overbought dan atau oversold serta tanggal terjadinya kondisi.
4.5 Implementasi Kelas
Implementasi kelas-kelas didasarkan pada perancangan modul-modul perangkat lunak pada bab sebelumnya.
4.5.1 Kelas FormMain
Kelas ini merupakan kelas antarmuka utama pada perangkat lunak PRStock. Pada kelas ini diimplementasikan fungsi-fungsi untuk menggambar grafik dan
menampilkan hasil analisis yang telah dilakukan. Selain itu, terdapat fungsi-fungsi lain yang menangani aksi pengguna, seperti meng-click tombol-tombol menu dan menempatkan pointer mouse di atas grafik data historis saham dan grafik hasil analisis saham.
Tabel IV-1 Implementasi Kelas FormMain namespace PRStock
{
public partial class FormMain : Form
{
public static GraphController graphData;
public static ConnectionController connection;
public static List<int> overboughtIndex;
public static List<int> oversoldIndex;
/* Konstruktor Kelas FormMain */
public FormMain()
/* Fungsi yang menangani kejadian pada saat tombol "Draw Graph" di-
click oleh pengguna */
private void btDraw_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat tombol "Download Data"
di-click oleh pengguna */
private void btDownload_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat tombol "Connection
Settings" di-click oleh pengguna */
private void btConnection_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat FormMain mendapat
sorotan utama */
private void FormMain_Activated(object sender, EventArgs e)
/* Fungsi untuk mengisi dan menampilkan report dari hasil analisis
pada FormMain */
private void showSignalListBox()
/* Fungsi untuk menampilkan data saham atau hasil analisis pada saat
pengguna meletakkan pointer mouse di atas grafik data saham atau grafik hasil analisis saham */
private string MyPointValueHandler(ZedGraphControl control,
GraphPane pane, CurveItem curve, int i)
/* Fungsi untuk melakukan penggambaran data historis saham atau data
hasil analisis ke dalam grafik */
private void drawGraph(ZedGraphControl zgControl, int type, string
title) }
}
4.5.2 Kelas FormDraw
Kelas ini merupakan kelas antarmuka untuk pemilihan data saham yang akan dianalisis oleh pengguna. Kelas ini digunakan untuk menentukan data yang akan
dimasukkan ke dalam GraphController yang terdapat pada kelas FormMain untuk kemudian dianalisis dan digambarkan ke dalam grafik.
Tabel IV-2 Implementasi Kelas FormDraw namespace PRStock
{
public partial class FormDraw : Form
{
private List<Tupple> fileDesc = new List<Tupple>();
private string appDataPath = Application.StartupPath + "\\Data";
/* Konstruktor Kelas FormDraw */
public FormDraw()
/* Fungsi yang menangani kejadian pada saat tombol "Confirm"
di-click */
private void btConfirm_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat tombol "Cancel" di-click
*/
private void btCancel_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat pengguna mengganti
pilihan data saham */
private void cbFilePath_SelectedIndexChanged(object sender,
EventArgs e)
/* Fungsi untuk melakukan penamaan pada masing-masing file yang
dapat dipilih */
private void generateFileDescValue()
/* Fungsi untuk menampilkan pilihan file yang dapat dipilih */
private void loadFilePathOption()
} }
4.5.3 Kelas FormConnection
Kelas ini merupakan kelas antarmuka untuk pengaturan koneksi perangkat lunak ke internet. Pada kelas ini diimplementasikan fungsi untuk menyimpan konfigurasi internet ke dalam ConnectionController yang terdapat pada kelas FormMain sesuai dengan pengubahan yang dilakukan pengguna.
Tabel IV-3 Implementasi Kelas FormConnection namespace PRStock
{
public partial class FormConnection : Form
{
/* Konstruktor Kelas FormConnection */
public FormConnection()
/* Fungsi yang menangani kejadian pada saat tombol "Confirm"
di-click oleh pengguna */
private void btConfirm_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat tombol "Cancel" di-click
oleh pengguna */
private void btCancel_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat pengguna mengganti jenis
koneksi ke internet */
private void rbProxy_CheckedChanged(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat pengguna mengganti jenis
authentifikasi */
private void cbAunthentification_CheckedChanged(object sender,
EventArgs e)
/* Fungsi melakukan loading pengaturan yang tersimpan pada
ConnectionController */
private void loadSavedConfiguration()
} }
4.5.4 Kelas FormDownload
Kelas ini merupakan kelas antarmuka untuk pengunduhan data historis perusahaan dari internet.
Tabel IV-4 Implementasi Kelas FormDownload namespace PRStock
{
public partial class FormDownload : Form
{
public static string companyDataFilePath = Application.StartupPath +
"/Data/companydata.txt"; public static List<Tupple> companyDesc = new List<Tupple>();
/* Konstruktor Kelas FormDownload */
public FormDownload()
/* Fungsi yang menangani kejadian pada saat tombol "Download"
di-click oleh pengguna */
private void btDownload_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat tombol "Cancel" di-click
oleh pengguna */
private void btCancel_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat tombol "Add" di-click
oleh pengguna */
private void btAdd_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat tombol "Delete" di-click
oleh pengguna */
private void btDelete_Click(object sender, EventArgs e)
/* Fungsi untuk menampilkan pilihan perusahaan*/
private void loadCompanyNameOption()
/* Fungsi untuk melakukan penamaan pada masing-masing perusahaan
yang datanya dapat diunduh */
private void generateCompanyDescValue()
/* Fungsi untuk melakukan pemerikasaan terhadap input dari pengguna
*/
private bool checkInputData(string name, Control day, Control month,
Control year) }
}
4.5.5 Kelas FormCompanyData
Kelas ini merupakan kelas antarmuka untuk penambahan nama dan kode perusahaan agar dapat diakses oleh kelas FormDownload.
Tabel IV-5 Implementasi Kelas FormCompanyData namespace PRStock
{
public partial class FormCompanyData : Form
{
private bool isNextLineNeeded = true;
/* Konstuktor Kelas FormCompanyData */
public FormCompanyData()
/* Fungsi yang menangani kejadian pada saat tombol "Confirm"
di-click oleh pengguna */
private void btConfirm_Click(object sender, EventArgs e)
/* Fungsi yang menangani kejadian pada saat tombol "Cancel" di-click
oleh pengguna */
private void btCancel_Click(object sender, EventArgs e)
/* Fungsi untuk menyimpan data yang telah dimasukkan pengguna ke
dalam file */
private bool saveConfiguration()
/* Fungsi untuk memeriksa apakah file penyimpan kosong atau tidak */
private void checkFile()
} }
4.5.6 Kelas FormDownloadProgress
Kelas ini merupakan kelas antarmuka untuk menampilkan proses pengunduhan data. Tabel IV-6 Implementasi Kelas FormDownloadProgress
namespace PRStock {
public partial class FormDownloadProgress : Form
{
private WebClient webConnectionClient;
private WebProxy proxyConfiguration;
private string filePath = Application.StartupPath +
"/Data/StockData/";
private string fileName;
private string address;
private bool isDownloading = true;
/* Konstruktor Kelas FormDownloadProgress */
public FormDownloadProgress(string f, string s)
/* Fungsi untuk melakukan loading konfigurasi internet yang
digunakan utuk pengunduhan */
private void loadProxyConfiguration()
/* Fungsi untuk melakukan pengunduhan data historis saham */
private void downloadFile(string url, string name, string path)
} }
4.5.7 Kelas GraphController
Kelas ini merupakan kelas controller dari kelas MyStock. Kelas ini menampung nama perusahaan, data-data harian saham perusahaan tersebut, periode perhitungan dengan metode WPR, dan tanggal pada saat keadaan overbought atau oversold terjadi. Pada kelas ini diimplementasikan fungsi untuk mengisi nilai %R ke dalam data saham. Tabel IV-7 Implementasi Kelas GraphController
namespace PRStock {
public class GraphController
{
private string companyName;
private List<MyStock> stockList;
private int period = 14;
private bool isKosong = true;
private PointPairList obDate;
private PointPairList osDate;
/* Konstruktor Kelas GraphController */
public GraphController()
/* Konstruktor Kelas GraphController denga masukan */
public GraphController(string cn, List<MyStock> sl, int p)
/* Fungsi untuk mengisi nilai %R pada masing-masing periode */
public void genPRValue()
/* Fungsi yang mengembalikan nilai %R dari perhitungan terhadap
nilai masukan */
private double calculatePR(double close, double highest, double
lowest)
/* Fungsi yang mengembalikan harga tertinggi dan harga terendah */
private double[] borderValue(int i)
} }
4.5.8 Kelas ConnectionController
Kelas ini merupakan kelas controller yang menampung konfigurasi koneksi perangkat lunak ke internet. Pada kelas ini diimplementasikan fungsi-fungsi untuk membaca konfigurasi yang tersimpan di dalam file dan menyimpan konfigurasi ke dalam file.
Tabel IV-8 Implementasi Kelas ConnectionController namespace PRStock
{
public class ConnectionController
{
private string filePath;
private bool isUsingProxy = false;
private string serverName = "";
private int portNumber = 0;
private bool isUsingAuthentification = false;
private string userName = ""; private string password = "";
/* Konstruktor Kelas ConnectionController */
public ConnectionController(string fpath)
/* Fungsi untuk membaca konfigurasi koneksi ke internet yang
tersimpan di dalam file */
public void loadConfiguration()
/* Fungsi untuk menyimpan konfigurasi koneksi ke internet ke dalam
file */
public void saveConfiguration()
} }
4.5.9 Kelas MyStock
Kelas ini merupakan kelas struktur data utama dalam perangkat lunak PRStock. Kelas ini menampung tanggal, harga pembuka (open), harga penutup (close), harga tertinggi (high), harga terendah (close), volume perdagangan, serta nilai %R dari suatu periode perdagangan saham.
Tabel IV-9 Implementasi Kelas MyStock namespace PRStock
{
public class MyStock
{
private DateTime date;
private double open;
private double close;
private double high;
private double low;
private double volume;
private double prValue;
/* Konstruktor Kelas MyStock */
public MyStock()
/* Konstruktor Kelas MyStock dengan masukan */
public MyStock(string s)
} }
4.6 Implementasi Antarmuka
Berikut adalah antarmuka dari perangkat lunak PRStock yang telah diimplementasikan.
4.6.1 Antarmuka Utama
Gambar IV-1 Antarmuka Utama
Seperti yang ditunjukkan pada Gambar IV-1, antarmuka utama terdiri atas 3 bagian utama, yaitu bagian penggambaran grafik, bagian menu, serta bagian reports yang berisi tanggal terjadinya keadaan overbought dan atau oversold. Pada bagian penggambaran grafik, grafik bagian atas menggambarkan pergerakan harga saham perusahaan di pasar saham. Sedangkan grafik bagian bawah menggambarkan hasil perhitungan metode WPR terhadap pergerakan harga saham di pasar saham. Pada Grafik bagian atas terdapat juga menu untuk menampilkan data pergerakan harga saham dalam bentuk tabel.
Pada bagian menu, terdapat tiga tombol yang dapat di-click, yaitu tombol Draw Graph, Download Data, dan Connection Settings. Tombol Draw Graph apabila di-click akan menampilkan antarmuka penggambaran data saham. Tombol Download Data akan menampilkan antarmuka pengunduhan data saham dari internet apabila di-click. Sedangkan tombol Connection Settings apabila di-click akan menampilkan antarmuka pengaturan koneksi perangkat lunak PRStock ke internet.
Bagian Reports terdiri atas dua kotak yang masing-masing berisi tanggal terjadinya keadaan overbought atau oversold, serta sebuah tombol untuk menampilkan antarmuka laporan sinyal beli dan jual yang direkomendasikan oleh perangkat lunak. Apabila pada hasil analisis tidak terdapat keadaan-keadaan tersebut, maka kotak tersebut akan kosong. Sama halnya dengan keadaan pada saat perangkat lunak pertama kali dieksekusi, bagian penggambaran dan bagian reports akan kosong karena belum ada data yang dianalisis. Antarmuka laporan laporan sinyal beli dan jual yang direkomendasikan oleh perangkat lunak ditunjukkan pada gambar IV-2.
4.6.2 Antarmuka Penggambaran Data Saham
Gambar IV-3 Antarmuka Penggambaran Data Saham
Gambar IV-3 menunjukkan antarmuka penggambaran data saham. Antarmuka ini ditampilkan pada saat pengguna meng-click tombol Draw Graph pada antarmuka utama. Pada antarmuka ini terdapat sebuah drop-down list yang dapat digunakan untuk memilih data saham yang ingin ditampilkan pada antarmuka utama serta textbox untuk memasukkan jumlah periode perhitungan yang akan digunakan untuk menganalisis data saham dengan metode WPR. Selain itu, terdapat juga textbox untuk memasukkan tingkat overbought dan oversold yang mempengaruhi sinyal yang dihasilkan pada hasil analisis.
4.6.3 Antarmuka Pengunduhan Data Saham
Gambar IV-4 Antarmuka Pengunduhan Data Saham
Gambar IV-4 menunjukkan antarmuka pengunduhan data saham. Antarmuka ini ditampilkan pada saat pengguna meng-click tombol Download Data pada antarmuka utama. Pada antarmuka ini terdapat sebuah drop-down list yang dapat digunakan untuk memilih perusahaan yang data sahamnya yang ingin diunduh serta sejumlah textbox untuk memasukkan tanggal awal dan tanggal akhir dari data saham tersebut. Selain itu, pada antarmuka ini terdapat juga tombol Add untuk menambah informasi perusahaan serta tombol Delete untuk menghapus data perusahaan yang dipilih. Antarmuka penambahan informasi perusahaan ditunjukkan pada Gambar IV-5.
Gambar IV-5 Antarmuka Penambahan Informasi Perusahaan
Pada antarmuka ini terdapat dua textbox, yaitu Yahoo! Finance Code dan Company Name. Textbox Yahoo! Finance Code adalah textbox untuk menampung kode perusahaan yang data historis sahamnya disediakan oleh situs Yahoo! Finance. Sedangkan textbox Company Name adalah textbox untuk menampung nama perusahaan sesuai dengan kode yang dimasukkan.
4.6.4 Antarmuka Pengaturan Koneksi Internet
Gambar IV-6 Antarmuka Pengaturan Koneksi Internet
Gambar IV-6 menunjukkan antarmuka pengunduhan data saham. Antarmuka ini ditampilkan pada saat pengguna meng-click tombol Connection Settings pada antarmuka utama.