Penggunaan API dalam Deskripsi Fungsi Kode Sumber

Oleh = Mochammad Haldi Widianto

Makalah ini membahas pertanyaan apakah programmer menggunakan API untuk menggambarkan fungsionalitas yang diterapkan dalam kode sumber yang memanggil API tersebut. Istilah “penggunaan API” biasanya disediakan untuk kejadian dalam kode sumber panggilan ke fungsi di API, atau membaca dan menulis ke data yang dimiliki oleh API. Namun, API telah terbukti menjadi jangkar utama untuk memahami kode sumber, dan masuk akal bahwa pemrogram menggunakan API untuk mendeskripsikan kode sumber selain menggunakan API untuk mengimplementasikan fitur dalam kodenya. Mengingat aspek sosial yang kuat untuk pengembangan perangkat lunak dan manfaat produktivitas alat komunikasi yang baik, akan sangat membantu untuk mengetahui apakah penggunaan API melampaui kode sumber dan ke dalam dialog yang digunakan pemrogram untuk berkomunikasi.

Peneliti menemukan bukti bahwa programmer menggunakan API untuk mendeskripsikan kode, bahkan dalam ringkasan fungsionalitas kode tingkat tinggi. Implikasinya adalah bahwa API berperan dalam komunikasi programmer di luar detail implementasi level rendah dari kode itu sendiri. Ketidakcocokan telah lama dikenali antara konsep tingkat tinggi yang digunakan untuk menggambarkan fungsionalitas perangkat lunak, dan detail implementasi tingkat rendah. Dan sementara definisi yang tepat tentang apa yang merupakan tingkat “tinggi” dan “rendah” dalam literatur masih sedikit, dapat dikatakan bahwa, secara umum, deskripsi pada tingkat tinggi mencakup informasi tentang alasan di balik penerapan, atau tujuan dari perangkat lunak. Sebaliknya, deskripsi pada tingkat rendah mencakup spesifik tentang bagaimana implementasi itu dicapai, seperti metode mana yang terjadi di kelas mana.

Masalah yang peneliti targetkan adalah literatur rekayasa perangkat lunak tidak mengeksplorasi apakah “penggunaan API” meluas ke percakapan programmer dan artefak lain seperti dokumentasi, bukan hanya penggunaan dalam kode sumber program. Upaya rekayasa perangkat lunak tersebar di berbagai artefak, dengan kode sumber hanya menjadi salah satu dari beberapa komponen penting. API umumnya dianggap penting untuk pengembangan kode sumber, tetapi sejauh mana mereka memengaruhi artefak lain belum dieksplorasi secara mendalam. Pengetahuan yang lebih baik di bidang ini dapat mengarah pada kemajuan dalam dukungan alat untuk pemrogram dan desain kegunaan API. Poin-poin diskusi lokakarya yang mungkin meliputi: 1) persepsi nilai penggunaan API untuk artefak non-kode sumber, 2) implikasi untuk dukungan alat yang ada, 3) mekanisme yang lebih baik untuk mendeteksi penggunaan API dalam bahasa alami, dan 4) pendeteksian tingkat ringkasan bahasa alami yang berkaitan dengan API.

 

Dokumentasi API berisi banyak informasi untuk banyak audiens. Pengembang aplikasi, pemegang lisensi platform, dan teknisi uji kesesuaian semuanya menggunakan dokumentasi spesifikasi Java API. Pengembang mungkin memerlukan deskripsi yang rumit daripada yang dapat diberikan oleh komentar dokumentasi yang ringkas. Namun, menyertakan spesifikasi API dalam komentar dokumentasi membantu penulis dalam penerapan yang sesuai dan uji kesesuaian mempertahankan fungsionalitas lintas platform. Arahan API memberi tahu pengembang cara mengimplementasikan API dengan memberikan pedoman dan batasan. Monperrus dkk. Mengklasifikasikan arahan Java untuk menemukan bahwa arahan panggilan metode paling melimpah yaitu 43%. McBurney dkk. mempelajari kesamaan dalam kode sumber dengan ringkasan yang ditulis oleh penulis dan pembaca. Ringkasan pembaca berisi lebih banyak kata kunci dari kode dan lebih banyak ringkasan tingkat rendah. Rastkar dkk. mempelajari cara terbaik meringkas laporan bug. Rastkar berfokus pada laporan yang ditulis sebagai percakapan, daripada laporan yang sebagian besar berisi kode dan pelacakan tumpukan, karena pengembang biasanya tidak membaca laporan bug tingkat rendah.

 

Dari analisis ringkasan, peneliti menemukan bahwa referensi ke Java API banyak ditemukan di semua tingkat detail ringkasan. Peneliti juga menemukan bahwa tingkat detail yang lebih rendah cenderung memiliki tingkat penggunaan API yang lebih tinggi daripada tingkat yang lebih tinggi.

  1. RQ1: Penggunaan API

1) Tingkat Tinggi: Peserta diberi label 324 ringkasan sebagai tingkat tinggi. Dari peringkat tinggi, 226 berisi penggunaan Java API, yang berarti API muncul di sekitar 69,75% dari semua ringkasan tingkat tinggi.

2) Leaning High Level: Peserta diberi label 253 ringkasan sebagai leaning level tinggi. Dari peringkat yang cenderung tinggi, 217 berisi penggunaan Java API, yang berarti API muncul di sekitar 85,77% dari semua ringkasan tingkat tinggi yang condong.

3) Tingkat Netral: Peserta memberi label 184 ringkasan sebagai tingkat tinggi atau rendah. Dari peringkat netral, 151 berisi penggunaan Java API, yang berarti API muncul di sekitar 82.07% dari semua ringkasan tingkat netral.

4) Leaning Low Level: Peserta memberi label 285 ringkasan sebagai leaning level rendah. Dari peringkat yang cenderung rendah, 272 berisi penggunaan Java API, yang berarti API muncul di sekitar 95,44% dari semua ringkasan level rendah yang condong.

5) Level Rendah: Peserta memberi label 211 ringkasan sebagai level rendah. Dari peringkat rendah, 193 berisi penggunaan Java API, yang berarti API muncul di sekitar 91,47% dari semua ringkasan level rendah.

Hasil ini menunjukkan bahwa penggunaan API dapat dilihat di semua level ringkasan.

  1. RQ2: Tingkat Tinggi vs Rendah

Melihat hasil gabungan dari dua tingkat detail tinggi, 577 ringkasan dinilai sebagai tingkat tinggi atau condong tinggi. Dari jumlah tersebut, 76,78% di antaranya berisi API. Di sisi lain, 496 ringkasan dinilai sebagai rendah atau condong rendah. Ringkasan ini mencakup 93,75% API. Ini secara lebih jelas menunjukkan peningkatan penggunaan Java API di ringkasan level yang lebih rendah dibandingkan level yang lebih tinggi.

Makalah peneliti berkontribusi pada penelitian tentang dokumentasi API dalam dua cara. Pertama, peneliti yakin bahwa hasil menunjukkan bagaimana API disebutkan dalam ringkasan metode dan bagaimana penggunaannya dapat memberikan ringkasan yang lebih mendetail. Kedua, peneliti juga percaya bahwa jika seseorang ingin secara eksplisit membuat ringkasan tingkat yang lebih rendah, itu harus menyertakan lebih banyak penggunaan API. API umumnya dianggap penting untuk pengembangan kode sumber, tetapi seberapa besar pengaruhnya terhadap artefak lain belum dieksplorasi secara mendalam. Peningkatan pengetahuan di bidang ini dapat menghasilkan banyak perbaikan yang berguna dalam alat bagi pemrogram. Sasaran peneliti untuk lokakarya ini adalah untuk menerima umpan balik dari komunitas pada bidang penelitian ini yang dapat mencakup implikasi luas untuk dukungan alat yang ada, deteksi penggunaan API yang lebih baik, dan pembuatan otomatis yang lebih baik untuk ringkasan metode.

Gambar 1. Model API

 

Referensi :

  1. Paige Rodeghero, Collin McMillan, and Abigail Shirey,” API Usage in Descriptions of Source Code Functionality” 2017 IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI), Notre Dame, IN, USA
  2. https://www.freecodecamp.org/news/what-is-an-api-in-english-please-b880a3214a82/