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
Akhirnya, paradigma ini sangat cocok untuk membangun sebuah sistem operasi, karena pada dasarnya sistem operasi akan menangani beberapa task secara bersamaan yang dalam  kenyataan bahwa komputer harus dapat menangani beberapa task sekaligus.
Sumber :Â
https://medium.com/pujanggateknologi/mengenal-konkurensi-dan-paralelisme-10746e1b7ab6
https://dasarpemrogramangolang.novalagung.com/
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H