Upload
renaldy-gultom
View
393
Download
1
Embed Size (px)
Citation preview
DAFTAR ISI
DAFTAR ISI......................................................................................................................0
BAB I.................................................................................................................................1
1.1 Latar Belakang.....................................................................................................1
1.2 Rumusan Masalah................................................................................................2
1.3 Batasan Masalah..................................................................................................2
1.4 Tujuan...................................................................................................................2
1.5 Metodologi............................................................................................................3
1.6 Sistematika Penulisan..........................................................................................4
BAB II...............................................................................................................................5
2.2 Algoritma Backtracking......................................................................................5
2.2.1 Properti Umum Metode runut balik (Backtracking)..........................6
BAB III..............................................................................................................................7
3.1 Desain Penelitian..................................................................................................7
3.2 Alat dan Bahan Penelitian...................................................................................7
3.3 Metode Penelitian.................................................................................................8
DAFTAR PUSTAKA......................................................................................................10
ii
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi komputer dalam waktu beberapa dasawarsa ini telah
mengalami kemajuan yang begitu cepat. Pada jaman dahulu kala, komputer hanya
dipandang manusia tidak lebih dari sebuah mesin hitung, oleh karena itu diberi
nama computer yang artinya penghitung. Tetapi sekarang komputer tidak lagi
dipandang sebagai sebuah mesin untuk menghitung saja, melainkan lebih dari itu
komputer sudah boleh dikatakan sebagai kebutuhan primer, dan berkaitan dengan
topik yang akan saya bahas, yakni implementasinya dalam dunia pendidikan.
Beragam metode komputasi yang ada pada saat ini sangatlah membantu dalam
penyelesaian berbagai kasus di dunia pendidikan, dan salah satunya pada kasus-
kasus ketika ujian baik ujian nasional maupun SNMPTN. Salah satu kasus yang
akan kita bahas pada penulisan ini ialah mengenai upaya pengurangan tingkat
kecurangan ketika ujian. Ada beragam cara yang dapat diimplementasikan dalam
upaya ini, namun satu topik yang akan saya angkat di dalam penelitian ini ialah
seputar pengacakan pembagian soal ujian. Dewasa ini semua jenis soal sudah
diklasifikan menurut kode soalnya, misal: pada soal UN SMA, terbagi menjadi 4
kode A/B/C/D atau 1/2/3/4. Hal ini sudah merupakan upaya pengurangan tingkat
kecurangan ketika ujian, namun apa yang terjadi apabila jika ada siswa-siswa
mendapatkan soal dengan kode yang sama, di mana jarak mereka tidak terpaut
bahkan satu bangku, baik itu horizontal, vertikal, maupun diagonal. Tentu saja
kecurangan seperti mencontek ataupun bertukar kunci jawaban dapat dilakukan.
Untuk itu, perlu adanya suatu metode komputasi yang dapat mengacak pola
pembagian soal ujian, sehingga tidak terjadi kesamaan soal dengan teman
sekitarnya baik dari garis vertical, horizontal, ataupun diagonal. Salah satu
solusinya adalah dengan menerapkan metode pengacakan berpola. Berdasarkan
latar belakang masalah tersebut maka tema penulisan skripsi ini, adalah
1
“Implementasi Algoritma Backtracking Dalam Pengacakan Pembagian Soal
Ujian”.
1.2 Rumusan Masalah
Berdasarkan latar belakang diatas maka rumusan masalah dari penelitian ini
adalah bagaimana cara implementasi backtracking algorithm digunakan untuk
mengacak pembagian soal ujian agar siswa tidak menemukan kesamaan jenis
kode soal pada siswa sekelilingnya baik dari vertical, horizontal, maupun
diagonal.
1.3 Batasan Masalah
Dalam penelitian ini, ditetapkan beberapa batasan masalah yaitu sebagai
berikut:
1. User harus menginput manual parameter-parameter sesuai dengan
kebutuhan yaitu banyak kode soal, panjang dan lebar kelas.
2. Jumlah kode soal minimal 4 jenis.
3. Bahasa pemrograman yang digunakan adalah JAVA
1.4 Tujuan
Tujuan yang ingin dicapai dari penelitian ini adalah mendapatkan posisi
terbaik agar siswa mendapatkan soal yang berbeda-beda dari berbagai arah,
dengan mengimplementasikan backtracking algorithm.
1.4 Metodologi
Metode yang akan digunakan pada penyusunan skripsi ini yaitu:
a. Metode pengumpulan data
Tinjauan Pustaka
Dengan mempelajari literartur(buku, artikel, situs) yang berkaitan
dengan teori dan pengaplikasian bahasa pemrograman yang dibutuhkan.
2
b. Metode pengembangan aplikasi
Analisis data
Referensi yang diperoleh kemudian dianalisis untuk kemudian dibuat
rancangannya. Baik metodologi pengembangan sistem maupun teknologi
yang akan digunakan dalam mengembangkan sistem tersebut.
Perancangan
Dari metode analisis data tersebut dibuatlah rancangan aplikasi dimana
user menginputkan beberapa parameter secara manual kemudian dengan
serangkaian proses yang mengimplemetasi algoritma backtracking
memberikan hasil sebagai keluarannya.
Coding
Setelah perancangan rampung dan sesuai dengan kebutuhan maka
selanjutnya masuk pada tahap coding.
Testing
Setelah tahap coding aplikasi rampung dan siap untuk digunakan maka
sebelumnya dilakukan uji coba dahulu terhadap sistem untuk mengetahui
kelemahan yang terdapat pada sistem ini.
c. Penulisan skripsi
Dimulai dari pembuatan proposal hingga pembuatan kesimpulan dari
penelitian yang telah dilakukan
1.5 Sistematika Penulisan
Penulisan Skripsi ini tersusun dalam 5 (lima) bab dengan sistematika
penulisan sebagai berikut:
3
BAB I Pendahuluan
Bab pendahuluan berisi latar belakang masalah, rumusan masalah, tujuan
penyusunan skripsi, metodologi, dan sistematika penyusunan skripsi.
BAB II Tinjauan Pustaka
Tinjauan pustaka berisi beberapa teori yang mendasari penyusunan skripsi
ini. Adapun yang dibahas dalam bab ini adalah teori yang berkaitan dengan
basisdata berorientasi objek dan beberapa teori yang berkaitan.
BAB III Metodologi Penelitian
Di dalam bab ini dibahasa mengenai kebutuhan perangkat keras dan
perangkat lunak, metode penelitian yang digunakan dan juga jadwal
penelitian.
BAB IV Implementasi dan Pembahasan
Dalam bab ini berisi implementasi dan evaluasi terhadap basisdata
berorientasi objek yang telah diterapkan pada aplikasi.
BAB V Penutup
Bab penutup berisi kesimpulan dan saran.
4
BAB II
TINJAUAN PUSTAKA
2.1 Matriks
2.1.1 Definisi Matriks
Matriks atau array dua dimensi adalah struktur data yang mengacu pada
sebuah/sekumpulan elemen yang diakses. Berbeda dengan larik, pada matriks
indeks terdiri dari dua bagian yaitu indeks baris dan indeks kolom. Setiap
elemen matriks dapat diakses melalui indeknya, misalnya mengisi elemen
matriks yang baris ke 2 dan kolom ke 1 dengan nilai 100, maka cara
mengisinya adalah A(2,1) 100. Contoh matriks bernama A dengan ukuran
2 x 3 (yang memiliki indeks baris 2 dan indeks kolom 3) :
ElemenMatriks : A[1,1], A[1,2], A[1,3], A[2,1], A[2,2], A[2,3]
Indeks baris dari Matriks A : 1, 2
Indeks kolom dari Matriks A : 1, 2, 3
Mengisi elemen pada Matriks A : A[2,1] 100
Keuntungan struktur data matriks :
1. Mudah dioperasikan
2. Ekonomis dalam pemakaian memory, bila semua elemen terisi
3. Akses ke setiap elemen memerlukan waktu yang sama
5
2.1.2 Kamus Data Matriks
Sebelum elemen Matriks dapat di pergunakan, perlu didefinisikan dahulu
pada kamus data sebagai berikut :
Keterangan :
Elemen matriks harus memiliki tipe data yang sama atau sejenis
(homogen), seperti integer, real, char, string, boolean, record. Artinya
matriks tersebut di definisikan sebagai integer maka nilai yang boleh
masuk ke dalam elemen matriks harus bertipe integer.
Indeks matriks harus memiliki tipe data yang menyatakan keterurutan,
seperti integer dan karakter.
2.1.3 PemrosesanMatriks
Ada beberapa pemrosesan yang dapat di lakukan terhadap matriks.
Algoritma yang paling mudah untuk melakukan pemrosesan yaitu dengan
menggunakan For-to-do, dengan alasan bahwa elemen matriks memiliki
indeks yang terurut.
Pemrosesan matriks dapat dilakukan dengan dua cara yaitu :
Matriks di proses baris demi baris (Row Ordering)
Matriks di proses kolom demi kolom (Column Ordering)
Berikut salah satu pemrosesan matriks :
6
Matriks Diproses Kolom Demi Kolom:
Pada kedua algoritma tersebut memilki pola yang sama, untuk pemrosesan
baris demi baris “for baris” lebih dahulu diikuti “for kolom”, sedangkan pada
kolom demi kolom kebalikannya. Proses matriks bisa diganti dengan proses
lainnya misal :
Mengisi elemen matriks dengan 0 (insialisasi)
Mengisi elemen matriks dari piranti masukan
Mencetak elemen matriks ke piranti keluaran
Proses Matriks dapat dimodifikasi, sebagai berikut :
Menjumlahkan nilai pada setiap baris
Membuat rata-rata pada setiap baris atau setiap kolom
Mencari nilai tertentu pada matriks
Menjumlahkan/mengurangkan dua buah matriks
Mengalikan dua buah matriks
7
2.1.4 Matriks Jarang (Sparse Matriks)
Matriks jarang adalah matriks yang elemennya banyak bernilai 0
(nol) .Seperti dijelaskan di atas, penyimpanan elemen matriks menjadi boros
jika banyak elemen matriks yang bernilai kosong, Berikut beberapa contoh
matriks jarang antara lain :
Matriks segitiga (elemen yang bernilai / bukan 0,membentuk segitiga)
Matriks tridiagonal (elemen yang bernilai / bukan 0,membentuk
tridiagonal
Matriks diagonal (elemen yang bernilai / bukan 0, membentuk
diagonal)
2.2 Algoritma Runut Balik (backtracking)
Algoritma runut balik pertama kali diperkenalkan oleh D.H Lehmer pada
tahun 1950. Algoritma ini cukup mangkus untuk digunakan dalam beberapa
penyelesaian masalah dan juga untuk memberikan kecerdasan buatan dalam
game. Beberapa game populer semisal Sudoku, Labirin, Catur juga bisa
diimplementasikan dengan menggunakan algoritma runut balik.
Algoritma runut balik (backtracking) merupakan algoritma yang digunakan
untuk mencari solusi persoalan secara lebih mangkus daripada menggunakan
algoritma brute force. Algoritma ini akan mencari solusi berdasarkan ruang solusi
yang ada secara sistematis namun tidak semua ruang solusi akan diperiksa, hanya
pencarian yang mengarah kepada solusi yang akan diproses. (Rinaldi Munir,
Diktat Strategi Algoritmik, Teknik Informatika ITB. 2005).
Algoritma runut balik berbasis pada DFS (Depth First Search) sehingga
aturan pencariannya akan mengikut kepada aturan pencarian DFS yaitu dengan
mencari solusi dari akar ke daun (dalam pohon ruang solusi) dengan pencarian
mendalam. Simpul-simpul yang sudah dilahirkan (diperiksa) dinamakan simpul
hidup (live node). Simpul hidup yang sedang diperluas dinamakan simpul-E atau
Expand Node.
8
Algoritma backtracking mempunyai prinsip dasar yang sama seperti brute-
force yaitu mencoba segala kemungkinan solusi. Perbedaan utamanya adalah pada
ide dasarnya, semua solusi dibuat dalam bentuk pohon solusi (pohon ini tentunya
berbentuk abstrak) dan algoritma akan menelusuri pohon tersebut secara DFS
(depth field search) sampai ditemukan solusi yang layak.
2.1.1 Properti Umum Metode runut balik (Backtracking)
Untuk menerapkan metode runut-balik, properti berikut didefinisikan:
1. Solusi persoalan.
Solusi dinyatakan sebagai vektor n-tuple:
X=(x1, x2, ..., xn), xi anggota himpunan berhingga Si .
Mungkin saja S1 = S2 = ... = Sn.
Contoh: Si = {0,1}
Si = 0 atau 1
2. Fungsi pembangkit nilai xk
Dinyatakan sebagai:
T(k)
T(k) membangkitkan nilai untuk xk, yang merupakan komponen vektor
solusi
3. Fungsi Pembatas (fungsi kriteria)
Dinyatakan sebagai:
B(x1, x2, ..., xk)
Fungsi pembatasan bertujuan untuk menentukan apakah (x1, x2, ..., xk)
mengarah ke solusi. Jika ya, maka pembangkitan nilai untuk xk+1
dilanjutkan, tetapi jika tidak, maka (x1, x2, ..., xk) dibuang dan tidak
dipertimbangkan lagi dalam pencarian solusi.
2.1.2 Pengorganisasian Solusi
Semua kemungkinan solusi dari persoalan disebut ruang solusi (solution
space).
9
Jika xi Si, maka S1 S2 … Sn disebut ruang solusi. Jumlah anggota
di dalam ruang solusi adalah | S1| | S2| … | Sn |. Tinjau persoalan
Knapsack 0/1 untuk n = 3. Solusi persoalan dinyatakan sebagai vektor (x1, x2,
x3) dengan xi {0,1}. Ruang solusinya adalah
{0,1} {0,1} {0,1} = {(0, 0, 0), (0, 1, 0), (0, 0, 1), (1, 0, 0), (1, 1, 0),
(1, 0, 1), (0, 1, 1), (1, 1, 1)}.
Pada persoalan Knapsack 0/1 dengan n = 3 terdapat 2n = 23 = 8
kemungkinan solusi, yaitu: (0, 0, 0), (0, 1, 0), (0, 0, 1), (1, 0, 0), (1, 1, 0), (1,
0, 1), (0, 1, 1), dan (1, 1, 1).
Penyelesaian secara exhaustive search adalah dengan menguji setiap
kemungkinan solusi. Ruang solusi diorganisasikan ke dalam struktur pohon.
Tiap simpul pohon menyatakan status (state) persoalan, sedangkan sisi
(cabang) dilabeli dengan nilai-nilai xi. Lintasan dari akar ke daun menyatakan
solusi yang mungkin. Seluruh lintasan dari akar ke daun membentuk ruang
solusi. Pengorganisasian pohon ruang solusi diacu sebagai pohon ruang status
(state space tree). Tinjau kembali persoalan Knapsack 1/0 untuk n = 3. Ruang
solusinya:
Gambar Ruang solusi untuk persoalan Knapsack 0/1 dengan n = 3
10
2.1.3 Prinsip Pencarian Solusi dengan Metode Runut Balik
Langkah-langkah pencarian solusi dengan metode runut balik adalah
sebagai berikut:
1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan yang
dipakai adalah mengikuti metode pencarian mendalam (DFS). Simpul-
simpul yang sudah dilahirkan dinamakan simpul hidupm dan simpul hidup
yang sedang diperluas dinamakan simpul-E. Simpul dinomori dari atas ke
bawah sesuai dengan kelahirannya.
2. Jika lintasan yang diperluas yang sedang dibentuk tidak mengarah ke
solusi, maka simpul-E tersebut “dibunuh” sehingga menjadi simpul mati
(dead node). Simpul yang sudah mati ini tidak akan diperluas lagi.
3. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses
pencarian diteruskan dengan membangkitkan simpul anak lainnya. Bila
tidak ada lagi simpul anak yang dibangkitkan, maka pencarian solusi
dilanjutkan dengan melakukan runut-balik (backtracking) ke simpul hidup
terdekat. Selanjutnya simpul ini menjadi simpul-E yang terbaru.
4. Pencarian dihentikan bila telah ditemukan solusi atau tidak ada lagi simpul
hidup untuk runut balik (backtracking).
Tinjau persoalan Knapsack 0/1 dengan instansiasi:
n = 3
(w1, w2, w3) = (35, 32, 25)
(p1, p2, p3) = (40, 25, 50)
M = 30
Solusi dinyatakan sebagai X = (x1, x2, x3), xi {0, 1}.
Fungsi pembatas:
∑i=1
k
wi x i≤M
11
Gambar (a) Pohon dinamis yang dibentuk selama pencarian untuk persoalan
Knapsack 0/1 dengan n = 3,
w = (35, 32, 25) dan p = (40, 25, 50)
(b) Penomoran ulang simpul-simpul sesuai urutan
pembangkitannya
Solusi optimumnya adalah X = (0, 0, 1) dan F = 50.
2.3 Kecerdasan Buatan
Kecerdasan buatan (artificial intelligence) merupakan inovasi di dalam
bidang ilmu pengetahuan. Kecerdasan buatan dapat didefinisikan sebagai
berikut:
a. Konstruksi simbol-simbol fisik pada sistem yang dapat digunakan untuk
menjalankan Turing Test (Ginsberg, 1993).
b. Kecerdasan buatan merupakan Sebuah sistem kecerdasan yang diterapkan
pada mesin komputer sebagai pengganti manusia untuk melakukan suatu
pekerjaan. (Renaldy, 2012)
BAB III
METODOLOGI PENELITIAN
12
1
2 9
10 13
14 15
x1 =1 x1 =0
x2 =1 x2 =0
x3 =1 x3 =0
B
B
(a) (b)
3.1 Desain Penelitian
Berikut ini merupakan desain penelitian yang akan digunakan pada proses
penelitian Pengacakan Pembagian Soal Ujian Dalam Upaya Pengurangan Tingkat
Kecurangan dengan mengimplementasikan Backtracking Algortihm.:
1. Mengumpulkan data-data penelitian
2. Menyiapkan perangkat penelitian
3. Analisis penyelesaian masalah
4. Design sistem
5. Konstruksi sistem
6. Implementasi
7. Pengujian
8. Evaluasi dan pelaporan
3.2 Alat dan Bahan Penelitian
Pada Penelitian ini menggunakan alat penelitian berupa perangkat keras dan
perangkat lunak, yaitu:
1. Perangkat keras
a. Intel Pentium 4 LGA 3.0 Ghz.
b. RAM 2 GB.
c. VGA WinFast PX8400 GS(Nvidia).
d. Mouse dan Keyboard.
2. Perangkat lunak
a. Windows XP SP3 OS.
b. Microsoft Office
c. NetBeans
3.3 Metode Penelitian
13
Metode yang akan digunakan pada penyusunan skripsi ini yaitu:
a. Metode pengumpulan data
Tinjauan Pustaka
Dengan mempelajari literatur(buku, artikel, situs) yang berkaitan
dengan teori dan pengaplikasian bahasa pemrograman yang dibutuhkan.
b. Metode pengembangan aplikasi
Analisis data
Referensi yang diperoleh kemudian dianalisis untuk kemudian dibuat
rancangannya. Baik metodologi pengembangan sistem maupun teknologi
yang akan digunakan dalam mengembangkan sistem tersebut.
Perancangan
Dari metode analisis data tersebut dibuatlah rancangan aplikasi dimana
user menginputkan beberapa parameter secara manual kemudian dengan
serangkaian proses yang mengimplemetasi algoritma backtracking
memberikan hasil sebagai keluarannya.
Coding
Setelah perancangan rampung dan sesuai dengan kebutuhan maka
selanjutnya masuk pada tahap coding.
Testing
Setelah tahap coding aplikasi rampung dan siap untuk digunakan maka
sebelumnya dilakukan uji coba dahulu terhadap sistem untuk mengetahui
kelemahan yang terdapat pada sistem ini.
c. Penulisan skripsi
Dimulai dari pembuatan proposal hingga pembuatan kesimpulan dari
perancangan dan implementasi basisdata berorientasi objek yang telah
dilakukan.
14
DAFTAR PUSTAKA
Zakaria, Teddy 2006, Konsep dan Implementasi struktur data.
Rinaldi Munir. 2005 Diktat Strategi Algoritmik, Teknik Informatika ITB.
Rosa A. S. Maret 2009. Belajar Pemrograman Dengan Bahasa C++ dan JAVA.
Tanimoto, S. L. 1990. The Elements of Artificial Intelligence. W.H. Freeman.
Tanggal 24 September 2012,
http://www.informatika.org/~rinaldi/Stmik/Makalah/MakalahStmik26.pdf
http://www.informatika.org/~rinaldi/Stmik/2007-2008/Makalah2008/
MakalahIF2251-2008-109.pdf
15