Instruksi Keluar dari Kalang (Loop) pada Matlab

Beberapa hari ini ada sedikit masalah ketika mengkonversi program yang dibuat dengan M-file menjadi berbasis Graphic User Interface (GUI). Program tersebut mengkalkulasi secara serial beberapa lahan yang akan dioptimasi. Ketika tidak semua lahan dioptimasi, tentu saja ketika sampai ke lahan terakhir, program harus keluar dari proses kalkulasi dan merangkum hasilnya.

Instruksi GOTO

Untuk rekan yang pernah belajar bahasa pemrograman jadul (BASIC, Fortran, dan sejenisnya) pasti mengenal instruksi GOTO tersebut. Matlab tidak menyediakan instruksi tersebut, tetapi beberapa volunteer berhasil membuat fungsi goto() yang mengarahkan urutan program ke lokasi tertentu (berbasis nomor baris atau dalam bentuk string label). Silahkan kunjungi situsnya, dan jalankan beberapa sample programnya.

Example 22:

  • a = 0;
  • 2-
  • goto([6,6,6,6,6,6,9])
  • return
  • 5-
  • 6- a = a + 1;
  • 7- goto(‘End’)
  • 8- return
  • 9- msgbox(num2str(a))
  • 10-
  • 11- % LABEL End

Tampak instruksi goto mengarahkan ke baris perintah 6,6,6,6,6,6, dan terakhir 9. Perhatikan juga selain dengan baris instruksi, goto juga bisa mengarahkan ke label ‘End’ di akhir program. Instruksi goto di berbagai bahasa pemrograman sudah jarang dipakai dan sangat tidak disarankan untuk digunakan.

Break, Return, dan Continue

Tadinya lumayan lega setelah mengunduh fungsi goto(). Tetapi ternyata bermasalah ketika jalan di GUI, entah mengapa. Akhirnya, setelah sedikit mengutak-atik struktur program digunakanlah satu dari tiga fungsi penghentian proses, yaitu continue. Sebenarnya fungsi ini telah saya kenal lama, tetapi jarang dipakai. Namun ketika diterapkan di fungsi serial tersebut, tidak bisa karena bukan instruksi kalang/loop.

Ternyata jawabannya sederhana. Buat saja kalang dengan iterasi berjumlah satu. Ketika dijumpai kondisi tertentu, gunakan continue untuk keluar dari kalang tersebut. Misalnya dengan instruksi berikut.

  • JPLnew=JPLnew-1
  • if JPLnew == 0
  • continue
  • end

Misalnya saya ada 10 proses dan user hanya meminta 5 saja secara berurutan, maka tiap proses harus berkurang 1 dan ketika ditemui nilai nol, program harus loncat keluar 10 proses tersebut (hanya diminta lima). Agar keluar dari kalang, gunakan saja kalang dengan satu iterasi sebelum proses.

  • iteratian=1
  • JPLnew=JPL
  • for i=1:iteration
  • …….

Perhatikan perbedaan break, return dan continue dengan cara mengetik help break/return/continue pada command window. Sekian, semoga bermanfaat.

 

Entri ini ditulis dalam Matlab oleh rahmadya. Buat penanda ke permalink.

Tentang rahmadya

I'm a simple man .. Lahir di Sleman Yogyakarta, 7 Juni 1976 TK : - (tidak ada TK di tj Priok waktu itu) SDN : Papanggo, Jakarta 83 - 89 SMPN : 129, Jakarta 89 - 92 SMAN : 8, Yogyakarta 92 - 95 Univ. : Fak. Teknik UGM, Yogyakarta 95 - 2001 Pasca. : Tek. Informatika STMIK Nusa Mandiri, Jakarta 2008 - 2010 Doctoral : Information Management Asian Institute of Technology, Thailand 2013 - 2018 Pekerjaan: Tek. Komputer AMIK BSI Jakarta : 2002 - 2005 IT Danamon Jakarta : 2005 - 2008 Tek. Informatika STMIK Nusa Mandiri Jakarta : 2005 - 2008 Univ. Darma Persada : 2008 - Skrg Fakultas Teknik Universitas Islam "45" Bekasi : 2008 - Skrg ( Homebase)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.