6 Contoh Bahasa Pemrograman Tingkat Menengah untuk Latihan

Dalam belajar programming, Anda akan mempelajari beberapa tingkatan bahasa pemrograman. Salah satu tingkatan yang dipelajari adalah tingkat menengah. Apa maksudnya tingkat menengah ini dan apa perbedaannya dengan tingkatan yang lain?

Disebut sebagai bahasa pemrograman tingkat menengah karena bahasa ini masih berada diantara bahasa yang belum jauh dari bahasa komputer dan bahasa yang sedikit mendekati bahasa manusia. Atau dengan kata lain, bahasa tingkat menengah dapat dikategorikan sebagai bahasa yang mendekati bahasa yang mudah dipahami manusia dan juga termasuk kategori bahasa pemrograman tingkat tinggi serta tingkat rendah.

Dalam bahasa ini, seorang programmer sudah mulai dapat menggunakan bahasa sehari-hari, walaupun demikian masih ada beberapa bahasa yang susah dimengerti. Kebanyakan perintah-perintah dalam bahasa pemrograman ini menggunakan singkatan-singkatan, contohnya seperti “MOV” yang artinya  “MOVE” (pindah), “STO” yang artinya (STORE), dan lain-lain.

Bahasa tingkat menengah jika dihubungkan dengan bahasa mesin menjadi bahasa komputer yang menggunakan campuran antara instruksi atau perintah dalam bahasa manusia dengan instruksi yang berupa simbolik seperti titik, koma, dan lain-lain.

Macam-macam bahasa pemrograman tingkat menengah adalah sebagai berikut:

  • Assembler
  • Microsoft Macro Assembler (MASM)
  • Bahasa C

Bahasa tingkat menengah memberikan satu tingkat abstraksi di atas bahasa mesin. Bahasa assembly sendiri memiliki sedikit spesifikasi formal, karena hanya pemetaan simbol yang bisa dibaca oleh manusia. Biasanya, satu instruksi mesin diwakili sebagai satu baris kode assembly. Bahasa assembler akan menghasilkan file obyek yang bisa dihubungkan dengan file obyek lain atau dimuat sendiri.

Meskipun begitu, beberapa referensi mengelompokkan bahasa assembly sebagai bahasa pemrograman tingkat rendah. Alasannya karena bahasa assembly mengonversi bahasa pemrograman menjadi bahasa mesin tanpa perlu menggunakan compiler atau interpreter, dan hanya membutuhkan loader saja.

Pada kesempatan kali ini, kami akan memberikan contoh bahasa pemrograman tingkat menengah, khususnya bahasa assambler dan bahasa C. Contoh-contoh berikut bisa Anda praktekkan sendiri dalam mempelajari programming. Untuk membuat program menggunakan bahasa assembler, Anda bisa menggunakan editor apapun.  Ketikkan scriptnya dengan software Notepad++, lalu simpan file dengan ekstensi “.asm”. Sedangkan untuk membuat program bahasa C, simpan file dengan ekstensi “.c”. Ketahui juga kelebihan dan kekurangan bahasa pemrograman C dari artikel yang pernah kami bahas di situs ini. Baiklah, berikut ini contoh-contohnya:

1. Contoh fungsi untuk menghitung angka Fibonacci ke-n

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

2. Program Mencetak Huruf A

; program mencetak huruf A kelayar
.model small
.code
org 100h
mulai: mov ah,02
mov dl,65
int 21h
int 20h
end mulai

Penjelasan program:

  • ; (tanda titik koma), merupakan baris keterangan program. Artinya setelah tanda “;” program akan mengabaikan perintah apapun setelahnya.
  • .model small, digunakan untuk menentukan mode dari program yang Anda buat, seperti tiny, small dan lain sebagainya.
  • .code org 100h, maksudnya untuk menentukan alamat offset dari program yang akan digunakan. Untuk program com selalu diawali dari offset 100h.
  • mulai:, ini adalah nama label. Pada pemrograman assembly, Anda harus mengawali program Anda dengan sebuah label. Label ini juga digunakan untuk lompatan program dengan perintah jmp (jump).
  • mov ah,02 = Program akan mengisi register ah dengan servis 2. Kode ini sama dengan “ah:=2” dalam bahasa Pascal. Ini berarti, Anda menyuruh program untuk mencetak sebuah karakter yang ada pada register dl. Dengan begitu, perintah mov ah,02 adalah kode untuk mencetak sebuah karakter. Angka 2 disini adalah 2 heksadesimal, sehingga biasa ditulis 02h.
  • mov dl,65 = program akan mengisi register dl dengan karakter ASCII 65 atau ‘A’. Jadi perintah tersebut bisa diubah atau sama artinya dengan perintah mov dl,’A’.
  • int 21h = program akan menjalankan interupsi nomor 21. Interupsi ini akan mengerjakan sesuai dengan nilai servis yang diisikan. Karena ada perintah mov ah,2 maka progam akan mencetak karakter yang ada pada register dl.
  • int 20h = Program akan menjalankan interupsi 20. Interupsi ini berfungsi untuk mengembalikan kontrol ke DOS, dengan kata lain interupsi ini digunakan untuk menghentikan jalannya program.
  • end mulai = kode ini merupakan tanda akhir dari sebuah progam. Untuk mengakhiri sebuah program, Anda harus mengetikkan perintah “end” dan diikuti oleh nama label yang pertama kali digunakan.

Untuk menjalankan program, ketikkan perintah berikut:

> tasm a.asm
> tlink/t a
> a

3. Program untuk menampilkan karakter beratribut M-A dengan foreground merah background hitam

.model small
.code
org 100h
mulai:
mov ah,09h
mov bl,00000100b
mov cx,13
lagi:
int 10h
inc bl

mov ah,02h
mov dl,’M’
mov cx,13
ulang:
inc bl
int 21h
dec dl
loop ulang
int 20h
end mulai

Penjelasan program:
  • Mov ah,09 h = perintah untuk memasukan data dengan alamat 00000100b, Data yang akan dimasukan ke bl karakter sebanyak 13 dengan warna merah
  • mov bl,00000100b = perintah untuk mengubah warna huruf menjadi merah
  • mov cx,13 = perintah ini berfungsi untuk melakukan looping. Dalam contoh kali ini, huruf yang diminta adalah M-A atau A-M sebanyak 13 huruf.
  • Mov ah, 02h = merupakan perintah untuk menyalin atau memindahkan
  • mov dl = merupakan perintah yang harus diisikan bilangan hexa dari karakter ASCII yang akan dicetak. Oleh karena itu, digunakan perintah mov dl,’M’.
  • inc bl = berfungsi untuk menambahkan satu karakter
  • dec dl = berfungsi untuk mengurangi satu karakter di dalam loop atau pengulangan. Oleh karena itu, program akan melakukan perintah looping sebanyak satu karakter dari A sampai M karena diberlakukan decrement atau pengurangan maka akan ditampilkan (int 21h) huruf tercetak dari belakang M-A.
4. Menghitung Luas Lingkaran dengan Bahasa C
#include <stdlib.h>
#include <stdio.h>
int main()
{
  int r;
  float phi, luas;
  phi=3.14;
  printf(“Masukan ukuran jari-jari lingkaran (cm) :”,r);
  scanf(“%i”,&r);
  luas=phi*r*r;
  printf(“Jadi luas lingkaran tersebut adalah :%f \n”,luas);
  system (“pause”);
  return 0;
}
5. Menghitung Luas Segitiga dengan Bahasa C
#include <stdlib.h>
#include <stdio.h>
int main()
{
  int alas, tinggi;
  float luas;
  printf(“Masukan tinggi segitiga (cm) :”, tinggi);
  scanf(“%d”,&tinggi);
  printf(“Masukan alas segitiga (cm) :”, alas);
  scanf(“%d”,&alas);
  luas=((alas*tinggi)*0.5);
  printf(“Jadi luas segitiga adalah :%f \n”,luas);
  system (“pause”);
  return 0;
}
6. Program Menu Restoran dengan Bahasa C

#include <stdlib.h>
#include <stdio.h>int main ()
{
int menu, nasi=3000, ayam_bakar=7000, tahu=1000, tempe=1000, lalap=2000,
air_mineral=3000, sayur_asem=2000, gepuk=5000, air_hangat=1000,jumlah_pesanan,total,pajak,total_akhir;printf(“=========Selamat datang di Restoran Saya========== \n\n”);
printf(“PAKET MAKANAN \n”);
printf(“=============\n”);
printf(“Paket 1 \n”);
printf(“Paket 2 \n”);
printf(“Paket 3 \n”);
printf(“Silakan pilih paket:”);
scanf(“%d”,&menu);
printf(“Banyaknya pesanan :”);
scanf(“%d”,&jumlah_pesanan);
printf(“\n”);

switch (menu){
case 1 :
printf(“Paket 1 \n”);
printf(“Nasi :%d”,nasi);
printf(“\nAyam Bakar :%d”,ayam_bakar);
printf(“\nTahu  :%d”,tahu);
printf(“\nTempe :%d”,tempe);
printf(“\nLalapan :%d”,lalap);
printf(“\nAir Mineral :%d”,air_mineral);
printf(“\nJumlah pesanan :%d paket”,jumlah_pesanan);
total=(nasi+ayam_bakar+tahu+tempe+lalap+air_mineral)*jumlah_pesanan;
pajak=(total)*10/100;
total_akhir=total+pajak;
printf(“\n”);
printf(“\nTotal, paket 1 * %d :%d”,jumlah_pesanan,total);
printf(“\nPajak 10 persen : %d”,pajak);
printf(“\nJadi, total yang harus anda bayar :%d”,total_akhir);
printf(“\n”);
break;
case 2 :
printf(“Paket 2 \n”);
printf(“Nasi :%d”,nasi);
printf(“\nAyam Bakar :%d”,ayam_bakar);
printf(“\nSayur Asem :%d”,sayur_asem);
printf(“\nTahu :%d”,tahu);
printf(“\nTempe :%d”,tempe);
printf(“\nLalapan :%d”,lalap);
printf(“\nAir Mineral :%d”,air_mineral);
printf(“\nJumlah pesanan :%d paket”,jumlah_pesanan);
total=(nasi+ayam_bakar+sayur_asem+tahu+tempe+lalap+air_mineral)*jumlah_pesanan;
pajak=(total)*10/100;
total_akhir=total+pajak;
printf(“\n”);
printf(“\nTotal, paket 2 * %d :%d”,jumlah_pesanan,total);
printf(“\nPajak 10 persen : %d”,pajak);
printf(“\nJadi, total yang harus anda bayar :%d”,total_akhir);
printf(“\n”);
break;
case 3 :
printf(“Paket 1 \n”);
printf(“Nasi :%d”,nasi);
printf(“\nGepuk :%d”,gepuk);
printf(“\nTahu :%d”,tahu);
printf(“\nTempe :%d”,tempe);
printf(“\nLalapan :%d”,lalap);
printf(“\nAir Hangat :%d”,air_hangat);
printf(“\nJumlah pesanan :%d paket”,jumlah_pesanan);
total=(nasi+gepuk+tahu+tempe+lalap+air_hangat)*jumlah_pesanan;
pajak=(total)*10/100;
total_akhir=total+pajak;
printf(“\n”);
printf(“\nTotal, paket 2 * %d :%d”,jumlah_pesanan,total);
printf(“\nPajak 10 persen : %d”,pajak);
printf(“\nJadi, total yang harus anda bayar :%d”,total_akhir);
printf(“\n”);
break;
default:
printf(“Maaf, Paket yang anda pilih tidak ada didalam menu..!! Silahkan Coba lagi :)\n”);
}
system(“pause”);
return 0;
}

Sebenarnya, untuk mempelajari programming, Anda harus paham terlebih dahulu pengertian algoritma, flowchart, dan pseudocode. Karena jika Anda memahami ketiga komponen tersebut, Anda bisa memahami cara bekerjanya dari semua contoh program yang kami tuliskan di atas. Anda bisa mempelajari contoh flowchart program dari berbagai sumber, dari internet misalnya.

Sekian artikel kami kali ini seputar contoh bahasa pemrograman tingkat menengah. Selamat mencoba contoh-contoh program yang kami berikan kali ini.


Teddy