Hasil Karya Siswa | Kursus Python Django | Membuat DB Quiz Interaktif Menggunakan Django Dan Library SPARQL Wrapper
Proses menghasilkan quiz
-
Ketika user melakukan konfirmasi dengan menekan tombol “add quiz”, maka request tersebut akan di-handle oleh method add_quiz yang berada di file app/admin/routes.py
-
Request yang diterima oleh method tersebut adalah request jenis post. Parameter yang dikirimkan yaitu name, topic, deadline (date), max attempt dan lang. data parameter akan dibuatkan sebuah entry data baru quiz di database dengan model Quiz
-
Selanjutnya proses pembuatan sebuah pertanyaan akan ditangani oleh object dari class Article yang source codenya berada di app/quiz_generator
-
Proses instansiasi object Article akan melakukan proses pengambilan data abstrak dengan bantuan SPARQLWrapper. Yang dijadikan acuan dalam pengambilan data abstrak yaitu parameter ‘topic’
-
Kemudian pada pemanggilan proses generate_questions_for, terdapat proses untuk melakukan cleaning word dari berbagai simbol yang tidak dibutuhkan serta membagi data abstrak menjadi beberapa kalimat yang disimpan di array.
-
Per kalimatnya akan didapatkan sebuah pertanyaan dengan memanggil method get_question_data dan create_question
-
Pada method get_question_data, hal yang dilakukan pertama kali adalah melakukan tokenisasi. Setelah ditoken, setiap token kata akan diberikan pos tag. Kemudian, jika ada token kata yang membentuk struktur pos tag tertentu, maka gabungan token kata tersebut akan diidentifikasi sebagai Number atau Location. Sebagai contoh: jika ada sebuah kombinasi token yang sesuai dengan pola * + *, maka kombinasi token tersebut dikategorikan sebagai Number. Jika polanya + +, maka diidentifikasi sebagai Location
-
Kalimat yang memiliki kedua pola tersebut akan ditambahkan di array sementara. Kemudian dari semua kalimat yang telah ditambahkan diambil 10 pertanyaan random yang memiliki tag Number dan Location
-
Proses pembuatan opsi jawaban dari pertanyaan dilakukan pada method get_question_set di file app/quiz_generator/article. Pada method ini, kata yang merupakan sebuah jawaban akan digantikan dengan tanda ‘___’ terlebih dahulu. Kemudian dilakukan proses pembuatan 3 jawaban lain yang salah. Tag number akan menggunakan method get_wrong_answer sedangkan tag location akan menggunakan method get_wrong locations.



