Bahasa Pemrograman Tingkat Rendah

Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer atau bahasa pemrograman komputer, adalah instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa yang akan diambil dalam berbagai situasi secara persis. Bahasa beraras rendah adalah bahasa pemrograman yang berorientasi kepada mesin. bahasa ini menggunakan kode biner (yang hanya mengenal kode 0 dan 1) atau suatu kode sederhana untuk menggantikan kode-kode tertantu dalam sistem biner. yang tergolong dalam kelompok bahasa ini adalah bahasa mesin dan bahasa rakita. bahasa-bahasa serperti itu ini sangat sulit utnuk dipahami oleh orang awam dan sangat membosankan bagi pemrogram yang sudah berbiasa dengna bahasa beraras tinggi. pemrogram harus benar-benar menguasai operasi komputer secara teknis. namun bahasa generasi ini memberikan eksekusi program yang sangat cerdas. selain itu bahasa mesin sangat bergantung pada mesin (machine dependent);  artinya, bahasa mesin antara satu mesin dengan mensin yang lain jauh berbeda.

Jadi, hanya dengan instruksi yang tersusun dari angka-angka nol dan satu inilah, kita bisa memberi instruksi pada komputer. Pada praktiknya, instruksi berupa angka nol dan satu ini diberikan melalui bahasa pemrograman yang dikelompokkan sebagai low-level language atau bahasa pemrograman beraras-rendah. Program yang dibuat menggunakan bahasa pemrograman beraras-rendah ini dapat dieksekusi dengan cepat karena sangat efisien dalam penggunaan memori. Namun, bahasa pemrograman ini sangat sulit dipahami oleh orang awam dan membosankan bagi para si programmer. Pemrogram yang akan membuat program dengan bahasa pemrograman jenis ini pun dituntut untuk memiliki pengetahun teknis tentang cara kerja komputer. Jadi, hanya dengan instruksi yang tersusun dari angka-angka nol dan satu inilah, kita bisa memberi instruksi pada komputer. Pada praktiknya, instruksi berupa angka nol dan satu ini diberikan melalui bahasa pemrograman yang dikelompokkan sebagai low-level language atau bahasa pemrograman beraras-rendah. Program yang dibuat menggunakan bahasa pemrograman beraras-rendah ini dapat dieksekusi dengan cepat karena sangat efisien dalam penggunaan memori. Namun, bahasa pemrograman ini sangat sulit dipahami oleh orang awam dan membosankan bagi para si programmer. Pemrogram yang akan membuat program dengan bahasa pemrograman jenis ini pun dituntut untuk memiliki pengetahun teknis tentang cara kerja komputer.

Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari: Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya kode_mesin|MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb. Selain itu, bahasa pemrograman jenis ini sangat tergantung pada mesin (machine dependent). Artinya, satu buah instruksi yang sama dapat ditulis dalam kode-kode yang berbeda tergantung pada mesin tempat ia akan dijalankan karena satu mesin dapat berbeda jauh dari mesin yang lain.

Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.

Generasi bahasa pemrograman

Jika Anda seorang programmer atau seorang pelajar/mahasiswa yang tengah mempelajari suatu bahasa pemrograman, tentu Anda akan menemukan bahasa pemrograman yang mirip sekali dengan bahasa manusia ( bahasa inggris ) seperti bahasa pemrograman favorit Saya Visual Basic ( .NET ) atau PHP ( walaupun masih banyak melibatkan simbol / karakter khusus ) yang relatif mudah untuk di gunakan ( di hafal dan di fahami strukturnya ) serta mengadopsi prinsip berorientasi obyek, namun bahasa tersebut tidak serta-merta muncul, bahasa pemrograman berkembang hingga kini menginjak generasi ke-5, berikut uraiannya.

 

Generasi ke-1: machine language (bahasa mesin)

Pemrograman dengan bahasa mesin nampaknya sudah jarang di gunakan pada era sekarang untuk membuat suatu perangkat lunak, adapun penggunaannya saat ini mungkin akan sangat terbatas misalnya di lingkungan pendidikan untuk kepentingan pembelajaran, betapa tidak, bahasa mesin dapat di katakan sebagai “bahasa komputer asli” yang hanya terdiri dari karakter “0” ( nol ) dan “1” ( satu ) saja, juga di kenal dengan sebutan “bahasa biner”.

 

Generasi ke-2: assembly language

Pemrograman dengan bahasa pemrograman assembly ( rakitan ) merupakan generasi ke dua setelah generasi bahasa mesin, bahasa pemrograman assembly memiliki keyword yang lebih kompleks dari pada bahasa mesin yang hanya berisi karakter “0” dan “1” saja sehingga relatif lebih mudah di mengerti oleh programmer. Assembler adalah nama bahasa pemrograman ( nama produk ) pada generasi ini.

 

Kode – kode pada bahasa pemrograman assembly cenderung berupa singkatan yang di kenal dengan sebutan kode mnemonic seperti MOV, SUB, CMP, JMP, JGE, JL, LOOP, dan lain sebagainya. Kode – kode tersebut mungkin sedikit – banyak mirip dengan kode Terminal ( pada sistem operasi Linux ) atau kode Command Prompt ( pada sistem operasi Windows ), misalnya “mkdir” (make directory, untuk membuat folder baru) namun hal tersebut merupakan kode yang berbeda walaupun sama – sama cenderung mudah di ingat di bandingkan dengan bahasa biner.

 

Generasi ke-3: procedural programming

Pada generasi ini mulai muncul bahasa pemrograman prosedural yang mengadopsi bahasa yang mirip dengan bahasa manusia namun masih mencampurkan unsur simbol/karakter khusus seperti {, }, ?, <<, >>, &&, ||, ; dan lain sebagainya, kemudian pada generasi ini juga mulai di kembangkan otomatisasi pengkodean agar programmer fokus pada fungsi utama program yang di kembangkan, unsur simbol / karakter khusus pun mulai di kurangi bahkan pada beberapa bahasa pemrograman telah di hilangkan.

 

Generasi ke-4: 4 GL ( fourth-generation language )

Generasi ke – 4 adalah generasi bahasa query terstruktur ( SQL, Structured Query Language ), SQL sebenarnya merupakan bahasa pemrograman namun penerapannya saat ini lebih banyak pada basis data ( database ) misalnya MySQL, Oracle Database, SQL Server, PostgreSQL, SQLite dan masih banyak lagi.

 

Pada bidang pemrograman, SQL umumnya di gunakan sebagai bahasa sekunder dengan library built – in atau terpisah, query yang di sematkan dalam kode suatu bahasa pemrograman tujuannya adalah untuk mendefinisikan basis data dan memanipulasi basis data, di kenal dengan DDL ( Data Definition Language ) dan DML ( Data Manipulation Language ).

 

Generasi ke-5: Programming Language Based Object Oriented & Web Development

Generasi bahasa pemrograman yang ke lima lebih menekankan pada aspek efisiensi dan penggunaan kembali ( re-use-able ) modul – modul yang di buat dengan bahasa pemrograman tingkat tinggi tertentu, generasi ke – 5 ini juga di kenal dengan nama “intellegent programming” ( pemrograman kecerdasan ) yang menekankan aspek otomatisasi dalam setiap prosesnya.

 

Tingkatan bahasa pemrograman

Pengklasifikasian bahasa pemrograman ke dalam tingkatan tertentu sebenarnya tidak baku, beberapa sumber mungkin menyatakan tingkatan yang berbeda seperti bahasa pemrograman tingkat rendah, bahasa pemrograman tingkat menengah, dan bahasa pemrograman tingkat tinggi, sumber lain juga menyatukan bahasa pemrograman tingkat menengah dengan bahasa pemrograman tingkat tinggi sehingga hanya ada bahasa pemrograman tingkat rendah dan bahasa pemrograman tingkat tinggi saja.

 

Sumber lain menyatakan ada tingkatan yang lebih tinggi dari bahasa pemrograman tingkat tinggi, di sebut dengan bahasa pemrograman tingkat sangat tinggi (very-high), ada juga yang menyebutnya pemrograman berorientasi obyek ( PBO ) atau pemrograman visual, oleh karena itu pengklasifikasian bahasa pemrograman tidak bersifat mengikat, suatu bahasa pemrograman dapat di kategorikan sebagai bahasa pemrograman tingkat menengah, tingkat tinggi, atau tingkat sangat tinggi ( PBO / Visual ).

 

1. Bahasa pemrograman tingkat rendah

 

Bahasa mesin atau kode mesin merupakan satu-satunya bahasa yang bisa di olah komputer secara langsung tanpa transformasi sebelumnya (kompilasi). Saat ini, programmer hampir tidak pernah menulis program secara langsung dalam kode mesin, karena memerlukan perhatian pada banyak detail yang di tangani oleh bahasa tingkat tinggi secara otomatis.

 

Contoh fungsi dalam representasi heksadesimal kode mesin 32-bit x86 untuk menghitung angka Fibonacci ke-n:

 

8B542408     83FA0077     06B80000     0000C383

FA027706     B8010000     00C353BB     01000000

B9010000     008D0419     83FA0376     078BD989

C14AEBF1     5BC3

Contoh bahasa pemrograman tingkat rendah :

 

Bahasa mesin (machine language)

Pada jaman bahasa pemrograman masih tergolong tingkat rendah, kompleksitas instruksi masih sangat terbatas sehingga belum ada “nama” bahasa pemrograman yang resmi, seorang programmer menulis “kode mesin” dengan instruksi berupa biner atau di kodekan kembali dengan bentuk yang lebih mudah di baca seperti desimal, oktal, atau heksadesimal yang di terjemahkan oleh program yang di sebut “loader”. Anda dapat menemukan contoh menarik dan interaktif mengenai bahasa mesin di situs web edukasi https://chortle.ccsu.edu/java5/Notes/chap04/ch04_4.html.

 

2. Bahasa pemrograman tingkat menengah

 

Bahasa tingkat menengah memberikan satu tingkat abstraksi di atas kode mesin. Bahasa assembly memiliki sedikit semantik atau spesifikasi formal, karena hanya pemetaan simbol yang dapat di baca manusia. Biasanya, satu instruksi mesin di wakili sebagai satu baris kode assembly. Assembler menghasilkan file objek yang bisa dihubungkan dengan file objek lain atau dimuat sendiri.

 

Contoh bahasa pemrograman tingkat menengah :

 

Assembler

Microsoft Macro Assembler (MASM)

Beberapa sumber mengelompokkan assembly sebagai bahasa pemrograman tingkat rendah karena assembly mengonversi bahasa pemrograman ke bahasa mesin tanpa compiler atau interpreter melainkan hanya loader saja, namun karena kita fokus pada pengklasifikasian bahasa pemrograman berdasarkan “kedekatan” bahasanya dengan bahasa yang dapat di mengerti manusia (bahasa inggris), maka di sini Saya akan menempatkan assembly sebagai bahasa pemrograman tingkat menengah.

 

Contoh fungsi untuk menghitung angka Fibonacci ke-n dengan bahasa assembly:

 

fib:

    mov edx, [esp+8]

    cmp edx, 0

    ja @f

    mov eax, 0

    ret

   

    @@:

    cmp edx, 2

    ja @f

    mov eax, 1

    ret

   

    @@:

    push ebx

    mov ebx, 1

    mov ecx, 1

   

    @@:

        lea eax, [ebx+ecx]

        cmp edx, 3

        jbe @f

        mov ebx, ecx

        mov ecx, eax

        dec edx

    jmp @b

   

    @@:

    pop ebx

    ret

 

 Copyright stekom.ac.id 2018 All Right Reserved