Belajar Matlab – File Dialog

By | January 14, 2021
Print Friendly, PDF & Email
1,681 Views

Setelah kalian pelajari mengenai component waitbar yang berguna untuk memonitor sebuah looping yang teramat panjang dan lama, selanjutnya kita bahas File Dialog yang terdiri dari Open dan Save sebuah file.

Perintah Simpan File

Perintah yang digunakan untuk menampilkan File Dialog Simpan file yaitu

[FileName, PathName, FilterIndex] = uiputfile(FilterSpec,DialogTitle, DefaultName);

Menampilkan Kotak Dialog Simpan File

Ada banyak cara menampilkan kotak dialog simpan file, cara paling sederhana yaitu

file = uiputfile('','Select a File')

Bisa juga dengan memberikan opsi filter

clc;clear all;close all;
filter = {'*.m';'*.slx';'*.mat';'*.*'};
[file, path] = uiputfile(filter,'Simpan File',’nama file.m’);

Mengelola return

Kalian bisa melihat ada 2 return file dan path, nah untuk mengelola returnya yaitu ketika user melakukan cancel ataupun memilih yes, dengan menggunakan perintah isequal() serta melakukan joining dengan perintah fullfile().

if isequal(file,0)
    disp('batal simpan file')
    return;
end
lokasi_file = fullfile(path,file)

Sehingga ketika user melakukan cancel / tidak jadi simpan file, akan return dan tidak menjalankan kode dibawahnya.

Manajemen last access

Kalau kamu pernah membuat aplikasi menggunakan C#, Visual Basic, ketika kotak dialog simpan dan buka file, maka ketika dijalankan berulang-ulang, kotak dialog tersebut akan secara cerdas menampilkan lokasi/folder terakhir diakses, sehingga mempermudah user dalam memilih lokasi file sebelumnya atau last access. Tapi ini tidak berlaku di matlab, sehingga kalian bisa membuat function tersendiri untuk mengelola hal tersebut. Kalian simpan saja script berikut dengan nama savefiles.m

function [folder] = savefiles()
%history path disimpan dalam file temporarylast_file_access.mat
if exist('temporary')~=7
    mkdir 'temporary';
end
nama_file ='temporary/last_save_access.mat';
%% check exist folder
if exist(nama_file)~=2
    h.FULLPATH=[];
else
    t=load(nama_file);
    h.FULLPATH=t.folder;
end
%% buka file
if isempty(h.FULLPATH)~=1
    [filename, pathname] = uiputfile({'*.jpg';'*.jpeg'}, 'Simpan file (s)',h.FULLPATH);
    
else
    [filename, pathname] = uiputfile({'*.jpg';'*.jpeg'}, 'Simpan file (s)');
end
if isequal(filename,0) || isequal(pathname,0)
       folder=[];
       return;
end
h.FULLPATH=fullfile(pathname, filename);
folder=h.FULLPATH;
save 'temporary/last_save_access.mat' folder;


Bisa kalian coba dengan memanggil savefiles(), maka akan secara otomatis memberikan tampilan folder terakhir digunakan

 

Perintah Open File

Perintah open file sama seperti dengan Simpan File, yang berbeda hanya dengan perintahnya yaitu uigetfile(). Biar gampang, kalian simpan saja script ini dengan nama  openfiles()

function [folder] = openfiles()
%history path disimpan dalam file temporarylast_file_access.mat
if exist('temporary')~=7
    mkdir 'temporary';
end
nama_file ='temporary/last_open_access.mat';
%% check exist folder
if exist(nama_file)~=2
    h.FULLPATH=[];
else
    t=load(nama_file);
    h.FULLPATH=t.folder;
end
%% buka file
if isempty(h.FULLPATH)~=1
    [filename, pathname] = uigetfile({'*.jpg';'*.jpeg'}, 'Simpan file (s)',h.FULLPATH);
    
else
    [filename, pathname] = uigetfile({'*.jpg';'*.jpeg'}, 'Simpan file (s)');
end
if isequal(filename,0) || isequal(pathname,0)
       folder=[];
       return;
end
h.FULLPATH=fullfile(pathname, filename);
folder=h.FULLPATH;
save 'temporary/last_open_access.mat' folder;


Jadi dengan 2 fungsi diatas, user akan dipermudah dalam melakukan simpan dan buka file.

Cara penggunaan

Cara penggunaan function diatas seperti contoh berikut, dengan melakukan cek, ketika mengembalikan nilai 1, maka user melakukan cancel

lokasi_file = openfiles();
if isempty(lokasi_file)==1
    return;
end

 

Leave a Reply