digilib@itb.ac.id +62 812 2508 8800

Pengembangan sebuah servis backend berbasis GraphQL memerlukan beberapahal, di antaranya: (1) pendefinisian model data; (2) implementasi operasi create, read, update, dan delete; (3) implementasi sistem authentication, dan(4) implementasi sistem authorization. Seringkali terjadi pengulangan implementasi CRUD pada proses pengembangannya sehingga diperlukan jumlah penulisanimplementasi yang banyak. Hal ini dikarenakan setiap model data memiliki authentication dan authorization yang berbeda-beda. Pada tugas akhir ini diusulkan sebuah kakas pengembangan servis backend berbasis GraphQLuntukoperasi CRUD, authentication, dan authorization. Kakas ini dibuat dengan tujuanmempermudah developer dalam mengimplementasikan operasi CRUD, authentication, dan authorization secara lebih praktis karena developer dapat menulis kode lebih sedikit. Pada tugas akhir ini digunakan GraphQL sebagai bahasa query untuk mengaksesdan memanipulasi data karena GraphQL merupakan salah satu bahasa queryyangpaling populer digunakan. Secara umum implementasi operasi CRUD, authentication, dan authorization masih kurang efisien, karena developer harusmengulang penulisan kode berkali-kali. JSON Web Token (JWT) dipilih sebagai cara authentication pada tugas akhir ini karena JWT mempunyai kinerja yangcepat sedangkan attribute-based access control (ABAC) digunakan sebagai caraauthorization karena ABAC dapat memvalidasi hingga level atribut. Hasil dari tugas akhir ini adalah sebuah kakas pengembangan server backendberbasis GraphQL untuk operasi CRUD, authentication, dan authorizationbernama Homura. Setelah dilakukan implementasi dan pengujian pada kakastersebut, diperoleh hasil sebagai berikut: (1) GraphQL API server berhasil dibuat menggunakan Homura berdasarkan definisi servis operasi CRUD, model data, authentication, dan authorization, (2) Homura berhasil mengurangi jumlahpendefinisian servis operasi CRUD, model data, authentication, dan authorizationsebanyak 82%.