Laporkan Masalah

Pengaruh Penggunaan Bahasa Pemrograman dan Protokol Komunikasi Serial Terhadap Performa Internet of Things

Fransiskus Rian Wardana Putra, Dr. Mardhani Riasetiawan, SE., Akt., M.T.

2023 | Skripsi | ILMU KOMPUTER

Sifat alami Internet of Things (IoT) yang mobile memberikan batasan dalam mendesain sistem IoT. Kebutuhan mobile membuat IoT harus hemat dalam penggunaan daya dan memiliki sumber daya komputasi yang kecil. Mendesain perangkat lunak untuk mengoperasikan IoT menjadi tantangan tersendiri, terlebih dengan batasan sumber daya yang dimiliki sistem IoT. Pemilihan bahasa pemrograman dan protokol yang sesuai menjadi krusial untuk mendapatkan sistem IoT yang optimal.
Penelitian ini melanjutkan penelitian terdahulu dalam menentukan protokol komunikasi antar device dalam proyek G-Connect dengan menerapkan protokol komunikasi serial Inter-Integrated Circuit dan Serial Peripheral Interface untuk mengoptimalkan kinerja sistem IoT dengan membandingkan performa kedua protokol komunikasi berdasarkan parameter-parameter yang ditentukan. Perbedaan penelitian ini dengan penelitian sebelumnya adalah penelitian ini tidak hanya membandingkan kedua protokol komunikasi, akan tetapi juga membandingkan kombinasi kedua protokol komunikasi tersebut dengan berbagai bahasa pemrograman meliputi C, C#, Go, Java, Javascript, Python dan Rust. Parameter yang digunakan sebagai pembanding meliputi waktu respon, memori, penggunaan CPU dan konsumsi daya.
Hasil penelitian menunjukkan bahwa kombinasi antara bahasa pemrograman Go dan protokol komunikasi Inter-Integrated Circuit lebih unggul dibandingkan dengan kombinasi bahasa pemrograman dan protokol komunikasi lain. Kombinasi bahasa Go dan protokol Inter-Integrated Circuit memiliki rata-rata penggunaan CPU 0,102%; penggunaan memori  sebesar 6,628 MB dan konsumsi daya sebesar 1,404 watt. Selain itu dalam penelitian ini ditemukan bahwa bahasa pemrograman yang harus di-compile untuk eksekusinya seperti C, Go dan Rust memiliki performa yang lebih baik daripada bahasa virtual machine seperti Java dan  C# maupun bahasa interpreted seperti Python dan Javascript.

The nature of the Internet of Things (IoT), being mobile, poses limitations in designing IoT systems. The mobile requirement necessitates power efficiency and limited computational resources for IoT devices. Designing software to operate IoT poses its own challenges, especially considering the resource constraints of IoT systems. The selection of appropriate programming languages and protocols is crucial to achieve an optimal IoT system.
This research builds upon previous studies in determining device communication protocols within the G-Connect project by implementing the Inter-Integrated Circuit (I2C) and Serial Peripheral Interface (SPI) serial communication protocols to optimize IoT system performance. The study compares the performance of these two communication protocols based on predefined parameters. What sets this research apart from previous studies is that it not only compares two communication protocols but also compares the combinations of these protocols with various programming languages, including C, C#, Go, Java, Javascript, Python and Rust. The parameters used for comparison include response time, memory usage, CPU utilization, and power consumption.
The research findings indicate that the combination of the Go programming language and the I2C communication protocol outperforms other combinations of programming languages and communication protocols. The Go language and I2C protocol combination achieved an average of CPU utilization of 0.102%, memory utilization of 6.628 MB, and power consumption of 1.404 watts. Additionally, the research discovered that compiled programming languages such as C, Go, and Rust perform better than virtual machine languages like Java and C# as well as interpreted languages like Python and Javascript.

Kata Kunci : G-Connect, internet of things, komunikasi serial, waktu respons, memori, penggunaan CPU, konsumsi daya, pengujian performa

  1. S1-2023-427592-abstract.pdf  
  2. S1-2023-427592-bibliography.pdf  
  3. S1-2023-427592-tableofcontent.pdf  
  4. S1-2023-427592-title.pdf