Tips Nentuin Bahasa Pemrograman

Muhammad Rizki Fikriansyah
Daily Life of Mrizki
5 min readDec 12, 2019
1. Nentuin Bahasa Pemrograman [Jadi Programmer Yuk!]

Beberapa hari yang lalu, gue membuat video tentang memilih bahasa pemrograman yang cocok buat lo pelajari. Di video itu, gue ga membahas bahasa pemrograman yang lagi trending atau yang lagi banyak dicari oleh banyak perusahaan. Tapi gue ambil rute yang lain yaitu membagi bahasa pemrograman ke dalam beberapa kategori atau bidang yang akan ditekuni.

Ada beberapa alasan mengapa gue memilih untuk membahasnya dengan cara tersebut:

Jangan menjadi developer yang hanya mengikuti trend

Trend itu (terkadang) bagus. Tapi jika lo menjadi developer yang kerjanya hanya mengikuti trend, ga akan banyak yang bakal lo pelajari. Contohnya beberapa tahun yang lalu jQuery adalah go-to-nya para frontend developer dalam membuat website interaktif. Namun para developer yang hanya bisa jQuery tanpa mengerti javascript sama sekali kerepotan saat trend berubah ke arah vanilla javascript dan frontend framework seperti React, Angular, Vue dll.

Menjadi ahli di satu bidang

A jack of all trades is a master of none.
Seseorang yang bisa segala hal itu bukan master dari hal apapun.

Pepatah diatas cocok sekali untuk developer. Daripada belajar banyak bahasa pemrograman, lebih baik belajar sedikit bahasa pemrograman tapi ahli di bidangnya. Seorang web developer tidak perlu mengerti tentang game development jika ia tidak akan mengimplementasikan hal itu di bidang kerjanya. Hal itu akan sia-sia.

Fokus belajar sampai tidak ada yang dipelajari lagi

Di dunia programming, suatu bahasa cepat atau lambat akan terus berkembang. Contohnya javascript. Javascript beberapa tahun lalu berbeda dengan javascript sekarang. Walaupun konsep intinya sama namun banyak hal yang berbeda. Belum lagi ada bahasa baru yang terinspirasi dari Javascript yaitu Typescript.

Nah, balik lagi ke bahasan awal. Maka dari itu gue memilih membagi bahasa pemrograman ke bidangnya masing-masing.

1. Web Developer

Bidang pertama adalah web developer atau panjangnya adalah website developer. Kerja web developer terbagi menjadi 2 dan terkadang 4. Didalam bidang itu juga ada etika kerjanya sendiri.

  1. Frontend: Mengembangkan website yang ditampilkan pada browser.

Bahasa yang digunakan adalah html, css, javascript. Ketiga bahasa itu harus lo kuasain. Kalau sudah cukup mahir dengan ketiga bahasa diatas, lo bisa belajar menggunakan frontend framework kaya React, Angular, Vue dll.

2. Backend: Mengembangkan server dimana frontend membuat request.

Saat internet pertama diciptakan, ga ada yang namanya frontend dan backend. Setiap frontend dikirim dan diproses oleh server yang sama dengan backend. Namun di sekitar tahun 2011, konsep frontend dan backend mulai populer seiring populernya REST (REpresentational State Transfer).

Backend developer menggunakan bahasa seperti NodeJS, Java, Python, Go, C# dll. Setiap bahasa ada kelebihan dan kekurangannya masing-masing. Contohnya NodeJS: NodeJS termasuk relatif cepat tapi hanya bekerja menggunakan single thread. Tapi dikarenakan NodeJS menggunakan javascript, frontend developer banyak menggunakan bahasa ini juga untuk backend. Contoh kedua adalah C#: Server menggunakan C# hanya dapat dijalankan di Windows Server. Namun C# adalah bahasa yang termasuk nyaman untuk dipelajari karena strukturnya yang mirip dengan Java.

3. (optional) Database: Developer yang ahli dalam mengembangkan database.

Rata-rata backend developer mengerti akan database dan bagaimana cara mengembangkan hal tersebut. Namun di perusahaan besar biasanya ada developer yang kerjanya hanya berurusan dengan database, seperti membuat arsitekturnya, meninjau datanya dsb. Karena hal tersebut tidak mudah.

Bahasa yang paling populer digunakan adalah SQL (Structured Query Language). SQL mirip dengan bahasa inggris, faktanya bahasa ini sangat mudah dimengerti bahkan oleh non-programmer sekalipun. Contoh SQL adalah:

SQL statement

Tipe database tidak hanya SQL, ada juga Object Oriented, NoSQL dan NewSQL. NoSQL dan NewSQL terkadang lebih cepat dibanding SQL karena kedua database itu tidak butuh skema yang fixed, tapi sayangnya tidak terlalu populer.

4. (optional) DevOps: Kombinasi antara Software Development dan IT-Operations.

DevOps berurusan dengan development lifecycle, CI/CD, dan hal lain sebagainya. DevOps tidak menggunakan satu bahasa yang spesifik, namun harus mahir dalam software management dan menggunakan DevOps tools kaya Git, Docker, Kubernetes, Nginx, dll.

2. Game Development

Gue bakal ngomong dari awal kalau Game Development itu sulit. Makanya butuh beberapa tahun hanya untuk menyelesaikan satu game. Karena Game Development itu terbagi menjadi banyak kategori, beberapa diantaranya adalah Game Design, Game Developer, Level Design, dll. Tapi gue hanya akan fokus ke Game Developer.

Game Developer kerjanya berususan dengan urusan teknis dan game mekanik, seperti membuat karakter berjalan, membuat mobil di game racing untuk maju dsb. Hal itu kedengerannya gampang, tapi sebenarnya membutuhkan kode yang sangat panjang hanya untuk menampilkan karakter berjalan di monitor lo.

Untungnya beberapa perusahaan mempublikasikan Game Engine-nya yang bisa kita pakai untuk membuat game dan memudahkan kita untuk mengurangi kode yang kita tulis menjadi beberapa baris kode aja.

Bahasa yang populer digunakan di game development adalah C++ (Cry Engine, Unreal Engine), C# (Unity), Javascript dan Game Maker Language (Game Maker Studio). Perlu diingat walaupun game bisa dibuat oleh seorang diri, tapi pada umumnya game dibuat bersama dengan team.

3. Aplikasi Desktop

Good old desktop app. Lucunya, ada kalanya dulu app disebut sebagai program atau software. Aplikasi desktop dibuat sesuai operating sytem(OS)-nya masing-masing. Setiap OS memiliki bahasa tersendiri untuk membuat app.

  1. Windows: C#, Visual Basic

C# dan Visual Basic banyak dan hanya digunakan di software yang ada di Windows.

2. Mac OS: Objective-C, (C++)

Gue belum pernah men-develop software buat Mac OS. Tapi bahasa yang digunakan adalah Objective-C yang strukturnya mirip dengan C tapi dengan beberapa fitur tambahan. C++ juga bisa digunakan untuk membuat app Mac OS tapi hanya sebagai pelengkap dari Objective-C bukan murni C++.

3. Linux: C/C++, Shell

Yes, linux ditulis menggunakan C dan C++. Maka ga aneh kalau software linux secara native menggunakan C/C++. Sedangkan Shell adalah bahasa yang digunakan di terminal (di windows cmd).

4. Aplikasi Mobile (Android/iOS)

Untuk aplikasi mobile, saat ini kita punya 2 pilihan yaitu Android atau iOS. Keduanya memiliki bahasa pemrograman masing-masing:

  1. Android: Java dan Kotlin
    Membuat aplikasi pada android sejak dulu sudah menggunakan java. Mulai pada tahun 2017, Kotlin diusulkan untuk mengganti dan menjadi alternativ untuk membuat aplikasi pada Android.
  2. iOS: Objective-C dan Swift
    Sama seperti software untuk Mac OS. Software untuk iOS pun bisa ditulis menggunakan Objective-C. Seperti halnya Android, iOS juga punya alternativ yaitu Swift. Uniknya Swift ini open-source, berbeda dengan Objective-C yang berlisensi Apple.
  3. Cross-Platform: Flutter, React-Native, PWA, NativeScript
    Keinginan untuk membuat aplikasi yang bisa digunakan di semua devices terbilang sangat besar. Beberapa tahun belakangan ini banyak yang berusaha memudahkan membuat aplikasi yang hanya mempunyai satu code-base. Bahkan Google sendiri membuat Framework untuk itu yang dinamakan Flutter. Sedangkan React-Native dikembangkan oleh Google.

Bahasa Pemrograman Berdasarkan Tujuannya

Kita sebagai developer memang tidak bisa menggunakan satu bahasa untuk segala hal. Walaupun belajar suatu bahasa pemrograman membutuhkan waktu yang bisa dibilang lama, beberapa bahasa memang diciptakan untuk tujuan tersebut.

  1. Machine Learning
    Bahasa yang paling populer digunakan adalah Python lalu kedua Rust. Meskipun Machine-Learning bisa diprogram dengan menggunakan bahasa apapun, Python memiliki banyak library untuk mengolah data yang cocok digunakan untuk Machine-Learning.
  2. Operating System
    Untuk operating system, ga bisa dipungkiri lagi kalau bahasa yang digunakan harus mensupport memory management, dan fitur-fitur yang dibutuhkan oleh operating system. Maka dari itu operating system ditulis menggunakan C/C++.

Semoga yang gue tulis disini bermanfaat dan bisa membuat lu tau bahasa apa yang perlu lu pelajari. Kita sebagai developer ga perlu menguasai semua bahasa pemrograman. Karena yang lebih penting adalah menguasai cara menyelesaikan masalah, agar bahasa apapun yang kita gunakan, kita tetap bisa membuat program dengan lancar.

--

--

Muhammad Rizki Fikriansyah
Daily Life of Mrizki

Student of Full Stack Developer, doing Front End, dreaming of becoming an Entrepreneur