Oleh :
Skripsi
Oleh :
109091000053
2013 M / 1434 H
ii
iii
iv
PERNYATAAN
LEMBAGA MANAPUN
109091000053
v
ABSTRAKSI
Luigi Ajeng Pratiwi, Implementasi Algoritma K-Means dalam Data Mining untuk
Peminatan Jurusan Bagi Siswa Kelas X SMA Negeri 29 Jakarta, dibimbing oleh
Nurhayati, Ph.D dan Khodijah Hulliyah, M.Si
Saat ini SMA Negeri 29 Jakarta memiliki kesulitan dalam mengolah hasil prestasi
akademik siswa untuk proses peminatan bagi siswa kelas X SMA. Proses peminatan
siswa yang berjalan saat ini masih menggunakan sistem manual dengan menghitung
nilai mata pelajaran dari masing-masing siswa kemudian mengelompokkan hasil
penghitungan dari nilai masing-masing siswa ke dalam kelompok minat IPA atau IPS
sesuai dengan syarat yang diterapkan oleh SMA Negeri 29 Jakarta. Untuk itu
diperlukan solusi yang dapat mengatasi kesulitan tersebut. Penulis mengembangkan
aplikasi dengan metode Rapid Application Development (RAD) yang terdiri dari fase
perencaan syarat-syarat, fase perancangan, fase konstruksi dan fase pelaksanaan.
Pada tahap kostruksi diimplementasikan algoritma K-Means dalam teknologi data
mining untuk mengklaster hasil prestasi akademik siswa ke dalam kelompok minat
IPA dan IPS. Hasil pembuatan aplikasi ini diperuntukkan bagi pihak sekolah
khususnya wali kelas, sehingga bisa menjadi solusi alternatif atau saran dalam
memberikan keputusan bagi peminatan siswa SMA Negeri 29 Jakarta.
vi
KATA PENGANTAR
Assalamualaikum Wr. Wb
Puji dan syukur penulis panjatkan kepada Allah SWT yang telah
melimpahkan rahmat serta karunia-Nya sehingga penulis dapat menyelesaikan skripsi
ini dengan baik. Shalawat serta salam tak lupa penulis sanjungkan kepada Nabi
Muhammad SAW.
Skripsi ini berjudul “Implementasi Algoritma K-Means dalam Data
Mining untuk Peminatan Jurusan Bagi Siswa Kelas X SMA Negeri 29 Jakarta”.
Penyusunan skripsi ini bertujuan untuk memenuhi salah satu syarat dalam
menyelesaikan pendidikan S1 Program Studi Teknik Informatika di Universitas Islam
Negeri Syarif Hidayatullah Jakarta.
Pada kesempatan ini penulis mengucapkan terima kasih yang sebesar-
besarnya kepada pihak-pihak yang telah membantu dalam menyelesaikan skripsi ini,
yaitu :
1. Bapak Dr. Agus Salim, M.Si, selaku Dekan Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
2. Ibu Nurhayati Ph.D, selaku Ketua Program Studi Teknik Informatika
3. Bapak Hendra Bayu Suseno, M.Kom selaku Sekretaris Program Studi Teknik
Informatika
4. Ibu Nurhayati Ph.D sebagai dosen pembimbing I dan Ibu Khodijah Hulliyah,
M.Si sebagai dosen pembimbing II yang senantiasa meluangkan waktunya
untuk membimbing dan memberikan arahan dalam proses pembuatan skripsi
ini.
5. Ibu Siti Ummi Masruroh, M.Sc sebagai pembimbing akademik yang telah
membimbing penulis selama menjadi mahasiswa Teknik Informatika.
vii
6. Kedua orang tua penulis, Ibunda Titu Irawati dan Ayahanda Suhartono, yang
selalu memberikan do‟a terbaik, kasih sayang, materi, dukungan terhebat serta
semangat untuk menjadikan penulis sebagai manusia yang lebih baik. Umi Ida
Suhaida (Nenek), adik-adik serta keluarga besar penulis yang tidak bisa
penulis sebutkan satu persatu.
7. Seluruh guru dan staff SMAN 29 Jakarta atas bantuannya kepada penulis
8. Dosen-dosen Fakultas Sains dan Teknologi yang telah mengajarkan kepada
penulis berbagai ilmu yang dapat penulis terapkan dalam penelitian skripsi ini
dan dalam kehidupan penulis.
9. Teman-teman Teknik Informatika 2009, khususnya TI-B 2009 dan kelas SE.C
2009 yang selama ini bersama untuk selalu berbagi pengalaman, pengetahuan
dan saling memberikan dukungan.
10. Para sahabat yang tidak dapat disebutkan namanya satu persatu. Terima kasih
atas bantuan, dukungan, do‟a dan motivasinya selama ini.
11. Seluruh pihak yang telah membantu dan namanya tidak dapat disebutkan satu
persatu. Terima kasih atas dukungan dan motivasinya. Semoga Allah SWT
membalas segala kebaikan yang telah diberikan kepada penulis.
Wassalaamualaikum, Wr. Wb
viii
DAFTAR ISI
Halaman
HALAMAN JUDUL ....................................................................................... ii
PENGESAHAN UJIAN................................................................................. iv
PERNYATAAN ....................................................................................... v
ABSTRAKSI ...................................................................................... vi
DAFTAR ISI................................................................................................... ix
ix
BAB II. LANDASAN TEORI .................................................................... 11
x
1. Waktu Peminatan..................................................................... 29
2.7. Analisis dan Desain Berorientasi Objek (Object Oriented Analysis and Design)
Menggunakan UML (Unified Modeling Language) ....................................... 34
xi
BAB III. METODOLOGI PENELITIAN .................................................. 49
xii
BAB IV. HASIL DAN PEMBAHASAN ..................................................... 59
xiii
b. Identifikasi Use Case ............................................ 82
xiv
BAB V. PENUTUP ................................................................................... 172
LAMPIRAN
xv
DAFTAR TABEL
Halaman
Tabel 4.12. Deskripsi Tabel Input Data Siswa (Halaman User) ..................... 94
Tabel 4.13. Deskripsi Tabel Lihat Data Siswa (Halaman User) ..................... 95
Tabel 4.14. Deskripsi Tabel Input Nilai Siswa (Halaman User) .................... 96
Tabel 4.15. Deskripsi Tabel Lihat Nilai Siswa (Halaman User) .................... 97
xvi
Tabel 4.17. Deskripsi Tabel Logout ................................................................ 99
xvii
DAFTAR GAMBAR
Halaman
xviii
Gambar 4.8. Activity Diagram Nilai (Halaman Admin) ............................... 105
Gambar 4.9. Activity Diagram Input Kelas (Halaman Admin) .................... 106
Gambar 4.10. Activity Diagram Lihat Kelas (Halaman Admin) .................. 107
Gambar 4.11. Activity Diagram Peminatan Siswa (Halaman Admin) ......... 108
Gambar 4.12. Activity Diagram Input Siswa (Halaman User) .................... 110
Gambar 4.13. Activity Diagram Lihat Siswa (Halaman User) ..................... 111
Gambar 4.14. Activity Diagram Input Nilai (Halaman User) ....................... 112
Gambar 4.15. Activity Diagram Lihat Nilai (Halaman User) ....................... 113
Gambar 4.19. Sequence Diagram Input User (Halaman Admin) ................. 118
Gambar 4.20. Sequence Diagram Lihat User (Halaman Admin) ................. 119
Gambar 4.21. Sequence Diagram Lihat Siswa (Halaman Admin) ............... 121
Gambar 4.23. Sequence Diagram Input Kelas (Halaman Admin) ............... 123
Gambar 4.24. Sequence Diagram Lihat Kelas (Halaman Admin) ............... 124
Gambar 4.26. Sequence Diagram Input Siswa (Halaman User) .................. 126
Gambar 4.27. Sequence Diagram Lihat Siswa (Halaman User) .................. 127
Gambar 4.28. Sequence Diagram Input Nilai (Halaman User) .................... 129
xix
Gambar 4.29. Sequence Diagram Lihat Nilai (Halaman User) .................... 130
Gambar 4.35. Desain User Interface Input User (Halaman Admin) ............ 142
Gambar 4.36. Desain User Interface Lihat User (Halaman Admin) ............ 142
Gambar 4.37. Desain User Interface Lihat Siswa (Halaman Admin) .......... 143
Gambar 4.38. Desain User Interface Lihat Nilai (Halaman Admin) ............ 143
Gambar 4.39. Desain User Interface Input Kelas (Halaman Admin) .......... 144
Gambar 4.40. Desain User Interface Lihat Kelas (Halaman Admin) ........... 144
Gambar 4.41. Desain User Interface Peminatan (Halaman Admin) ........... 145
Gambar 4.43. Desain User Interface Input Siswa (Halaman User)............. 146
Gambar 4.44. Desain User Interface Lihat Siswa (Halaman User).............. 146
Gambar 4.45. Desain User Interface Input Nilai (Halaman User) .............. 147
Gambar 4.46. Desain User Interface Lihat Nilai (Halaman User) ............... 147
Gambar 4.48. Desain User Interface Pengujian (Halaman User) ................ 148
xx
Gambar 4.50. Syntax Code Hitung Hasil Peminatan .................................... 154
xxi
DAFTAR LAMPIRAN
Halaman
xxii
BAB I
PENDAHULUAN
cara yang tepat untuk mengolah data yang ada. Banyaknya data yang diolah
teknologi Data Mining. Teknologi data mining merupakan salah satu alat bantu
untuk penggalian data pada basis data berukuran besar dan dengan spesifikasi
tingkat kerumitan yang telah banyak digunakan pada banyak domain aplikasi
(2005) dalam buku karangan Kusrini dan Taufiq Luthfi (2009) berpendapat
bahwa data mining terbagi atas beberapa kelompok berdasarkan tugas yang
sehingga data yang memiliki karakteristik yang sama (High intra class
similarity) dikelompokkan ke dalam satu cluster yang sama dan yang memiliki
1
2
(mempunyai jumlah record dan jumlah field yang cukup banyak) tidak dapat
untuk membantu sekolah dalam proses peminatan jurusan bagi siswa kelas X.
Laporan Hasil Belajar Peserta Didik diketahui bahwa penentuan jurusan sangat
diperlukan bagi siswa Sekolah Menengah Atas (SMA), begitu juga di SMA
(sepuluh) dan akan naik ke kelas XI (sebelas). Setelah wali kelas menerima
seluruh nilai semester maka wali kelas akan memutuskan apakah siswa tersebut
naik atau tidak. Jika siswa tersebut dinyatakan naik maka selanjutnya akan
tersebut akurat atau tidak, harus dilakukan penilaian dengan kriteria yang telah
ditentukan selain dari nilai semester kriteria lain yang dibutuhkan dalam sistem
penjurusan adalah minat dan hasil psikotest siswa yang bersangkutan. Sehingga
dari hasil penilaian tersebut pihak sekolah dapat mengambil sebuah keputusan
sebagai bahan evaluasi untuk menentukan jurusan yang tepat bagi siswanya.
3
Proses penentuan jurusan bagi siswa SMA akan terjadi secara berulang setiap
Jakarta diketahui bahwa saat ini SMA Negeri 29 Jakarta memiliki kesulitan
membutuhkan waktu yang lama untuk mengetahui hasil peminatan siswa. Hal
ini menarik untuk diselesaikan agar bisa diperoleh informasi mengenai siapa
saja siswa yang masuk peminatan IPA dan siapa saja siswa yang masuk
peminatan IPS serta jumlah siswa yang berada pada dua program peminatan
tersebut. Jumlah siswa dan nilai siswa yang ada, akan diolah dengan
diharapkan dapat diketahui jumlah siswa yang masuk jurusan IPA atau IPS
secara akurat.
Berdasarkan latar belakang masalah di atas, maka rumusan masalah yang akan
akademik siswa?
menentukan minat bagi siswa kelas X secara lebih efektif dan efisien?
Batasan masalah dalam penerapan data mining dalam pemilihan jurusan bagi
adalah:
Application Development.
2. Data yang digunakan untuk proses analisis algoritma K-Means adalah data
nilai akademik. Nilai yang diambil sebagai dasar untuk proses clustering
5
ajaran 2012/2013.
3. Angket minat siswa tidak dijadikan sebagai atribut hitung dalam proses
algoritma K-Means.
Geografi, Sosiologi).
fungsi tugas data mining, bukan kepada proses atau ruang lingkup data
mining.
menggunakan MySQL.
Language (UML) yang terdiri dari use case diagram, activity diagram,
10. Fitur aplikasi yang diutamakan adalah proses peminatan bagi siswa kelas
1. Tujuan
2. Manfaat
akademik siswa.
sebagai berikut :
sebagai berikut :
8
Studi pustaka
Wawancara
Observasi
ini.
(interface).
BAB I : PENDAHULUAN
dengan permasalahan yang diambil penulis. Teori – teori tersebut diambil dari
digunakan dalam skripsi ini, teknik pengumpulan data, teknik analisa data,
BAB V : PENUTUP
LANDASAN TEORI
penyusunan tugas akhir ini. Dijelaskan pengertian tentang data, data mining beserta
2.1. Data
Data adalah nilai yang merepresentasikan deskripsi dari suatu objek atau
representasi fakta yang tersusun secara terstruktur, atau dengan kata lain
Himpunan data (data-set) adalah kumpulan dari objek dan atribut. Atribut
merupakan sifat atau karakteristik dari suatu objek. Atribut juga dikenal sebagai
11
12
variabel, field, karakteristik atau fitur. Contohnya warna mata seseorang, suhu,
dsb. Sedangkan, kumpulan dari atribut menggambarkan sebuah objek. Objek juga
disebut dengan record, titik, kasus, sample, entitas, atau instance (Hermawati,
2013).
informasi baru dengan mencari pola atau aturan tertentu dari sejumlah data yang
berukuran besar (Davies, 2004). Data mining juga disebut sebagai serangkaian
proses untuk menggali nilai tambah berupa pengetahuan yang selama ini tidak
diketahui secara manual dari suatu kumpulan data (Pramudiono, 2007). Data
mining adalah kegiatan menemukan pola yang menarik dari data dalam jumlah
besar, data dapat disimpan dalam database, data warehouse, atau penyimpanan
informasi lainnya. Data mining berkaitan dengan bidang ilmu – ilmu lain,
information retrieval, dan komputasi tingkat tinggi. Selain itu, data mining
didukung oleh ilmu lain seperti neural network, pengenalan pola, spatial data
otomatis atau seringnya semiotomatis. Pola yang ditemukan harus penuh arti
13
informasi tersembunyi dalam suatu kumpulan data yang besar. KDD sering
disebut-sebut memiliki kesamaan dengan data mining, akan tetapi data mining
dan KDD sesungguhnya memiliki konsep yang berbeda namun berkaitan satu
sama lain. Ada beberapa tahapan dalam proses KDD, salah satunya adalah data
mining. KDD adalah proses menentukan informasi yang berguna serta pola-
pola yang ada dalam data. Informasi ini terkandung dalam basis data yang besar
merupakan salah satu langkah dari serangkaian iterative KDD (Han & Kamber,
2006).
14
Sebagai suatu rangkaian proses, KDD dapat dibagi menjadi beberapa tahap
tidak konsisten atau tidak relevan. Pada umumnya data yang diperoleh,
baik dari database memiliki isian-isian yang tidak sempurna seperti data
yang hilang, data yang tidak valid atau juga hanya sekedar salah ketik.
Selain itu, ada juga atribut-atribut data yang tidak relevan dengan hipotesa
data mining yang dimiliki. Data-data yang tidak relevan itu juga lebih baik
data mining karena data yang ditangani akan berkurang jumlah dan
kompleksitasnya.
15
dalam satu database baru. Tidak jarang data yang diperlukan untuk data
mining tidak hanya berasal dari satu database tetapi juga berasal dari
beberapa database atau file teks. Integrasi data dilakukan pada atribut-
nama, jenis produk, nomor pelanggan dan lainnya. Integrasi data perlu
Data yang ada pada database sering kali tidak semuanya dipakai, oleh
karena itu hanya data yang sesuai untuk dianalisis yang akan diambil dari
database.
Data diubah atau digabung ke dalam format yang sesuai untuk diproses
metode standar seperti analisis asosiasi dan clustering hanya bisa menerima
5. Proses mining
ditemukan. Dalam tahap ini hasil dari teknik data mining berupa pola-pola
hipotesa yang ada memang tercapai. Bila ternyata hasil yang diperoleh
tidak sesuai hipotesa ada beberapa alternatif yang dapat diambil seperti
mencoba metode data mining lain yang lebih sesuai, atau menerima hasil
ini sebagai suatu hasil yang di luar dugaan yang mungkin bermanfaat.
memformulasikan keputusan atau aksi dari hasil analisis yang didapat. Ada
kalanya hal ini harus melibatkan orang-orang yang tidak memahami data
yang bisa dipahami semua orang adalah satu tahapan yang diperlukan
dalam proses data mining. Dalam presentasi ini, visualisasi juga bisa
telah ada.
janggal.
penting dari data dalam suatu basis data. Teknik data mining yang
sequential mining.
2.3. Clustering
Clustering atau clusterisasi adalah salah satu alat bantu pada data mining
satu sama lain dalam cluster yang sama dan dissimilar terhadap obyek-obyek
yang berbeda cluster. Obyek akan dikelompokkan ke dalam satu atau lebih
cluster sehingga obyek-obyek yang berada dalam satu cluster akan mempunyai
2010).
dalam sebuah basis data dan merupakan bagian dari Knowledge Discovery in
Database (KDD) untuk menemukan informasi dan pola yang berguna dalam
data (Dunham 2003). Data mining mencari informasi baru, berharga dan
serta bersifat iteratif baik melalui proses yang otomatis ataupun manual.
dari kemiripan data yang terkelompok di dalamnya. Oleh sebab itu hasil
pemrosesan data sebelum data diolah dengan metode data mining yang lain
dari hasil clustering yang baik adalah suatu instance data dalam suatu cluster
lebih “mirip” dengan instance lain di dalam cluster tersebut daripada dengan
dalam menentukan anggota suatu cluster. Jadi tipe data yang akan di-cluster
(kuantitatif atau kualitatif) juga menentukan ukuran apa yang tepat digunakan
dalam suatu algoritma. Selain kemiripan antar data dalam suatu cluster,
clustering juga dapat dilakukan berdasarkan jarak antar data atau cluster yang
satu dengan yang lainnya. Ukuran jarak (distance atau dissimilarity measure)
yang merupakan kebalikan dari ukuran kemiripan ini juga banyak ragamnya
dan penggunaannya juga tergantung pada tipe data yang akan di-cluster. Kedua
ukuran ini bersifat simetris, dimana jika A dikatakan mirip dengan B maka
dihasilkan. Hasil dari metode ini adalah suatu struktur data berbentuk pohon
yang paling bawah dimana tiap instance data merupakan satu cluster sendiri,
hingga tingkat paling atas dimana keseluruhan data membentuk satu cluster
dimana k adalah banyaknya cluster dari input user. Kategori ini biasanya
22
memerlukan pengetahuan yang cukup mendalam tentang data dan proses bisnis
Beberapa algoritma yang masuk dalam kategori ini antara lain: K-Means, Fuzzy
data yang volumenya sangat besar sehingga tidak cukup ditampung dalam
algoritma harus membaca seluruh data. Beberapa algoritma yang masuk dalam
kategori ini antara lain: Balanced Iteratif Reducing and clustering using
(Bahar, 2011).
Menurut Eko Prasetyo (2012), sebuah sistem klustering juga harus diukur
kinerjanya guna melihat tingkat akurasi dan kesalahan dari sistem tersebut.
klasifikasi masalah biner pada dua kelas yaitu kelas 0 dan 1. Setiap sel fij dalam
masuk ke kelas j. Misalnya, sel f11 adalah jumlah data dalam kelas 1 yang
secara benar dipetakan ke kelas 1, dan f10 adalah data dalam kelas 1 yang
masing-masing kelas yang dikluster secara benar, yaitu (f11+f00), dan data
yang dikluster secara salah, yaitu (f10+f01). Kuantitas matriks konfusi dapat
diringkas menjadi dua nilai, yaitu akurasi dan laju error. Dengan mengetahui
jumlah data yang dikluster secara benar, dapat diketahui akurasi hasil prediksi,
dan dengan mengetahui jumlah data yang dikluster secara salah, dapat diketahui
laju error dari prediksi yang dilakukan. Dua kuantitas ini digunakan sebagai
dan outlier dengan sangat cepat. Menurut Ediyanto dan rekan (2013) algoritma
untuk mengklaster data yang besar, mampu menangani data outlier, dan
adalah jumlah kluster, dan T adalah jumlah iterasi. K-means merupakan metode
Dalam algoritma K-Means, setiap data harus termasuk ke cluster tertentu pada
suatu tahapan proses, pada tahapan proses berikutnya dapat berpindah ke cluster
proses clustering tergantung dari data yang ada dan konklusi yang ingin dicapai.
sebagai berikut :
komponen dari populasi untuk dijadikan pusat cluster awal. Pada step ini pusat
cluster dipilih secara acak dari sekumpulan populasi data. Berikutnya K-Means
tergantung dari jarak minimum antar komponen dengan tiap-tiap pusat cluster.
Posisi pusat cluster akan dihitung kembali sampai semua komponen data
digolongkan kedalam tiap-tiap cluster dan terakhir akan terbentuk posisi cluster
baru.
pendeteksian lokasi pusat cluster dan proses pencarian anggota dari tiap-tiap
dikluster, Cij (i=1,...,n; j=1,...,m) dengan n adalah jumlah data yang akan
26
dikluster dan m adalah jumlah variabel. Pada awal iterasi, pusat setiap kluster
dihitung jarak antara setiap data dengan setiap pusat kluster. Untuk melakukan
penghitungan jarak data ke-I (xi) pada pusat kluster ke-k (ck), diberi nama
(dik), dapat digunakan formula Euclidean. Suatu data akan menjadi anggota
dari kluster ke-k apabila jarak data tersebut ke pusat kluster ke-k bernilai paling
kecil jika dibandingkan dengan jarak ke pusat kluster lainnya. Kita bisa
menjadi anggota pada setiap kluster. Nilai pusat kluster yang baru dapat
dihitung dengan cara mencari nilai rata-rata dari data data yang menjadi anggota
kluster sembarang.
Euclidean
.............................................. (1)
.................................(2)
27
............................................................(3)
Dimana :
5. Ulangi langkah 2 sampai dengan 4 hingga sudah tidak ada lagi data yang
2.4.2. Pseudocode
Pseudo berarti imitasi atau mirip atau menyerupai dan code menunjukkan
kode dari program, berarti pseudocode adalah kode yang mirip dengan
Michael, 2004).
variable, membuka dan menutup file, subscript atau tipe-tipe data yang
(wijaya, 2010):
random
objective function yang diset dalam proses clustering, yang pada umumnya
2.5. Peminatan
Pada saat seorang siswa masuk ke jenjang SMA dan mulai belajar di
kelas X, seorang siswa dapat memilih program peminatan bidang IPA atau IPS
sesuai dengan kriteria mata pelajaran yang telah ditentukan dan dapat diketahui
berdasarkan nilai raport semester ganjil dan genap pada saat siswa tersebut
1. Waktu Peminatan
mata pelajaran pada mata pelajaran yang bukan jadi ciri khas
Matematika Ekonomi
Fisika Sosiologi
Kimia Sejarah
Biologi Geografi
adalah :
skala 0-100
pelajaran.
32
orangtua siswa.
Sedangkan Sistem desain adalah sebuah teknik pemecahan masalah yang saling
(awalnya).
3. Discovery Prototyping
implementasi quick end dirt (bijaksana dan efektif tapi tanpa cacat atau
(Whitten, 2004).
2.7. Analisis dan Desain Berorientasi Objek (Object Oriented Analysis and
objek itu menjadi aplikasi yang berguna. Teknik pemodelan objek menyajikan
penggunaan metodologi dan notasi diagram yang sama sekali berbeda dengan teknik
lainnya yang biasa digunakan untuk pemodelan data dan pemodelan proses.
Pada akhir tahun 80-an dan awal 90-an, di gunakan beberapa metode
berorientasi objek yang berbeda-beda. Yang paling terkenal adalah metode Booch
dari Grady Booch Object Modeling Technique (OMT) dari James Rumbaugh (OMT),
dan Object Oriented Software Engineering (OOSE) dari Ivar Jacobson. Banyaknya
proyek lain (mengurangi reuse) dan tim pengembang. Konsekuesinya, teknik ini
banyak terjadi error di dalam proyek. Masalah ini dan lainnya mendorong di
lakukannya usaha untuk mendesain bahasa pemodelan standar (Whitten et al. 2004).
35
Pada tahun 1994, Grady Booch dan James Rumbaugh sepakat bergabung untuk
Jacobson bergabung pada tahun 1995, dan mereka bertiga fokus membuat sebuah
bahasa pemodelan objek standar sebagai ganti dari pendekatan atau metode
berorientasi objek standar. Berdasarkan keja mereka dan hasil kerja lainnya pada
industri, Unified Modeling Language (UML) versi 1.0 di rilis pada tahun 1997
konsep ini membutuhkan cara pemikiran baru untuk sistem dan proses
1. Object adalah sesuatu yang ada atau dapat di lihat, di sentuh, atau di
sesuatu itu.
objek.
36
4. Behavior adalah kumpulan dari sesuatu yang dapat di lakukan oleh objek
dan terkait dengan fungsi-fungsi yang bertindak pada data objek (atau
et.al, 2004) :
1. Class adalah satu set objek yang memiliki atribut dan behavior yang
atau lebih objek dan kelas. Multiplicity adalah jumlah kejadian minimum dan
37
maksimum dari satu objek/kelas untuk satu kejadian tunggal dari objek/kelas
yang terkait. Aggregation adalah sebuah hubungan di mana satu kelas “whole”
yang lebih besar berisi satu atau lebih kelas “part” yang lebih kecil. Atau, kelas
“part” yang lebih kecil adalah bagian dari kelas “whole” yang lebih besar.
Unified Modeling Language (UML) adalah salah satu alat bantu yang
sangat handal di dunia pengembangan sistem yang berorientasi obyek. Hal ini
memungkinkan bagi pengembang sistem untuk membuat cetak biru atas visi
mereka dalam bentuk yang baku, mudah di mengerti, serta di lengkapi dengan
oleh Booch, Object Modeling Technique (OMT) dan Object Oriented Software
Engineering (OOSE). Metode Booch dari Grady Booch sangat terkenal dengan
nama metode Design Object Oriented. Metode ini menjadikan proses analisis
dan obyek-obyek, identifikasi semantik dari hubungan obyek dan kelas tersebut,
38
detil dan kayanya dengan notasi dan elemen. Pemodelan OMT yang di
pemodelan entity-relationship.
menjadi sebuah diagram model. Berikut adalah simbol yang digunakan pada
Use case adalah deskripsi fungsi dari sebuah sistem dari perspektif
2005)
dengan actor. Actor adalah sebuah peran yang bisa di mainkan oleh pengguna
dalam interaksinya dengan sistem. Use case adalah alat bantu terbaik guna
a. Actor (Pengguna) yaitu abstraksi dari orang dan sistem lain yang
sistem yang lain atau alat ketika berkomunikasi dengan use case.
b. Use Case adalah abstraksi dari interaksi antara sistem dan actor. Use
menyatakan apa hal yang di capai dari hasil interaksinya dengan actor.
System
Use Case 1
Use Case 2
Actor 1 Actor 2
Use Case 3
Actor 3
kotak. Bila class mempunyai nama yang terdiri dari 2 (dua) suku kata
40
atau lebih, maka semua suku kata di gabungkan tanpa spasi dengan huruf
awal tiap suku kata menggunakan huruf besar. Atribute adalah property
dari sebuah class. Attribute ini melukiskan batas nilai yang mungkin ada
pada obyek dari class. Sebuah class mungkin mempunyai nol atau lebih
Operation adalah sesuatu yang bisa di lakukan oleh sebuah class atau
yang anda (atau class yang lain) dapat lakukan untuk sebuah class.
yaitu apa yang akan di capai oleh attribute dan operation (Munawar,
2005).
Class1 Class3
Class2
-Attribute 1 -Attribute 1
-Attribute 1
-Attribute 2 -Attribute 2
-Attribute 2 1 1
-Attribute 3 -Attribute n
-Attribute n * *
-Attribute n +Operation 1()
+Operation 1()
+Operation 1() +Operation n()
+Operation n()
+Operation 2()
+Operation n()
3. Activity Diagram
procedural, proses bisnis dan aliran kerja dalam banyak kasus. Activity
Start
Control Flow
ActionState1
If True
ActionState2
Finish
4. Sequence Diagram
Object 1
Actor
Message 1
Message Call 1
Reply Message 1
Metode adalah suatu cara atau metode yang disarankan untuk melakukan
sesuatu hal. Pendekatan sistem merupakan metode dasar untuk memecahkan masalah.
Metode yang digunakan oleh penulis dalam pembuatan sistem pemilihan jurusan
akan menyelesaikan sistem dengan terus menerus melakukan perbaikan jika ada suatu
fungsi yang tidak berhasil dijalankan. Metode ini sangat baik digunakan dalam
2010).
penerapan, yaitu :
3. Fase Kontruksi
4. Fase Pelaksanaan
43
desain antara user dan perancang sistem. Untuk tahap ini, keaktifan user yang
terlibat sangat menentukan untuk mencapai hasil yang maksimal, karena user
desain.
Pada tahap ini dilakukan pengujian terhadap sistem yang telah dibuat.
Dalam penelitian ini, penulis menggunakan metode pengujian black box yaitu
2.9.1. Java
Ed Frank, dan Mike Sheridan dibawah Sun Microsystem, inc pada 1991.
Bahasa pemrograman ini awalnya diberi nama Oak tapi kemudian diganti Java
pada 1995 (Prasetio, 2010). Sun merilis versi awal Java secara resmi pada awal
tahun 1996 yang kemudian berkembang menjadi JDK 1.1 kemudian JDK 1.2
yang mulai disebut sebagai versi Java2 karena semakin ditingkatkan dan
portable. Hingga saat ini Java sendiri memiliki beberapa edisi untuk keperluan
pengembang perangkat lunak yaitu J2SE, J2EE, J2ME dan yang terakhir
JavaFX.
tersebut.
conditional.
7. Sederhana
9. Berkinerja Tinggi
10. Dinamis
Beberapa fitur yang ditawarkan Java API (Cahyono, 2006) antara lain
sebagai berikut :
1. Applet
2. Java Networking
4. Java Security
security dari aplikasi Java baik secara high level atau low level
5. Java Swing
digunakan.
6. Java RMI
2.10. MYSQL
dan mengirimkan datanya dengan sangat cepat, multi user serta menggunakan
adalah salah satu jenis database server yang sangat terkenal, disebabkan
SQL merupakan bahasa terstruktur yang digunakan untuk interaksi antara script
program dengan database server dalam hal pengolahan data. MySQL pertama
METODOLOGI PENELITIAN
Pada BAB III ini akan dijelaskan tentang metode penelitian yang terdiri
pengumpulan data dilakukan studi literatur dan studi lapangan, sedangkan dalam
penulis menggunakan model proses RAD, dan pada bab ini juga akan dijabarkan
Pada bab ini penulis melakukan pengumpulan data atau informasi yang di
perlukan pada penelitian tugas akhir ini. Data yang diperoleh dalam penulisan
Sebagai landasan yang digunakan dalam penulisan tugas akhir ini penulis
yang akan dibahas dalam penyusunan skripsi. Sumber data yang dipakai adalah
data-data dari hasil literatur yang penulis dapatkan dari jurnal dan penelitian
49
50
3.1.2 Interview
guru Bimbingan Konseling (BK) dan Ibu Dra.Sri Widayati selaku wali kelas
3.1.3. Observasi
Menggunakan
Penelitian tidak
algoritma Fuzzy
dilakukan sampai
C-Means untuk
tahap pembuatan
menentukan
aplikasi, penulis
jurusan bagi
Penentuan Jurusan hanya menggunakan
siswa kelas X.
Sekolah Menengah
2 Bahar 2011
Atas dengan software matlab
algoritma Fuzzy C- Memiliki tingkat
Means untuk menguji coba
keakurasian
Penelitian ini
membahas
tentang
Aplikasi K-Means Penelitian tidak
untuk implementasi
pengelompokkan Tedy Rismawan, Sri dilakukan sampai
3 mahasiswa 2008 algoritma K-
berdasarkan nilai Kusumadewi tahap pembuatan
Body Mass Index Means dalam
(BMI) & ukuran aplikasi.
kerangka menentukan
Body Mass
ukuran kerangka
mahasiswa
Penelitian ini
menghasilkan
informasi nilai
jumlah
mahasiswa pada
Kerangka Besar,
BMI obesitas
sedang &
Kerangka
sedang, BMI
Kerangka kecil
Menjelaskan
secara lebih
terperinci cara
menghitung
jarak terhadap
masing-masing
cluster.
53
praktik terbaik dan perangkat terotomatisasi yang akan digunakan oleh para
maka tahap implementasi dapat dimulai dengan membuat garis besar masalah,
a. Identifikasi masalah
yang mudah digunakan dan bisa membantu pihak sekolah untuk proses
c. Tujuan informasi
Fase ini adalah fase merancang dan memperbaiki yang bisa digambarkan
a. Perancangan Proses
Means dalam Data Mining untuk Pemilihan Jurusan bagi Siswa Kelas X
b. Pemodelan Data
yang akan digunakan untuk pengolahan data (input data). Dan kemudian
Pada tahap ini dilakukan pengujian terhadap sistem yang telah dibuat.
Dalam penelitian ini penulis menggunakan metode pengujian black box. Black
Dari lima macam model-model perangkat lunak yang dikemukakan oleh Roger
berikut :
(Pressman, 2002). Aplikasi yang akan dibuat ini tidak memerlukan fase
yang utuh dalam periode waktu yang sangat pendek jika kebutuhan dapat
waktu dan biaya (Pressman, 2002) karena aplikasi yang akan dibuat
4. Aplikasi ini tidak memerlukan tahapan yang panjang. Hal ini tidak sesuai
dengan model spiral yang merupakan salah satu model evolusioner yang
(Proboyekti, 2004).
58
Bab ini berisi penjelasan mengenai proses atau tahapan-tahapan dalam membangun
aplikasi implementasi algoritma K-Means dalam data mining untuk peminatan bagi
Pada awal bulan September 1966, atas prakarsa Bapak Camat Kebayoran
Lama yang pada saat itu dijabat oleh M.T. Koesnadi, merasa tergugah serta
atas yang berada di wilayah Kebayoran Lama, yang pada saat itu belum ada
mengeluarkan biaya tinggi dan jauh dari domisili tempat tinggalnya. Setelah
melalui beberapa kali proses konsultasi dengan para tokoh pendidik dan ulama
serta bekerja sama dengan SMA VI Bulungan Jakarta Selatan, maka akhirnya
59
60
Lama yang dipimpin oleh Drs. Sunardi dengan menempati gedung bekas SD Sie
Ming Wie di Jalan Kebayoran Lama. Pada saat kunjungan kerja Bapak Gubernur
DKI Ali Sadikin ke Kebayoran Lama, beliau sangat memperhatikan akan kesulitan
tidak adanya sekolah setingkat SLTA di wilayah Kebayoran Lama. Kemudian beliau
diperuntukan SLTP dan SLTA untuk sementara waktu, disusul instruksi segera
membangun gedung baru baru bagi SMA VI Filial pada sebidang tanah seluas
3800m2 dekat Komplek Polri di Jalan Kramat No. 6, Kebayoran Lama, Jakarta
Selatan. Pada tahun 1973, SMA VI Filial yang merupakan cabang dari SMA VI
Bulungan, akhirnya tepat pada bulan Juni 1973 melepaskan diri dari induknya dan
berbagai metode tertentu sesuai dengan tujuan penelitiannya. Ada berbagai metode
yang telah kita kenal antara lain wawancara dan studi pustaka. Metode pengumpulan
sistem peminatan pada SMA yang akan dibuat, jurnal-jurnal hasil penelitian dan
situs internet yang dapat dijadikan acuan pembahasan dalam masalah ini.
4.2.2. Wawancara/Interview
Afrianti Z. Sani, Spd selaku guru Bimbingan Konseling (BK), pada tanggal 13
Juni 2013, bertempat di ruang Bimbingan Konseling (BK) dan dengan Ibu
sistem.
yang kemudian disesuaikan dengan minat siswa tersebut. Karena hal tersebut
minat siswa, hasil cluster dan ketentuan yang telah ditetapkan, dimana batasan
nilai untuk tiap minat/jurusan bukan dari nilai rata-rata siswa. Syarat tiap
peminatan berbeda-beda, untuk peminatan IPA nilai minimum untuk tiap mata
pelajaran IPA adalah 78 dan untuk peminatan IPS nilai minimum untuk tiap
mata pelajaran IPS nya adalah 78. Siswa diperbolehkan memiliki memiliki 1
nilai mata pelajaran dibawah nilai minimum, dan jika lebih dari 1 nilai mata
pelajaran yang dibawah nilai minimum, maka siswa tersebut tidak lulus
4.2.3. Observasi
pada SMA Negeri 29 Jakarta, Jl. Kramat No. 6 Kebayoran Lama, Jakarta
Selatan selama 2 bulan, terhitung dari 15 Mei – 30 Juli 2013. Kegiatan ini
dilakukan untuk mengetahui masalah apa saja yang dialami oleh SMA Negeri
29 Jakarta. Hasil dari observasi ini, penulis menerima 253 data siswa kelas X,
dari kelas X-1 sampai X-7 yang berisikan minat yang diinginkan beserta nilai
penelitian ini yang dapat dijadikan sebagai bahan acuan untuk meningkatkan
64
algoritma K-Means.
dengan mengunakan tools UML. Sepeti yang telah dijelaskan pada bab sebelumnya,
metode ini merupakan suatu pendekatan berorientasi objek yang menekankan pada
minat IPA atau IPS jika hasil nilai akademik yang dimiliki siswa
penulis menerapkan salah satu tugas dari teknologi data mining yaitu
penelitian.
algoritma k-means dalam data mining yang berbasis java dan terhubung
teknik data mining untuk peminatan bagi siswa kelas X sesuai dengan
dan tepat.
sebagai berikut :
mining.
hardware.
1. Kelengkapan Data
a. Hasil Wawancara
terlampir.
genap.
SP 3)
1) Processor 1.6GHz
2) Memory 2GB
3) Harddisk 320 GB
4) Monitor
5) Keyboard
6) Mouse
b. Printer
Data yang digunakan dalam penelitian ini adalah data siswa dan nilai
terdiri dari 8 atribut variabel uji seperti nilai Matematika, Fisika, Kimia,
Data yang tidak lengkap dan inkonsisten sering terjadi pada database,
data yang tidak lengkap dapat disebabkan oleh berbagai sebab, seperti
field yang tidak terisi dengan data yang sesuai dengan atribut.
Demikian pula dengan database data siswa dan nilai akademik siswa,
ada sebagian field yang tidak terisi dengan atribut yang sesuai, untuk
berikut :
a. Data Cleaning
b. Data Integration
c. Data Transformation
„C2‟.
populasi untuk dijadikan pusat cluster awal. Pada step ini pusat cluster
Pada tahap ini akan dilakukan proses utama yaitu segmentasi data nilai
Means dengan asumsi bahwa parameter Input adalah jumlah data set
jumlah jurusan yang ada di SMA 29 Jakarta yaitu IPA dan IPS.
sebanyak 8.
73
peminatan IPS.
tinggi.
bersangkutan.
gunakan :
Jumlah cluster : 2
Jumlah atribut :8
perhitungan manual.
NO NIS NAMA MTK Fisika Biologi Kimia Sejarah Geografi Ekonomi Sosiologi
1 16705 ABRAR 79 75 75 85 76 78 76 80
SUMANGERUKKA
SUWANDAKUSUMAH
2 16706 ADZKIA 84 76 79 77 76 77 75 81
RAHMATILLAH
3 16707 AHMAD RISQI 77 84 78 85 92 89 77 82
SABILAL RASYAD
4 16708 AMBAR 78 86 84 77 78 77 75 75
PURWANTININGSIH
5 16709 ANDIKA SYAHALAM 82 82 81 91 90 82 79 91
8 16711 ARIANSYAH 77 76 70 77 77 80 75 80
PRABOWO
9 16712 AUDI NADYA 79 76 75 84 77 81 76 77
77
Iterasi ke-1
Diambil data ke- 2 sebagai pusat Cluster Ke-1: (84, 76, 79, 77, 76, 77, 75, 81)
Biologi, Kimia.
Diambil data ke- 5 sebagai pusat Cluster Ke-2: (82, 82, 81, 91, 90, 82, 79, 91)
Ekonomi, Sosiologi.
Untuk mengukur jarak antara data dengan pusat cluster digunakan Euclidian
Ckj : Data
Sebagai contoh, perhitungan jarak dari data ke-1 terhadap pusat cluster adalah :
78
1 2 3 4 5 6 7 8 9 10 11 12
10.4 0 24.1 14.1 24.02 15.6 16.4 11.8 11,1 6,8 12,2 6,5 C1
21.7 24.02 14.5 26.03 0 28.8 22.1 26.2 22,4 27,09 25,8 22,9 C2
Setiap kolom pada matrik menunjukkan nilai jarak data terhadap pusat cluster. Baris
pertama pada matrik menunjukkan nilai jarak data terhadap titik pusat cluster pertama,
baris kedua pada matrik menunjukkan nilai jarak data terhadap titik pusat cluster kedua
dan seterusnya.
3. Pengelompokkan data
Jarak hasil perhitungan akan dilakukan perbandingan dan dipilih jarak terdekat antara
data dengan pusat cluster, jarak ini menunjukkan bahwa data tersebut berada dalam
satu kelompok dengan pusat cluster terdekat. Berikut ini akan ditampilkan data
matriks pengelompokkan group, nilai 1 berarti data tersebut berada dalam group.
79
1 2 3 4 5 6 7 8 9 10 11 12
1 1 0 1 0 1 1 1 1 1 1 1 C1
0 0 1 0 1 0 0 0 0 0 0 0 C2
Keterangan :
Jika jarak data ke-1 (D1) dengan pusat cluster ke-1 (C1) atau pusat cluster ke-2 (C2)
lebih dekat, maka G1 bernilai 1 dan termasuk grup atau kelompok cluster baru.
Jika jarak data ke-1 (D1) dengan pusat cluster ke-1 (C1) atau pusat cluster ke-2 (C2)
lebih jauh, maka G1 bernilai 0 dan tidak termasuk grup atau kelompok cluster baru.
Setelah diketahui anggota tiap-tiap cluster kemudian pusat cluster baru dihitung
berdasarkan data anggota tiap-tiap cluster sesuai dengan rumus pusat anggota cluster.
C1 =
C2=
Iterasi ke-2
1 2 3 4 5 6 7 8 9 10 11 12
5,5 7,9 21,1 14,08 23,3 9 10,6 6,7 5,1 5,6 10 3,4 C1
20,5 22,9 7,2 23,13 7,2 26,6 19,5 23,3 19,8 24,9 23,8 21 C2
Langkah selanjutnya sama dengan langkah pada nomor 3 jarak hasil perhitungan
akan dilakukan perbandingan dan dipilih jarak terdekat antara data dengan pusat
cluster, jarak ini menunjukkan bahwa data tersebut berada dalam satu kelompok
dengan pusat cluster terdekat. Berikut ini akan ditampilkan data matriks
1 2 3 4 5 6 7 8 9 10 11 12
1 1 0 1 0 1 1 1 1 1 1 1 C1
0 0 1 0 1 0 0 0 0 0 0 0 C2
81
Karena G2 = G1 memiliki anggota yang sama maka tidak perlu dilakukan iterasi /
Pada tahap ini, akan di buat desain sistem dari sistem yang akan dibangun,
aplikasi. Proses desain akan menggunakan perancangan sistem notasi UML dan
database yang digambarkan dalam Rational Rose sebagai tool sistem design.
berikut :
a. Identifikasi Aktor
2. User User adalah guru yang bertugas untuk meng Input data & nilai siswa,
2 Input User Use case yang digunakan untuk menambah user Admin (Pegawai
sedang login.
4 Lihat Siswa Use case yang digunakan untuk melihat data siswa Admin (Pegawai
(Admin) dan mencetak laporan data siswa dalam bentuk .pdf Akademik)
83
5 Lihat Nilai Use case yang digunakan untuk melihat nilai siswa Admin (Pegawai
6 Input Kelas Usecase yang digunakan untuk menambah kelas Admin (Pegawai
baru Akademik)
7 Ubah Kelas Use case yang digunakan untuk mengubah data Admin (Pegawai
kelas Akademik)
8 Lihat Hasil Use case yang digunakan untuk melihat hasil Admin (Pegawai
9 Input Data Use case yang digunakan untuk menambah data User
10 Lihat Siswa Use case yang digunakan untuk melihat data siswa, User
11 Input Nilai Use case yang digunakan untuk menambah nilai User
sebelumnya.
12 Lihat Nilai Use case yang digunakan untuk melihat data nilai User
nilai siswa.
14 Log Out Use case yang menggambarkan kegiatan keluar Semua aktor
dari sistem.
85
Login
Admin
<<include>> input kelas
Kelas
<<include>> lihat kelas
Logout
Login
<<include>> input data siswa
edit data hapus data cetak data cari data
cetak laporan
<<include>> hasil pengujian <<include>>
peminatan
Logout
Use case Id 1
Precondition Semua aktor memasukkan username dan password untuk dapat masuk
kedalam sistem
Events
authentifikasi
Alternate Courses 2: Jika Username dan Password benar maka langsung masuk kedalam sistem.
Jika Username dan password salah maka akan menampilkan pesan kesalahan.
Use case Id 2
Aktor Admin
Alternate Courses -
Use case Id 3
Aktor Admin
Deskripsi Use case menggambarkan kegiatan melihat, ubah dan hapus user
Use case Id 4
Aktor Admin
Deskripsi Use case menggambarkan kegiatan melihat data siswa
Use case Id 5
Aktor Admin
Deskripsi Use case menggambarkan kegiatan melihat nilai siswa
Use case Id 6
Aktor Admin
Deskripsi Use case menggambarkan kegiatan menambahkan kelas baru
Use case Id 7
Aktor Admin
Deskripsi Use case menggambarkan kegiatan melihat, ubah dan hapus kelas
Use case Id 8
Aktor Admin
Deskripsi Use case menggambarkan kegiatan melihat hasil peminatan siswa
Use case Id 9
Aktor User
Deskripsi Use case menggambarkan kegiatan menambahkan data siswa
baru
Use case Id 10
Aktor User
Deskripsi Use case menggambarkan kegiatan melihat, ubah, hapus dan cari
data siswa
Use case Id 11
Aktor User
Deskripsi Use case menggambarkan kegiatan menambahkan nilai siswa
baru
Use case Id 12
Aktor User
Deskripsi Use case menggambarkan kegiatan melihat, ubah, hapus dan cari
nilai siswa
Alternate Courses -
Keterangan gambar :
Di dalam activity diagram use case login yang harus dilakukan oleh
semua aktor yaitu membuka aplikasi sistem. semua aktor terlebih dahulu
Keterangan gambar :
login terlebih dahulu. Admin memilih menu User, dalam menu User
terdapat submenu Input user dan lihat data user. Dalam submenu Input
Keterangan gambar :
login terlebih dahulu. Admin memilih menu User, dalam menu User
terdapat submenu Input user dan lihat data user. Dalam submenu Lihat
user, admin dapat mengubah data user yang sebelumnya telah di Input ke
dalam sistem. Admin memilih salah satu data yang akan di ubah kemudian
admin mengisi form ubah user setelah itu klik simpan. Secara otomatis data
yang sudah di ubah akan tersimpan dalam database. Selain mengubah data
user, admin juga bisa menghapus data user dengan memilih salah satu data
Keterangan Gambar :
dimana dalam menu Siswa, aktor (admin) memilih submenu Lihat Siswa
dan dapat melihat seluruh data siswa yang sebelumnya sudah di Input ke
dalam sistem dan berhasil disimpan. Dalam menu Lihat Siswa, admin
dapat mencetak laporan data siswa perkelas. Laporan data siswa yang akan
Keterangan Gambar :
dimana dalam menu Nilai, aktor (admin) memilih submenu Lihat Nilai dan
dapat melihat seluruh nilai siswa yang sebelumnya sudah di Input ke dalam
sistem dan berhasil disimpan. Dalam menu Lihat Nilai, admin dapat
mencetak laporan nilai siswa perkelas. Laporan nilai siswa yang akan
Keterangan Gambar :
terlebih dahulu. Admin memilih menu Kelas, dalam menu Kelas terdapat
submenu Input Kelas dan lihat Kelas. Dalam submenu Input Kelas, admin
dalam database.
107
Keterangan Gambar :
terlebih dahulu. Admin memilih menu Kelas, dalam menu Kelas terdapat
submenu Input Kelas dan lihat Kelas. Dimana dalam submenu lihat Kelas
Dalam submenu lihat Kelas, admin dapat mengubah kode kelas, kelas, dan
tahun ajaran yang sebelumnya telah diInput. Caranya pilih salah satu kelas
108
yang akan di ubah, kemudian klik ubah pada kolom actions setelah diklik
aktor harus mengisi form ubah Kelas dan klik simpan lalu sistem akan
memproses data yang dimasukan. Admin juga bisa menghapus data Kelas
Keterangan Gambar :
Peminatan dan admin dapat melihat jumlah siswa yang masuk kelompok
peminatan IPA atau IPS serta mencetak nya. Dan pada tab Hasil
laporan hasil peminatan siswa. Laporan hasil peminatan siswa yang akan
Keterangan Gambar :
terlebih dahulu. User memilih menu Siswa, dalam menu Siswa terdapat
submenu Input Siswa dan lihat Siswa. Dalam submenu Input Siswa, user
dalam database.
111
Keterangan Gambar :
terlebih dahulu. User memilih menu Siswa, dalam menu Siswa terdapat
submenu Input Siswa dan lihat Siswa. Dimana dalam submenu lihat Siswa
Dalam submenu lihat Siswa, user dapat mengubah data siswa yang
sebelumnya telah diInput. Caranya pilih salah satu data siswa yang akan di
112
ubah, kemudian klik ubah pada kolom actions setelah diklik aktor harus
mengisi form ubah data kelas dan klik simpan lalu sistem akan memproses
data yang dimasukan. Admin bisa menghapus data siswa yang sebelumnya
sudah tersimpan. Untuk mencari data siswa, user cukup memilih kelas
mana yang akan di cari data nya, kemudian klik cari. Maka sistem akan
user hanya memilih kelas mana yang akan di cetak data siswanya,
kemudian klik cetak. Data siswa yang akan tercetak berbentuk .pdf
Keterangan Gambar :
terlebih dahulu. User memilih menu Nilai, dalam menu Nilai terdapat
submenu Input Nilai dan lihat Nilai. Dimana dalam submenu lihat Nilai
terdapat pilihan ubah, hapus, cari dan cetak data nilai siswa. Dalam
submenu Input nilai, user dapat menambah nambah nilai ke dalam data
Keterangan Gambar :
terlebih dahulu. User memilih menu Nilai, dalam menu Nilai terdapat
submenu Input Nilai dan lihat Nilai. Dimana dalam submenu lihat Nilai
terdapat pilihan ubah, hapus, cari dan cetak data nilai siswa.
Dalam submenu lihat Nilai user dapat mengubah data nilai siswa yang
sebelumnya telah diInput. Caranya pilih salah satu data nilai siswa yang
akan di ubah, kemudian klik ubah pada kolom actions setelah diklik aktor
harus mengisi form ubah data nilai siswa dan klik simpan lalu sistem akan
memproses data yang dimasukan. Admin bisa menghapus data nilai siswa
yang sebelumnya sudah tersimpan. Untuk mencari data nilai siswa, user
cukup memilih kelas mana yang akan di cari data nya, kemudian klik cari.
mencetak data nilai siswa, user hanya memilih kelas mana yang akan di
cetak data nilai siswanya, kemudian klik cetak. Data nilai siswa yang akan
Keterangan Gambar :
Peminatan berupa tabel yang berisi jumlah siswa yang berada dalam
kelompok minat IPA atau IPS serta dapat mencetak nya dalam bentuk .pdf.
kelas yang akan di cari serta user dapat pula mencetak laporan hasil
Keterangan gambar :
Di dalam activity diagram Log Out. Aktor memilih log out lalu sistem
dilakukan dalam sistem untuk mencapai tujuan dari use case, digambarkan
Keterangan Gambar :
username dan password terlebih dahulu. Pada saat username dan password
diisi dengan yang sudah ada di dalam database. Jika sudah berhasil login
maka seluruh aktor akan masuk ke tampilan home (menu utama) sistem.
Jika Username dan password yang dimasukkan salah, maka sistem akan
Keterangan Gambar :
menu User dan memilih submenu Input User. Sistem akan menampilkan
form Input user, lalu admin mengisi field username, password dan level
119
yang ada pada form Input user. Setelah semua field terisi, klik simpan.
Maka data user yang baru saja di Input akan langsung tersimpan di dalam
database.
Keterangan Gambar :
terlebih dahulu. Admin masuk halaman utama, lalu masuk ke dalam menu
User dan memilih submenu Lihat User. Sistem akan menampilkan data
satu user yang data nya ingin diubah, setelah itu klik tombol ubah. Sistem
menampilkan form ubah user, admin merubah salah satu atau semua field
pada form ubah user, setelah merubah data yang diinginkan, klik simpan.
Data yang baru saja di ubah akan langsung tersimpan ke dalam database.
Jika ingin menghapus data salah satu user, admin cukup memilih salah satu
user yang ingin dihapus datanya, kemudian klik hapus maka sistem akan
Keterangan Gambar :
terlebih dahulu. Admin masuk halaman utama, lalu masuk ke dalam menu
Siswa dan memilih submenu Lihat Siswa. Sistem akan menampilkan data
satu kelas yang data nya ingin dicetak, setelah itu klik tombol cetak. Sistem
menampilkan data siswa dalam bentuk .pdf sesuai dengan kelas yang ingin
di cetak datanya.
122
Keterangan Gambar
terlebih dahulu. Admin masuk halaman utama, lalu masuk ke dalam menu
Nilai dan memilih submenu Lihat Nilai. Sistem akan menampilkan data
salah satu kelas yang data nya ingin dicetak, setelah itu klik tombol cetak.
Keterangan Gambar :
menu Kelas dan memilih submenu Input Kelas. Sistem akan menampilkan
form Input kelas, lalu admin mengisi field yang ada pada form Input Kelas.
Setelah semua field terisi, klik simpan. Maka data kelas yang baru saja di
Keterangan Gambar :
terlebih dahulu. Admin masuk halaman utama, lalu masuk ke dalam menu
Kelas dan memilih submenu Lihat Kelas. Sistem akan menampilkan data
satu kelas yang data nya ingin diubah, setelah itu klik tombol ubah. Sistem
menampilkan form ubah kelas, admin merubah salah satu atau semua field
pada form ubah kelas, setelah merubah data yang diinginkan, klik simpan.
Data yang baru saja di ubah akan langsung tersimpan ke dalam database.
125
Jika ingin menghapus data salah satu kelas, admin cukup memilih salah
satu kelas yang ingin dihapus datanya, kemudian klik hapus maka sistem
Keterangan Gambar :
jumlah siswa yang masuk dalam kelompok peminatan IPA atau IPS dan tab
tombol cetak yang ada pada tab Hasil Konsentrasi Peminatan, maka
seluruh data yang sudah tersimpan akan tercetak dalam bentuk .pdf
Keterangan Gambar :
menu Siswa dan memilih submenu Input Siswa. Sistem akan menampilkan
form Input Siswa, lalu admin mengisi field yang ada pada form Input
Siswa. Setelah semua field terisi, klik simpan. Maka data kelas yang baru
Keterangan Gambar :
terlebih dahulu. User masuk halaman utama, lalu masuk ke dalam menu
Siswa dan memilih submenu Lihat Siswa. Sistem akan menampilkan data
satu siswa yang data nya ingin diubah, setelah itu klik tombol ubah. Sistem
menampilkan form ubah siswa, user merubah salah satu atau semua field
pada form ubah siswa, setelah merubah data yang diinginkan, klik simpan.
Data yang baru saja di ubah akan langsung tersimpan ke dalam database.
Jika ingin menghapus data salah satu siswa, user cukup memilih salah satu
kelas yang ingin dihapus datanya, kemudian klik hapus maka sistem akan
Jika ingin mencari data siswa, user dapat memilih salah satu kelas yang
akan di cari datanya, setelah itu klik tombol cari, kemudian sistem akan
menampilkan data siswa yang telah tersimpan sesuai dengan kelas yang
ingin dicari datanya. Jika kelas yang akan dicari tidak ada, maka sistem
Pada submenu Lihat Siswa, user juga dapat mencetak data siswa perkelas
dengan cara memilih kelas yang akan di cetak data siswa nya, kemudian
klik cetak. Secara otomatis sistem akan menampilkan data siswa sesuai
129
dengan kelas yang ingin di cetak datanya. Data siswa tercetak dalam
bentuk .pdf.
Keterangan Gambar :
menu Nilai dan memilih submenu Input Nilai. Sistem akan menampilkan
form Input Nilai, lalu admin mengisi field yang ada pada form Input Nilai.
130
Setelah semua field terisi, klik simpan. Maka data kelas yang baru saja di
Keterangan Gambar :
terlebih dahulu. User masuk halaman utama, lalu masuk ke dalam menu
Siswa dan memilih submenu Lihat Nilai. Sistem akan menampilkan data
salah satu nilai yang data nya ingin diubah, setelah itu klik tombol ubah.
Sistem menampilkan form ubah nilai, user merubah salah satu atau semua
field pada form ubah nilai, setelah merubah data yang diinginkan, klik
simpan. Data yang baru saja di ubah akan langsung tersimpan ke dalam
database. Jika ingin menghapus data salah satu siswa, user cukup memilih
salah satu nilai siswa yang ingin dihapus datanya, kemudian klik hapus
Jika ingin mencari data nilai siswa, user dapat memilih salah satu kelas
yang akan di cari datanya, setelah itu klik tombol cari, kemudian sistem
akan menampilkan data nilai siswa yang telah tersimpan sesuai dengan
kelas yang ingin dicari datanya. Jika kelas yang akan dicari tidak ada, maka
Pada submenu Lihat Nilai, user juga dapat mencetak data nilai siswa
perkelas dengan cara memilih kelas yang akan di cetak data nilai siswa
nya, kemudian klik cetak. Secara otomatis sistem akan menampilkan data
132
nilai siswa sesuai dengan kelas yang ingin di cetak datanya. Data nilai
Keterangan Gambar :
baik perkelas atau secara keseluruhan. User dapat memilih tombol cari
untuk mencari data yang ingin dilihat hasil peminatannya setelah klik cari,
masing setelah itu, untuk mencetak hasil peminatan, user dapat mengklik
cetak yang ada pada tab Hasil Konsentrasi Peminatan, maka seluruh data
Pada tab Pengujian, user dapat melihat hasil pengujian sistem terhadap
manual. Jika minat hasil penghitungan K-Means sama seperti minat hasil
Means atau manual tidak sama, maka bernilai FALSE. Selain itu, user juga
Keterangan gambar :
Semua aktor memilih menu log out kemudian sistem akan melakukan
memiliki tiga area pokok yaitu nama, atribut dan metode. Selain itu setiap
class yang ada dapat menjadi sebuah form saat pembuatan program.
Pada gambar 4.32 Class Diagram memiliki 16 Class dengan atribut dan
1. Daftar Tabel
Pengujian id jurusanSMA.sql
2. Deskripsi Tabel
a. Tabel jurusan
b. Tabel kelas
c. Tabel matapelajaran
d. Tabel nilai
e. Tabel siswa
g. Tabel User
h. Tabel Pengujian
id varchar 5 id pengujian
a. Login
b. Home Admin
c. Input User
d. Lihat User
j. Home User
yang telah dijelaskan pada sub bab 4.3.1.6 mengenai algoritma K-Means
4.3.3.2 Pengkodean
dengan mengacu pada rancangan dan alur aplikasi yang telah di tentukan.
Java, Netbeans IDE 7.0.1 sebagai editor dan Xampp sebagai server
Netbeans IDE 7.0.1 syntax code program terkait peminatan bagi siswa
SMA. Untuk proses konstruksi dan source code program dapat dilihat
algoritma K-Means :
dalam database
sebagai Output.
156
3.
Gambar 4.51 menjelaskan fungsi pencarian dari data dan nilai akademik
yang dimiliki siswa sebelum proses hitung K-Means. Data dan nilai akademik
a. Login
pengujian black-box :
password terdaftar
masuk ke dalam
halaman utama.
Aplikasi akan
Admin memilih
menampilkan tabel
submenu Lihat User
yang berisi username
pada menu User untuk
Lihat User dan password. Pada
3 melihat daftar pengguna Terpenuhi
(Halaman Admin) submenu ini, admin
serta merubah dan
dapat menghapus atau
menghapus data
merubah data user
pengguna
yang diinginkan
Aplikasi akan
Admin memilih
simpan
Admin memilih
Aplikasi akan
Lihat Kelas submenu Lihat Kelas
7 menampilkan seluruh Terpenuhi
(Halaman Admin) pada menu Kelas untuk
nilai siswa yang ada.
melihat data kelas.
simpan
terupdate otomatis.
menekan tombol
secara otomatis.
bentuk .pdf
simpan
Aplikasi akan
menampilkan tabel
akan terupdate
otomatis.
166
bentuk .pdf
Aplikasi akan
User memilih submenu
menampilkan jumlah
peminatan pada menu
siswa yang masuk
peminatan. Lalu user
kelompok peminatan
memilih tab Hasil
IPA dan IPS lalu user
Peminatan untuk melihat
dapat mencetak dalam
jumlah siswa yang
bentuk .pdf Aplikasi
masuk kelompok
juga menampilkan
peminatan IPA atau IPS.
Peminatan hasil peminatan bagi
13 Tab Hasil Konsentrasi Terpenuhi
(Halaman User) masing-masing siswa
Peminatan berisi hasil
dan hasil konsentrasi
peminatan masing-
peminatan dpt dicetak
masing siswa.
dalam bentuk .pdf
Tab Pengujian berisi
Aplikasi akan
perbandingan peminatan
menampilkan
antara hasil
perbandingan hasil
penghitungan k-means
penghitungan k-means
dan manual.
dan manual. Jika
167
minat hasil
penghitungan K-Means
hasil penghitungan
penghitungan K-Means
FALSE
aplikasi yang telah dibuat. Pada aplikasi ini dari 253 data penelitian yang
ada, dibagi menjadi 2 data yaitu 208 record data untuk pelatihan/training
dan 45 record data untuk testing. Data testing tersebut yang akan dijadikan
sebagai data validasi untuk mengetahui tingkat akurasi dan laju kesalahan
Data uji validasi yang digunakan dapat dilihat pada tabel 4.20 berikut ini :
ABRAR SUMANGERUKKA
1 16705 X1 IPA IPS FALSE
SUWANDAKUSUMAH
2 16739 YOGA ARDIANSYAH X1 IPS IPS TRUE
3 16717 DIMAS MURYA PERDANA X1 IPA IPS FALSE
4 16931 ANANDA RAISYA X7 IPA IPS FALSE
168
SULTHANA LABIBA
5 16737 X1 IPA IPA TRUE
KHANSA
6 16948 MAGHFIRA X7 IPA IPS FALSE
7 16962 SAFIRA HANIFA X7 IPA IPS FALSE
8 16855 ADELA SETIAWAN X5 IPS IPS TRUE
9 16706 ADZKIA RAHMATILLAH X1 IPS IPA FALSE
10 16725 MAYLA RIZKI ARJUNA X1 IPA IPS FALSE
11 16822 ARSYAD FATHURRIZAL X4 IPS IPS TRUE
12 16813 VEDHA AMURAKHAIR X3 IPS IPS TRUE
13 16858 ARSY ERLASYIFA X5 IPS IPS TRUE
14 16778 ADRIAN MARVIN X3 IPS IPS TRUE
CHRISTINA AJENG
15 16786 X3 IPS IPS TRUE
BUDIARTI
16 16945 KEVIN ERIYANG KENCANA X7 IPS IPS TRUE
17 16904 FITRIANA NABELA X6 IPS IPA FALSE
18 16905 ICA KHAIRUN NISA X6 IPS IPA FALSE
19 16965 YUSRIA ULFIANA X7 IPS IPA FALSE
20 16818 ALFRINO ADYWIRYA X4 IPS IPS TRUE
21 16744 ALYSA X2 IPA IPA TRUE
WAHID GALANG
22 16814 X3 IPS IPS TRUE
DEWANTORO
23 16781 ANIISA ZULVINA X3 IPS IPS TRUE
24 16718 ELISABETH GULTOM X1 IPA IPA TRUE
25 16902 FATHY NOOR HAQ LUBIS X6 IPA IPA TRUE
26 16762 GHINVA KEMALAPUTRI X2 IPA IPA TRUE
27 16796 LYDIA PURNAMA SARI X3 IPS IPS TRUE
28 16845 PUTRI DEA SARI X4 IPA IPA TRUE
29 16754 DESY CITRA SARI X2 IPA IPA TRUE
30 16788 FIRMAN HERDIANSYAH X3 IPA IPS FALSE
MUHAMMAD HARALD
31 16839 X4 IPS IPS TRUE
ARKAAN
32 16943 HAFIZAH NURUL AIN X7 IPA IPS FALSE
33 16812 TITA NIDYA SARI X3 IPA IPA TRUE
34 16880 QISTHI HILMI KIASATI X5 IPA IPA TRUE
35 16734 RAHMAT FADHLI SYAUQI X1 IPA IPS FALSE
36 16802 NISA CHAIRUNNISA X3 IPA IPA TRUE
37 16793 ILHAM HABIBIE X3 IPA IPS FALSE
RIZZKE KURNIA
38 16774 X2 IPA IPA TRUE
MARCHELINDA
LEONARDO YORIANO
39 16765 X2 IPS IPS TRUE
BHIRAWA WICAKSANA
40 16766 MANUEL WILMAN X2 IPS IPS TRUE
41 16834 MARCELLINA SITI NABILA X4 IPS IPS TRUE
42 16836 MEY AYU LESTARI X4 IPS IPA FALSE
43 16955 NUR AINI RIDIANDARI X7 IPS IPS TRUE
44 16849 RUSDI SHOLIHIN X4 IPS IPS TRUE
45 16842 NIPUTU AYU DEWI YANTI X4 IPA IPA TRUE
46 16810 SHAFIRA KAUTSAR MAHDI X3 IPS IPS TRUE
47 16912 MAJDINA RACHMA DEWI X6 IPA IPA TRUE
169
berikut:
170
konfusi tersebut maka dapat diketahui tingkat akurasi dan laju kesalahan
algoritma K-Means dalam peminatan bagi siswa kelas X pada data uji.
tersebut:
(1)
(2)
sebesar 0.753 atau 75.3% dan laju kesalahan sebesar 0.2465 atau 24.7%
rentang nilai antara IPA dan IPS terlalu dekat sehingga menyebabkan
masuk ke dalam peminatan IPA dan IPS karena rentang nilai nya terlalu
dekat.
80
70
60
50 Tingkat Akurasi
Laju Error
40
30
20
10
0
Matriks Konfusi
PENUTUP
menguraikan kesimpulan dari penelitian yang telah dilakukan serta saran-saran yang
5.1 Kesimpulan
1. Dari hasil penggalian informasi terhadap 253 data sampel yang diuji
peminatan IPS.
mining untuk sistem peminatan jurusan bagi siswa kelas X SMA dengan
tingkat akurasi sebesar 0.753 atau 75.3% atau 75% terhadap 253 data
siswa.
172
173
5.2 Saran
Aplikasi yang penulis buat tentu saja masih belum sempurna, masih
banyak hal yang dapat dilakukan untuk mengembangkan aplikasi ini agar
menjadi lebih baik lagi. Oleh karena itu oenulis juga menyampaikan beberapa
Atas, serta untuk memberikan kontribusi yang lebih besar di dunia riset,
3. Jika nilai C1 sama dengan nilai C2 atau rentang nilai antara C1 dan C2
peminatan siswa.
DAFTAR PUSTAKA
Bahar. 2011. Penentuan Jurusan Sekolah Menengah Atas dengan Algoritma Fuzzy C-
Alat Berat Untuk Melakukan Estimasi Nilai Outcome. Skripsi. Jakarta : Fakultas
Cahyono, Setiyo. 2006. Panduan Praktis Pemrograman Database MySQL dan Java.
Bandung : Informatika
Davies, and Paul Beynon. 2004. Database System Third Edition. New York : Palgrave
Macmillan
Departemen Pendidikan Nasional (2008), Petunjuk Teknis Laporan Hasil Belajar Peserta
Dunham, Margaret H. 2003. Data Mining Introductory and Advanced Topics. New
Han, Jiawei., Kamber, Micheline., Pei, Jian. 2011. Data Mining Concept and Techniques
174
175
Kantardzic, M. 2003. Data Mining : Concepts, Models, Methods, and Algorithms. New
Kendall, Kenneth E. and Kendall, Julie E. 2008. Systems Analysis and Design. Jakarta :
PT. Indeks
Kusrini., Taufiq Luthfi, Emha. 2009. Algoritma Data Mining. Yogyakarta: CV. Andi
Offset.
Nazri, Ade Amalia. 2011. Perancangan Aplikasi Sistem Penentuan Peminatan Siswa
Nugroho, Adi. 2005. Analisa Perancangan Sistem dengan Metode Berorientasi Objek.
Bandung : Informatika
176
Mobile Learning Bagi Pengajar Berbasis Java. Skripsi. Jakarta : Universitas Islam
Prasetyo, Eko. 2012. Data Mining – Konsep dan Aplikasi Menggunakan MATLAB.
Yogyakarta: ANDI
Rismawan, Tedy dan Kusumadewi, Sri. 2008. Aplikasi K-Means untuk Pengelompokkan
Mahasiswa Berdasarkan Nilai Body Mass Index (BMI) & Ukuran Kerangka.
Santoso, B. (2007), Data Mining: Teknik Pemanfaatan Data untuk Keperluan Bisnis,
Setiawan, Wawan. dan Munir. 2006. Pengantar Teknologi Informasi: Sistem Informasi.
Sutedjo, Budi dan AN, Michael. 2004. Algoritma dan Teknik Pemrograman Konsep,
Tan, P.N., Stainbach, M., dan Kumar, V. 2005, Introduction to Data Mining, Addison
Utami, E dan Raharjo, S. 2004. Logika, Algoritma dan Implementasinya dalam Bahasa
Vercellis, Carlo. 2009. Business intelligence : Data Mining and Optimization for
Whitten JL, Bentley LD, Dittman KC. 2004. Metode Desain dan Analisis Sistem edisi 6.
Witten, Ian H. and Frank, Eibe. 2005. Data Mining: Practical Machine Learning Tools
California, U.S.A
Wijaya, Arim. 2010. Analisis Algoritma K-Means untuk Sistem Pendukung Keputusan
Komputer Indonesia.
Somantri, Maman, ST, MT. 2004. Pemrograman Berorientasi Objek Menggunakan Java
pukul 3.12PM
178
Lampiran 1
Surat Keterangan Dosen Pembimbing
179
180
Lampiran 2
Surat Keterangan Pelaksanaan Riset
181
182
Lampiran 3
Hasil Wawancara
183
WAWANCARA
Pertanyaan :
1. Kapan proses peminatan dilakukan?
Jawab : Peminatan dilakukan kepada siswa yang berada di kelas X dan
akan naik ke kelas XI.
5. Apa yang diinginkan pihak sekolah jika disediakan aplikasi penunjang keputusan
untuk peminatan bagi siswa?
Jawab : Pihak sekolah berharap adanya sebuah aplikasi yang bisa
membantu pihak sekolah dalam menentukan peminatan bagi
siswa, hal ini berguna sebagai salah satu bahan pertimbangan
untuk menentukan minat yang sesuai dengan potensi akademik
maupun minat dari siswa.
WAWANCARA
Pertanyaan :
1. Kapan proses peminatan dilakukan?
Jawab : Peminatan dilakukan kepada siswa yang berada di kelas X dan
akan naik ke kelas XI.
tidak tuntas pada 2 mata pelajaran atau lebih, maka siswa tidak
bisa naik ke kelas XI.
Lampiran 4
Source Code
189
Controlleradmin.java
package controler;
import peminatansma.halaman_admin;
import peminatansma.hasilpeminatan_admin;
import peminatansma.inputkelas;
import peminatansma.inputuser;
import peminatansma.lihatkelas;
import peminatansma.lihatnilai_admin;
import peminatansma.lihatsiswa_admin;
import peminatansma.lihatuser;
import peminatansma.login;
new login().setVisible(true);
new inputuser().setVisible(true);
new lihatuser().setVisible(true);
}
190
new lihatsiswa_admin().setVisible(true);
new lihatnilai_admin().setVisible(true);
new inputkelas().setVisible(true);
new lihatkelas().setVisible(true);
new hasilpeminatan_admin().setVisible(true);
Controllereditnilai.java
package controler;
import javax.swing.JOptionPane;
191
if (status == true){
}else{
Controllerpeminatan.java
/*
*/
package controler;
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.JOptionPane;
import model.modeladmin;
192
/**
* @author user
*/
int iterasi = 1;
193
return datasiswa;
return datakelas;
return datatahun;
return datasiswa;
nis = datasiswa.get(0);
194
matematika = datasiswa.get(1);
fisika = datasiswa.get(2);
kimia = datasiswa.get(3);
biologi = datasiswa.get(4);
ekonomi = datasiswa.get(5);
sosiologi = datasiswa.get(6);
sejarah = datasiswa.get(7);
geografi = datasiswa.get(8);
C1.add(Double.parseDouble(matematika.get(indexc1)));
C1.add(Double.parseDouble(fisika.get(indexc1)));
C1.add(Double.parseDouble(kimia.get(indexc1)));
C1.add(Double.parseDouble(biologi.get(indexc1)));
C1.add(Double.parseDouble(ekonomi.get(indexc1)));
C1.add(Double.parseDouble(sosiologi.get(indexc1)));
C1.add(Double.parseDouble(sejarah.get(indexc1)));
C1.add(Double.parseDouble(geografi.get(indexc1)));
C2.add(Double.parseDouble(matematika.get(indexc2)));
C2.add(Double.parseDouble(fisika.get(indexc2)));
C2.add(Double.parseDouble(kimia.get(indexc2)));
C2.add(Double.parseDouble(biologi.get(indexc2)));
C2.add(Double.parseDouble(ekonomi.get(indexc2)));
195
C2.add(Double.parseDouble(sosiologi.get(indexc2)));
C2.add(Double.parseDouble(sejarah.get(indexc2)));
C2.add(Double.parseDouble(geografi.get(indexc2)));
+ Math.pow((C1.get(1) - Double.parseDouble(fisika.get(j))), 2)
+ Math.pow((C1.get(2) - Double.parseDouble(kimia.get(j))), 2)
+ Math.pow((C1.get(3) - Double.parseDouble(biologi.get(j))), 2)
+ Math.pow((C1.get(4) - Double.parseDouble(ekonomi.get(j))), 2)
+ Math.pow((C1.get(5) - Double.parseDouble(sosiologi.get(j))), 2)
+ Math.pow((C1.get(6) - Double.parseDouble(sejarah.get(j))), 2)
d1.add(Math.sqrt(data1));
+ Math.pow((C2.get(1) - Double.parseDouble(fisika.get(j))), 2)
+ Math.pow((C2.get(2) - Double.parseDouble(kimia.get(j))), 2)
+ Math.pow((C2.get(3) - Double.parseDouble(biologi.get(j))), 2)
+ Math.pow((C2.get(4) - Double.parseDouble(ekonomi.get(j))), 2)
+ Math.pow((C2.get(5) - Double.parseDouble(sosiologi.get(j))), 2)
+ Math.pow((C2.get(6) - Double.parseDouble(sejarah.get(j))), 2)
d2.add(Math.sqrt(data2));
}
196
g1.add(0.0);
g2.add(1.0);
g1.add(.0);
g2.add(0.0);
} else {
g1.add(1.0);
g2.add(0.0);
nextIteration();
iterasi++;
g1.clear();
g2.clear();
g1 = g1baru;
g2 = g2baru;
197
nextIteration();
iterasi = iterasi + 1;
System.out.println(nis.size());
if (status == true) {
} else {
double jumlah1 = 0.0, nmatematika1 = 0.0, nfisika1 = 0.0, nkimia1 = 0.0, nbiologi1 = 0.0,
nekonomi1 = 0.0, nsosiologi1 = 0.0, nsejarah1 = 0.0, ngeografi1 = 0.0;
double jumlah2 = 0.0, nmatematika2 = 0.0, nfisika2 = 0.0, nkimia2 = 0.0, nbiologi2 = 0.0,
nekonomi2 = 0.0, nsosiologi2 = 0.0, nsejarah2 = 0.0, ngeografi2 = 0.0;
// System.out.println(g1+"\n"+g2);
if (g1.get(g) == 1.0) {
198
C1.clear();
C2.clear();
nfisika1 / jumlah1,
nkimia1 / jumlah1,
199
nbiologi1 / jumlah1,
nekonomi1 / jumlah1,
nsosiologi1 / jumlah1,
nsejarah1 / jumlah1,
ngeografi1 / jumlah1);
nfisika2 / jumlah2,
nkimia2 / jumlah2,
nbiologi2 / jumlah2,
nekonomi2 / jumlah2,
nsosiologi2 / jumlah2,
nsejarah2 / jumlah2,
ngeografi2 / jumlah2);
// System.out.println(C1+"\n"+C2);
d1.clear();
d2.clear();
+ Math.pow((C1.get(1) - Double.parseDouble(fisika.get(j))), 2)
+ Math.pow((C1.get(2) - Double.parseDouble(kimia.get(j))), 2)
+ Math.pow((C1.get(3) - Double.parseDouble(biologi.get(j))), 2)
+ Math.pow((C1.get(4) - Double.parseDouble(ekonomi.get(j))), 2)
+ Math.pow((C1.get(5) - Double.parseDouble(sosiologi.get(j))), 2)
+ Math.pow((C1.get(6) - Double.parseDouble(sejarah.get(j))), 2)
d1.add(Math.sqrt(data1));
200
+ Math.pow((C2.get(1) - Double.parseDouble(fisika.get(j))), 2)
+ Math.pow((C2.get(2) - Double.parseDouble(kimia.get(j))), 2)
+ Math.pow((C2.get(3) - Double.parseDouble(biologi.get(j))), 2)
+ Math.pow((C2.get(4) - Double.parseDouble(ekonomi.get(j))), 2)
+ Math.pow((C2.get(5) - Double.parseDouble(sosiologi.get(j))), 2)
+ Math.pow((C2.get(6) - Double.parseDouble(sejarah.get(j))), 2)
d2.add(Math.sqrt(data2));
g1baru.clear();
g2baru.clear();
g1baru.add(0.0);
g2baru.add(1.0);
g1baru.add(0.0);
g2baru.add(0.0);
} else {
g1baru.add(1.0);
g2baru.add(0.0);
}
201
return data;
int penandaIndex = 0;
if (id == 1) {
if ((Double.parseDouble(a.get(i))
+ Double.parseDouble(b.get(i))
+ Double.parseDouble(c.get(i))
penanda = Double.parseDouble(a.get(i))
+ Double.parseDouble(b.get(i))
+ Double.parseDouble(c.get(i))
+ Double.parseDouble(d.get(i));
penandaIndex = i;
}
202
if (id == 2) {
if (i != indexc1) {
if ((Double.parseDouble(a.get(i))
+ Double.parseDouble(b.get(i))
+ Double.parseDouble(c.get(i))
penanda = Double.parseDouble(a.get(i))
+ Double.parseDouble(b.get(i))
+ Double.parseDouble(c.get(i))
+ Double.parseDouble(d.get(i));
penandaIndex = i;
return penandaIndex;
return data;
}
203
System.out.println(data.get(4));
return data;
if(status == true){
}else{
Controllerinputnilai.java
package controler;
204
import java.util.ArrayList;
import model.modelinputnilai;
return nis;
Controllerinputsiswa.java
package controler;
import java.util.ArrayList;
import javax.swing.JOptionPane;
return kelas;
return tahun;
public void inputSiswa(String nis, String nama, String kelamin, String kelas, String
tahunajaran){
if(status == true){
}else{
public void editSiswa(String nis, String nama, String kelamin, String kelas, String
tahunajaran){
if(status == true){
}else{
Controllerinputuser.java
package controler;
import javax.swing.JOptionPane;
if(proses == true){
}else{
}
207
if(proses == true){
Controllerlihatuser.java
package controler;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import peminatansma.inputuser;
return data;
}
208
edit = true;
iu.setVisible(true);
if(status == true){
}else{
edit = false;
Controllerlogin.java
package controler;
import javax.swing.JOptionPane;
209
import model.modellogin;
import peminatansma.halaman_admin;
import peminatansma.halaman_user;
import peminatansma.login;
return UsernameUser;
controlerlogin.UsernameUser = UsernameUser;
if (hak.equals("admin")) {
new halaman_admin().setVisible(true);
} else if (hak.equals("user")) {
new halaman_user().setVisible(true);
setUsernameUser(Username);
} else {
new login().setVisible(true);
}
210
Controlleruser.java
package controler;
import peminatansma.hasilpeminatan;
import peminatansma.inputnilai;
import peminatansma.inputsiswa;
import peminatansma.lihatnilai_user;
import peminatansma.lihatsiswa_user;
import peminatansma.login;
new login().setVisible(true);
new inputsiswa().setVisible(true);
new lihatsiswa_user().setVisible(true);
new inputnilai().setVisible(true);
new lihatnilai_user().setVisible(true);
new hasilpeminatan().setVisible(true);
Db_Connect.java
package model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
212
Connection con;
Statement stat;
Class.forName("com.mysql.jdbc.Driver");
stat = con.createStatement();
return con;
return stat;
con.close();
stat.close();
}
213
Modeladmin.java
package model;
Modelnilai.java
package model;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
try {
return true;
214
return false;
return false;
Modelhasilpeminatan.java
/*
*/
package model;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.logging.Level;
215
import java.util.logging.Logger;
/**
* @author user
*/
try {
while (rs.next()) {
nis.add(rs.getString("nis"));
nama.add(rs.getString("nama"));
kd_kelas.add(rs.getString("kd_kelas"));
c1.add(rs.getString("c1"));
216
c2.add(rs.getString("c2"));
kd_jurusan.add(rs.getString("kd_jurusan"));
while (rs.next()) {
kelas.add(rs.getString("kelas"));
if (!kd_jurusan.get(i).equals("")) {
while (rs.next()) {
jurusan.add(rs.getString("jurusan"));
}else{
jurusan.add("");
dc.close();
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
217
return datasiswa;
try {
while (rs.next()) {
datakelas.add(rs.getString("kelas"));
dc.close();
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return datakelas;
try {
while (rs.next()) {
datatahun.add(rs.getString("thn_ajaran"));
dc.close();
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return datatahun;
try {
while (rs.next()) {
kd_kelass = rs.getString("kd_kelas");
while (rs.next()) {
kd_thnajarann = rs.getString("kd_thnajaran");
while (rs.next()) {
nis.add(rs.getString("nis"));
nama.add(rs.getString("nama"));
kd_kelas.add(rs.getString("kd_kelas"));
c1.add(rs.getString("c1"));
c2.add(rs.getString("c2"));
kd_jurusan.add(rs.getString("kd_jurusan"));
while (rs.next()) {
kelas.add(rs.getString("kelas"));
if (!kd_jurusan.get(i).equals("")) {
while (rs.next()) {
jurusan.add(rs.getString("jurusan"));
}else{
jurusan.add("");
dc.close();
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return datasiswa;
}
221
try {
while (rs.next()) {
kd_kelass = rs.getString("kd_kelas");
while (rs.next()) {
kd_thnajarann = rs.getString("kd_thnajaran");
}
222
while (rs.next()) {
nis.add(rs.getString("nis"));
System.out.println(nis);
while (rs.next()) {
matematika.add(rs.getString("nilai"));
while (rs.next()) {
fisika.add(rs.getString("nilai"));
while (rs.next()) {
kimia.add(rs.getString("nilai"));
while (rs.next()) {
biologi.add(rs.getString("nilai"));
while (rs.next()) {
ekonomi.add(rs.getString("nilai"));
while (rs.next()) {
sosiologi.add(rs.getString("nilai"));
while (rs.next()) {
sejarah.add(rs.getString("nilai"));
while (rs.next()) {
geografi.add(rs.getString("nilai"));
dc.close();
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
}
224
return datasiswa;
try {
while (rs.next()) {
kd_kelass = rs.getString("kd_kelas");
while (rs.next()) {
kd_thnajarann = rs.getString("kd_thnajaran");
return true;
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return false;
225
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return false;
try {
System.out.println(nis.size());
if(c1.get(i)>c2.get(i)){
}else{
InsertTrueFalse(nis.get(i));
226
return true;
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return false;
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return false;
try {
if (rs.next()) {
System.out.println(rs.getString("manual"));
if (rs.getString("manual").equals("IPA")) {
manual = "1";
} else if (rs.getString("manual").equals("IPS")) {
manual = "2";
227
kode = rs.getString("kd_jurusan");
if (kode.equals(manual)) {
} else {
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
public ArrayList<ArrayList<String>>refresh(){
try {
while(rs.next()){
kd_jurusan.add(rs.getString("kd_jurusan"));
jurusan.add(rs.getString("jurusan"));
while(rs.next()){
jumlah.add(rs.getString("jumlah"));
while(rs.next()){
jumlah.add(rs.getString("jumlah"));
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return data;
try {
while(rs.next()){
data[0] = rs.getString("count(keterangan)");
while(rs.next()){
data[1] = rs.getString("count(keterangan)");
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return data;
try {
while(rs.next()){
nis.add(rs.getString("nis"));
nama.add(rs.getString("nama"));
kd_kelas.add(rs.getString("kd_kelas"));
manual.add(rs.getString("manual"));
kd_jurusan.add(rs.getString("kd_jurusan"));
keterangan.add(rs.getString("keterangan"));
while(rs.next()){
kelasss.add(rs.getString("kelas"));
if(kd_jurusan.get(i).equals("")){
jurusan.add("");
231
}else{
while(rs.next()){
jurusan.add(rs.getString("jurusan"));
}}
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modelhasilpeminatan.class.getName()).log(Level.SEVERE, null,
ex);
return data;
Modelinputsiswa.java
package model;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
232
import java.util.logging.Level;
import java.util.logging.Logger;
try {
while(rs.next()){
kelas.add(rs.getString("kelas"));
dc.close();
return kelas;
try {
while(rs.next()){
tahun.add(rs.getString("thn_ajaran"));
dc.close();
return tahun;
public boolean inputSiswa(String nis, String nama, String kelamin, String kelas, String
tahunajaran){
try {
while(rs.next()){
kd_kelas = rs.getString("kd_kelas");
System.out.println(kd_kelas);
while(rs.next()){
kd_thnajaran = rs.getString("kd_thnajaran");
234
if(kd_kelas.equals("")||kd_thnajaran.equals("")){
dc.close();
return false;
}else{
dc.close();
return true;
return false;
return false;
public boolean editSiswa(String nis, String nama, String kelamin, String kelas, String
tahunajaran){
try {
while(rs.next()){
kd_kelas = rs.getString("kd_kelas");
System.out.println(kd_kelas);
while(rs.next()){
kd_thnajaran = rs.getString("kd_thnajaran");
if(kd_kelas.equals("")||kd_thnajaran.equals("")){
dc.close();
return false;
}else{
dc.close();
return true;
return false;
236
return false;
Modelinputuser.java
package model;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
try {
while (re.next()) {
validating = re.getString("username");
237
if (validating.equals("")) {
dc.close();
if (validating.equals("")) {
return true;
} else {
return false;
try {
dc.close();
238
return true;
Modellihatnilai_user.java
package model;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author user
*/
239
Db_Connect dc;
try {
dc = new Db_Connect();
while(rs.next()){
nis.add(rs.getString("nis"));
dc.close();
return nis;
public ArrayList<ArrayList<String>>nilaisiswa(){
try {
240
while(rs.next()){
nis.add(rs.getString("nis"));
nama.add(rs.getString("nama"));
matapelajaran.add(rs.getString("matapelajaran"));
nilai.add(rs.getString("nilai"));
return data;
try {
while(rs.next()){
241
data.add(rs.getString("nis"));
data.add(rs.getString("nama"));
data.add(rs.getString("matapelajaran"));
data.add(rs.getString("nilai"));
return data;
String kd_mp="";
try {
while(rs.next()){
kd_mp = rs.getString("kd_matapelajaran");
return kd_mp;
Modellihatsiswa_user.java
package model;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.logging.Level;
import java.util.logging.Logger;
Db_Connect dc;
try {
dc = new Db_Connect();
243
while(rs.next()){
kelas.add(rs.getString("kelas"));
dc.close();
Logger.getLogger(modellihatsiswa_user.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modellihatsiswa_user.class.getName()).log(Level.SEVERE, null,
ex);
return kelas;
try {
while(rs.next()){
nis.add(rs.getString("nis"));
nama.add(rs.getString("nama"));
jenis_kelamin.add(rs.getString("jenis_kelamin"));
kelas.add(rs.getString("kelas"));
thn_ajaran.add(rs.getString("thn_ajaran"));
dc.close();
Logger.getLogger(modellihatsiswa_user.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modellihatsiswa_user.class.getName()).log(Level.SEVERE, null,
ex);
return data;
try {
while(rs.next()){
kd_kelas = rs.getString("kd_kelas");
while(rs.next()){
nis.add(rs.getString("nis"));
nama.add(rs.getString("nama"));
jenis_kelamin.add(rs.getString("jenis_kelamin"));
kelass.add(rs.getString("kelas"));
thn_ajaran.add(rs.getString("thn_ajaran"));
dc.close();
Logger.getLogger(modellihatsiswa_user.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modellihatsiswa_user.class.getName()).log(Level.SEVERE, null,
ex);
}
246
return data;
try {
dc.close();
Logger.getLogger(modellihatsiswa_user.class.getName()).log(Level.SEVERE, null,
ex);
Logger.getLogger(modellihatsiswa_user.class.getName()).log(Level.SEVERE, null,
ex);
Modellihatuser.java
package model;
import java.sql.ResultSet;
import java.sql.SQLException;
247
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
try {
while(rs.next()){
username.add(rs.getString("username"));
password.add(rs.getString("password"));
data.add(username);data.add(password);
dc.close();
return data;
}
248
try {
dc.close();
return true;
return false;
return false;
Modellogin.java
package model;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
249
String hak="";
try {
while(rs.next()){
hak = rs.getString("hak_akses");
dc.close();
return hak;
Editnilai.java
package peminatansma;
250
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
/**
* @author user
*/
public editnilai() {
initComponents();
mp.setText(controler.controlerlihatnilai_user.getMp());
nilai.setText(controler.controlerlihatnilai_user.getNilai());
*/
@SuppressWarnings("unchecked")
251
mp = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
mp.setText("jLabel1");
nilai.setText("jTextField1");
edit.setText("edit");
edit.addActionListener(new java.awt.event.ActionListener() {
editActionPerformed(evt);
});
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
252
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(edit)
.addGroup(layout.createSequentialGroup()
.addComponent(nilai, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(30, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(mp)
.addComponent(nilai, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(edit)
.addContainerGap(48, Short.MAX_VALUE))
);
}// </editor-fold>
253
new controler.controlereditnilai().edit(nilai.getText());
/**
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and
feel.
*/
try {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
java.util.logging.Logger.getLogger(editnilai.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
254
java.util.logging.Logger.getLogger(editnilai.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
java.util.logging.Logger.getLogger(editnilai.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
java.util.logging.Logger.getLogger(editnilai.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
//</editor-fold>
java.awt.EventQueue.invokeLater(new Runnable() {
new editnilai().setVisible(true);
});
Halaman_admin.java
package peminatansma;
import controler.controleradmin;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
/**
* @author Luigi
*/
public halaman_admin() {
initComponents();
}
256
*/
@SuppressWarnings("unchecked")
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Administrator");
jLabel2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/image1s.jpeg"))); // NOI18N
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addComponent(jLabel2)
.addComponent(jLabel1))
.addContainerGap(98, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
258
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel1)
);
jMenu1.setText("File");
jMenuItem1.setText("Logout");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
jMenuItem1ActionPerformed(evt);
});
jMenu1.add(jMenuItem1);
jMenuBar1.add(jMenu1);
jMenu6.setText("User");
jMenuItem4.setText("Input User");
259
jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
jMenuItem4ActionPerformed(evt);
});
jMenu6.add(jMenuItem4);
jMenuItem5.setText("Lihat User");
jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
jMenuItem5ActionPerformed(evt);
});
jMenu6.add(jMenuItem5);
jMenuBar1.add(jMenu6);
jMenu2.setText("Siswa");
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
jMenuItem3ActionPerformed(evt);
});
jMenu2.add(jMenuItem3);
260
jMenuBar1.add(jMenu2);
jMenu3.setText("Nilai");
jMenuItem6.setText("Lihat Nilai");
jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
jMenuItem6ActionPerformed(evt);
});
jMenu3.add(jMenuItem6);
jMenuBar1.add(jMenu3);
jMenu4.setText("Kelas");
jMenuItem8.setText("Input Kelas");
jMenuItem8.addActionListener(new java.awt.event.ActionListener() {
jMenuItem8ActionPerformed(evt);
});
jMenu4.add(jMenuItem8);
jMenuItem9.setText("Lihat Kelas");
261
jMenuItem9.addActionListener(new java.awt.event.ActionListener() {
jMenuItem9ActionPerformed(evt);
});
jMenu4.add(jMenuItem9);
jMenuBar1.add(jMenu4);
jMenu5.setText("Peminatan");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
jMenuItem2ActionPerformed(evt);
});
jMenu5.add(jMenuItem2);
jMenuBar1.add(jMenu5);
setJMenuBar(jMenuBar1);
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
262
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
);
}// </editor-fold>
new controleradmin().logout();
this.dispose();
new controleradmin().inputUser();
new controleradmin().lihatUser();
}
263
/**
*/
java.awt.EventQueue.invokeLater(new Runnable() {
264
new halaman_admin().setVisible(true);
});
Halaman_user.java
package peminatansma;
import controler.controleruser;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
/**
* @author Luigi
*/
public halaman_user() {
initComponents();
266
*/
@SuppressWarnings("unchecked")
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Halaman User");
jLabel2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/imageass.jpeg"))); // NOI18N
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILIN
G)
.addComponent(jLabel2))
.addContainerGap(77, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
268
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jMenu1.setText("File");
jMenuItem1.setText("Logout");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
jMenuItem1ActionPerformed(evt);
});
jMenu1.add(jMenuItem1);
jMenuBar1.add(jMenu1);
jMenu2.setText("Siswa");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
269
jMenuItem2ActionPerformed(evt);
});
jMenu2.add(jMenuItem2);
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
jMenuItem3ActionPerformed(evt);
});
jMenu2.add(jMenuItem3);
jMenuBar1.add(jMenu2);
jMenu3.setText("Nilai");
jMenuItem5.setText("Input Nilai");
jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
jMenuItem5ActionPerformed(evt);
});
jMenu3.add(jMenuItem5);
270
jMenuItem6.setText("Lihat Nilai");
jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
jMenuItem6ActionPerformed(evt);
});
jMenu3.add(jMenuItem6);
jMenuBar1.add(jMenu3);
jMenu4.setText("Peminatan");
jMenuItem8.setText("Hasil Peminatan");
jMenuItem8.addActionListener(new java.awt.event.ActionListener() {
jMenuItem8ActionPerformed(evt);
});
jMenu4.add(jMenuItem8);
jMenuBar1.add(jMenu4);
setJMenuBar(jMenuBar1);
getContentPane().setLayout(layout);
271
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
);
}// </editor-fold>//GEN-END:initComponents
new controleruser().logout();
}//GEN-LAST:event_jMenuItem1ActionPerformed
new controleruser().tambahSiswa();
}//GEN-LAST:event_jMenuItem2ActionPerformed
272
}//GEN-LAST:event_jMenuItem3ActionPerformed
}//GEN-LAST:event_jMenuItem5ActionPerformed
}//GEN-LAST:event_jMenuItem6ActionPerformed
}//GEN-LAST:event_jMenuItem8ActionPerformed
/**
*/
java.awt.EventQueue.invokeLater(new Runnable() {
new halaman_user().setVisible(true);
273
});
Hasilpeminatan.java
/*
274
*/
/*
* hasilpeminatan.java
*/
package peminatansma;
import java.io.InputStream;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
275
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
import java.awt.event.ActionEvent;
/**
* @author Luigi
*/
public hasilpeminatan() {
initComponents();
refresh();
showAllDataSiswa();
initkelas();
inittahun();
hitung.setEnabled(false);
*/
@SuppressWarnings("unchecked")
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
peminatan.setModel(new javax.swing.table.DefaultTableModel(
},
new String [] {
));
jScrollPane1.setViewportView(peminatan);
jButton3.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/refreshh.png"))); // NOI18N
jButton3.setText("refresh");
jButton3.addActionListener(new java.awt.event.ActionListener() {
jButton3ActionPerformed(evt);
278
});
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton3)
.addContainerGap(573, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addContainerGap(75, Short.MAX_VALUE))
);
tablehasil.setModel(new javax.swing.table.DefaultTableModel(
},
new String [] {
));
jScrollPane3.setViewportView(tablehasil);
hitung.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/equals.png"))); // NOI18N
hitung.setText("Hitung K-Means");
hitung.addActionListener(new java.awt.event.ActionListener() {
hitungActionPerformed(evt);
}
280
});
lihatsemuadata.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/Loading.png"))); // NOI18N
lihatsemuadata.addActionListener(new java.awt.event.ActionListener() {
lihatsemuadataActionPerformed(evt);
});
jButton2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/Print.png"))); // NOI18N
jButton2.setText("Cetak");
jButton2.addActionListener(new java.awt.event.ActionListener() {
jButton2ActionPerformed(evt);
});
jButton5.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/Search.png"))); // NOI18N
jButton5.setText("cari");
jButton5.addActionListener(new java.awt.event.ActionListener() {
jButton5ActionPerformed(evt);
}
281
});
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(kelas, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tahun, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 70,
Short.MAX_VALUE)
.addComponent(jButton5)
.addGap(2, 2, 2)
.addComponent(hitung)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lihatsemuadata)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton2)
.addContainerGap())
);
jPanel4Layout.setVerticalGroup(
282
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(kelas, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tahun, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(hitung)
.addComponent(lihatsemuadata)
.addComponent(jButton2)
.addComponent(jButton5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 30,
Short.MAX_VALUE)
);
tpengujian.setModel(new javax.swing.table.DefaultTableModel(
},
new String [] {
));
jScrollPane2.setViewportView(tpengujian);
lihatsemuadata1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/Loading.png"))); // NOI18N
lihatsemuadata1.addActionListener(new java.awt.event.ActionListener() {
lihatsemuadata1ActionPerformed(evt);
});
jButton4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/Print.png"))); // NOI18N
jButton4.setText("Cetak");
jButton4.addActionListener(new java.awt.event.ActionListener() {
jButton4ActionPerformed(evt);
});
jtrue.setText("True :");
284
jfalse.setText("False :");
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE,
658, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(lihatsemuadata1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton4)))
.addContainerGap())
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel2Layout.createSequentialGroup()
.addComponent(jtrue)
.addComponent(jfalse)
285
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(lihatsemuadata1)
.addComponent(jButton4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9,
Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jtrue)
.addComponent(jfalse)))
);
jTabbedPane1.addTab("Pengujian", jPanel2);
jButton1.setText("Clear");
jButton1.addActionListener(new java.awt.event.ActionListener() {
jButton1ActionPerformed(evt);
});
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE,
683, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jButton1)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
263, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1)
287
.addContainerGap(19, Short.MAX_VALUE))
);
}// </editor-fold>
cari();
new controler.controlerhasilpeminatan().hitung((String)kelas.getSelectedItem(),
(String)tahun.getSelectedItem());
hitung.setEnabled(false);
cari();
showAllDataSiswa();
hitung.setEnabled(false);
refresh();
}
288
try {
System.out.println("load jrxml");
InputStream is = getClass().getResourceAsStream("/report/HasilPminatan.jrxml");
//compile file
System.out.println("print jrxml");
System.out.println("show jrxml");
jasperViewer.viewReport(jasperPrint, false);
} catch (Exception e) {
System.out.println(e);
pengujian();
jtrue.setText("True : "+truefalse[0]);
289
jfalse.setText("False : "+truefalse[1]);
try {
System.out.println("load jrxml");
InputStream is = getClass().getResourceAsStream("/report/pengujian.jrxml");
//compile file
System.out.println("print jrxml");
System.out.println("show jrxml");
jasperViewer.viewReport(jasperPrint, false);
} catch (Exception e) {
System.out.println(e);
new controler.controlerhasilpeminatan().clearLog((String)kelas.getSelectedItem(),
(String)tahun.getSelectedItem());
cari();
/**
*/
java.awt.EventQueue.invokeLater(new Runnable() {
new hasilpeminatan().setVisible(true);
});
// System.out.println(datasiswa);
ArrayList<String>nis = datasiswa.get(0);
ArrayList<String>nama= datasiswa.get(1);
ArrayList<String>kelass= datasiswa.get(2);
ArrayList<String>c1= datasiswa.get(3);
ArrayList<String>c2= datasiswa.get(4);
ArrayList<String>jurusan= datasiswa.get(5);
291
tablehasil.setModel(dtm);
dtm.addRow(datauser);
kelas.removeAllItems();
kelas.addItem(datakelas.get(i));
tahun.removeAllItems();
tahun.addItem(datatahun.get(i));
}
292
// System.out.println(datasiswa);
ArrayList<String>nis = datasiswa.get(0);
ArrayList<String>nama= datasiswa.get(1);
ArrayList<String>kelass= datasiswa.get(2);
ArrayList<String>c1= datasiswa.get(3);
ArrayList<String>c2= datasiswa.get(4);
ArrayList<String>jurusan= datasiswa.get(5);
tablehasil.setModel(dtm);
dtm.addRow(datauser);
hitung.setEnabled(true);
peminatan.setModel(dtm);
dtm.addRow(datauser);
System.out.println(nis);
tpengujian.setModel(dtm);
dtm.addRow(datauji);
Hasilpeminatan_admin.java
package peminatansma;
import java.io.InputStream;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
import java.awt.event.ActionEvent;
296
/**
* @author Luigi
*/
public hasilpeminatan_admin() {
initComponents();
showAllDataSiswa();
refresh();
*/
@SuppressWarnings("unchecked")
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
peminatan.setModel(new javax.swing.table.DefaultTableModel(
},
new String [] {
));
jScrollPane1.setViewportView(peminatan);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
298
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE)
);
tablehasil.setModel(new javax.swing.table.DefaultTableModel(
},
new String [] {
));
jScrollPane3.setViewportView(tablehasil);
jPanel4.setLayout(jPanel4Layout);
299
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jButton1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/gambar/Print.png"))); // NOI18N
jButton1.setText("Cetak");
jButton1.addActionListener(new java.awt.event.ActionListener() {
jButton1ActionPerformed(evt);
});
getContentPane().setLayout(layout);
300
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
552, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(473, Short.MAX_VALUE)
.addComponent(jButton1)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
188, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
}// </editor-fold>
try {
System.out.println("load jrxml");
InputStream is = getClass().getResourceAsStream("/report/HasilPminatan.jrxml");
//compile file
System.out.println("print jrxml");
System.out.println("show jrxml");
jasperViewer.viewReport(jasperPrint, false);
} catch (Exception e) {
System.out.println(e);
/**
*/
302
java.awt.EventQueue.invokeLater(new Runnable() {
new hasilpeminatan_admin().setVisible(true);
});
// System.out.println(datasiswa);
ArrayList<String>nis = datasiswa.get(0);
ArrayList<String>nama= datasiswa.get(1);
ArrayList<String>kelass= datasiswa.get(2);
ArrayList<String>c1= datasiswa.get(3);
ArrayList<String>c2= datasiswa.get(4);
ArrayList<String>jurusan= datasiswa.get(5);
tablehasil.setModel(dtm);
dtm.addRow(datauser);
}
303
peminatan.setModel(dtm);
dtm.addRow(datauser);