Memahami "Bahasa" dari Bahasa Pemrograman 1
Published: 2020-12-13 07:54:25

Koleksi tulisan ini berisi bahasa dan konsep unik yang biasa dipakai dalam pemrograman. Bagi mereka yang sedang bingung atau kesulitan dalam berkomunikasi mengenai ide dari pemrograman ataupun yang bingung dengan bahasa yang dipakai dalam proses belajar pemrograman. Diharapkan ini membantu dalam proses belajar ataupun mengajar.

Untuk membaca tulisan ini mungkin butuh belajar terlebih dahulu pemrograman. Ini ditujukan untuk dapat memahami lebih lanjut bagi mereka yang sudah belajar dan ingin mendalami konsepnya

## Fungsi atau Function
Sekarang, coba pikirkan fungsi adalah apa. Disini saya ingin memakai pengetahuan yang kita dapat dari matematika untuk memahami fungsi

### Matematika
`f(x) = x + 5;`
Ini adalah model matematika dan disebut Fungsi. f() adalah nama fungsi; x adalah variabel; x + 5 adalah proses yang akan kita kerjakan. 
Ketika kita menggunakan fungsi ini. Biasanya akan seperti 
```
f(x) = x + 5;
f(5) = 5 + 5;
f(5) = 10;
```
Dari analogi ini dapat dilihat bahwa:
- Kita menggantikan variabel x menjadi nilai 5. Dalam pemrograman, ini disebut parameter
- Kita mengerjakan fungsi `f(x)` setelah memberikan nilai menjadi `f(5)`. Dalam pemrograman, proses ini disebut '*function body*'
- Proses itu menghasilkan (mengembalikan/return) nilai yaitu `10`. Dalam pemrograman, ini yang biasanya disebut "mengembalikan nilai"

> Saya bukan matematikawan. Tolong ampuni saya jika terpelatuk dengan penjelasan saya yang buruk :( Saya hanya memberikan contoh dan pemahaman yang relevan untuk bahasa pemrograman. Nilai kalkulus saya dibawah 50. Bantu saya dalam matkul kalkulus *hiks

Saya menjelaskan ini agar terlihat perbedaan matematika dan pemrograman tentang fungsi ini. Mereka saling terhubung namun ada perbedaan yang akan saya jelaskan berikut

Sekarang mari kita lihat contoh kasus:
**Matematika**
```
f(x) = (x + 5) / 5;
f(5) = (5 + 5) / 5;
f(5) = 10 / 5;
f(5) = 2;
```
**Pemrograman**
```
function f(x) {
    x = x + 5;
    x = x / 5;
    return x;
}

function main() {
    cout << f(5);
}
```

Dengan ini terlihat perbedaan dari matematika dan pemrograman meskipun secara penulisan berbeda meskipun tujuan nya sama yaitu mendapatkan nilai 2.

Untuk tambahan, Sekarang perhatikan dalam contoh **Pemrograman**. Kita harus terlebih dahulu mendeklarasikan fungsi main. Karena dalam pemrograman, ["convention/konvention"](https://id.wikipedia.org/wiki/Konvensi_(norma)) adalah kita diharuskan mendeklarasikan fungsi utama; yang menjadi alur utama dari proses pengerjaan. Itulah mengapa kita harus mendeklarasikan `int main()`. Setelah itu, kita baru "memanggil" (atau menggunakan) fungsi yang kita namai sebagai "f" dan itu akan mengembalikan nilai nya.

Oh, dan cout itu cuma sebagai perintah untuk ditampilkan saja. Tidak terlalu relevan dalam penjelasan. Kalau dalam pseudocode seperti write()

Demikian penjelasan mengenai fungsi. Fungsi dalam matematika dan pemrograman saling berhubungan. Dalam cara menyampaikan perintah sampai pemaknaannya dapat dihubungkan. Pemrograman dipakai untuk menjelaskan seperangkat perintah untuk komputer agar dapat mengerjakan model matematika. Ini penting karena komputer bekerja terbalik daripada manusia. Namun hal ini sedikit diluar cangkupan tulisan ini

# Latar Belakang

Ketika saya membantu kawan untuk memahami pemrograman; saya kesulitan untuk "berbahasa". Saya menemukan beberapa konsep yang sebenarnya unik.  "Fungsi" dan "Menukar" terlihat mudah bagi kita yang sudah dalam memahami ini tapi ketika berkomunikasi ke awam akan terbatah menjelaskannya. Apa itu fungsi. Apa itu menukar. Akan sulit untuk menjelaskannya karena konsep ini bukan bahasa manusia melainkan bahasa pemrograman (komputer). Ada ketimpangan bahasa antara bahasa manusia dan bahasa teknis/komputer/pemrograman.

Ndakik-ndakik sempat populer dalam beranda sosial media saya dan ini relevan dalam lingkup penggiat pemrograman atau praktisi IT. Bagi yang tidak tau Ndakik-ndakik artinya mereka yang memakai bahasa tinggi, teknis ataupun intelektual yang tidak dipahami oleh awam. Menurut saya, ini terjadi karena kita jarang untuk membahas bahasa yang cocok untuk awam.  Karena kita terlalu "nyaman" memakai bahasa yang Ndakik-ndakik maka terlena dan akhirnya mereka yang masih "awam" (bukan masyarakat umum) kesulitan untuk paham. Ini penting karena ketika bahasa semakin luas dan dalam dibutuhkan juga bahasa komunikasi yang baik agar ide dan konsep tidak semakin "abstrak" atau terlalu dalam.

> Namun untuk menambahkan. Kritisi saya tidak berarti para intelektual harus menghindari bahasa ndakik. Terkadang memang ada konsep yang sulit dijelaskan sekali sampai bahasa "normal" tidak dapat menjangkau hal ini