Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

22
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

Transcript of Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

Page 1: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 2: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 3: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

“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

Page 4: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 5: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 6: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 7: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 8: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 9: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 10: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 11: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 12: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 13: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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)

Page 14: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 15: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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

Page 16: Proposal Sementara IMPLEMENTASI ALGORITMA BACKTRACKING PADA PENGACAKAN PEMBAGIAN SOAL UJIAN

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