Programming
Introduction
What is Program???
Seseorang yang merancang, mengembangkan, dan menulis kode komputer
untuk membuat perangkat lunak, aplikasi, atau sistem yang dapat
berfungsi pada komputer atau perangkat lainnya adalah PROGRAMMER
Programming is a Process
Pemrograman adalah sebuah proses untuk:
• Memberikan instruksi kepada komputer untuk melakukan tugas
tertentu atau memecahkan masalah.
• Membuat serangkaian langkah logis yang memandu tindakan
komputer.
• Menulis kode yang dapat dipahami agar dapat dijalankan oleh
komputer.
How Program Works
[Link]
CPU
RAM
Storage
Programming Language
• Bahasa pemrograman adalah alat komunikasi antara manusia dan
komputer.
• Ada banyak jenis bahasa pemrograman. Setiap jenis bahasa
pemrograman memiliki kumpulan keyword yang unik dan sintaks
khusus untuk mengatur instruksi suatu program.
Evolution
of
Programmi
ng
Languages
Sumber gambar: [Link]
Programming Language
Abstraction Levels
LOW LEVEL HIGH LEVEL
LANGUAGE LANGUAGE
Low Level Language
• Bahasa pemrograman yang menyediakan sedikit atau bahkan tidak
memiliki abstraksi dari instruksi komputer.
• Perintah atau fungsi secara struktural mirip dengan instruksi prosesor.
• Performa sangat cepat. Namun pembuatan program sangat kompleks
dan lama.
Bahasa assembly
• Bahasa assembly adalah salah satu bentuk bahasa tingkat rendah
yang mendekati bahasa mesin untuk instruksi perangkat
komputer.
• Instruksi assembly secara langsung terkait dengan set instruksi
CPU dan arsitektur perangkat keras yang akan digunakan.
• Instruksi dalam bahasa assembly menggunakan mnemonik (kode
kata) untuk mewakili operasi yang akan dilakukan, seperti "mov"
untuk move, "add" untuk penambahan, dsb.
• Kelebihan utama bahasa ini adalah memungkinkan optimisasi
kinerja yang sangat mendalam kepada komputer.
• Kekurangannya adalah rentan terhadap kesalahan dan sulit untuk
di-maintenance karena kompleksitas yang tinggi dan bervariasi.
Kode : Penjumlahan 2 Bilangan
section .data
section .text
global _start
Contoh ini dalam bentuk
_start: arsitektur x86 assembly
mov eax, 6
add eax, 2
exit:
mov eax, 1
xor ebx, ebx
int 0x80
Bahasa C
• Bahasa C telah menjadi dasar bagi sejumlah bahasa pemrograman
lain seperti C++, C#, Python, dan PHP.
• Bahasa ini secara relatif dapat dikategorikan sebagai low karena
memiliki beberapa karakteristik dari bahasa low level seperti
pengalamatan memori secara langsung, pointers, direct memory,
dan manajemen memori secara manual.
Kode : Penjumlahan 2 Bilangan
#include <stdio.h>
int main() {
int num1 = 6;
int num2 = 2;
int sum = num1 + num2;
printf("Jumlah : %d\n", sum);
return 0;
}
High Level Language
• Bahasa yang paling mendekati dengan bahasa manusia.
• Membuat pemrograman lebih mudah, cepat, dan nyaman.
• Fokus pada kegunaan daripada efisiensi program yang optimal.
• Umumnya dilengkapi dengan library dan fungsi bawaan yang
mempermudah pengembangan.
• Kekurangan utamanya adalah tingkat optimasi rendah dan konsumsi
yang lebih besar dari low level.
Kode: Penjumlahan 2 bilangan
Python Java
angka1 = 5 public class Penjumlahan {
angka2 = 9 public static void main(String[] args) {
int angka1 = 5;
jumlah = angka1 + angka2
int angka2 = 9;
int jumlah = angka1 + angka2;
print("Hasil penjumlahan:", jumlah)
[Link]("Jumlah: " + jumlah);
}
Go }
package main
import "fmt" PHP
func main() {
angka1 := 5 <?php
angka2 := 7 $angka1 = 5;
$angka2 = 9;
jumlah := angka1 + angka2
$jumlah = $angka1 + $angka2;
[Link]("Jumlah:", jumlah) echo "Jumlah: " . $jumlah;
} ?>
Is Low Level no longer used???
• Mikrokontroller dan
sistem operasi
dibangun dengan Low
Level Language.
• Kernel Linux dibangun
dengan bahasa C pada
sebagian besarnya dan
assembly di beberapa
bagian lainnya. [Link]
Language Processors
Language processors adalah perangkat lunak atau alat yang digunakan
untuk menerjemahkan kode yang ditulis dalam bahasa pemrograman
menjadi bentuk yang dapat dimengerti oleh komputer.
Assembler Compiler Interpreter
Assembler
• Assembler digunakan untuk menerjemahkan program yang
ditulis dalam bahasa assembly ke dalam kode mesin.
• Assembler menerjemahkan kode rakitan menjadi kode mesin
biner yang langsung dapat dimengerti oleh CPU.
Input (Assembly Intermediate Executable
Assembler Machine Code
Code) Representation Program
Kode Assembly dikonversi oleh assembler menjadi kode mesin dalam bentuk intermediate
representation, yang kemudian diterjemahkan menjadi kode mesin final (machine code)
yang dapat dieksekusi sebagai program oleh CPU.
Compiler
• Perangkat lunak yang digunakan untuk mengubah source code / kode pemrograman
menjadi bahasa mesin agar dapat dimengerti dan dijalankan oleh komputer.
• Compiler menghasilkan file biner yang dapat dijalankan secara independen.
• Penerapan ini dapat ditemukan di bahasa C, C++, Go, dll.
Input (Low/ High Code) Compiler Object Code Executable Program
Object code berisi instruksi-instruksi dan data yang terkait dengan program yang akan dijalankan, tetapi
masih memerlukan tahap linking sebelum program dapat dieksekusi.
Interpreter
• Interpreter adalah perangkat lunak yang digunakan untuk menerjemahkan source
code menjadi bahasa mesin dan mengeksekusi instruksi program secara berurutan.
baris demi baris atau statement demi statement.
• Hasil lebih cepat dan interaktif namun lebih lambat dari compiler.
• Penerapan ini dapat ditemukan di bahasa Python, PHP, Ruby, Perl, dll
Input (High-level
Interpreter Translate Execution Output
Code)
Setiap baris kode diterjemahkan menjadi kode mesin atau instruksi yang dapat dieksekusi oleh CPU.
Setelah diterjemahkan, interpreter langsung menjalankan instruksi tersebut.
Bahasa Pemrograman Populer
[2022]
Sumber:
[Link]
le/the-best-programming-
languages-to-learn-in-2022/
StackOverflow
Developer Survey
2022
Sumber:
[Link]
/blog/nine-best-programming-
languages-to-learn
Referensi
• Eric Matthes, Python Crash Course. No Starch Press, 2019.
• Luciano Ramalho, Fluent Python: Clear, Concise, and Effective
Programming. O'Reilly Media, 2015.
Terima Kasih