Rabu, 20 Maret 2013

LyX



LyX adalah sebuah program pemroses kata (word processor) layaknya Microsoft Word dan OpenOffice.org Writer. Tetapi LyX unik, dimana pengguna hanya berkonsentrasi pada isi, bukan pada format, seperti yang dikatakan dalam intro-nya:

LyX is a program that provides a modern approach to writing documents with a computer by using a markup language paradigm, an approach that breaks with the obsolete tradition of the “typewriter concept”. It is designed for authors who want professional output quickly with a minimum of effort without becoming specialists in typesetting. The job of typesetting is done mostly by the computer, not the author; with LyX, the author can concentrate on the contents of her writing.

Contohnya, dalam LyX kita tidak bisa mengetik dua spasi secara berurutan, dua baris baru secara berurutan, atau memiliki baris yang kosong! Karena semua pengaturan tentang spacing antar paragraf, antar bagian dst sudah dibuat secara otomatis.
Keunggulan dari LyX yang paling gw suka adalah output yang konsisten misalnya, semua paragraf dipastikan memiliki margin yang sama, semua judul dipastikan memiliki besar sama, dst. Selain itu, karena dokumen sangat terstruktur maka ada fitur untuk melakukan navigasi intra-dokumen yang sangat bagus (ada daftar judul-judul bab dan sub-bab, kita bisa meng-klik untuk pindah ke bagian tersebut dengan cepat).

Setiap dokumen memiliki kelas sendiri, misalnya article atau book, dan setiap kelas sudah terformat dengan sangat baik bahkan melebihi apa yang biasa kita lakukan dengan Word. Contohnya, pada kelas book, nomor halaman sudah berada pada tempat yang tepat (di bawah saat mulai bab, di atas pada halaman lainnya). Penomoran bab dan sub-bab langsung dibuat secara otomatis!
Yang lebih keren lagi, setiap gambar dan tabel juga diberikan penomoran otomatis! Tidak seperti di Word dimana kita harus melakukan setting yang cukup repot dan tidak semua orang bisa melakukannya. Juga, seperti buku-buku profesional pada umumnya, setiap tabel maupun gambar tidak terletak di tempat kita meletakkan tabel/gambar tersebut, tetapi di awal atau akhir halaman! Dan semuanya otomatis! (fitur ini bisa dimatikan untuk tabel tertentu)

Keburukan dari LyX adalah sangat sulit (tidak bisa?) mengatur style (warna, font, dll) yang baku dari style yang sudah ada seperti judul bab, judul sub-bab, dll (walaupun untuk tulisan bukan judul bisa dilakukan). Juga sulit untuk mengatur apa-apa yang sudah di pre-format oleh Lyx, misalnya di mana penomoran halaman diletakkan, atau kata-kata otomatis yang digunakan. Seperti Chapter xxx, Figure xxx, Table xxx (dalam penomoran otomatis)... tetapi versi Bahasa Indonesia seperti Bab xxx, Gambar xxx, Tabel xxx tersedia (dengan memilih bahasa Bahasa (seharusnya Bahasa Indonesia kan???)), tetapi seperti yang sudah dikatakan kita tidak bisa mengubahnya menjadi Bagian xxx atau Figur xxx misalnya.

Kalaupun terpaksa mengubah tulisan-tulisan tersebut, harus mengubah isi filenya LyX yang pasti tidak disukai banyak orang :) Atau, export ke format HTML, OpenOffice.org, atau Microsoft Word lalu edit sesukanya (o iya, LyX juga bisa mengekspor dengan format PS dan PDF!). Sayangnya instalasi default untuk Windows tidak bisa mengekspor ke format tersebut (harus ada package yang harus di-download).
Melihat pro dan con di atas, bisa dilihat bahwa LyX sangat cocok untuk tulisan yang sangat panjang, terstruktur, dan bersifat ilmiah, seperti karya tulis, buku (selain buku komik dan majalah!), tesis, dll. Cukup banyak pengarang atau penulis buku pasti tidak menyadari bahwa ada tool yang sedemikian bagus untuk mereka!

LATEX

I.    PENGERTIAN LATEX

LATEX (LaTeX) adalah bahasa markup atau sistem persiapan pembuata dokumen untuk pengetikan sistem TeX, yang dinamakan berdasarkan gaya penulisannya sebagai LaTeX. Nama LaTeX itu sendiri hanya mengacu pada bahasa penulisan yang digunakan pada sebuah dokumen, bukan pada editor yang digunakan untuk menulis dokumen tersebut. Untuk membuat dokumen dalam format LaTeX, sebuah file berformat .tex harus dibuat menggunakan semacam text editor. Walaupun, banyak text editor yang dapat digunakan untuk membuat dokumen LaTeX, beberapa text editor sengaja dibuat khusus untuk menggunakan bahasa LaTex.

LaTeX sangat banyak digunakan di Institusi-Institusi pendidikan. Sebagai contoh, digunakan untuk menerjemahkan DocBook dan berbagai macam file berekstensi XML ke dalam format PDF, LaTeX digunakan karena kualitasnya yang tinggi dalam typesetting yang dapat dicapai oleh TeX. Sistem typesetting LaTeX menawarkan Desktop Publishing yang Programmable atau dapat di tulis ulang dan fasilitas extensive untuk otomatisasi aspek-aspek dalam typesetting dan desktop publishing, termasuk pemberian nomor, dan referensi silang, tabel dan bingkai, tata letak halaman, dan bibliographies.

LaTeX pertama kali ditlis pada awal tahun 1980 oleh Leslie Lamport di SRI International. Sampai akhirnya, LaTeX menjadi metode yang sangat penting dalam menggunakan sistem TeX. Versi teranyar adalah LaTeX2e. LaTeX didistribusikan dibawah LaTeX Project Public License (LPPL), LaTeX adalah perangkat lunak yang gratis (Free Software).


II.    SEJARAH SINGKAT LaTeX

Untuk dapat memahami sejarah LaTeX, kita perlu mengetahui terlebih dahulu sejarah TeX. LaTeX adalah hasil turunan dari TeX. TeX adalah bahasa pemrograman yang diciptakan khusus dan menjadi bagian utama dari sistem pencetakan (typesetting system) yang akan menghasilkan dokumen (teks, gambar, notasi matematis) yang berkualitas tinggi. TeX diciptakan oleh Prof. Donald Knuth sekitar tahun 1978.

Awalnya Prof. Donald Knuth menciptakan TeX pada akhir tahun 1978 untuk merevisi buku karyanya yaitu The Art of Computer Programming edisi kedua. Buku The Art of Computer Programming memerlukan perbaikan karena banyak simbol matematika yang tidak dapat dicetak dengan sempurna oleh sistem percetakan pada masa itu.

Prof. Donald Knuth berharap program yang dibuatnya akan mampu menghasilkan sistem percetakan dokumen yang berkualitas tinggi, mampu mencetak teks, angka, simbol-simbol matematis dengan sempurna.

III.    INSTALASI LaTeX

Konfigurasi komputer minimum untuk menjalankan LaTeX:
    Prosessor Pentium atau yang kompatibel.
    RAM Minimal 16 MB
    OS Windows 98/2000/ME/XP

Untuk melakukan intalasi LaTeX di Windows, dibutuhkan beberapa komponen atau software yang mendukung, yakni:
1.    gs800w32.exe  APFL Ghostscript 8.00, untuk mendukung ghostview mulai dari display, font dan sebagainya.
2.    gsv43w32.exe  berfungsi untuk melihat hasil / visualisasi dokumen LaTeX yang telah dibuat dengan format .Pdf (Portable document format) atau .Ps (Postscript).
3.    Total Miktex  MiKTeX adalah Distribusi TeX Gratis untuk pengguna windows. MiKTeX berisi paket-paket yang bisa digunakan untuk membuat dokumen LaTeX.
4.    WinEdt atau Texnic Center  adalah editor dokumen LaTeX.


IV.    DOKUMEN LaTeX

4.1.    Dokumen LaTeX
Sebuah dokumen LATEX memiliki struktur yang dicirikan dengan blok yang diapit oleh pasangan perintah \begin dan \end. Untuk menyatakan jenis dokumenyang akan diolah, setiap dokumen harus dimulai dengan perintah \documentclass{...}
Jenis dokumen ini dapat berupa buku, artikel, laporan, transparansi, thesis, dan sebagainya. Badan utama dokumen dituliskan di antara pasangan
\begin{document} dan \end{document}
Contoh:
\documentclass{article}
\begin{document}
Ini adalah contoh sebuah
dokumen\LaTeX.
\end{document}

4.2.    Paragraf
Di dalam dokumen LaTeX paragraph dipisahkan satu dari yang lain oleh satu atau beberapa baris kosong atau perintah \par.Jika dalam sebuah paragraph ada baris yang ingin dimulai dengan Baris baru tanpa memulai paragraph baru,maka paragraph sebelum baris baru ini diakhiri dengan perintah \\ atau \newline.
Untuk memulai halaman baru,gunakan perintah \newpage

4.3.    Kelas Dokumen
Jenis dokumen yang akan diolah ditentukan oleh perintah pertama dalam bentuk \documentclass[option]{class}
Dalam perintah diatas,“class”dapat diganti oleh article, report, book,atau slides untuk menuliskan artikel,laporan,buku,atau transparansi untuk seminar. Sedangkan pada bagian“option” dapat dituliskan satu atau beberapa pilihan berikut:10pt, 11pt, 12pt untuk menyatakan ukuran font utama yang digunakan didalam dokumen a4paper, letterpaper menyatakan ukuran kertas yang digunakan titlepage, notitlepage untuk menyatakan apakah halaman judul akan dibuat terpisah dari badan dokumen atau tidak twocolumn untuk menampilkan dokumen dalam bentuk dua kolom twoside, oneside untuk menyatakan apakah dokumen akan dicetak pada satu sisi atau dua sisi dari kertas.

4.4.    Package
Penyertaan paket kedalam dokumen dilakukan dengan perintah:
\usepackage[option]{nama-paket}
Contoh:
\usepackage[bahasa]{babel}
Keterangan:
paket babel disertakan dengan kata kunci bahasa. Paket ini yang memberikan fasilitas multi lingual sehingga misalnya nama bulan pada perintah \today yang dituliskan pada bagian judulbdokumen ini muncul dalam bahasa Indonesia sebagai“23 Januari2001” bukan sebagai“January 23, 2001”, serta perintah \tableofcontents secara otomatis menuliskan judul“DaftarIsi”.


4.5.    Pengaturan Spasi
Pengaturan spasi pada latex dengan menggunakan paket \usepackage{setspace} di awal dokumen. Kemudian letakkan perintah di bawah ini setelah \begin{document}
•    \singlespacing à untuk mengatur jarak 1 spasi
•    \onehalfspacing à untuk mengatur jarak 1 setengah spasi
•    \doublespacing à untuk mengatur jarak double spasi

4.6.    Bab, Subbab, dan Bagian
Dokumen kelas article memiliki perintah seperti:
\section{...}
\subsection{...}
\subsubsection{...} Memberikan nomor pada nama bagian, Bab dsb..
\paragraph{...}
\subparagraph{...}

4.7.    Judul Dokumen
Judul dokumen serta nama pengarang mengarang dapat dimunculkan melalui perintah
\maketitle
Dengan sebelumnya mendefinisikan judul dan nama pengarang melalui perintah
\title dan \author
Jika nama pengarang lebih dari satu, setiap nama dipisahkan satu dengan lainnya dengan perintah \and
Contoh :
\documentclass[a4paper,12pt,oneside]{article}
\usepackage[bahasa]{babel}
\title{PI Qu}
\author{Palupi}
\begin{document}
\maketitle
\end{document}

4.8.    Environtment
Untuk menuliskan bentuk khusus, LATEX menyediakan sejumlah environment yang dituliskan dalam sturktur blok yang diapit oleh \begin{environment} dan \end{environment}
•    itemize : membuat daftar yang tidak memiliki urutan
•    enumerate : membuat daftar yang memiliki urutan
•    description : membuat daftar yang berisi penjelasan suatu topik
•    quote : membuat kutipan pendek atau rangkaian kutipan pendek yang dipisahkan oleh baris kosong
•    quotation : membuat kutipan yang terdiri dari bebera paparagraf
•    verse : membuat ayat-ayat puisi
•    displaymath : membuat persamaan/ rumus matematika

4.9.    Membuat Footnote
Untuk menuliskan footnot pada latex ketikan perintah
\footnote{isi footnote}

4.10.    Daftar Isi, Gambar, dan Tabel
•    Dengan menggunakan perintah pembagian struktur seperti \part, \chapter, \section, daftar isi dapat secara otomatis dimunculkan dengan perintah \tableofcontents
•    Demikian juga jika dokumen memuat gambar dan table yang dibuat melalui float table dan figure, maka daftar gambar dan table dapat ditampilkan dengan perintah: \listoftables dan \listoffigures

4.10.1.    Daftar Butir
Daftar dapat dibuat dengan menggunakan environtment itemize (Tak bernomor), enumerate (Bernomor), maupun description (Kata kunci penjelas).
4.10.2.    Flushleft, Flushright, Center
Untuk menghasilkan paragraf yang rata kiri, rata kanan, atau rata tengah.

4.11.    Tabel
•    Tabel dibuat dengan menggunakan environment tabular. Setelah perintah \begin{tabular}, harus dituliskan kode spesifikasi yang menyatakan bagaimana isi kolom ditempatkan.
•    Diantara perintah \begin{tabular} dan \end{tabular} kolom satu dengan lainnya dipisahkan oleh tanda ‘&’. Garis horizontal selebar table dapat dibuat dengan perintah \hline.
•    {|c|l|r|} adalah bagian yang menentukan banyaknya kolom. Untuk membuat label ketikan perintah \begin{table}, \caption{Percobaan} à menampilkan labelnya , dan diakhiri \end{table}

4.12.    Menyisipkan Gambar
Pengaturan spasi pada latex dengan menggunakan paket \usepackage{graphicx} di awal dokumen. Kemudian letakkan perintah di bawah ini setelah \begin{document}
\begin{figure}[ht!]
\begin{center}
\includegraphics[%
scale=0.60]{gambar.eps}\end{center}
Sebelumnya ubah format gambar yang akan di sisipkan menjadi .eps , agar bisa dibaca oleh latex,dan letakkan gambar tersebut dalam satu folder dokumen latex yang akan dibuat.
Untuk membuat label ketikan perintah di bawah ini :
\caption{Tampilan Administrator Joomla}\label{gambar}
\end{figure}

4.13.    Membuat Daftar Pustaka
Untuk membuat daftar pustaka pada akhir dokumen latex, digunakan perintah berikut ini
\begin{thebibliography}{99} à 99 memberitahu latex batas max penomeran adalah 99
\bibitem{ label untuk referensi }
{ keterangan pustaka yang digunakan }
\end{thebibliography}

Senin, 26 November 2012

Sharpening - Penajaman Citra



Untuk mata kuliah pengolahan citra ini, saya akan membahas pembuatan aplikasi sederhana tentang penajaman citra (Sharpening) dengan menggunakan matlab. Untuk pembuatannya, digunakan matlab versi 7.1.

Sekilas Tentang Matlab :

MATLAB merupakan suatu sistem interaktif yang memiliki elemen data dalam suatu array sehingga tidak lagi kita dipusingkan dengan masalah dimensi. Hal ini memungkinkan kita untuk memecahkan banyak masalah teknis yang terkait dengan komputasi, kususnya yang berhubungan dengan matrix dan formulasi vektor, yang mana masalah tersebut merupakan momok apabila kita harus menyelesaikannya dengan menggunakan bahasa level rendah seperti Pascall, C dan Basic.

Sekilas Tentang Pengolahan Citra :
Salah satu jenis pengolahan citra adalah perbaikan kualitas citra. Perbaikan Kualitas citra (image enhancement) adalah operasi yang bertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter - parameter citra. Dengan operasi ini ciri-ciri khusus yang terdapat pada citra lebih ditonjolkan.Yang termasuk dalam klasifikasi ini antara lain:

a. Perbaikan kontras gelap / terang (contrast enhncement).
b. Perbaikan tepian objek (edge enhancement)
c. Penajaman (sharpening)
d. Pemberian warna semu (pseudocoloring)
e. Penyaringan derau (noise filtering)

Langkah-Langkah Pembuatan Program :
Salah satu kelebihan dari Matlab adalah kemudahan dalam mengolah grafik. Misalnya, untuk mengolah suatu tampilan grafis agar lebih tajam (penajaman citra), cukup dengan mengikuti langkah berikut.

1. Buka program Matlab, hingga muncul tampilan awal seperti berikut :

 
2. Untuk membuat tampilannya, dibutuhkan file GUI. Pilih new – GUI


3. Akan muncul tampilan berikut :



4. Pilih tools axes dan button. Dibutuhkan 2 buah objek axes dan 3 buah objek button, kemudian dapat disusun seperti pada tampilan berikut :




5. Save file .fig tersebut, (pada project ini, saya menggunakan nama terserah.fig). 

6. Untuk mengaktifkan button PILIH GAMBAR, klik kanan pada button tersebut, pilih menu view callbacks callkback.



7. Menu callback yang telah dipilih, akan membawa ke dalam editor file.m dan menyorot ke fungsi button1 (pilih gambar). Setelah itu, dapat ditambahkan script berikut :



Script :
proyek=guidata(gcbo);
[namafile,direktori]=uigetfile({*.jpg;*.bmp;*.png;*.tif},Buka Gambar)
if isequal(namafile,0)
return;
end
eval(['cd ''' direktori ''';']);
I=imread(namafile);
set(proyek.figure1,CurrentAxes,proyek.axes1);
set(imshow(I));
set(proyek.figure1,Userdata,I);
set(proyek.axes1,Userdata,I);
8. Dengan cara yang sama, aktifkan button yang ke2(Proses) dengan menambahkan script berikut :
Script :
proyek=guidata(gcbo);
I=get(proyek.axes1,Userdata);
if isequal(I,[])
msgbox(Belum ada gambar!,Peringatan,warn);
else
PSF=fspecial(unsharp);
A=imfilter(I,PSF,replicate);
set(proyek.figure1,CurrentAxes,proyek.axes2);
set(imshow(A));
set(proyek.axes2,Userdata,A);
redo_Callback(hObject, eventdata, handles);
end
9. Dengan cara yang sama, aktifkan button yang ke3(Simpan) dengan menambahkan script berikut :
Script :
proyek=guidata(gcbo);
[namafile,direktori]=uiputfile({*.jpg;*.*},Simpan Citra);
I=get(proyek.axes2,Userdata);
imwrite(I,strcat(direktori,namafile));

10. Save file .m tersebut, (pada project ini, saya menggunakan nama terserah.m).

11. Selesai, kemudian pilih icon Run atau dapat juga dengan menekan F5 pada keyboard. 

12. Berikut adalah hasilnya :

Tampilan awal :


Klik button pilih gambar :



Tampilan gambar berhasil dipilih :



Klik button Proses. Berikut adalah tampilan gambar berhasil dipertajam :



Untuk menyimpan, klik button simpan.


Script Lengkap :
function varargout = terserah(varargin)
&#x T;ERSERAH M-file for terserah.fig
&#x ; TERSERAH, by itself, creates a new TERSERAH or raises the existing
&#x ; singleton*.
&#x ; H = TERSERAH returns the handle to a new TERSERAH or the handle to
&#x ; the existing singleton*.
&#x ; TERSERAH(CALLBACK,hObject,eventData,handles,) calls the local
&#x ; function named CALLBACK in TERSERAH.M with the given input arguments.
&#x ; TERSERAH(Property,Value,) creates a new TERSERAH or raises the existing singleton*. Starting from the left, property value pairs are
&#x ; applied to the GUI before terserah_OpeningFunction gets called. An
&#x ; unrecognized property name or invalid value makes property application
&#x ; stop. All inputs are passed to terserah_OpeningFcn via varargin.
&#x ; *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one
&#x ; instance to run (singleton).
&#x S;ee also: GUIDE, GUIDATA, GUIHANDLES
dit the above text to modify the response to help terserah
&#x L;ast Modified by GUIDE v2.5 10-Jun-2004 02:13:58
egin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(gui_Name, mfilename,
gui_Singleton, gui_Singleton,
gui_OpeningFcn, @terserah_OpeningFcn,
gui_OutputFcn, @terserah_OutputFcn,
gui_LayoutFcn, [] ,
gui_Callback, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
nd initialization code - DO NOT EDIT
&#x &;#8212; Executes just before terserah is made visible.
function terserah_OpeningFcn(hObject, eventdata, handles, varargin)
&#x T;his function has no output args, see OutputFcn.
&#x h;Object handle to figure
ventdata reserved - to be defined in a future version of MATLAB
&#x h;andles structure with handles and user data (see GUIDATA)
&#x v;arargin command line arguments to terserah (see VARARGIN)
hoose default command line output for terserah
handles.output = hObject;
&#x U;pdate handles structure
guidata(hObject, handles);
&#x U;IWAIT makes terserah wait for user response (see UIRESUME)
&#x u;iwait(handles.figure1);
&#x &;#8212; Outputs from this function are returned to the command line.
function varargout = terserah_OutputFcn(hObject, eventdata, handles)
&#x v;arargout cell array for returning output args (see VARARGOUT);
&#x h;Object handle to figure
ventdata reserved - to be defined in a future version of MATLAB
&#x h;andles structure with handles and user data (see GUIDATA)
&#x G;et default command line output from handles structure
varargout{1} = handles.output;
&#x ;Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
&#x h;Object handle to pushbutton1 (see GCBO)
ventdata reserved to be defined in a future version of MATLAB
&#x h;andles structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
[namafile,direktori]=uigetfile({*.jpg;*.bmp;*.png;*.tif},Buka Gambar)
if isequal(namafile,0)
return;
end
eval(['cd ''' direktori ''';']);
I=imread(namafile);
set(proyek.figure1,CurrentAxes,proyek.axes1);
set(imshow(I));
set(proyek.figure1,Userdata,I);
set(proyek.axes1,Userdata,I);
&#x &;#8212; Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
&#x h;Object handle to pushbutton2 (see GCBO)
ventdata reserved - to be defined in a future version of MATLAB
&#x h;andles structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
I=get(proyek.axes1,Userdata);
if isequal(I,[])
msgbox(Belum ada gambar!,Peringatan,warn);
else
PSF=fspecial(unsharp);
A=imfilter(I,PSF,replicate);
set(proyek.figure1,CurrentAxes,proyek.axes2);
set(imshow(A));
set(proyek.axes2,Userdata,A);
redo_Callback(hObject, eventdata, handles);
end
&#x &;#8212; Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
&#x h;Object handle to pushbutton3 (see GCBO)
ventdata reserved - to be defined in a future version of MATLAB
&#x h;andles structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
[namafile,direktori]=uiputfile({*.jpg;*.*},Simpan Citra);
I=get(proyek.axes2,Userdata);
imwrite(I,strcat(direktori,namafile));