Belajar Matlab – Menampilkan Progress Bar
Menampilkan sebuah progress bar kepada user sangat diperlukan untuk memastikan bahwa aplikasi sedang berjalan menyelesaikan tugas. Component GUI matlab yang berguna untuk menampilkan progress bar yaitu https://softscients.com/2020/06/02/component-gui-matlab-cara-menggunakan-waitbar/
Namun kalau kalau yang pernah menggunakan Python sudah mengenal package TQDM https://github.com/tqdm/tqdm. Package TQDM berguna untuk menampilkan progress bar dalam bentuk command line interface alias console, bahkan didalamnya terdapat beberapa informasi seperti waktu/iterasi.
Sebelum menggunakan progress bar, biasanya penulis melakukan perintah berikut
clc;clear all;close all; jumlah_iterasi = 10; for i =1:jumlah_iterasi %kode ekseksusi disp(['no ' num2str(i) ' dari ' num2str(jumlah_iterasi)]); end
Jadi sangat boros
no 1 dari 10 no 2 dari 10 no 3 dari 10 no 4 dari 10 no 5 dari 10 no 6 dari 10 no 7 dari 10 no 8 dari 10 no 9 dari 10 no 10 dari 10 >>
Gimana kalau jutaan data? Biasanya sih pakai teknik modulus, yaitu hanya menampilkan jika n = 1000, artinya akan menampilkan ke 1000, 2000, 3000 begitu seterusnya
clc;clear all;close all; jumlah_iterasi = 100000000; for i =1:jumlah_iterasi %kode ekseksusi if mod(i,1000)==0 %menampilkan hanya per 1000 disp(['no ' num2str(i) ' dari ' num2str(jumlah_iterasi)]); end end
hasil
no 1000 dari 100000000 no 2000 dari 100000000 no 3000 dari 100000000 no 4000 dari 100000000 no 5000 dari 100000000 no 6000 dari 100000000 no 7000 dari 100000000 no 8000 dari 100000000 no 9000 dari 100000000 no 10000 dari 100000000
Bagaimana dengan matlab? Yup tidak punya yang model begituan! Tapi tidak usah kuatir koq, Berikut contoh penggunakan package ProgressBar yang lebih elegan untuk menampilkan progress setiap iterasi.
Progress Bar jika diketahui jumlah maksimal iterasinya
clc;clear all;close all; jumlah_iterasi = 10; pbar = ProgressBar(jumlah_iterasi); for i =1:jumlah_iterasi %kode ekseksusi pause(0.1) pbar.step(1, [], []); end pbar.release();
hasil
Processing: 100% |████████████████████████| 10/10 [00:00:01<00:00:00,
Progress Bar jika tidak diketahui jumlah iterasinya
Berikut jika tidak diketahui jumlah iterasinya
numIterations = 50; %% Simple setup WITHOUT known number of iterations obj = ProgressBar(); for iIteration = 1:numIterations pause(0.1); obj.step(1, [], []); end obj.release();
hasil
Processing: 50it [00:00:05, 9.58 it/s]
Tertarik bukan? Cukup kalian download di https://github.com/JAAdrian/MatlabProgressBar
Download saja langsung, disana sudah ada beberapa contoh/demo yang bisa kalian gunakan. Jangan lupa yang dibutuhkan hanya 3 script penting yaitu progress.m; ProgressBar.m; updateParallel.m.
Bagaimana menurut kalian? Progress Bar versi console, sangat menarik bukan? Sangat praktis dan membantu melihat progres serta kecepatan iterasi per detik