Clustering Tingkat Pengetahuan

9.6 Clustering Tingkat Pengetahuan

Perkuliahan merupakan suatu sarana pembelajaran Mahasiswa terkait dengan bidang studi yang diambil. Pada umumnya seorang Mahasiswa dapat mengambil lebih dari satu mata kuliah sesuai dengan jumlah yang telah ditentukan. Beragamnya matakuliah yang diambil mengakibatkan tingkat pemahaman terhadap mata kuliah tersebut beragam. Terlebih lagi keminatan Mahasiswa juga mempengaruhi tingkat pemahaman Mahasiswa tersebut terhadap mata kuliah yang tengah diambil. Proses perkuliahan telah di rancang dengan sedemikian rupa dengan kurikulum yang telah diterapkan, dengan harapan Mahasiswa tersebut dapat memahami mata kuliah yang disampaikan dengan baik. Tetapi karena tingkat pemahaman siswa yang berbeda โ€“ beda diperlukan pengukuran tingkat pemahaman siswa untuk kemudian dapat dilakukan evaluasi dalam melakukan proses pengajaran.

Dalam sistem ini digunakan user modeling. User modelling merupakan salah satu mekanisme yang kuat untuk aplikasi adaptif yang menggunakan pengguna sebagai model untuk menyesuaikan subyek sesuai dengan pengetahuannya. Tujuan utama dari penggunaan user modeling system adalah untuk memberikan pengetahuan yang cukup bagi Mahasiswa. Dengan memberikan tingkat pengetahuan yang cukup bagi Mahasiswa, diharapkan dapat meningkatkan kualitas Mahasiswa tersebut setelah selesai menempuh pendidikan dalam perguruan tinggi tersebut. Siswa yang terdapat dalam perguruan tinggi tersebut terdapat lebih dari seratus Mahasiswa sehingga mustahil digunakan klasifikasi manual dalam penentuan klasifikasi tingkat pemahaman Mahasiswa tersebut. Oleh karena itu diperlukan sistem untuk mengklasifikasi tingkat pemahaman mahasiswa berdasarkan parameter yang telah di dapat sebelumnya.

Dalam membangun sistem ini penulis menggunakan K-means clustering untuk mengklasifikasi tingkat pemahaman tersebut. Tingkat pemahaman mahasiswa kemudian ditentukan clusternya berdasarkan parameter berikut, tingkat waktu belajar terhadap objek,tingkat Dalam membangun sistem ini penulis menggunakan K-means clustering untuk mengklasifikasi tingkat pemahaman tersebut. Tingkat pemahaman mahasiswa kemudian ditentukan clusternya berdasarkan parameter berikut, tingkat waktu belajar terhadap objek,tingkat

9.6.1 Dasar Teori

12. Dataset

Data yang digunakan adalah data mengenai status penge- tahuan siswa terhadap mata kuliah mesin listrik. Data tersebut akan dikategorikan menjadi 4 kategori tingkat pengetahuan siswa yang terdiri dari very low, low, middle, dan high berdasarkan 5 buah fitur. Contoh dataset yang digunakan pada Tabel berikut.

0 0 0 0 0 very_low

0.15 0.02 0.34 0.4 0.01 very_low

0.2 0.14 0.35 0.72 0.25 Low

Sumber:

https://archive.ics.uci.edu/ml/datasets/User+Knowledge+Modeling

Keterangan: STG : Tingkat waktu belajar terhadap objek SCG : Tingkat pengulangan belajar terhadap objek STR : Tingkat waktu belajar pada objek lain LPR : Kemampuan menghadapi ujian sesuai objek PEG : Kemampuan menghadapi ujian pada objek lain UNS : tingkat pengetahuan siswa

13. Konsep Big Data Big data merupakan data yang melebihi kapasitas dalam

sistem basis data, berukuran sangat besar dan memiliki struktur yang tidak sesuai dengan struktur basis data yang ada sehingga dalam pengolahannya membutuhkan proses dari teknik-teknik yang lain (Dumbill, 2012). Big Data dapat didefinisikan sebagai sebuah teknologi baru yang memungkinkan untuk melakukan sistem basis data, berukuran sangat besar dan memiliki struktur yang tidak sesuai dengan struktur basis data yang ada sehingga dalam pengolahannya membutuhkan proses dari teknik-teknik yang lain (Dumbill, 2012). Big Data dapat didefinisikan sebagai sebuah teknologi baru yang memungkinkan untuk melakukan

Volume dalam big data merupakan besarnya ukuran se- buah data yang menyebabkan dibutuhkannya solusi untuk melakukan pemrosesan dan penyimpanan data. Karakteristik kedua yaitu velocity, pertumbuhan data dapat terjadi dalam waktu yang sangat cepat dengan bertambah dalam jumlah yang sangat banyak. Karakteristik ketiga yaitu variety, keberagaman bentuk atau format sejumlah data memerlukan teknologi untuk dapat mempermudah dalam pengolahannya. Dalam pengolahan big data salah satu teknologi yang dapat dimanfaatkan yaitu hadoop.

14. Hadoop

Hadoop merupakan sebuah framework open source yang mendukung aplikasi untuk dapat berjalan pada lingkungan big data. Hadoop berjalan pada lingkungan yang menyediakan stor- age dan komputasi secara terdistribusi ke kluster-kluster dari kom- puter atau node. Hadoop didukung oleh dua komponen utama yaitu HDFS dan MapReduce.

penyimpanan/ storage terdistribusi, yang melakukan proses pemecahan file besar menjadi bagian-bagian lebih kecil kemudian didistribusikan ke kluster-kluster dari komputer. MapReduce merupakan algoritma atau komputasi terdistribusi

HDFS merupakan

sistem

15. MapReduce

MapReduce adalah model pemrograman untuk memproses data berukuran besar secara terdistribusi. Dalam memproses data, MapReduce dibagi menjadi dua proses yaitu prose Map dan proses Reduce. Proses Map bertugas untuk mengumpulkan infor- masi dari data yang terdistribusi dari tiap komputer dalam cluster. Sedangkan Reduce merupakan hasil akhir dari Map yang dikirim langsung ke pengguna.

Program yang memuat kalkulasi dalam proses Map disebut Fungsi Map sedangkan pada proses Reduce disebut Fungsi Re- duse. Fungsi Map bertugas untuk membaca input dalam bentuk pasangan Key/Value yang kemudian menghasilkan funsi map yang disebut Key/Vakue intermediate. Fungsi Reduce bertugas untuk membaca pasangan Key/Value Intermediate yang selanjut- nya dikelompokkan berdasarkan Key tersebut.

16. Single Node Hadoop dapat dijalankan dalam single node. Pada single

node hanya melibatkan satu buah komputer untuk menjalankan fungsi-fungsi dalam pengolahan data.

17. Clustering

Clustering adalah proses pengelompokkan kumpulan data menjadi beberapa cluster atau kelompok sehingga objek di dalam satu kelompok memiliki banyak kesamaan dan memiliki banyak perbedaan dengan objek dikelompok lain. (Han, Kamber, & Pei, 2012).

Clustering merupakan Unsupervised Learning karena clus- tering memiliki sifat untuk dipelajari karena tidak memiliki data latih dan data yang dimasukkan tidak memiliki label kelas sehingga data yang ada akan dikelompokkan.

18. K-Means K-Means merupakan salah satu algoritma clustering yang

paling umum karena K-Means memiliki kemampuan untuk menge- lompokkan dengan jumlah yang cukup besar dan waktu kom- putasi yang cepat dan efisien.

Langkah-langkah untuk melakukan K-Means clustering adalah sebagai berikut:

- Menentukan jumlah cluster K -

Menentukan nilai centroid -

Menghitung jarak dari objek ke centroid dengan menggunakan rumus euclidean.

Dimana: p = Dimensi Data X1 = Posisi Titik Satu X2 = Posisi Titik Dua

- Mengelompokkan data sesuai centroid terdekat. -

Hitung kembali pusat cluster, jika pusat cluster berubah maka kembali hitung jarak dari objek ke centroid, jika tidak maka proses clustering selesai.

Dimana: ๐ท = Jarak Euclidean

๐‘– = Banyaknya objek

- Perbarui nilai centorid -

Ulangi proses sampai nilai dari titik centroid tidak lagi berubah

9.6.2 Implementasi

Proses dari algoritma k-means dimulai dengan menginputkan dataset, nilai k dan threshold yang akan digunakan untuk pengelompokan data. Proses pertama adalah menentukan centroid yang dipilih secara random, kemudian menghitung jarak dari objek ke centroid dengan menggunakan metode euclidean dan hasil perhitungan jarak dikelompokan sesuai dengan centroid terdekat. Selanjutnya cek kondisi, jika data masih mengalami perubahan maka kembali ke proses menentukan centroid sampai data kovergen kemudian proses selesai dijalankan. Proses menentukan centroid dan algoritma k-means ditunjukan pada potongan kode program berikut.

1 private static void createCenters(int k, Configuration conf, 2 Path centers) throws IOException {

3 SequenceFile.Writer centerWriter = 4 SequenceFile.createWriter(conf, 5 SequenceFile.Writer.file(centers),

7 SequenceFile.Writer.keyClass(IntWritable.class), 8 SequenceFile.Writer.valueClass(Center.class)); 9 Random r = new Random(); 10 List<DoubleWritable> listParameters = new

11 ArrayList<DoubleWritable>(); 12 Center tempC; 13 Double temp; 14 for (int i = 0; i < k; i++) {

15 for (int j = 0; j < conf.getInt("iCoordinates", 16 2); j++) { 17 temp = Math.floor(100.0 * r.nextDouble() * 18 100) / 100; 19 listParameters.add(new DoubleWritable(temp)); 20 } 21 tempC = new Center(listParameters, new

22 IntWritable(i), new IntWritable(0)); 23 centerWriter.append(new IntWritable(i), tempC); 24 listParameters = new ArrayList<DoubleWritable>();

25 } 26 centerWriter.close();

Proses menghitung jarak dari algoritma k-means dengan menggunakan metode euclidean ditunjukan pada potongan kode program berikut.

1 static Double findDistance(Point p1, Point p2) {

2 int len = p1.getListOfCoordinates().size(); 3 List<DoubleWritable> l1 = p1.getListOfCoordinates(); 4 List<DoubleWritable> l2 = p2.getListOfCoordinates(); 5 Double sum = 0.0;

6 7 //euclidean 8 for (int i = 0; i < len; i++) {

9 sum += Math.pow(l1.get(i).get() - l2.get(i).get(), 10 2); 11 } 12 return Math.sqrt(sum);

Sumber: https://github.com/mameli/k-means-hadoop

Langkah โ€“ langkah yang dilakukan dalam clustering pada hadoop:

1. Menjalankan hadoop dengan perintah โ€œstart-all.shโ€

2. Jalankan eclipse dengan masuk kedalam direktori eclipse

3. File hasil clustering tersimpan didalam hdfs

4. Hasil clustering