Grafik baru selesai berarti baru di layar. Untuk masuk ke laporan, presentasi, atau repositori, figur harus menjadi BERKAS — dan di sinilah banyak grafik mati: PNG dengan resolusi layar pecah saat dicetak, JPEG membuat garis tipis berkabut, dan figur berukuran kertas A4 portrait memotong dasbor landscape. MATLAB menyediakan tiga jalur export dengan tingkat kendali berbeda. Cakupan chapter ini:
- Tiga jalur export:
saveas,print,exportgraphics - Resolusi dpi dan efeknya pada ukuran berkas
- Vektor vs raster: kapan memilih SVG/PDF vs PNG/JPG
- Ukuran kertas, orientasi, dan praktik folder laporan yang konsisten
Tiga Jalur Export #
| Jalur | Perintah | Kelebihan | Catatan |
|---|---|---|---|
saveas | saveas(f, 'grafik.png') | satu baris, format umum | resolusi mengikuti layar |
print | print(f, '-dpng', '-r300', 'g.png') | kendali penuh dpi, kertas, format | sintaks gaya perintah |
exportgraphics | exportgraphics(f, 'g.png', 'Resolution', 300) | tight crop, latar transparan, hanya area grafik | MATLAB R2020a+ |
Mekanismenya ketiganya sama di titik akhir: MATLAB merender figur ke canvas (raster) atau ke instruksi geometri (vektor), lalu menulis hasilnya ke berkas. saveas dan print hadir sejak versi awal MATLAB dan juga di GNU Octave; exportgraphics adalah fungsi modern (R2020a) yang memotong tepi kosong dan mengekspor persis area grafik.
saveas: Jalur Tercepat #
Aturannya: saveas(figure, berkas) menyimpan figur utuh apa adanya. Mekanismenya: format dibaca dari ekstensi berkas (.png, .jpg, .svg, .eps, .pdf, .tif) dan seluruh figur — termasuk area kosong di sekeliling grafik — ikut tergambar:
saveas(f, 'penjualan-saveas.png');
fprintf('Grafik tersimpan: penjualan-saveas.png\n');Resolusi mengikuti pengaturan layar/figur, sehingga saveas cocok untuk draf, preview, dan web — bukan untuk cetak beresolusi tinggi.
print dan Resolusi dpi #
Perintah print adalah alat berat: -d<format> memilih device dan -r<n> menyetel resolusi dalam dpi (dots per inch). Mekanismenya: ukuran piksel berkas = ukuran figur (inci) × dpi — figur 4x3 inci pada -r300 menjadi 1200x900 piksel, lima kali lebih tajam dari -r72:
print(f, '-dpng', '-r300', 'penjualan-300dpi.png');
print(f, '-dsvg', 'penjualan.svg');Bentuk fungsinya juga sah: print(f, '-dpng', '-r300', berkas). Resolusi 300 dpi adalah standar cetak; 150 dpi biasanya cukup untuk slide presentasi. Latar transparan dan tight crop bisa ditambah lewat opsi print seperti -transparent (MATLAB) — namun untuk kebutuhan itu, exportgraphics jauh lebih praktis.
Vektor vs Raster #
Pilihan paling menentukan bukan dpi, melainkan JENIS berkas. Mekanismenya: raster (PNG/JPG/TIFF) menyimpan grid piksel warna — diperbesar, garis bergerigi; vektor (SVG/EPS/PDF) menyimpan instruksi “garis dari titik A ke B” — dirender ulang tajam pada zoom berapa pun:
| Format | Jenis | Kapan dipilih |
|---|---|---|
.png | raster | default aman: web, laporan, slide — lossless |
.jpg | raster | foto/screenshot; hindari untuk grafik garis (kabut lossy) |
.tif | raster | cetak profesional, lossless, berkas besar |
.svg | vektor | web modern, editor gambar (Inkscape/Figma) |
.eps | vektor | publikasi LaTeX klasik |
.pdf | vektor | lampiran laporan, dicetak pada ukuran berapa pun |
Aturan praktisnya: grafik garis, batang, dan teks pada laporan formal → vektor; grafik padat seperti heatmap ratusan ribu sel atau scatter besar → raster (berkas vektor raksasa malah lambat dibuka).
Ukuran Kertas dan Orientasi #
Untuk berkas vektor dan cetak, figur dipetakan ke “kertas” melalui properti Paper*: PaperOrientation (portrait/landscape), PaperPositionMode, dan PaperUnits. Mode 'auto' membuat area cetak mengikuti ukuran figur di layar sehingga dasbor lebar tidak terpotong:
set(f, 'PaperPositionMode', 'auto', 'PaperOrientation', 'landscape');
print(f, '-dpdf', 'dasbor-landscape.pdf');Contoh Utuh: Tiga Ekspor Sekaligus #
Skrip contoh.m menyimpan satu figur lewat tiga jalur — dua raster berbeda resolusi dan satu vektor — lalu memverifikasi ketiga berkas dengan exist:
bulan = 1:12;
penjualan = [120 135 128 150 142 168 155 172 160 185 178 195];
f = figure('visible', 'off', 'Position', [100 100 800 450]);
plot(bulan, penjualan, '-o', 'LineWidth', 1.5, ...
'MarkerFaceColor', [0.20 0.40 0.80]);
grid on;
xlabel('Bulan'); ylabel('Unit terjual');
title('Penjualan Toko Budi 2026');
% 1) saveas: cara tercepat
saveas(f, 'penjualan-saveas.png');
fprintf('Grafik tersimpan: penjualan-saveas.png\n');
% 2) print dengan resolusi 300 dpi
print(f, '-dpng', '-r300', 'penjualan-300dpi.png');
fprintf('Grafik tersimpan: penjualan-300dpi.png\n');
% 3) print ke format vektor SVG
print(f, '-dsvg', 'penjualan.svg');
fprintf('Grafik tersimpan: penjualan.svg\n');
% verifikasi berkas benar-benar dibuat
fprintf('penjualan-saveas.png ada: %d\n', exist('penjualan-saveas.png', 'file'));
fprintf('penjualan-300dpi.png ada: %d\n', exist('penjualan-300dpi.png', 'file'));
fprintf('penjualan.svg ada: %d\n', exist('penjualan.svg', 'file'));Output yang Dihasilkan:
Grafik tersimpan: penjualan-saveas.png
Grafik tersimpan: penjualan-300dpi.png
Grafik tersimpan: penjualan.svg
penjualan-saveas.png ada: 2
penjualan-300dpi.png ada: 2
penjualan.svg ada: 2Mari kita bedah baris-baris kode di atas:
- Baris 4 (
figure(..., 'Position', [100 100 800 450])): ukuran figur 800x450 piksel ditetapkan sejak awal — semua jalur export mewarisi dimensi ini sehingga ketiga berkas punya rasio sama. - Baris 12 (
saveas(f, 'penjualan-saveas.png')): format PNG dipilih dari ekstensi; resolusinya mengikuti figur, paling kecil di antara ketiganya. - Baris 16 (
print(f, '-dpng', '-r300', ...)): device-dpngplus 300 dpi menghasilkan raster tajam siap cetak — berkasnya beberapa kali lebih besar dari hasilsaveas. - Baris 20 (
print(f, '-dsvg', 'penjualan.svg')): device-dsvgmenulis instruksi vektor — teks dan garis tetap tajam pada zoom berapa pun. - Baris 24-26 (
exist(..., 'file')):existmengembalikan2untuk berkas yang ada — pemeriksaan deterministik pengganti mata, konsisten dengan pola uji headless seluruh course.
Ringkasan #
saveas menyimpan figur apa adanya, print mengendalikan dpi (-r300 untuk cetak) dan format (-dpng, -dsvg, -dpdf), serta exportgraphics (MATLAB R2020a+) menambah tight crop dan latar transparan. Grafik garis untuk laporan formal terbaik di vektor (SVG/PDF/EPS), grafik padat di raster (PNG), dan JPEG dihindari untuk grafik garis. Figur yang tergambar rapi, ter-label, ter-style, dan tersimpan sebagai berkas — itulah seluruh perjalanan visualisasi data kita dari konsep hingga siap laporan.