Hakikat Desktop & Embedded
1. Aplikasi Desktop
1.1 Pengertian Aplikasi Desktop
Aplikasi desktop merupakan sebuah perangkat lunak atau program komputer yang dirancang untuk dijalankan secara lokal pada komputer serbaguna seperti Personal Computer (PC) atau laptop. Aplikasi jenis ini beroperasi di bawah kendali sebuah sistem operasi seperti Windows, macOS, atau Linux. Tujuannya adalah untuk membantu pengguna melakukan berbagai tugas komputasi secara umum, mulai dari pekerjaan perkantoran, desain, hingga hiburan.
1.2 Klasifikasi Aplikasi Desktop Berdasarkan Fungsi
Aplikasi desktop dapat diklasifikasikan ke dalam beberapa kategori berdasarkan fungsi utamanya.
-
Aplikasi Produktivitas Perkantoran
Kategori ini mencakup perangkat lunak yang digunakan untuk menunjang pekerjaan administrasi dan perkantoran. Fungsinya meliputi pengolahan kata, pengolahan angka dalam bentuk spreadsheet, pembuatan presentasi, dan pengelolaan basis data. Contoh dari aplikasi ini adalah Microsoft Office (Word, Excel, PowerPoint) dan LibreOffice.
-
Apikasi Desain dan Multimedia
Aplikasi dalam kategori ini digunakan untuk membuat dan menyunting konten visual, audio, maupun video. Ini termasuk perangkat lunak untuk penyuntingan gambar, desain grafis vektor, pemodelan 3D, dan penyuntingan video. Contohnya adalah Adobe Photoshop, CorelDRAW, Blender, dan Adobe Premiere.
-
Perangkat Lunak Pengembangan (IDE)
Integrated Development Environment (IDE) adalah aplikasi desktop khusus yang menyediakan fasilitas lengkap untuk para pemrogram dalam mengembangkan perangkat lunak. Aplikasi ini biasanya terdiri dari editor kode, compiler atau interpreter, dan debugger. Contohnya adalah Visual Studio Code, PyCharm, dan Eclipse.
-
Utility Application
Utility Application berfungsi untuk membantu memelihara dan mengoptimalkan kinerja sistem komputer. Fungsinya dapat berupa manajemen file, perlindungan dari virus, atau pembersihan data. Contoh dari aplikasi ini adalah Windows File Explorer, Avast Antivirus, dan CCleaner.
1.3 Arsitektur dan Prinsip Kerja Aplikasi Desktop
Untuk dapat beroperasi, sebuah aplikasi desktop bekerja berdasarkan serangkaian prinsip dan arsitektur yang disediakan oleh sistem operasi dan framework antarmuka grafis. Prinsip kerja ini dapat diuraikan menjadi tiga pilar utama.
-
Landasan Sistem Operasi (OS)
Aplikasi desktop tidak dapat berfungsi secara mandiri melainkan berjalan di atas sistem operasi. OS menyediakan lapisan abstraksi dan layanan fundamental yang memungkinkan aplikasi untuk berjalan tanpa perlu mengetahui detail teknis dari perangkat keras. Layanan-layanan penting yang disediakan OS meliputi:
- Manajemen Proses dan Memori: OS bertanggung jawab untuk memuat aplikasi ke dalam memori (RAM) dan mengalokasikan waktu prosesor (CPU) untuknya. Setiap aplikasi dijalankan sebagai sebuah proses yang terisolasi, dengan ruang memori virtualnya sendiri untuk mencegah satu aplikasi mengganggu aplikasi lainnya.
- Akses File Sistem: OS menyediakan antarmuka standar bagi aplikasi untuk membaca dan menulis data ke perangkat penyimpanan seperti hard drive atau SSD. Aplikasi hanya perlu mengetahui nama dan lokasi file, sementara OS yang mengurus detail penempatan data secara fisik.
- Antarmuka Pemrograman Aplikasi (API): OS mengekspos ribuan fungsi melalui API (misalnya Win32 API pada Windows) yang dapat dipanggil oleh aplikasi untuk melakukan tugas-tugas seperti membuat jendela, menggambar grafis, atau berkomunikasi melalui jaringan.
-
Graphical User Interface (GUI)
Interaksi antara pengguna dan aplikasi dimediasi oleh Antarmuka Grafis Pengguna atau GUI. GUI bukan hanya tampilan, melainkan sebuah sistem interaktif yang tersusun dari beberapa komponen:
- Elemen Kontrol (Widgets): Widgets adalah balok-balok penyusun dasar dari sebuah antarmuka. Setiap elemen seperti tombol (button), kotak teks (entry), label, dan menu adalah sebuah widget. Masing-masing memiliki properti (seperti warna atau teks) dan perilaku yang telah ditentukan.
- Jendela (Window): Merupakan container atau wadah utama yang menampung semua widget. Pengelolaan jendela, seperti mengubah ukuran atau memindahkannya, biasanya ditangani oleh window manager dari sistem operasi.
- Manajer Tata Letak (Layout Manager): Layout Manager adalah mekanisme untuk mengatur posisi dan ukuran widget di dalam sebuah jendela. Daripada menentukan koordinat piksel secara manual, programmer menggunakan layout manager (seperti
grid()ataupack()pada Tkinter) untuk menempatkan widget secara relatif satu sama lain, sehingga tampilan tetap rapi meskipun ukuran jendela diubah.
-
Paradigma Pemrosesan Berbasis Kejadian (Event-Driven)
Aplikasi GUI tidak berjalan secara sekuensial dari atas ke bawah seperti skrip pada umumnya. Alur eksekusinya ditentukan oleh interaksi pengguna. Aplikasi akan berada dalam sebuah siklus (loop) yang secara konstan menunggu terjadinya sebuah "kejadian" (event), seperti klik mouse atau penekanan tombol. Ketika sebuah kejadian terdeteksi, aplikasi akan menjalankan sebuah fungsi spesifik yang telah ditulis oleh programmer, yang disebut penangan kejadian (event handler), untuk memberikan respons terhadap aksi pengguna tersebut.
2. Sistem Tertanam (Embedded System)
2.1 Pengertian Sistem Tertanam
Embedded system atau sistem tertanam merupakan sistem komputer khusus yang dirancang untuk menjalankan tugas tertentu dan biasanya sistem tersebut tertanam dalam satu kesatuan sistem. Sistem ini menjadi bagian dari keseluruhan sistem yang terdiri atas mekanik dan perangkat keras lainnya. Bidang embedded system mencakup penguasaan pada perangkat keras (hardware) dan perangkat lunak (software) secara terprogram. Embedded System merupakan sebuah sistem yang mencakup sebuah sistem yang lebih besar yang didukung sebuah chip mikrokontroler. Mikrokontroler merupakan salah satu piranti kontrol yang digunakan sebagai kendali dari sistem tertanam.
2.2 Klasifikasi Sistem Tertanam
Kata embedded menunjukkan bagian yang tidak dapat berdiri sendiri. Berbeda dengan sistem lain yang didesain untuk general purpose, embedded system biasanya diimplementasikan dengan menggunakan mikrokontroler. Embedded system dapat diklasifikasikan menurut fungsinya.
-
Sistem Tertanam Berdiri Sendiri (Stand Alone)
Sistem embedded yang termasuk kategori ini dapat bekerja sendiri tanpa perlu bergantung pada sistem komputasi lain. Sistem ini dapat menerima input digital atau analog, melakukan kalibrasi, konversi, pemrosesan data, serta menghasilkan output data ke periferal seperti layar LCD. Contoh alat yang termasuk kategori ini adalah konsol video game, pemutar MP3, kamera digital, dan jam digital.
-
Sistem Tertanam Real-Time
Sistem dapat dikategorikan sebagai real-time jika waktu respons merupakan hal yang sangat penting. Beberapa tugas tertentu harus dilakukan pada periode waktu yang spesifik. Ada dua tipe sistem embedded real-time.
- Hard Real-Time System Untuk sistem ini, pengerjaan operasi yang melebihi batas waktu yang ditentukan dapat menyebabkan terjadinya kegagalan yang fatal dan kerusakan pada sistem. Batas waktu respons untuk sistem ini sangatlah krusial, biasanya dalam orde milidetik atau lebih singkat. Contohnya adalah sistem kontrol kantong udara (airbag) pada mobil. Waktu tunda pada sistem ini dapat mengancam keselamatan pengendara, karena kecelakaan terjadi dalam waktu sangat singkat.
- Soft Real-Time System Untuk sistem ini, pengerjaan operasi yang melebihi batas waktu hanya akan menurunkan kualitas layanan (quality of service) tetapi tidak menyebabkan kegagalan sistem secara keseluruhan. Contohnya adalah sistem pemutar video digital, dimana sedikit keterlambatan dalam decoding video hanya akan menyebabkan gambar patah-patah sesaat, bukan kerusakan alat.
-
Sistem Tertanam Berjaringan (Networked)
Sistem ini dirancang untuk terhubung ke sebuah jaringan untuk mengirim atau menerima data. Jaringan tersebut bisa berupa jaringan lokal (LAN) maupun jaringan internet. Kategori inilah yang menjadi dasar dari perkembangan Internet of Things (IoT). Contohnya adalah sensor suhu pada smart home, sistem absensi sidik jari yang terhubung ke server, dan perangkat GPS pada kendaraan.
2.3 Arsitektur dan Komponen Dasar
Secara dasar, Embedded System tersusun atas mekanika, perangkat keras (hardware), dan perangkat lunak (software).
-
Development: Pembangunan perangkat Embedded System terdiri atas tiga proses yaitu mekanika, elektronika, dan pemrograman. Proses mekanika adalah perancangan desain fisik. Proses elektronika berarti menentukan, merancang, dan merakit komponen Input/Output (I/O) beserta sistem catu dayanya. Proses pemrograman adalah penerapan logika program terhadap perangkat keras agar dapat bekerja sesuai perencanaan.
-
Alur Kerja Sistem (Input-Proses-Output):
- Input: Dapat berupa sensor (perangkat keras) seperti sensor suhu dan cahaya, atau berupa masukan data (perangkat lunak).
- Proses: Data input selanjutnya diproses oleh unit kendali yang disebut chip IC atau mikrokontroller.
- Output: Hasil dari proses tersebut akan menghasilkan output, baik berupa pergerakan dari aktuator (perangkat keras) seperti motor, maupun berupa tampilan pada perangkat output seperti layar LCD.
2.4 Mikrokontroller
Mikrokontroller merupakan bentuk kecil dari sistem kendali tertanam. Mikrokontroller adalah sebuah komputer kecil di dalam satu sirkuit terpadu yang berisi inti prosesor, memori, dan periferal input/output yang dapat diprogram. Komponen ini didesain khusus untuk Embedded System, berukuran kecil, murah, dan tidak ditujukan untuk melakukan pekerjaan rumit seperti komputer. Macam-macam mikrokontroller yang sering digunakan yaitu Arduino, NodeMCU, Wemos, ESP32, dan Raspberry Pi.
3. Integrasi Aplikasi Desktop dan Embedded System
Integrasi antara kedua sistem ini menghasilkan sebuah sistem baru yang kemampuannya melebihi masing-masing sistem secara individual. Aplikasi desktop berperan sebagai antarmuka pengguna, pusat kendali, dan unit analisis data, sementara sistem tertanam berperan sebagai unit di lapangan yang melakukan akuisisi data dan eksekusi perintah fisik.
3.1 Bentuk-Bentuk Implementasi
-
Sistem Kontrol dan Monitoring
Sistem ini adalah bentuk integrasi yang paling umum. Sebuah aplikasi desktop digunakan untuk memantau data yang dikirim oleh satu atau lebih sistem tertanam secara real-time. Selain itu, aplikasi desktop juga dapat mengirimkan perintah untuk mengontrol perilaku sistem tertanam tersebut. Contohnya adalah aplikasi pada PC teknisi untuk melakukan kalibrasi pada mesin industri, atau dashboard untuk memantau suhu dan kelembapan pada sebuah server room.
-
Robotika
Robotika merupakan perpaduan disiplin ilmu mekanik, elektronik, dan komputer. Banyak sistem robotik modern merupakan gabungan dari sistem ini. Lengan robot di pabrik (sistem tertanam) melakukan gerakan presisi, sementara sebuah aplikasi desktop digunakan oleh operator untuk memprogram urutan gerakan, melakukan diagnostik, dan memantau status kerja robot.
-
Internet of Things (IoT)
IoT merupakan konsep dimana objek-objek dapat berkomunikasi atau berbagi data melalui jaringan internet. IoT adalah bentuk integrasi sistem tertanam dan aplikasi (desktop, web, atau mobile) yang paling kompleks dan skalabel. Sistem tertanam (misalnya perangkat smart home) mengumpulkan data dan mengirimkannya ke internet. Aplikasi di sisi pengguna kemudian dapat mengakses data tersebut dari mana saja untuk melakukan pemantauan dan kontrol jarak jauh. Implementasi IoT sering dikaitkan dengan kata “SMART” seperti smart city, smart garden, dan smart home.
4. Perbandingan Aplikasi Desktop dan System Embedded
Untuk merangkum perbedaan mendasar antara kedua sistem, berikut adalah perbandingannya.
| Kriteria | Aplikasi Desktop | Embedded System |
|---|---|---|
| Tujuan Utama | Serbaguna (General Purpose), untuk berbagai macam tugas. | Fungsi spesifik, didedikasikan untuk satu tugas tertentu. |
| Lingkungan Operasi | Berjalan di komputer personal (PC, Laptop). | Tertanam di dalam sistem atau perangkat yang lebih besar. |
| Sistem Operasi | Memerlukan sistem operasi yang kompleks (Windows, macOS, Linux). | Seringkali menggunakan RTOS (Real-Time Operating System) yang minimalis, atau bahkan tanpa sistem operasi (bare-metal). |
| Sumber Daya | Beroperasi dengan sumber daya melimpah (CPU kencang, RAM besar). | Bekerja dengan sumber daya yang sangat terbatas (CPU hemat daya, RAM kecil). |
| Interaksi | Dengan pengguna manusia melalui Antarmuka Grafis (GUI). | Dengan lingkungan fisik melalui sensor dan aktuator. |
| Contoh Implementasi | Microsoft Word, Adobe Photoshop, Visual Studio Code. | Kontroler AC, Jam Digital, Sensor pada perangkat IoT. |