LAMPIRAN
Lampiran 1 Coding Inisialisasi Programusing System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Reflection; namespace Skripsi {
static class Program {
public static MainForm FormMain = new MainForm(); public static BGForm FormBG = new BGForm(); public static HMForm FormHM = new HMForm();
public static BGHMForm FormBGHM = new BGHMForm(); public static DBForm FormDB = new DBForm();
public static DB1 FormDB1 = new DB1(); public static DB2 FormDB2 = new DB2(); public static DB3 FormDB3 = new DB3(); public static DB4 FormDB4 = new DB4();
public static DB1_Tambah FormDB1_Tambah = new DB1_Tambah(); public static DB2_Tambah FormDB2_Tambah = new DB2_Tambah(); static void Main()
{ Application.EnableVisualStyles(); FormMain.Show(); System.Windows.Forms.Application.Run(FormMain); } } }
Lampiran 2 Coding Splash Screen
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq;
using System.Text;
using System.Windows.Forms; namespace Skripsi
{
public partial class SplashScreenForm : Form { double levelOpacity = 0.0; public SplashScreenForm() { InitializeComponent(); }
private void timerAppear_Tick(object sender, EventArgs e) { levelOpacity += 0.05; if (levelOpacity >= 1.00) { levelOpacity = 1.00; this.Opacity = levelOpacity; timerAppear.Stop(); timerProgress.Start(); } this.Opacity = levelOpacity; }
private void timerProgress_Tick(object sender, EventArgs e) { progressBar.Increment(1); if (progressBar.Value == 100) { timerProgress.Stop(); timerDisappear.Start(); } }
private void timerDisappear_Tick(object sender, EventArgs e) { levelOpacity -= 0.05; if (levelOpacity < 0.01) { levelOpacity = 0.0; this.Opacity = levelOpacity; timerDisappear.Stop(); } this.Opacity = levelOpacity;
}
private void SplashScreenForm_Load(object sender, EventArgs e) {
timerAppear.Start(); }
} }
Lampiran 3 Coding Main Form using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Windows.Forms; using System.IO; namespace Skripsi {
public partial class MainForm : Form {
double levelOpacity = 0.0; ToolTip tooltip = new ToolTip();
#region splash
private void SplashScreen() {
Application.Run(new SplashScreenForm()); }
private void threadSplashStart() {
Thread threadSplashScreenForm = new Thread(new ThreadStart(SplashScreen)); threadSplashScreenForm.Start(); Thread.Sleep(7500); threadSplashScreenForm.Abort(); } #endregion
private static void createdatabase() {
try {
SqlConnection myConnection = new SqlConnection("Data
Source=.\\SQLEXPRESS;Initial Catalog=master;Integrated Security=True"); string myStr = "CREATE DATABASE [dataskripsi] ON
PRIMARY(NAME = N'Retail',FILENAME = N'c:\\Program Files\\Microsoft SQL
Server\\MSSQL10.SQLEXPRESS\\MSSQL\\DATA\\dataskripsi.mdf',SIZE=204 8KB, FILEGROWTH = 1024KB)LOG ON(NAME =
N'Retail_Log',FILENAME = N'c:\\Program Files\\Microsoft SQL
Server\\MSSQL10.SQLEXPRESS\\MSSQL\\DATA\\dataskripsi.ldf', SIZE = 1024KB, FILEGROWTH = 10%)";
SqlCommand myCommand = new SqlCommand(myStr, myConnection); myConnection.Open(); myCommand.ExecuteNonQuery(); myConnection = new SqlConnection("server=.\\SQLEXPRESS;Integrated security=SSPI;database=dataskripsi"); myConnection.Open(); for (int i = 0; i < 4; i++) {
if (i == 0) {
myStr = "CREATE TABLE Perusahaan(ticker nvarchar(4) primary key not null,namaperusahaan nvarchar(50) not null)";
myCommand = new SqlCommand(myStr, myConnection); }
else if (i == 1) {
myStr = "CREATE TABLE Persen(sukubunga decimal(18,2) not null,yieldaaa decimal(18,2) not null)";
myCommand = new SqlCommand(myStr, myConnection); }
else if (i == 2) {
myStr = "CREATE TABLE Harga(ticker nvarchar(4) not null,tanggal datetime not null,harga decimal(18,2) not null, primary
key(ticker,tanggal), foreign key(ticker) references Perusahaan ON UPDATE CASCADE ON DELETE CASCADE)";
}
else if (i == 3) {
myStr = "CREATE TABLE Lapkeu(ticker nvarchar(4) not null,tahun int not null,eps decimal(18,2) not null, primary key(ticker,tahun), foreign key(ticker) references Perusahaan ON UPDATE CASCADE ON DELETE CASCADE)";
myCommand = new SqlCommand(myStr, myConnection); } myCommand.ExecuteNonQuery(); } myConnection.Close(); } catch { } } public MainForm() { threadSplashStart(); InitializeComponent(); try { createdatabase(); } catch { } timerAppear.Start(); }
private void MainForm_FormClosed(object sender, EventArgs e) {
Application.Exit(); }
private void MainForm_Load(object sender, EventArgs e) {
label1.Left = (this.Width - label1.Width) / 2; label2.Left = (this.Width - label2.Width) / 2;
tooltip.AutoPopDelay = 1000; tooltip.InitialDelay = 1000; tooltip.ReshowDelay = 100; tooltip.ShowAlways = true; }
private void timerAppear_Tick(object sender, EventArgs e) { levelOpacity += 0.05; if (levelOpacity >= 1.00) { levelOpacity = 1.00; this.Opacity = levelOpacity; timerAppear.Stop(); } this.Opacity = levelOpacity; }
private void button5_Click(object sender, EventArgs e) {/*
if (MessageBox.Show("Apakah Anda Ingin Keluar Dari Aplikasi?", "Aplikasi", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
MessageBox.Show("Terima Kasih Sudah Menggunakan Aplikasi!", "Aplikasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
timerDisappear.Start(); }*/
timerDisappear.Start(); }
private void timerDisappear_Tick(object sender, EventArgs e) { levelOpacity -= 0.05; if (levelOpacity < 0.01) { levelOpacity = 0.0; this.Opacity = levelOpacity; timerDisappear.Stop(); Application.Exit(); } this.Opacity = levelOpacity; }
{
tooltip.SetToolTip(button1, "Ini adalah tombol untuk mengakses simulasi Teorema Investasi Nilai yang dikemukakan oleh Benjamin Graham");
button1.Image =
((System.Drawing.Image)(Properties.Resources.bg_hover)); }
private void button2_MouseHover(object sender, EventArgs e) {
tooltip.SetToolTip(button2, "Ini adalah tombol untuk mengakses simulasi Teorema Portofolio Modern yang dikemukakan oleh Harry Markowitz");
button2.Image =
((System.Drawing.Image)(Properties.Resources.simulasi_teorema_hm_hover)); }
private void button3_MouseHover(object sender, EventArgs e) {
tooltip.SetToolTip(button3, "Ini adalah tombol untuk mengakses
kombinasi simulasi Teorema Investasi Nilai dan Teorema Portofolio Modern"); button3.Image =
((System.Drawing.Image)(Properties.Resources.kombine_hover)); }
private void button4_MouseHover(object sender, EventArgs e) {
tooltip.SetToolTip(button4, "Ini adalah tombol untuk mengakses database");
button4.Image =
((System.Drawing.Image)(Properties.Resources.database_hover)); }
private void button5_MouseHover(object sender, EventArgs e) {
tooltip.SetToolTip(button5, "Ini adalah tombol untuk keluar dari aplikasi");
}
private void button1_Click(object sender, EventArgs e) {
Program.FormMain.Hide(); Program.FormBG.Show();
}
private void button2_Click(object sender, EventArgs e) {
Program.FormHM.Show(); }
private void button3_Click(object sender, EventArgs e) {
Program.FormMain.Hide(); Program.FormBGHM.Show(); }
private void button4_Click(object sender, EventArgs e) {
Program.FormMain.Hide(); Program.FormDB.Show(); }
private void button5_MouseClick(object sender, MouseEventArgs e) {
this.button5.FlatAppearance.BorderSize = 0;
this.button5.FlatAppearance.BorderColor = Color.White; }
private void button2_MouseLeave(object sender, EventArgs e) {
button2.Image =
((System.Drawing.Image)(Properties.Resources.simulasi_teorema_hm)); }
private void button4_MouseLeave(object sender, EventArgs e) {
button4.Image =皜
((System.Drawing.Image)(Properties.Resources.database)); }
private void button3_MouseLeave(object sender, EventArgs e) {
button3.Image =
((System.Drawing.Image)(Properties.Resources.kombine)); }
private void button1_MouseLeave(object sender, EventArgs e) {
button1.Image = ((System.Drawing.Image)(Properties.Resources.bg)); }
} }
Lampiran 4 Coding BG Form using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Skripsi {
public partial class BGForm : Form {
ToolTip tooltip = new ToolTip(); public BGForm()
{
InitializeComponent(); }
int banyakperusahaan = 0;
decimal bungabank, bungaobligasi;
void jumlahperusahaan() {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False");
SqlCommand myCommand = new SqlCommand("select * from perusahaan", myConnection);
myConnection.Open();
SqlDataReader dataReader = myCommand.ExecuteReader();
while (dataReader.Read()) { banyakperusahaan++; } myConnection.Close(); }
public struct Perusahaan {
public string namaperusahaan; public int jumlaheps;
public decimal[] eps; public int[] tahun; public decimal[] NI; }
void isinamaperusahaan(Perusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False");
SqlCommand myCommand = new SqlCommand("select * from perusahaan", myConnection);
myConnection.Open();
SqlDataReader dataReader = myCommand.ExecuteReader(); int loop = 0; while (dataReader.Read()) { x[loop].namaperusahaan = dataReader["ticker"].ToString(); loop++; } } void isijumlaheps(Perusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int jumlahtransaksi = 0;
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from lapkeu where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open();
dataReader = myCommand.ExecuteReader(); jumlahtransaksi = 0;
while (dataReader.Read()) { jumlahtransaksi++; } x[awal].jumlaheps = jumlahtransaksi; dataReader.Close(); myConnection.Close(); } } void inisialisasi(Perusahaan[] x) {
for (int awal = 0; awal < banyakperusahaan; awal++) {
x[awal].eps = new decimal[x[awal].jumlaheps]; x[awal].tahun = new int[x[awal].jumlaheps]; x[awal].NI = new decimal[x[awal].jumlaheps]; }
}
void isistruct(Perusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int loop = 0;
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from lapkeu where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); loop = 0; while (dataReader.Read()) { x[awal].tahun[loop] = Convert.ToInt16(dataReader["tahun"].ToString()); x[awal].eps[loop] = Convert.ToDecimal(dataReader["eps"].ToString()); loop++;
} dataReader.Close(); myConnection.Close(); } } void hitungNI(Perusahaan[] x) { bungabank = 0; bungaobligasi = 0;
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader;
myCommand = new SqlCommand("select * from persen", myConnection); myConnection.Open(); dataReader = myCommand.ExecuteReader(); while (dataReader.Read()) { bungabank = Convert.ToDecimal(dataReader["sukubunga"].ToString()); bungaobligasi = Convert.ToDecimal(dataReader["yieldaaa"].ToString()); } myConnection.Close(); int loop = 0;
while (loop < banyakperusahaan) {
for (int i = 0; i < x[loop].jumlaheps; i++) {
x[loop].NI[i] = (x[loop].eps[i] * (Convert.ToDecimal(8.5) + 24) * bungabank )/ bungaobligasi; x[loop].NI[i] = decimal.Round(x[loop].NI[i], 0); } loop++; } }
{
DataTable table = new DataTable(); table.Columns.Add("1", typeof(string)); table.Columns.Add("2", typeof(string)); table.Columns.Add("3", typeof(string)); table.Columns.Add("4", typeof(string)); table.Columns.Add("5", typeof(string)); table.Columns.Add("6", typeof(string)); return table; }
void tampilkan(Perusahaan[] x,DataTable table) { int loop = 0; int jumlahtransaksi = 0; int temporary = 0; decimal lastprice = 0; decimal persentage = 0; string percent = ""; int baris = 0; table.Rows.Add("Ticker", "Tahun",
"EPS", "Nilai Intrinsik", "Harga Terakhir","Selisih"); dataGridView1.Rows[baris].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
baris++;
while (loop < banyakperusahaan) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; jumlahtransaksi = 0; lastprice = 0; persentage = 0; percent = ""; temporary = 0; #region a
myCommand = new SqlCommand("select * from harga where ticker like '" + x[loop].namaperusahaan + "'", myConnection);
myConnection.Open();
while (dataReader.Read()) { jumlahtransaksi++; } dataReader.Close(); myConnection.Close(); #endregion #region b //part 2
myCommand = new SqlCommand("select * from harga where ticker like '" + x[loop].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); while (dataReader.Read()) { if (temporary == jumlahtransaksi - 1) { lastprice = Convert.ToDecimal(dataReader["harga"].ToString()); persentage = (x[loop].NI[x[loop].jumlaheps - 1] - lastprice) / 皜 lastprice;
persentage = decimal.Round(persentage,4); persentage = persentage * 100;
percent = persentage.ToString();
percent = percent.Substring(0, percent.IndexOf(".") + 3) + " %"; } else temporary++; } dataReader.Close(); myConnection.Close(); #endregion table.Rows.Add(x[loop].namaperusahaan.ToString(), x[loop].tahun[x[loop].jumlaheps-1].ToString(), x[loop].eps[x[loop].jumlaheps - 1].ToString(), x[loop].NI[x[loop].jumlaheps - 1].ToString(), lastprice.ToString(), percent.ToString()); dataGridView1[1, baris].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridView1[2, baris].Style.Alignment = DataGridViewContentAlignment.MiddleRight;
dataGridView1[3, baris].Style.Alignment = DataGridViewContentAlignment.MiddleRight; dataGridView1[4, baris].Style.Alignment = DataGridViewContentAlignment.MiddleRight; dataGridView1[5, baris].Style.Alignment = DataGridViewContentAlignment.MiddleRight; baris++; loop++; } }
private void BGForm_Load(object sender, EventArgs e) {
//label1.Left = (this.Width - label1.Width) - (button1.Left-label1.Width) - 35; tooltip.AutoPopDelay = 1000; tooltip.InitialDelay = 500; tooltip.ReshowDelay = 100; tooltip.ShowAlways = true; jumlahperusahaan();
Perusahaan[] perusahaan = new Perusahaan[banyakperusahaan]; isinamaperusahaan(perusahaan);
isijumlaheps(perusahaan); inisialisasi(perusahaan); isistruct(perusahaan); hitungNI(perusahaan);
DataTable table = GetTable(banyakperusahaan, perusahaan); dataGridView1.DataSource = table; dataGridView1.ColumnHeadersVisible = false; dataGridView1.RowHeadersVisible = false; tampilkan(perusahaan,table); }
private void button1_Click(object sender, EventArgs e) {
Program.FormBG.Hide(); Program.FormMain.Show();
}
private void button1_MouseHover(object sender, EventArgs e) {
tooltip.SetToolTip(button1, "Ini adalah tombol untuk kembali ke menu utama");
button1.Image =
((System.Drawing.Image)(Properties.Resources.kembali_hover)); }
private void button1_MouseLeave(object sender, EventArgs e) {
button1.Image =
((System.Drawing.Image)(Properties.Resources.kembali)); }
public string[] NULL { get; set; } }
}
Lampiran 5 Coding HM Form using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Skripsi {
public partial class HMForm : Form {
ToolTip tooltip = new ToolTip(); public HMForm()
{
InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) {
Program.FormHM.Hide(); Program.FormMain.Show(); }
int banyakperusahaan = 0; int baris;
int kolom;
void jumlahperusahaan() {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False");
SqlCommand myCommand = new SqlCommand("select * from perusahaan", myConnection);
myConnection.Open();
SqlDataReader dataReader = myCommand.ExecuteReader(); while (dataReader.Read()) { banyakperusahaan++; } myConnection.Close(); }
public struct DataPerusahaan {
public string namaperusahaan; public int jumlahtransaksiharian; public string[] tanggaltransaksiharian; public string[] hargatransaksiharian; public string[] returntransaksiharian; public decimal expectedreturn; public decimal varians;
public decimal standarddeviation; public decimal[] kovarian;
public decimal[] korelasi; public decimal[] porsi; public string[] coleration; public string[] proporsi; public string[] covarian; }
#region fungsi
void isistringnamaperusahaan(DataPerusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False");
SqlCommand myCommand = new SqlCommand("select * from perusahaan", myConnection);
myConnection.Open();
SqlDataReader dataReader = myCommand.ExecuteReader(); int loop = 0; while (dataReader.Read()) { x[loop].namaperusahaan = dataReader["ticker"].ToString(); loop++; } } void isijumlahtransaksiharianperusahaan(DataPerusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int jumlahtransaksi = 0;
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from harga where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); jumlahtransaksi = 0; while (dataReader.Read()) { jumlahtransaksi++; } x[awal].jumlahtransaksiharian = jumlahtransaksi; dataReader.Close(); myConnection.Close(); } }
void
inisialisasitanggaldanhargatransaksiharianperusahaan(DataPerusahaan[] x) {
for (int awal = 0; awal < banyakperusahaan; awal++) { x[awal].tanggaltransaksiharian = new string[x[awal].jumlahtransaksiharian]; x[awal].hargatransaksiharian = new string[x[awal].jumlahtransaksiharian]; x[awal].returntransaksiharian = new string[x[awal].jumlahtransaksiharian]; } } void isitanggaltransaksiharianperusahaan(DataPerusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int loop = 0; string temporary = ""; string modification = "";
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from harga where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); loop = 0; while (dataReader.Read()) { temporary = ""; temporary = dataReader["tanggal"].ToString(); if (temporary.Substring(0, 10).Contains(" ")) { if (temporary.Substring(0, 2).Contains("/")) { modification = "0"; }
modification = modification + temporary.Substring(0, 2); if (temporary.Substring(2, 2).Contains("/"))
{
}
modification = modification + temporary.Substring(2, 7); x[awal].tanggaltransaksiharian[loop] = modification; } else { x[awal].tanggaltransaksiharian[loop] = temporary.Substring(0, 10); } loop++; } dataReader.Close(); myConnection.Close(); } } void isihargatransaksiharianperusahaan(DataPerusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int loop = 0; string temporary = "";
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from harga where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); loop = 0; while (dataReader.Read()) { temporary = ""; temporary = dataReader["harga"].ToString(); x[awal].hargatransaksiharian[loop] = temporary; loop++; } dataReader.Close(); myConnection.Close(); } }
void isireturntransaksiharianperusahaan(DataPerusahaan[] x) {
decimal temporary; string temporary2; int a;
for (int awal = 0; awal < banyakperusahaan; awal++) {
a = x[awal].jumlahtransaksiharian - 31;
for (int akhir = a; akhir < x[awal].jumlahtransaksiharian; akhir++) { temporary = 0; temporary2 = ""; if (akhir == 0) { x[awal].returntransaksiharian[akhir] = null; } else { temporary = (Convert.ToDecimal(x[awal].hargatransaksiharian[akhir])-Convert.ToDecimal(x[awal].hargatransaksiharian[akhir-1])) / Convert.ToDecimal(x[awal].hargatransaksiharian[akhir-1]); if (temporary == 0) { temporary2 = "0.000000";
x[awal].returntransaksiha皜ian[akhir] = temporary2; } else { if (temporary < 0) { if (temporary.ToString().Length > 8) { temporary2 = temporary.ToString().Substring(0, 9); }
else temporary2 = temporary.ToString().Substring(0, temporary.ToString().Length); x[awal].returntransaksiharian[akhir] = temporary2; } else if (temporary > 0) { if (temporary.ToString().Length > 8) { temporary2 = temporary.ToString().Substring(0, 8);
}
else temporary2 = temporary.ToString().Substring(0, temporary.ToString().Length) ; x[awal].returntransaksiharian[akhir] = temporary2; } } } } } }
static DataTable GetTable(int jumlah, DataPerusahaan[] x) {
DataTable table = new DataTable();
table.Columns.Add("Tanggal", typeof(string)); for (int i = 0; i < jumlah; i++)
{
table.Columns.Add(x[i].namaperusahaan, typeof(string)); }
return table; }
static DataTable GetTable2(int jumlah, DataPerusahaan[] x) {
DataTable table = new DataTable();
table.Columns.Add("Ticker", typeof(string)); for (int i = 0; i < jumlah; i++)
{ table.Columns.Add(x[i].namaperusahaan, typeof(string)); } return table; }
void isitable(DataTable table,DataPerusahaan[] x) {
int temporary = x[0].jumlahtransaksiharian;
for (int awal = x[0].jumlahtransaksiharian - 32 ; awal < temporary; awal++)
{ table.Rows.Add(x[0].tanggaltransaksiharian[awal], x[0].returntransaksiharian[awal], x[1].returntransaksiharian[awal], x[2].returntransaksiharian[awal], x[3].returntransaksiharian[awal], x[4].returntransaksiharian[awal], x[5].returntransaksiharian[awal], x[6].returntransaksiharian[awal], x[7].returntransaksiharian[awal], x[8].returntransaksiharian[awal]); } }
void isiexpectedreturn(DataTable table, DataPerusahaan[] x) {
int loop = 0; int loop2 = 0; int posisi = 0;
decimal[] expectedreturn = new decimal[banyakperusahaan]; while (loop < banyakperusahaan)
{ loop2 = 0; expectedreturn[loop] = 0; posisi = x[loop].jumlahtransaksiharian - 1; while (loop2 != 31) { expectedreturn[loop] += Convert.ToDecimal(x[loop].returntransaksiharian[posisi]); posisi--; loop2++; } expectedreturn[loop] /= 31; expectedreturn[loop] = Convert.ToDecimal(expectedreturn[loop].ToString().Substring(0,8)); x[loop].expectedreturn = expectedreturn[loop]; loop++; }/*
table.Rows.Add("Expected Return", expectedreturn[0].ToString(), expectedreturn[1].ToString(), expectedreturn[2].ToString()
, expectedreturn[3].ToString(), expectedreturn[4].ToString(), expectedreturn[5].ToString(), expectedreturn[6].ToString()
, expectedreturn[7].ToString(), expectedreturn[8].ToString());*/ }
vo皜d isivarian(DataTable table, DataPerusahaan[] x) {
int loop = 0; int loop2 = 0; int posisi = 0;
decimal variansi1 = 0;
decimal[] variansi2 = new decimal[banyakperusahaan]; decimal variansi3 = 0;
double standard = 0;
while (loop < banyakperusahaan) { loop2 = 0; posisi = x[loop].jumlahtransaksiharian - 1; variansi1 = 0; variansi2[loop] = 0; standard = 0; while (loop2 != 31) { variansi1 = Convert.ToDecimal(x[loop].returntransaksiharian[posisi]) - x[loop].expectedreturn;
variansi1 = variansi1 * variansi1;
variansi3 = Convert.ToDecimal(variansi1.ToString().Substring(0, 8));
variansi2[loop] = variansi2[loop] + variansi3; //MessageBox.Show(variansi1.ToString()); //MessageBox.Show(variansi2[loop].ToString()); //variansi2[loop] = Convert.ToDecimal(variansi2.ToString().Substring(0, 8)); posisi--; loop2++; variansi1 = 0; variansi3 = 0; } variansi2[loop] = variansi2[loop] / 31; variansi2[loop] = Convert.ToDecimal(variansi2[loop].ToString().Substring(0, 8)); x[loop].varians = variansi2[loop]; standard = Math.Sqrt(Convert.ToDouble(variansi2[loop])); x[loop].standarddeviation = Convert.ToDecimal(standard.ToString().Substring(0,8)); loop++; } /*
table.Rows.Add("Variansi", x[0].varians.ToString(), x[1].varians.ToString(), x[2].varians.ToString()
, x[3].varians.ToString(), x[4].varians.ToString(), x[5].varians.ToString(), x[6].varians.ToString()
, x[7].varians.ToString(), x[8].varians.ToString());
table.Rows.Add("Deviasi Standar", x[0].standarddeviation.ToString(), x[1].standarddeviation.ToString(), x[2].standarddeviation.ToString() , x[3].standarddeviation.ToString(), x[4].standarddeviation.ToString(), x[5].standarddeviation.ToString(), x[6].standarddeviation.ToString() , x[7].standarddeviation.ToString(), x[8].standarddeviation.ToString()); */ }
void isidatagridview2(DataTable table, DataPerusahaan[] x) {
int loop = 0; int temp = 0;
decimal[] persentase = new decimal[banyakperusahaan]; string ticker = "";
int[] porsi = new int[banyakperusahaan]; while (loop < banyakperusahaan)
{
temp = loop;
for (int i = 0; i < banyakperusahaan; i++) { if (i == temp) { persentase[i] = 0; } else { persentase[i] = x[i].standarddeviation/(x[i].standarddeviation+x[loop].standarddeviation); persentase[i] = decimal.Round(persentase[i],1); } if (persentase[i].ToString() == "0.1") { porsi[i] = 10; } else if (persentase[i].ToString() == "0.2") { porsi[i] = 20; }
else if (persentase[i].ToString() == "0.3") { porsi[i] = 30; } else if (persentase[i].ToString() == "0.4") { porsi[i] = 40; } else if (persentase[i].ToString() == "0.5") { porsi[皜] = 50; } else if (persentase[i].ToString() == "0.6") { porsi[i] = 60; } else if (persentase[i].ToString() == "0.7") { porsi[i] = 70; } else if (persentase[i].ToString() == "0.8") { porsi[i] = 80; } else if (persentase[i].ToString() == "0.9") { porsi[i] = 90; } } ticker = x[loop].namaperusahaan; table.Rows.Add(ticker, porsi[0].ToString() + " : " + (100 - porsi[0]).ToString(), porsi[1].ToString() + " : " + (100 - porsi[1]).ToString(), porsi[2].ToString() + " : " + (100 - porsi[2]).ToString(), porsi[3].ToString() + " : " + (100 - porsi[3]).ToString(), porsi[4].ToString() + " : " + (100 - porsi[4]).ToString(), porsi[5].ToString() + " : " + (100 - porsi[5]).ToString(), porsi[6].ToString() + " : " + (100 - porsi[6]).ToString(), porsi[7].ToString() + " : " + (100 - porsi[7]).ToString(), porsi[8].ToString() + " : " + (100 - porsi[8]).ToString() ); loop++; }
}
#endregion
void isikovariankorelasiporsi(DataTable table, DataPerusahaan[] x) {
for (int i = 0; i < banyakperusahaan; i++) {
x[i].kovarian = new decimal[banyakperusahaan]; x[i].korelasi = new decimal[banyakperusahaan]; x[i].porsi = new decimal[banyakperusahaan]; x[i].proporsi = new string[banyakperusahaan]; x[i].coleration = new string[banyakperusahaan]; x[i].covarian = new string[banyakperusahaan]; }
int loop = 0; int looping = 0;
int posisi = x[0].jumlahtransaksiharian - 1; //MessageBox.Show(posisi.ToString()); decimal tampung,tampung2 = 0;
decimal banding1, banding2, banding3 = 0; decimal weight1 = 0;
table.Rows.Add("Kovarian", x[0].namaperusahaan, x[1].namaperusahaan,
x[2].namaperusahaan,
x[3].namaperusahaan, x[4].namaperusahaan, x[5].namaperusahaan, x[6].namaperusahaan, x[7].namaperusahaan, x[8].namaperusahaan);
//tambahkan 1 baris baris++;
while (loop < banyakperusahaan) {
for (int j = 0; j < banyakperusahaan; j++) { looping = 0; posisi = x[loop].jumlahtransaksiharian - 1; tampung = 0; tampung2 = 0; while (looping != 31) {
tampung = (Convert.ToDecimal(x[loop].returntransaksiharian[posisi]) - x[loop].expectedreturn) * (Convert.ToDecimal(x[j].returntransaksiharian[posisi]) - x[j].expectedreturn); tampung2 += tampung; posisi--; looping++; } x[loop].kovarian[j] = decimal.Round((tampung2 / 31), 5); x[loop].korelasi[j] = decimal.Round((x[loop].kovarian[j]/(x[loop].standarddeviation*x[j].standarddevi ation)),1); weight1 = (Convert.ToDecimal(Math.Pow(Convert.ToDouble(x[j].standarddeviation),2)) - (x[loop].korelasi[j] * x[loop].standarddeviation * x[j].standardd皜viation)) / (Convert.ToDecimal(Math.Pow(Convert.ToDouble(x[loop].standarddeviation),2 )) + Convert.ToDecimal(Math.Pow(Convert.ToDouble(x[j].standarddeviation),2)) - (x[loop].korelasi[j] * x[loop].standarddeviation * x[j].standarddeviation)); x[loop].porsi[j] = decimal.Round(weight1, 2); if (loop > j) { x[loop].porsi[j] = 0; } if (x[loop].porsi[j] != 0) { x[loop].proporsi[j] = Convert.ToString(x[loop].porsi[j] * 100).Substring(0,2) + "% " + x[loop].namaperusahaan + " | " + Convert.ToString(100 - (x[loop].porsi[j] * 100)).Substring(0, 2) + "% "+ x[j].namaperusahaan; x[loop].coleration[j] = x[loop].korelasi[j].ToString(); x[loop].covarian[j] = x[loop].kovarian[j].ToString(); } else
{ x[loop].proporsi[j] = ""; x[loop].coleration[j] = ""; x[loop].covarian[j] = ""; } if (loop == j) { x[loop].proporsi[j] = "N/A"; //x[loop].coleration[j] = "N/A"; x[loop].coleration[j] = x[loop].korelasi[j].ToString(); x[loop].covarian[j] = x[loop].kovarian[j].ToString(); } } table.Rows.Add(x[loop].namaperusahaan, x[loop].covarian[0].ToString(), x[loop].covarian[1].ToString(), x[loop].covarian[2].ToString(), x[loop].covarian[3].ToString(), x[loop].covarian[4].ToString(), x[loop].covarian[5].ToString(), x[loop].covarian[6].ToString(), x[loop].covarian[7].ToString(), x[loop].covarian[8].ToString()); baris++; loop++; } /* loop = 0; table.Rows.Add("", "", "", "", "", "", "", "", "", "");
table.Rows.Add("Korelasi", x[0].namaperusahaan, x[1].namaperusahaan, x[2].namaperusahaan,
x[3].namaperusahaan, x[4].namaperusahaan, x[5].namaperusahaan, x[6].namaperusahaan, x[7].namaperusahaan, x[8].namaperusahaan); while(loop < banyakperusahaan) { table.Rows.Add(x[loop].namaperusahaan, x[loop].korelasi[0].ToString(), x[loop].korelasi[1].ToString(), x[loop].korelasi[2].ToString(), x[loop].korelasi[3].ToString(), x[loop].korelasi[4].ToString(), x[loop].korelasi[5].ToString(), x[loop].korelasi[6].ToString(), x[loop].korelasi[7].ToString(), x[loop].korelasi[8].ToString()); loop++; } */
loop = 0;
table.Rows.Add("", "", "", "", "", "", "", "", "", ""); baris++;
table.Rows.Add("Korelasi", x[0].namaperusahaan, x[1].namaperusahaan, x[2].namaperusahaan,
x[3].namaperusahaan, x[4].namaperusahaan, x[5].namaperusahaan, x[6].namaperusahaan, x[7].namaperusahaan, x[8].namaperusahaan); //tambahkan lagi barisnya
baris++; banding1 = 0; banding2 = 0; banding3 = 0; int xx = 0;
int[] kolom2 = new int[banyakperusahaan - 1]; while (loop < banyakperusahaan)
{
kolom = 0; banding1 = 0; banding2 = 0; xx = 0;
banding1 = Convert.ToDecimal(x[loop].cole皜ation[loop]); for (xx = loop; xx < banyakperusahaan; xx++)
{ banding2 = Convert.ToDecimal(x[loop].coleration[xx]); if (banding1 > banding2) { kolom = xx; banding1 = banding2; } } //MessageBox.Show(kolom.ToString()); if (loop != banyakperusahaan - 1) { kolom2[loop] = kolom; } table.Rows.Add(x[loop].namaperusahaan, x[loop].coleration[0].ToString(), x[loop].coleration[1].ToString(), x[loop].coleration[2].ToString(), x[loop].coleration[3].ToString(), x[loop].coleration[4].ToString(), x[loop].coleration[5].ToString(), x[loop].coleration[6].ToString(),
x[loop].coleration[7].ToString(), x[loop].coleration[8].ToString()); if (loop != banyakperusahaan - 1) { dataGridView1.Rows[baris].Cells[kolom + 1].Style.BackColor = Color.Yellow; } baris++; loop++; } /* loop = 0;
while (loop < banyakperusahaan) { table.Rows.Add(x[loop].namaperusahaan, x[loop].coleration[0].ToString(), x[loop].coleration[1].ToString(), x[loop].coleration[2].ToString(), x[loop].coleration[3].ToString(), x[loop].coleration[4].ToString(), x[loop].coleration[5].ToString(), x[loop].coleration[6].ToString(), x[loop].coleration[7].ToString(), x[loop].coleration[8].ToString()); baris++; loop++; }*/ loop = 0; table.Rows.Add("", "", "", "", "", "", "", "", "", ""); baris++;
table.Rows.Add("Porsi", x[0].namaperusahaan, x[1].namaperusahaan, x[2].namaperusahaan,
x[3].namaperusahaan, x[4].namaperusahaan, x[5].namaperusahaan, x[6].namaperusahaan, x[7].namaperusahaan, x[8].namaperusahaan); baris++;
while (loop < banyakperusahaan) { table.Rows.Add(x[loop].namaperusahaan, x[loop].proporsi[0].ToString(), x[loop].proporsi[1].ToString(), x[loop].proporsi[2].ToString(), x[loop].proporsi[3].ToString(), x[loop].proporsi[4].ToString(), x[loop].proporsi[5].ToString(), x[loop].proporsi[6].ToString(), x[loop].proporsi[7].ToString(), x[loop].proporsi[8].ToString()); if (loop != banyakperusahaan - 1)
{ dataGridView1.Rows[baris].Cells[kolom2[loop] + 1].Style.BackColor = Color.Yellow; } baris++; loop++; } }
private void HMForm_Load(object sender, EventArgs e) {
//label1.Left = (this.Width - label1.Width) - (button1.Left - label1.Width) - 35; tooltip.AutoPopDelay = 1000; tooltip.InitialDelay = 500; tooltip.ReshowDelay = 100; tooltip.ShowAlways = true; baris = 0; kolom = 0; jumlahperusahaan();
DataPerusahaan[] dataPerusahaan = new DataPerusahaan[banyakperusahaan]; isistringnamaperusahaan(dataPerusahaan); isijumlahtransaksiharianperusahaan(dataPerusahaan); inisialisasitanggaldanhargatransaksiharianperusahaan(dataPerusahaan); isitanggaltransaksiharianperusahaan(dataPerusahaan); isihargatransaksiharianperusahaan(dataPerusahaan); isireturntransaksiharianperusahaan(dataPerusahaan);
DataTable table = GetTable(banyakperusahaan,dataPerusahaan); dataGridView皜.DataSource = table;
dataGridView1.ColumnHeadersVisible = false; //isitable(table,dataPerusahaan);
isiexpectedreturn(table, dataPerusahaan); isivarian(table, dataPerusahaan);
isikovariankorelasiporsi(table,dataPerusahaan);
//DataTable table2 = GetTable2(banyakperusahaan, dataPerusahaan); //dataGridView2.DataSource = table2;
//isidatagridview2(table2, dataPerusahaan); }
private void button1_MouseHover(object sender, EventArgs e) {
tooltip.SetToolTip(button1, "Ini adalah tombol untuk kembali ke menu utama");
button1.Image =
((System.Drawing.Image)(Properties.Resources.kembali_hover));
}
private void panel1_MouseHover(object sender, EventArgs e) {
}
private void button1_MouseLeave(object sender, EventArgs e) { button1.Image = ((System.Drawing.Image)(Properties.Resources.kembali)); } } }
Lampiran 6 Coding BGHM Form using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Skripsi {
public partial class BGHMForm : Form {
ToolTip tooltip = new ToolTip(); #region bg
decimal bungabank, bungaobligasi;
void jumlahperusahaan() {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False");
SqlCommand myCommand = new SqlCommand("select * from perusahaan", myConnection);
myConnection.Open();
SqlDataReader dataReader = myCommand.ExecuteReader();
while (dataReader.Read()) { banyakperusahaan++; } myConnection.Close(); }
public struct Perusahaan {
public string namaperusahaan; public int jumlaheps;
public decimal[] eps; public int[] tahun; public decimal[] NI; }
void isinamaperusahaan(Perusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False");
SqlCommand myCommand = new SqlCommand("select * from perusahaan", myConnection);
myConnection.Open();
SqlDataReader dataReader = myCommand.ExecuteReader(); int loop = 0;
while (dataReader.Read()) {
loop++; }
}
void isijumlaheps(Perusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int jumlahtransaksi = 0;
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from lapkeu where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); jumlahtransaksi = 0; while (dataReader.Read()) { jumlahtransaksi++; } x[awal].jumlaheps = jumlahtransaksi; dataReader.Close(); myConnection.Close(); } } void inisialisasi(Perusahaan[] x) {
for (int awal = 0; awal < banyakperusahaan; awal++) {
x[awal].eps = new decimal[x[awal].jumlaheps]; x[awal].tahun = new int[x[awal].jumlaheps]; x[awal].NI = new decimal[x[awal].jumlaheps]; }
}
void isistruct(Perusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int loop = 0;
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from lapkeu where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); loop = 0; while (dataReader.Read()) { x[awal].tahun[loop] = Convert.ToInt16(dataReader["tahun"].ToString()); x[awal].eps[loop] = Convert.ToDecimal(dataReader["eps"].ToString()); loop++; } dataReader.Close(); myConnection.Close(); } } void hitungNI(Perusahaan[] x) { bungabank = 0; bungaobligasi = 0;
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader;
myCommand = new SqlCommand("select * from persen", myConnection);
myConnection.Open();
dataReader = myCommand.ExecuteReader(); while (dataReader.Read())
{ bungabank = Convert.ToDecimal(dataReader["sukubunga"].ToString()); bungaobligasi = Convert.ToDecimal(dataReader["yieldaaa"].ToString()); } myConnection.Close(); int loop = 0;
while (loop < banyakperusahaan) {
for (int i = 0; i < x[loop].jumlaheps; i++) {
x[loop].NI[i] = (x[loop].eps[i] * (Convert.ToDecimal(8.5) + 24) * bungabank )/ bungaobligasi; x[loop].NI[i] = decimal.Round(x[loop].NI[i], 0); } loop++; } } #endregion #region hm int baris = 0; int kolom = 0;
public struct DataPerusahaan {
public string namaperusahaan; public int jumlahtransaksiharian; public string[] tanggaltransaksiharian; public string[] hargatransaksiharian; public string[] returntransaksiharian; public decimal expectedreturn; public decimal varians;
public decimal standarddeviation; public decimal[] kovarian;
public decimal[] korelasi; public decimal[] porsi; public string[] coleration; public string[] proporsi; public string[] covarian; }
void isistringnamaperusahaan(DataPerusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False");
SqlCommand myCommand = new SqlCommand("select * from perusahaan", myConnection);
myConnection.Open();
SqlDataReader dataReader = myCommand.ExecuteReader(); int loop = 0; while (dataReader.Read()) { x[loop].namaperusahaan = dataReader["ticker"].ToString(); loop++; } } void isijumlahtransaksiharianperusahaan(DataPerusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated
Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int jumlahtransaksi = 0;
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from harga where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); jumlahtransaksi = 0; while (dataReader.Read()) { jumlahtransaksi++; } x[awal].jumlahtransaksiharian = jumlahtransaksi; dataReader.Close(); myConnection.Close(); } }
void
inisialisasitanggaldanhargatransaksiharianperusahaan(DataPerusahaan[] x) {
for (int awal = 0; awal < banyakperusahaan; awal++) {
x[awal].tanggaltransaksiharian = new string[x[awal].jumlahtransaksiharian];
x[awal].hargatra皜saksiharian = new string[x[awal].jumlahtransaksiharian]; x[awal].returntransaksiharian = new string[x[awal].jumlahtransaksiharian]; } } void isitanggaltransaksiharianperusahaan(DataPerusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int loop = 0; string temporary = ""; string modification = "";
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from harga where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); loop = 0; while (dataReader.Read()) { temporary = ""; temporary = dataReader["tanggal"].ToString(); if (temporary.Substring(0, 10).Contains(" ")) { if (temporary.Substring(0, 2).Contains("/")) { modification = "0"; }
modification = modification + temporary.Substring(0, 2); if (temporary.Substring(2, 2).Contains("/"))
modification = modification + "0"; }
modification = modification + temporary.Substring(2, 7); x[awal].tanggaltransaksiharian[loop] = modification; } else { x[awal].tanggaltransaksiharian[loop] = temporary.Substring(0, 10); } loop++; } dataReader.Close(); myConnection.Close(); } } void isihargatransaksiharianperusahaan(DataPerusahaan[] x) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; int loop = 0; string temporary = "";
for (int awal = 0; awal < banyakperusahaan; awal++) {
myCommand = new SqlCommand("select * from harga where ticker like '" + x[awal].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); loop = 0; while (dataReader.Read()) { temporary = ""; temporary = dataReader["harga"].ToString(); x[awal].hargatransaksiharian[loop] = temporary; loop++; } dataReader.Close(); myConnection.Close(); }
} void isireturntransaksiharianperusahaan(DataPerusahaan[] x) { decimal temporary; string temporary2; int a;
for (int awal = 0; awal < banyakperusahaan; awal++) {
a = x[awal].jumlahtransaksiharian - 31;
for (int akhir = a; akhir < x[awal].jumlahtransaksiharian; akhir++) { temporary = 0; temporary2 = ""; if (akhir == 0) { x[awal].returntransaksiharian[akhir] = null; } else { temporary = (Convert.ToDecimal(x[awal].hargatransaksiharian[akhir]) - Convert.ToDecimal(x[awal].hargatransaksiharian[akhir - 1])) / Convert.ToDecimal(x[awal皜.hargatransaksiharian[akhir - 1]); if (temporary == 0) { temporary2 = "0.000000"; x[awal].returntransaksiharian[akhir] = temporary2; } else { if (temporary < 0) { if (temporary.ToString().Length > 8) { temporary2 = temporary.ToString().Substring(0, 9); }
else temporary2 = temporary.ToString().Substring(0, temporary.ToString().Length); x[awal].returntransaksiharian[akhir] = temporary2; } else if (temporary > 0) { if (temporary.ToString().Length > 8) {
temporary2 = temporary.ToString().Substring(0, 8); }
else temporary2 = temporary.ToString().Substring(0, temporary.ToString().Length); x[awal].returntransaksiharian[akhir] = temporary2; } } } } } } void isiexpectedreturn(DataPerusahaan[] x) { int loop = 0; int loop2 = 0; int posisi = 0;
decimal[] expectedreturn = new decimal[banyakperusahaan]; while (loop < banyakperusahaan)
{ loop2 = 0; expectedreturn[loop] = 0; posisi = x[loop].jumlahtransaksiharian - 1; while (loop2 != 31) { expectedreturn[loop] += Convert.ToDecimal(x[loop].returntransaksiharian[posisi]); posisi--; loop2++; } expectedreturn[loop] /= 31; expectedreturn[loop] = Convert.ToDecimal(expectedreturn[loop].ToString().Substring(0, 8)); x[loop].expectedreturn = expectedreturn[loop]; loop++; }/*
table.Rows.Add("Expected Return", expectedreturn[0].ToString(), expectedreturn[1].ToString(), expectedreturn[2].ToString() , expectedreturn[3].ToString(), expectedreturn[4].ToString(), expectedreturn[5].ToString(), expectedreturn[6].ToString() , expectedreturn[7].ToString(), expectedreturn[8].ToString());*/ } void isivarian(DataPerusahaan[] x) {
decimal[] varian = new decimal[banyakperusahaan]; int loop = 0;
int loop2 = 0; int posisi = 0;
decimal variansi1 = 0;
decimal[] variansi2 = new decimal[banyakperusahaan]; decimal variansi3 = 0;
double standard = 0;
while (loop < banyakperusahaan) { loop2 = 0; posisi = x[loop].jumlahtransaksiharian - 1; variansi1 = 0; variansi2[loop] = 0; standard = 0; while (loop2 != 31) { variansi1 = Convert.ToDecimal(x[loop].returntransaksiharian[posisi]) - x[loop].expectedreturn;
variansi1 = variansi1 * variansi1;
variansi3 = Convert.ToDecimal(variansi1.ToString().Substring(0, 8));
variansi2[loop] = variansi2[loop] + variansi3; //MessageBox.Show(variansi1.ToString()); //MessageBox.Show(variansi2[loop].ToString()); //variansi2[loop] = Convert.ToDecimal(variansi2.ToString().Substring(0, 8)); posisi--; loop2++; 皜 variansi1 = 0; variansi3 = 0; } variansi2[loop] = variansi2[loop] / 31; variansi2[loop] = Convert.ToDecimal(variansi2[loop].ToString().Substring(0, 8)); x[loop].varians = variansi2[loop]; standard = Math.Sqrt(Convert.ToDouble(variansi2[loop])); x[loop].standarddeviation = Convert.ToDecimal(standard.ToString().Substring(0, 8)); loop++;
} /* table.Rows.Add("Variansi", x[0].varians.ToString(), x[1].varians.ToString(), x[2].varians.ToString() , x[3].varians.ToString(), x[4].varians.ToString(), x[5].varians.ToString(), x[6].varians.ToString() , x[7].varians.ToString(), x[8].varians.ToString());
table.Rows.Add("Deviasi Standar", x[0].standarddeviation.ToString(), x[1].standarddeviation.ToString(), x[2].standarddeviation.ToString() , x[3].standarddeviation.ToString(), x[4].standarddeviation.ToString(), x[5].standarddeviation.ToString(), x[6].standarddeviation.ToString() , x[7].standarddeviation.ToString(), x[8].standarddeviation.ToString()); */ } void isikovariankorelasiporsi(DataPerusahaan[] x) {
for (int i = 0; i < banyakperusahaan; i++) {
x[i].kovarian = new decimal[banyakperusahaan]; x[i].korelasi = new decimal[banyakperusahaan]; x[i].porsi = new decimal[banyakperusahaan]; x[i].proporsi = new string[banyakperusahaan]; x[i].coleration = new string[banyakperusahaan]; x[i].covarian = new string[banyakperusahaan]; }
int loop = 0; int looping = 0;
int posisi = x[0].jumlahtransaksiharian - 1; //MessageBox.Show(posisi.ToString()); decimal tampung, tampung2 = 0;
decimal banding1, banding2, banding3 = 0; decimal weight1 = 0;
/*
table.Rows.Add("Kovarian", x[0].namaperusahaan, x[1].namaperusahaan,
x[2].namaperusahaan,
x[3].namaperusahaan, x[4].namaperusahaan, x[5].namaperusahaan, x[6].namaperusahaan, x[7].namaperusahaan, x[8].namaperusahaan);
*/
//tambahkan 1 baris baris++;
while (loop < banyakperusahaan) {
for (int j = 0; j < banyakperusahaan; j++) { looping = 0; posisi = x[loop].jumlahtransaksiharian - 1; tampung = 0; tampung2 = 0; while (looping != 31) { tampung = (Convert.ToDecimal(x[loop].returntransaksiharian[posisi]) - x[loop].expectedreturn) * (Convert.ToDecimal(x[j].returntransaksiharian[posisi]) - x[j].expectedreturn); tampung2 += tampung; posisi--; looping++; } x[loop].kovarian[j] = decimal.Round((tampung2 / 31), 5); x[loop].korelasi[j] = decimal.Round((x[loop].kovarian[j] / (x[loop].standarddeviation * x[j].standarddeviation)), 1); weight1 = (Convert.ToDecimal(Math.Pow(Convert.ToDouble(x[j].standarddeviation), 2)) - (x[loop].korelasi[j] * x[loop].standarddeviation * x[j].standarddeviation)) / (Convert.ToDecimal(Math.Pow(Convert.ToDouble(x[loop].standarddeviation), 2)) + Convert.ToDecimal(Math.Pow(Convert.ToDouble(x[j].standarddeviation), 2)) - (x[loop].korelasi[j] * x[loop].standarddeviation * 皜 x[j].standarddeviation)); x[loop].porsi[j] = decimal.Round(weight1, 2); if (loop > j) { x[loop].porsi[j] = 0;
} if (x[loop].porsi[j] != 0) { x[loop].proporsi[j] = Convert.ToString(x[loop].porsi[j] * 100).Substring(0, 2) + "% " + x[loop].namaperusahaan + " | " + Convert.ToString(100 - (x[loop].porsi[j] * 100)).Substring(0, 2) + "% " + x[j].namaperusahaan; x[loop].coleration[j] = x[loop].korelasi[j].ToString(); x[loop].covarian[j] = x[loop].kovarian[j].ToString(); } else { x[loop].proporsi[j] = ""; x[loop].coleration[j] = ""; x[loop].covarian[j] = ""; } if (loop == j) { x[loop].proporsi[j] = "N/A"; //x[loop].coleration[j] = "N/A"; x[loop].coleration[j] = x[loop].korelasi[j].ToString(); x[loop].covarian[j] = x[loop].kovarian[j].ToString(); } } /* table.Rows.Add(x[loop].namaperusahaan, x[loop].covarian[0].ToString(), x[loop].covarian[1].ToString(), x[loop].covarian[2].ToString(), x[loop].covarian[3].ToString(), x[loop].covarian[4].ToString(), x[loop].covarian[5].ToString(), x[loop].covarian[6].ToString(), x[loop].covarian[7].ToString(), x[loop].covarian[8].ToString()); */ baris++; loop++; } /* loop = 0; table.Rows.Add("", "", "", "", "", "", "", "", "", "");
table.Rows.Add("Korelasi", x[0].namaperusahaan, x[1].namaperusahaan, x[2].namaperusahaan,
x[6].namaperusahaan, x[7].namaperusahaan, x[8].namaperusahaan); while(loop < banyakperusahaan) { table.Rows.Add(x[loop].namaperusahaan, x[loop].korelasi[0].ToString(), x[loop].korelasi[1].ToString(), x[loop].korelasi[2].ToString(), x[loop].korelasi[3].ToString(), x[loop].korelasi[4].ToString(), x[loop].korelasi[5].ToString(), x[loop].korelasi[6].ToString(), x[loop].korelasi[7].ToString(), x[loop].korelasi[8].ToString()); loop++; } */ loop = 0; //table.Rows.Add("", "", "", "", "", "", "", "", "", ""); baris++; /*
table.Rows.Add("Korelasi", x[0].namaperusahaan, x[1].namaperusahaan, x[2].namaperusahaan,
x[3].namaperusahaan, x[4].namaperusahaan, x[5].namaperusahaan, x[6].namaperusahaan, x[7].namaperusahaan, x[8].namaperusahaan); */
//tambahkan lagi barisnya baris++;
banding1 = 0; banding2 = 0; banding3 = 0; int xx = 0;
int[] kolom2 = new int[banyakperusahaan - 1]; while (loop < banyakperusahaan)
{ kolom = 0; banding1 = 0; banding2 = 0; xx = 0; banding1 = Convert.ToDecimal(x[loop].coleration[loop]); for (xx = loop; xx < banyakperusahaan; xx++)
{
banding2 = Convert.ToDecimal(x[loop].coleration[xx]); if (banding1 > banding2)
kolom = xx; 皜 banding1 = banding2; } } //MessageBox.Show(kolom.ToString()); if (loop != banyakperusahaan - 1) { kolom2[loop] = kolom; } /* table.Rows.Add(x[loop].namaperusahaan, x[loop].coleration[0].ToString(), x[loop].coleration[1].ToString(), x[loop].coleration[2].ToString(), x[loop].coleration[3].ToString(), x[loop].coleration[4].ToString(), x[loop].coleration[5].ToString(), x[loop].coleration[6].ToString(), x[loop].coleration[7].ToString(), x[loop].coleration[8].ToString()); if (loop != banyakperusahaan - 1) { dataGridView1.Rows[baris].Cells[kolom + 1].Style.BackColor = Color.Yellow; } */ baris++; loop++; } /* loop = 0;
while (loop < banyakperusahaan) { table.Rows.Add(x[loop].namaperusahaan, x[loop].coleration[0].ToString(), x[loop].coleration[1].ToString(), x[loop].coleration[2].ToString(), x[loop].coleration[3].ToString(), x[loop].coleration[4].ToString(), x[loop].coleration[5].ToString(), x[loop].coleration[6].ToString(), x[loop].coleration[7].ToString(), x[loop].coleration[8].ToString()); baris++; loop++; }*/ loop = 0; //table.Rows.Add("", "", "", "", "", "", "", "", "", ""); baris++; /*
table.Rows.Add("Porsi", x[0].namaperusahaan, x[1].namaperusahaan, x[2].namaperusahaan,
x[3].namaperusahaan, x[4].namaperusahaan, x[5].namaperusahaan, x[6].namaperusahaan, x[7].namaperusahaan, x[8].namaperusahaan); baris++;
*/
while (loop < banyakperusahaan) {/* table.Rows.Add(x[loop].namaperusahaan, x[loop].proporsi[0].ToString(), x[loop].proporsi[1].ToString(), x[loop].proporsi[2].ToString(), x[loop].proporsi[3].ToString(), x[loop].proporsi[4].ToString(), x[loop].proporsi[5].ToString(), x[loop].proporsi[6].ToString(), x[loop].proporsi[7].ToString(), x[loop].proporsi[8].ToString()); if (loop != banyakperusahaan - 1) { dataGridView1.Rows[baris].Cells[kolom2[loop] + 1].Style.BackColor = Color.Yellow; }*/ baris++; loop++; } } #endregion #region kombinasi decimal[] persentage; string[] percent; void cari3terbaik(Perusahaan[] x) { int loop = 0; int jumlahtransaksi = 0; int temporary = 0; decimal lastprice = 0;
persentage = new decimal[banyakperusahaan]; percent = new string[banyakperusahaan];
while (loop < banyakperusahaan) {
SqlConnection myConnection = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=dataskripsi;Integrated Security=True;Pooling=False"); SqlCommand myCommand; SqlDataReader dataReader; jumlahtransaksi = 0; lastprice = 0; temporary = 0; #region a
myCommand = new SqlCommand("select * from harga where ticker like '" + x[loop].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); while (dataReader.Read()) { jumlahtransaksi+皜; } dataReader.Close(); myConnection.Close(); #endregion #region b //part 2
myCommand = new SqlCommand("select * from harga where ticker like '" + x[loop].namaperusahaan + "'", myConnection);
myConnection.Open(); dataReader = myCommand.ExecuteReader(); while (dataReader.Read()) { if (temporary == jumlahtransaksi - 1) { lastprice = Convert.ToDecimal(dataReader["harga"].ToString()); persentage[loop] = (x[loop].NI[x[loop].jumlaheps - 1] - lastprice) / lastprice; persentage[loop] = decimal.Round(persentage[loop], 4); persentage[loop] = persentage[loop] * 100; percent[loop] = persentage[loop].ToString(); percent[loop] = percent[loop].Substring(0, percent[loop].IndexOf(".") + 3) + " %"; }
else temporary++; } dataReader.Close(); myConnection.Close(); #endregion loop++; } } #endregion
private void BGHMForm_Load(object sender, EventArgs e) { tooltip.AutoPopDelay = 1000; tooltip.InitialDelay = 500; tooltip.ReshowDelay = 100; tooltip.ShowAlways = true; jumlahperusahaan(); //bg
Perusahaan[] perusahaan = new Perusahaan[banyakperusahaan]; isinamaperusahaan(perusahaan); isijumlaheps(perusahaan); inisialisasi(perusahaan); isistruct(perusahaan); hitungNI(perusahaan); //hm
DataPerusahaan[] dataPerusahaan = new DataPerusahaan[banyakperusahaan]; isistringnamaperusahaan(dataPerusahaan); isijumlahtransaksiharianperusahaan(dataPerusahaan); inisialisasitanggaldanhargatransaksiharianperusahaan(dataPerusahaan); isitanggaltransaksiharianperusahaan(dataPerusahaan); isihargatransaksiharianperusahaan(dataPerusahaan); isireturntransaksiharianperusahaan(dataPerusahaan); //advanced isiexpectedreturn(dataPerusahaan); isivarian(dataPerusahaan); isikovariankorelasiporsi(dataPerusahaan); //cari 3 terbaik dari BG
cari3terbaik(perusahaan); //isi richtext
decimal[] tampung = new decimal[4]; int[] posisi = new int[4];
for (int i = 0; i < banyakperusahaan; i++) { if (i == 0) { tampung[0] = Convert.ToDecimal(percent[i].Substring(0, percent[i].IndexOf(" "))); tampung[1] = Convert.ToDecimal(percent[i+1].Substring(0, percent[i].IndexOf(" "))); tampung[2] = Convert.ToDecimal(percent[i+2].Substring(0, percent[i].IndexOf(" "))); posisi[0] = i; posisi[1] = i + 1; posisi[2] = i + 2; if (tampung[2] > tampung[1]) { tampung[3] = tampung[1]; posisi[3] = posisi[1]; tampung[1] = tampung[2]; posisi[1] = posisi[2]; tampung[2] = tampung[3]; posisi[2] = posisi[3]; } if (tampung[1] > tampung[0]) { tampung[3] = tampung[1]; posisi[3] = posisi[1]; tampung[1] = tampung[0]; posisi[1] = posisi[0]; tampung[0] = tampun皜[3]; posisi[0] = posisi[3]; } if (tampung[2] > tampung[1]) {