Menampilkan Progress Bar versi Command Line Interface di Matlab

Print Friendly, PDF & Email

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

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *