Mohon tunggu...
Kuindra Iriyanta
Kuindra Iriyanta Mohon Tunggu... Administrasi - D I Yogyakarta

Bekerja sebagai Admisi dan Promosi di salah satu PTS. Saat ini sedang mengambil studi S2 program Magister Teknologi Informasi di STMIK AKAKOM Yogyakarta. Sedang belajar untuk menulis berbagai hal terkait teknologi komputer. Biasa mengisi materi pelatihan tentang embedded system di Sekolah Menengah Kejuruan bagi siswa. Tertarik juga dengan desain grafis, pengolahan data dan multimedia.

Selanjutnya

Tutup

Gadget

Mengenal Paradigma Pemrograman Konkuren

1 Desember 2019   22:11 Diperbarui: 1 Desember 2019   22:21 323
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Gadget. Sumber ilustrasi: PEXELS/ThisIsEngineering

Pemrograman konkuren sebenarnya hadir karena didasari kebutuhan untuk membangun sebuah sistem operasi, yang mana seperti diketahui bahwa sistem operasi dapat mengatur sumber daya yang ada dalam hal ini prosesor, memori guna menyelesaikan task  yang diberikan secara bersamaan.  

Paradigma pemrograman konkuren sendiri dapat berarti dalam membuat sebuah program, programmer tidak lagi berpikir secara sekuensial, namun harus menangani komunikasi dan sinkronisasi antar task.

Lalu apa yang dimaksud dengan tidak sekuensial, harus mengurusi komunikasi dan sinkronisasi atau disebut konkuren? Sebagai ilustrasi, kita biasanya ketika sedang mengerjakan sesuatu dengan komputer, kita pun sering diiringi musik yang di putar menggunakan MP3 player. 

Sebut saja saat kita mengetik membuat makalah atau artikel seperti yang saya lakukan, saya pun masih mendengarkan musik. Disaat yang bersamaan, jendela browser pun terbuka untuk mencari referensi di internet.  

Contoh lainnya yang lebih dekat dengan kehidupan sehari hari adalah, ketika jadwal kita membayar pajak kendaraan bermotor, sedangkan dihari dan waktu yang bersamaan kita juga sedang mendapatkan pekerjaan kantor, maka agar dapat berjalan secara bersamaan atau minimal selesai dihari yang sama tanpa harus lembur, maka yang dilakukan adalah menggunakan jasa calo untuk mengurus perpanjangan pajak kendaraan sementara kita tetap dikantor untuk menyelesaikan pekerjaan. Dengan begini maka dibutuhkan 2 buah aktor guna menyelesaikan task tadi. Atau cara yang kedua adalah kita bisa saja membawa laptop ke tempat perpanjangan pajak kendaraan. Sembari antri, yang tentunya memakan waktu beberapa jam, kita dapat mengalihkan tenaga dan pikiran untuk mengerjakan pekerjaan kantor. Bila tiba giliran kita dipanggil oleh loket pembayaran, maka saat itu pikiran dan perhatian kita akan dialihkan pada urusan memperpanjang pajak kendaraaan. Kedua task ini dilakukan secara bergantian. Inilah yang kemudian disebut  dengan konkuren. Konkurensi adalah bagaimana caranya menghadapi banyak pekerjaan sekaligus dan bagaimana membuat struktur dan cara kerja, sehingga banyak pekerjaan bisa dikerjakan secara bergantian, (dalam komputer, karena saking cepatnya sehingga tidak terlihat perpindahannya dari satu task ke task lain), memanfaatkan sumber daya memori dan prosesor guna menyelesaikan task yang jumlahnya tidak. Konkurensi berbeda dengan paralelisme. Konkurensi kemampuan untuk menyelaraskan proses eksekusi independen, lebih mengacu kepada penjadwalan task sedangkan paralelisme lebih berkaitan dengan eksekusi.

Sama halnya dalam paradigma pemrograman konkuren, dimana dalam memrogram, kita tidak lagi fokus pada bagaimana menyelesaikan task, namun lebih mengarahkan kepada melakukan komunikasi dan sinkronisasi antar task yang dibuat. Ini yang sangat dibutuhkan dalam membangun sebuah sistem operasi, yaitu dapat memanfaatkan sumberdaya yang ada guna menyelesaikan task yang banyak.

Tidak banyak bahasa pemrograman yang menawarkan kemampuan konkuren, salah satunya adalah GO atau dikenal GOLANG. Go merupakan salah satu bahasa pemrograman yang menawarkan konkurensi yang tekah  tertanam di dalam. Go memiliki kelebihan memiliki sebuah konsep rutinitas untuk memulai penyelarasan pekerjaan (goroutines), konsep channels untuk sinkronisasi dan komunikasi, serta konsep select untuk mengelola banyak jalur bersamaan.

Go memiliki kelebihan dibanding bahasa lainnya, beberapa di antaranya:

  • Mendukung konkurensi di level bahasa dengan pengaplikasian cukup mudah
  • Mendukung pemrosesan data dengan banyak prosesor dalam waktu yang bersamaan (pararel processing)
  • Memiliki garbage collector
  • Proses kompilasi sangat cepat
  • Bukan bahasa pemrograman yang hirarkial, menjadikan developer tidak perlu ribet memikirkan segmen OOP-nya
  • Package/modul yang disediakan terbilang lengkap. Karena bahasa ini open source, banyak sekali developer yang juga mengembangkan modul-modul lain yang bisa dimanfaatkan

Contoh Script GO LANG

package mainimport (                "fmt")func main() {                fmt.Println("MTI STMIK AKAKOM")}

outoput dari perintah diatas adalah

MTI STMIK AKAKOMProgram exited.Syntax OK

Untuk mencoba bahasa GO ini secara online bisa di https://goplay.space/, yang juga tersedia dalam mode graphic.  Untuk membuat aplikasi dengan mengunakan GO, ada baiknya menggunakan editor yang sesuai dengan kebutuhan. Ada banyak opsi untuk editornya salah satunya adalah visual studio code, yang kemudian menginstall Go-Extension, guna mengintegrasikan kompiler Go

HALAMAN :
  1. 1
  2. 2
Mohon tunggu...

Lihat Konten Gadget Selengkapnya
Lihat Gadget Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun