fbpx

Algoritma dan Pemrogaman : Percabangan Tidak Bersyarat

Konsep GOTO

Pada umumnya, kita hanya membicarakan keadaan dimana komputer melaksanakan baris demi baris secara beruntun atau berurutan, dan tiap baris dilaksanakan hanya satu kali. Namun sebenarnya kita dapat memerintahkan komputer untuk melaksanakan baris secara melompoat/meloncat, serta melaksanakannya lebih dari satu kali. Untuk itu kita dapat memanfaatkan statemen alih kontrol GOTO.

Pernyataan GOTO merupakan instruksi untuk mengarahkan eksekusi program menuju pernyataan yang diawali dengan suatu label. Label merupakan suatu pengenal (identifier) yang diikuti dengan tanda titik dua (:)

Bentuk pemakaian GOTO adalah:

goto label;

Label adalah bilangan bulat positif hingga empat digit sebelum statemen yang diperlukan (dalam Turbo Pascal label dapat berupa identifier yang valid dan dapat dimulai dengan digit/angka).

  goto 1000;
  ...
1000 :
  writeln('Saya membaca artikel di Belajar Statistik');
  ...
 

Pengulangan Loops

Kita dapat menggunakan pernyataan GOTO untuk membangguun sebuah loop tertutup. Sebagai contoh, jika kita ingin mengulang pelaksanaan program “Character Tester“, kita dapat menggunakan logika berikut, di mana kontrol selalu dipindahkan ke label “1000” pada awal program. Sebuah kondisi yang digunakan untuk mengakhiri loop (dan program) dengan memeriksa nilai masukan. Jika InputChar = 0, kontrol ditransfer ke label “2000,” mengakhiri program. Jika Anda menghapus kondisi ini dari program, maka program akan terus diulang ulang. Satu satunya cara untuk keluar dari program dalam hal ini adalah dengan menggunakan tombol kontrol Ctrl + Break. Jenis loop disebut loop tak terbatas

program CharsTester;
label
1000, 2000; {deklarasi label}
var InputChar:char;
begin
  1000:
  write('Please enter a letter (or 0 to quit): ');readln(InputChar );
  if InputChar = '0' then {kondisi untuk keluar}
    goto 2000
  else if (ORD(InputChar ) > 64) and (InputChar) < 91) then
    writeln('This is an upper case letter.')
  else if (ORD(InputChar ) > 96) and ( InputChar ) < 123) then
    writeln('This is a lower case letter.')
  else if (ORD(InputChar ) > 47) and ( InputChar ) < 58) then
    writeln('Hey, this is a number!')
  else
    writeln('Sorry, this is not a letter.'); 
  GOTO 1000; {mengulang program}
  2000: {keluar program}
end.

Contoh Program

Contoh 1

program goto;
label 1000;
var inputchar:char;
begin
  write('Masukkan huruf (atau 0 untuk berhenti) :');readln(inputchar);
  if inputchar = '0' then 
    goto 1000;
    {other statement mau go here ...}
  1000;
end.

Contoh 2

Pada lingkungan DOS, posisi tulisan dilayar dicettak berdasarkan posisi cursor yang sedang aktif, misalnya sekarang posisi cursor berada di kolom 10, baris 5, maka perintah:

  writeln('Sedang belajar Pascal di Belajar Statistik');

Akan menampilkan tulisan tersebut mulai kolom 10 di baris 5.

Apabila ingin mencetak tulisan tersebut pada kolom 20 baris 13, maka kita harus memindahkan cursor keposisi kolom 20, baris 13, diikuti dengan perintah pencetakan tulisan tersebut, contoh:

  gotoxy(20,13);
  writeln('Tulisan disini akan dicetak mulai kolom 20, di baris 13);

Lantas bisakan kita mendapatkan nilai posisi cursor yang sedang aktif?

Jawabannya adalah bisa , kita dapat menggunakan variabel internal unit CRT, yaitu WhereX dan WhereY.

  gotoxy(5,5,);
  write('Belajar');
  gotoxy(wherex+10,3);
  write('Statistik');

Materi Lengkap

Silakan baca juga beberapa artikel menarik kami tentang Konsep Pemilihan, daftar lengkapnya adalah sebagai berikut.


Tonton juga video pilihan dari kami berikut ini

Bagikan ke teman-teman Anda

Contact Us

How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. 1 Click on the AdBlock Plus icon on the top right corner of your browser
  2. 2 Click on "Enabled on this site" from the AdBlock Plus option
  3. 3 Refresh the page and start browsing the site
error: Content is protected !!
Up