
RisetUnik aims to help student or people who have a research topic idea and want to make sure if their idea is having such a uniqueness.
Mahasiswa yang akan mengerjakan skripsi atau thesis seringkali ragu akan keunikan ide/topik yang mereka dapatkan. Biasanya mahasiswa akan menghabiskan waktu berhari-hari hanya untuk mencari justifikasi atas keunikan ide yang mereka bawa.
Oleh karena itu akan sangat membantu bila ada suatu sistem dimana mahasiswa bisa menjelakan ide yang dibawanya dan secara otomatis sistem akan memberikan nilai keunikan berdasarkan judul-judul yang sudah ada dari berbagai referensi.
Hal terpenting yang harus dipertimabngkan tentu saja adalah bagaimana cara mengukur keunikan suatu ide?
Mengukur seberapa unik ide sama halnya dengan melakukan negasi pada seberapa mirip suatu ide dengan ide yang lain, hal ini membuka dua kemungkinan:
menilai keunikan berdasarkan isi penelitian; dan
menilai keunikan berdasarkan judul
Sebenarnya, akan lebih komprehensif apabila memilih opsi pertama, caranya adalah mendapatkan paper yang ada di internet, membacanya, lalu membandingkan isinya dengan ide yang dijelaskan oleh mahasiswa. Namun hal ini mempunyai dua kekurangan, pertama butuh sistem yang kompleks yang dapat mengunduh file dan membaca isinya, kedua tidak semua paper lengkap tersedia di internet. Oleh karena itu opsi kedua lebih memungkinkan, membandingkan ide yang didapat dengan judul yang sudah ada, tentu saja dengan asumsi bahwa sebagai peneliti seharusan dapat merangkum ide penelitiannya dalam bentuk judul.
Untuk dapat membandingkan 2 kalimat, ide yang langsung muncul adalah mengubah kalimat menjadi suatu data vektor dan membandingkannya, yang mana populer saat ini digunakan adalah algoritma tokenizer seperti pada Transformer. Jika sudah didapat kita dapat dengan mudah mencari nilai keunikan denggan cosine similarity.
Melihat algoritma yang dipakai dukungan akan lebih mudah jika menggunakan framework berbasis python sebagai backend, saya memutuskan memakai FastAPI untuk ini. Lalu untuk frontend sebenarnya lebih banyak opsi termasuk opsi sederhana tanpa framework, namun untuk mendukung scalability kedepan saya memakai framework berbasis React.
Sementara untuk sumber referensi artikel yang sudah ada, saya menemukan kesulitan sebab banyak situs tidak menyediakan API untuk keperluan ini, dari sekian banyak yang saya coba saya putuskan untuk sementara memakai dua sumber yakni:
Semantic Scholar
DOAJ
Saya membangun sistem menggunakan FastAPI untuk backend dan NextJS sebagai frontend yang dbuat dalam satu repository yang sama. Antara Backend dan Frontend berkomunikasi dengan RestAPI.
User diberikan form untuk menuliskan topik penelitian yang akan diusungkan, dan frontend akan mengirimkan topik tersebut kepada backend, backend lalu akan memanggil external API dari DOAJ dan Semantic Scholar untuk melakukan pencarian judul artikel berdasarkan topik yang diisikan. setelah didapat, maka antara topik dari user dan semua hasil pencarian akan dilakukan tokenizer encoding dan terakhir akan dicari kesamaannya menggunakan cosine similarity.
Backend akan mengembalikan nilai berupa nilai keunikan keseluruhan, beserta semua hasil pencarian dari external API dengan nilai kesamaan dari masing-masingnya. Data-data tersebut lalu ditampilkan kepada user.
Sistem yang sebelumnya dibangun mengharuskan user mengisikan topik dalam satu kalimat padat, sebab input ini akan langsung dipakai untuk melakukan query pencarian pada external API. beberapa mahasiswa mungkin akan menguras pikiran lebih untuk melakukan ini sebab ini hampir mirip dengan membuat judul penelitian itu sendiri. Oleh karena itu ditambahkan fitur "yapping" dimana mahasiswa bisa menjelaskan panjang lebar isi kepala mereka. Data ini oleh backend akan dihandle oleh backend melalui call Gemini API untuk membuatnya menjadi suatu kalimat yang padat untuk query ke external API.