Abstract:
Negara Indonesia adalah negara hukum. Sebagai negara hukum setiap tahunnya negara Indonesia
melahirkan undang-undang baru. Dari tahun 1945 di saat Indonesia merdeka hingga saat ini
sudah ada lebih dari 1000 undang-undang yang sudah diciptakan. Undang-undang tidak dibuat
begitu saja, akan tetapi memiliki dasar tertentu, seperti yang akan diteliti pada skripsi ini
yaitu berdasarkan undang-undang lain. Hampir seluruh undang-undang yang dibuat merujuk
kepada undang-undang yang sudah dibuat sebelumnya baik untuk memperbaharui, mengganti,
atau merevisi. Begitu banyaknya undang-undang beserta rujukannya tentu akan membuat para
praktisi hukum kesulitan untuk mencari undang-undang yang relevan untuk pekerjaannya, maka
dari itu pada skripsi ini dibuat sebuah perangkat lunak yang mampu membantu melakukan
pencarian undang-undang terhadap topik atau nomor dan tahun undang-undang beserta rujukannya.
Selain itu rujukan-rujukan ini akan dimodelkan dalam bentuk graf yang kemudian
dianalisis dengan memanfaatkan teknologi big data yaitu Apache Spark.
Pemodelan dan penyiapan graf dilakukan dengan memanfaatkan bahasa pemrograman
python, dokumen PDF undang-undang yang telah dikumpulkan dilakukan ekstraksi teks dengan
menggunakan library python yaitu MyMuPDF. Kemudian dilakukan ekstraksi kata kunci dari
teks menggunakan Regular Expression yaitu dengan mencari kata kunci seperti nomor dan tahun
undang-undang atau topik undang-undang tersebut. Terakhir kata kunci dimodelkan menjadi
graf dengan membuat data node yang berisikan seluruh nomor dan tahun undang-undang beserta
topiknya dan data edge yang berisikan rujukan-rujukan yang dihasilkan oleh undang-undang.
Apache Spark adalah teknologi big data yang mampu memproses graf dengan jutaan node
dan edge. Komponen Apache Spark yang digunakan untuk analisis graf adalah graphX dan
graphFrames. GraphX dan graphFrames menyediakan beberapa algoritma analisis graf, yaitu
PageRank, Connected Components, Strongly Connected Components, Breadth First Search, dan
Motif Finding. PageRank digunakan untuk mencari undang-undang yang penting, Connected
Components digunakan untuk mencari sekumpulan undang-undang yang memiliki topik yang
sama, Strongly Connected Components tidak ditemukan karena graf undang-undang tidak
mungkin menciptakan sebuah graf cyclic, Breadth First Search digunakan untuk menemukan
apakah dua undang-undang memiliki hubungan dan melalui apa saja, dan Motif finding yang
tidak digunakan karena tidak ada pola yang relevan untuk dianalisis.
Perangkat lunak yang dibangun menggunakan bahasa pemograman PHP, HTML, dan
JavaScript. Menggunakan Bootstrap sebagai framework CSS-nya, dan menerapkan struktur
Model, View, Controller sebagai arsitekturnya. Perangkat lunak ini dapat menampilkan teks
dan graf dari undang-undang beserta menampilkan rujukan dan status revisinya.