Search by

    Terakhir diperbaharui: Oct 23, 2020

    Manusia & Komputer

    Dua komponen utama dalam dunia coding atau pemrograman adalah manusia(programmer) dan komputer.

    Dua komponen tersebut tidak bisa dipisah, komputer tanpa programmer hanyalah sebuah benda dan programmer tanpa komputer maka coding menjadi tidak mungkin.

    Setiap komponen memiliki perannya masing-masing. Programmer sendiri harus mengerti cara kerja dari komputer dan memiliki skill dasar coding.

    Sebagaimana seorang petani dan ladangnya, sebelum menanam petani harus mengetahui kondisi ladang dan memiliki skill untuk mengelola ladang tersebut.

    Skill dasar coding

    Skill dasar coding adalah kemampuan Problem Solving.

    Setiap orang memiliki kemampuan ini, khusus untuk programmer kemampuan ini terbentuk dari hal-hal berikut.

    1. Logika

    Ini adalah inti dari kemampuan problem solving, seorang programmer akan menggunakan logikanya sepanjang waktu.

    Mempelajari hal-hal yang berhubungan dengan logika akan sangat membantu, seperti Truth Table dan Logic Gate.

    2. Matematika

    Pemrograman sangat erat kaitannya dengan matematika, banyak konsep matematika yang digunakan dalam pemrograman.

    Kita tidak akan membahas matematika disini, karena sebagian besar dari kita telah belajar matematika di bangku sekolah belasan tahun.

    Dan kita tidak perlu menguasai semua konsep matematika, hanya sebagian kecil yang sering dipakai meskipun menguasai banyak konsep matematika akan sangat membantu.

    Beberapa konsep yang sering digunakan dalam pemrograman:

    • Sum (Penjumlahan)
    • Multiplying (Perkalian)
    • Permutations
    • Combinations
    • Probability (Probabilitas)

    Kita bisa menggunakan referensi yang ada di internet untuk me-refresh ingatan kita akan matematika.

    3. Kreatifitas

    Saat ngoding seorang programmer selalu dalam mode solving problems, kemampuan untuk mengembangkan ide menjadi sangat penting.

    Kreatifitas disini bukan kreatifitas seperti dalam membuat kerajinan tangan, tapi bagaimana kita bisa menentukan banyak pilihan solusi untuk sebuah permasalahan.

    Misal, belanja bagi sebagian orang adalah sebuah rutinitas, namun kamu tidak suka dengan hal tersebut, belanja bukan sesuatu hal yang biasa buatmu dan mungkin kamu tidak ingin jauh-jauh dari laptopmu.

    Aktifitas belanja kini menjadi sebuah masalah yang harus dicari solusinya, beberapa solusi yang bisa kamu ambil:

    • Catat apa yang harus dibeli, berangkat ke toko, pasar atau supermarket, beli kebutuhan kemudian pulang. Seperti orang pada umumnya
    • Catat apa yang harus dibeli, buka smartphone, beli kebutuhan di marketplace, tunggu barang dikirim. Atau
    • Catat apa yang harus dibeli, suruh orang lain belanja untukmu

    Memang tidak ada rumus untuk menjadi orang yang kreatif, yang bisa kita lakukan adalah terus berlatih mengasah kemampuan kita dalam mengembangkan sebuah ide untuk solve problem.


    Dalam team, skill dasar seorang programmer tidak lagi terbatas pada problem solving. Kemampuan berkomunikasi menjadi kemampuan dasar selain problem solving bagi seorang programmer yang bekerja dalam sebuah team.

    Bagian - bagian komputer

    Sebuah komputer bisa dibagi menjadi dua bagian utama, yaitu Hardware & Software. Untuk lengkapnya silahkan lihat gambar berikut.

    bagian bagian komputer

    Bagian dari sebuah komputer yang berperan penting dalam pemrograman adalah Processor dan Memory.

    Tugas utama dari processor atau CPU adalah kalkulasi, sedangkan memory dalam hal ini RAM bertugas menyimpan data untuk kalkulasi tersebut.

    Sebagian besar proses yang dijalankan dalam sebuah aplikasi melibatkan CPU dan RAM.

    Besarnya kapasitas CPU dan RAM sangat mempengaruhi kinerja dari sebuah aplikasi.

    Oleh karena itu, menjalankan aplikasi seperti Adobe Photosop di komputer dengan spesifikasi CPU 8 core dan RAM 8 GB terasa lebih lancar dibandingkan menjalankannya di komputer dengan spesifikasi CPU 2 core dan RAM 2 GB.

    Bagaimana komputer menjalankan aplikasi

    Secara sederhana komputer harus diperintah untuk mengerjakan sesuatu, cara untuk memerintahnya adalah melalui sebuah program atau aplikasi.

    komputer harus diperintah

    Program atau aplikasi merupakan kumpulan baris perintah atau instruksi yang ditujukan kepada komputer untuk tujuan tertentu, namun instruksi ini tidak ditulis dalam bahasa manusia melainkan menggunakan bahasa yang dimengerti oleh komputer.

    💡

    Program adalah kumpulan instruksi yang kita berikan kepada komputer untuk tujuan tertentu

    Aplikasi adalah program yang didesain untuk user sehingga user dapat dengan mudah mengoperasikannya


    Programming Language Level

    Komputer hanya mengerti bahasa mesin atau machine code, tetapi instruksi yang ditulis menggunakan machine code susah dibaca oleh manusia, sehingga kebanyakan orang menggunakan High-level programming language untuk menulis code.

    Karena sifatnya yang mudah dipahami oleh komputer namun susah dipahami oleh manusia, machine code termasuk ke dalam kategori Low-level programming language.

    Contoh lain dari Low-level programming language adalah Assembly language.

    Sebaliknya, High-level programming language lebih mudah dipahami manusia namun tidak dipahami oleh komputer, sehingga source code harus diubah ke dalam machine code menggunakan compiler atau interpreter.

    Contoh High-level programming language : JavaScript, Pyhton, C#, Golang.

    programming language level

    Compiler dan Interpreter

    High level programming language bisa dibagi menjadi dua jika dilihat dari bagaimana cara komputer mengeksekusinya.

    1. Compiled language
    2. Interpreter language

    Compiled language, instruksi yang ditulis dalam compiled language akan dirubah ke machine code setelah proses compile selesai.

    compiler

    Sedangkan untuk Interpreted language, instruksi dalam interpreted language dirubah dan dieksekusi oleh komputer melalui sebuah program.

    interpreter

    Konsep yang dipakai baik compiled atau interpreted language mirip dengan translator.

    Illustrasi perbedaan compiler dan interpreter

    Seorang koki asal indonesia diminta untuk memasak sebuah hidangan yang harus sesuai dengan resep yang diberikan, tetapi resep tersebut ditulis dalam bahasa jepang dan koki sama sekali tidak mengerti bahasa jepang.

    Koki tersebut bisa menggunakan dua cara agar tetap bisa memasak hidangan tersebut.

    1. Meminta seseorang yang mengerti bahasa jepang dan indonesia menjadi translator untuk menerjemahkan resep tersebut ke dalam bahasa indonesia dan hasil terjemahannya ditulis pada sebuah kertas yang kemudian diserahkan kepada koki.

    compiler illustration

    1. Meminta translator tersebut menerjemahkan resep dengan cara membacakan resep menggunakan bahasa indonesia sambil koki memasak mengikuti instruksi dari translator tersebut.

    interpreter illustration

    cara pertama adalah bagaimana compiled language bekerja dan cara kedua adalah bagaimana interpreted language bekerja.

    Contoh compiled langugage: C, C++, Erlang, Haskell, Rust & Go.

    Contoh interpreter language: PHP, Ruby, Python & JavaScript.

    Rekap

    • Komponen utama dalam coding adalah programmer dan komputer

    • Skill dasar coding adalah problem solving, yang terdiri dari logika, matematika dan kreatifitas

    • Komputer harus diperintah untuk mengerjakan sesuatu

    • Instruksi untuk komputer ditulis dalam sebuah bahasa pemrograman baik High-level programming language atau Low-level programming language

    • Source code pada High-level programming language diubah ke machine code menggunakan compiler atau interpreter

    alur komputer menjalankan aplikasi