BAB III METODOLOGI PENELITIAN
3.1. Pendahuluan
Tujuan dari tesis ini untuk mendapatkan sebuah rancangan aplikasi penentu keterhubungan antara data mahasiswa dan masa studi dengan menggunakan
algoritma regresi linier berganda. Data dikumpulkan dari database pendidikan akademik mahasiswa yang yang
diwisuda periode I, II Tahun 2010 dan periode II Tahun 2011 di Sekolah Tinggi Teknik Harapan STTH Medan. Penulis memberikan tinjauan singkat dari beberapa
analisis data yang digunakan pada penelitian ini.
3.2. Lokasi dan Waktu Penelitian
Penelitian dilakukan di Sekolah Tinggi Teknik Harapan Medan Kampus I Jl. Imam Bonjol No. 35 Medan dan Kampus II Jl. H.M. Jhoni No. 70 Medan. Lamanya waktu
yang dibutuhkan untuk menyelesaikan penelitian ini selama 4 empat bulan yang dimulai pada awal Februari 2011 sampai dengan akhir Juni 2011.
3.3. Pelaksanaan Penelitian
3.3.1. Jenis dan Sumber Data
Jenis data yang dikumpulkan dalam penelitian ini adalah bersumber dari data sekunder yaitu data yang berasal dari jurnal, dokumen, dan peraturan yang ada di
Sekolah Tinggi Teknik Harapan STTH Medan jurusan Teknik Informatika yang
mendukung penelitian ini.
3.3.2. Teknik Pengumpulan Data
Teknik pengumpulan data yang digunakan dalam penelitian ini sebagai berikut : 1.
Wawancara kepada pimpinan Sekolah Tinggi Teknik Harapan STTH Medan dan para stafnya untuk mendapatkan keterangan data serta
informasi lainnya yang sesuai dengan kebutuhan penelitian.
Universitas Sumatera Utara
2. Studi dokumentasi yaitu mengumpulkan database pendidikan mahasiswa
mengenai rata-rata nilai UN, IP Komulatif IP Semester 1, 2 dan 3, jumlah sks mata kuliah yang diambil pada semester 4, dan pendidikan
orang tua serta dokumentasi yang mendukung penelitian. 3.
Untuk menghasilkan rancangan aplikasi penentu keterhubungan antara data mahasiswa dan masa studi tesis ini menggunakan 500 data mahasiswa
data mahasiswa dapat dilihat dalam lampiran1. Selanjutnya 100 data mahasiswa data mahasiswa dapat dilihat pada lampiran 2 digunakan
untuk menilai performansi prediksi masa studi mahasiswa.
3.4. Perangkat Lunak yang Digunakan
3.4.1. Bahasa Pemograman C++
Bahasa C dikembangkan di Bell lab pada tahun 1972 ditulis pertama kali oleh Brian W. Kernighan dan Denies M. Ricthie merupakan bahasa turunan atau pengembangan
dari bahasa B yang ditulis oleh Ken Thompson pada tahun 1970 yang diturunkan oleh bahasa sebelumnya, yaitu BCL. Bahasa C pada awalnya dirancang sebagai
bahasa pemograman yang dioperasikan pada sistem operasi UNIX. Bahasa C merupakan bahasa pemograman tingkat menengah yaitu di antara
bahasa tingkat rendah dan tingkat tinggi yang biasa disebut dengan bahasa tingkat menengah. Bahasa C mempunyai banyak kemampuan yang sering digunakan
diantaranya kemampuan untuk membuat perangkat lunak, misalnya dBase, Word Star dan lain-lain.
Pada tahun 1980 seorang ahli yang bernama Bjarne Stroustrup
mengembangkan beberapa hal dari bahasa C yang dinamakan “ C with Classes” yang pada mulanya di sebut “ a better C” dan berganti nama pada tahun 1983 menjadi
C++ oleh Rick Mascitti, di buat di laboratorium Bell, ATT. Pada C++ ditambah konsep-konsep baru seperti class dengan sifat-sifatnya
yang disebut dengan Object Oriented Programming OOP, yang mempunyai tujuan utamanya membantu dan mengelola program yang besar dan kompleks.
Universitas Sumatera Utara
Pada tesis ini penulis menggunakan bahasa pemograman C++ untuk mencari atau menentukan solusi dari sistem persamaan linier SPL dalam menentukan
keterhubungan antara data mahasiswa dan masa studi dengan algoritma regresi linier berganda.
3.4.2. Paket Statistik Untuk Ilmu Sosial SPSS
SPSS Statistical Package for the Social Sciences ini awalnya dirancang untuk digunakan oleh ilmuwan sosial untuk menganalisa data. SPSS mengizinkan
pengguna untuk menarik data dan menampilkan operasi analisis statistik yang rumit, seperti komputasi regresi dan menampilkan presentasi data grafis. Ini juga
menggunakan inferensial yang rumit dan prosedur statistik yang multi variasi, seperti analisis varians ANOVA, analisis faktor, analisis kluster, dan analisis data
katerogikal. SPSS 18.00 digunakan pada tesis ini untuk melakukan uji asumsi klasik
regresi linier. Pengujian ini perlu dilakukan untuk mengetahui apakah koefisien regresi yang kita dapatkan telah sahih benar; dapat diterima.
3.5. Perangkat Keras yang Digunakan
Spesifikasinya perangkat keras yang digunakan dalam penelitian ini adalah sebagai berikut:
1. Prosessor : Intel ® Celeron ®
540 1.86 GHz.
2. RAM : 1 GB.
3. VGA 128.0 MB.
Universitas Sumatera Utara
3.6. Use Case Diagram
Berikut ini adalah gambar 3.1. yang merupakan use case diagram yang dilakukan pada penelitian ini.
Gambar 3.1. Use Case Diagram
3.7. Activity Diagram
Berikut ini alur kerja yang dilakukan pada penelitian ini yang digambarkan dalam activity diagram pada gambar 3.2. berikut:
User
Input data dari file txt
Menghitung jumlah masing2 variabel
Mencari nilai variable dengan mencari
invers matriks
Universitas Sumatera Utara
Gambar 3.2. Activity Diagram Dari gambar 3.2. di atas dapat dijelaskan bahwa yang pertama kali dilakukan peneliti
adalah mengidentifikasi masalah yang diteliti untuk diselesaikan yang tujuannya untuk membuat perancangan aplikasi dengan menggunakan bahasa pemograman
C++ untuk mencari atau menentukan solusi dari sistem persamaan linier SPL dalam menentukan keterhubungan data mahasiswa dengan masa studi dengan
menggunakan algoritma regresi linier berganda. Selanjutnya adalah input data dari file yang berextenxi txt .txt. Selanjutnya menghitung jumlah dari masing-masing
variabel, kemudian diperoleh hasil persamaan normalnya. Langkah selanjutnya mencari nilai variabel dengan cara mencari invers matriks menggunakan Eliminasi
Gauss Jordan. Langkah terakhir diperoleh koefisien regresi a, b1,b2,…, bn, yaitu dengan mengalikan invers matriks dengan persamaan matriks pada ruas kanan.
Universitas Sumatera Utara
3.8. Pseudo-Code
Berikut ini adalah pseudocode bahasa pemograman C++ untuk mencari atau menentukan solusi dari sistem persamaan linier SPL dalam menentukan
keterhubungan antara data mahasiswa dan masa studi adalah sebagai berikut : 1.
Input data data dari file:
char bacaFile char datafile{ char ch;
char token[40000]; char tkn = token;
fflushstdin;
fp = fopendatafile,r; whilech = getcfp = EOF
tkn++=ch; tkn=0;
fclosefp; return token;
}
double num char input { char numstring[20];
char str; int len=0;
str = input;
Universitas Sumatera Utara
while strchr0123456789-., str==0 str++;
ifstrchr0123456789-., str { while isdigitstr || str==- || str==.
{ str++; len++; } strncpynumstring, str-len, len;
numstring[len] = 0; mstr = str;
} returnfloatatofnumstring;
}
int row char tempmstr { int p=0;
while strchr0123456789-., tempmstr==0 tempmstr++;
while tempmstr=\0{ if tempmstr == \n {
p++; while strchr0123456789-., tempmstr==0
tempmstr++; }
tempmstr++; }
--tempmstr; ifisdigittempmstr
p++;
Universitas Sumatera Utara
return p; }
int columnchar tempmstr { int p=0;
while strchr0123456789-., tempmstr==0 tempmstr++;
while tempmstr=\n { iftempmstr==\t||tempmstr== {
p++; while tempmstr==\t||tempmstr==
tempmstr++; }
else tempmstr++;
} --tempmstr;
iftempmstr== ||tempmstr==\t --p;
return ++p; }
Universitas Sumatera Utara
void Matrix::inputDataunsigned int m, unsigned int n { row=m; column=n;
for i=1; i=row; i++ for j=1; j=column; j++
element[i][j] = nummstr; }
int main { char place[200];
char choice; coutInput where is place of the data : \n;
coutExample : c:\\data\\file1.txt \n\n; cinplace;
mstr = bacaFileplace; cout\n\nmstr;
m=rowmstr; n=columnmstr;
cout\n\nThe number of rows = m; cout\nThe number of column = n;
data.inputDatam,n; …
Universitas Sumatera Utara
}
2. Menghitung jumlah dari masing-masing variabel :
Matrix Matrix::calculateMatrix int comb { float sum;
Matrix tempMAX,MAX;
for i=1; i=row+1; i++ { j=1;
while j=column+comb+column-1 { temp.element[i][j]=element[i][j];
if jcolumn j=column+comb fork=1; k=column-1; k++
forl=k; l=column-1; l++ { temp.element[i][j]=element[i][k]element[i][l];
j++; }
if jcolumn+comb j=column+comb+column-1 fork=1; k=column-1; k++ {
temp.element[i][j]=element[i][k]element[i][column];
Universitas Sumatera Utara
j++; }
j++; }
if i==row+1{ fork=1; k=column+comb+column-1; k++{
sum=0; forl=1; l=row; l++
sum+=temp.element[l][k]; temp.element[i][k]=sum;
} }
} temp.row=row+1;
temp.column=column+comb+column-1; return temp;
}
int main { …
fori=n-1; i=1; i--
Universitas Sumatera Utara
count+=i; calculateData=data.calculateMatrixcount;
… }
3. Hasil persamaan normalnya :
void Matrix::identifikasiVar int columnData, int n, int count { int i,j,k;
char str[8], temp[8]; i=1;
while i=columnData { ifi=n {
strcpya[i],convertInti; i++;
} else if i==n+1 {
strcpya[i],y; i++;
}
Universitas Sumatera Utara
else if in+1 i=n+1+count { forj=1; j=n; j++
fork=j; k=n; k++ { strcpystr,convertIntj;
strcatstr,convertIntk; strcpya[i],str;
i++; }
} else {
forj=1; j=n; j++ { strcpystr,convertIntj;
strcatstr,y; strcpya[i],str;
i++; }
} }
fori=1; i=n+1; i++ { k=1;
Universitas Sumatera Utara
forj=1; j=n+1+1; j++ { if i==1 {
if j==1 persamaanMatrix.element[i][j]=row-1;
else persamaanMatrix.element[i][j]=element[row][j-1];
} else {
itoai-1, temp, 10; whilestrstra[k],temp==0
k++; persamaanMatrix.element[i][j]=element[row][k];
k++; }
} }
persamaanMatrix.row=n+1; persamaanMatrix.column=n+1+1;
}
void Matrix::parsingMatrix {
Universitas Sumatera Utara
Matrix tempMAX,MAX; for i=1; i=row; i++
for j=1; j=column-1; j++ coefisient.element[i][j]=element[i][j];
coefisient.row = row; coefisient.column = column-1;
fori=1; i=row; i++ ruasKanan.element[i][1]=element[i][column];
ruasKanan.row = row; ruasKanan.column = 1;
}
int main { …
calculateData.identifikasiVarn+count+n-1,n-1,count; persamaanMatrix.parsingMatrix;
… }
4. Mencari nilai variabel dengan mencari invers matrix menggunakan Eliminasi Gauss Jordan :
Universitas Sumatera Utara
Matrix Matrix::inversMatrix { foat kali, temp;
int i,j,k,sign,n=row; Matrix identitasMAX,MAX;
fori=1;i=n;i++ forj=1;j=n;j++ {
ifi==j identitas.element[i][j]=1;
else identitas.element[i][j]=0;
}
fori=1; i=n; i++ { if element[i][i]==0 {
sign=0; j=i+1;
while sign==0 { ifelement[j][i]=0
fork=1; k=n; k++ {
Universitas Sumatera Utara
temp=element[i][k]; element[i][k]=element[j][k];
element[j][k]=temp; temp=identitas.element[i][k];
identitas.element[i][k]=identitas.element[j][k]; identitas.element[j][k]=temp;
sign=1; }
else j++;
ifjn { cout\n\nMatrix has not Invers..;
getch; exit0;
} }
} kali=1element[i][i];
forj=1; j=n; j++ { element[i][j]=kalielement[i][j];
Universitas Sumatera Utara
identitas.element[i][j]=kaliidentitas.element[i][j]; }
fork=i+1;k=n;k++ ifelement[k][i]=0 {
kali=element[k][i]; forj=1; j=row; j++ {
element[k][j]=element[k][j]-kalielement[i][j]; identitas.element[k][j]=identitas.element[k][j]-
kaliidentitas.element[i][j]; }
} }
fori=n; i1; i-- { fork=i-1;k=1;k--
ifelement[k][i]=0 { kali=element[k][i];
forj=1; j=n; j++ { element[k][j]=element[k][j]-kalielement[i][j];
identitas.element[k][j]=identitas.element[k][j]- kaliidentitas.element[i][j];
} }
Universitas Sumatera Utara
} identitas.row=identitas.column=n;
return identitas; }
int main { …
invers=coefisient.inversMatrix; persamaanMatrix.parsingMatrix;
… }
5. Diperoleh koefisien regresi a, b1, b2, b3, …, bn, yaitu dengan mengalikan invers
matrix dengan persamaan matrix pada ruas kanan.
Matrix Matrix::operatorconst Matrix M { unsigned int i, j, k;
Matrix Rrow, M.column;
for i = 1; i = row; i++ { for j = 1; j = M.column; j++ {
Universitas Sumatera Utara
R.element[i][j] = 0; for k = 1; k = column; k++ {
R.element[i][j] += element[i][k] M.element[k][j]; }
} }
return R; }
int main { …
variabel=inversruasKanan; …
}
Universitas Sumatera Utara
BAB IV
HASIL DAN PEMBAHASAN
4.1. Pendahuluan