Saturday, June 11, 2016

Musim Epub pada Kaum "XYZ"

Mukadimah

Sebagaimana disebutkan di sini, secara umum, saat ini kita bermasyarakat bersama generasi X, Y, dan Z. Teori generasi ini bersandar pada tahun kelahirannya: generasi X terlahir pada 1965-1980, generasi Y pada 1981-1994, dan generasi Z terlahir pada 1995-2010, dengan perwatakan dan ciri-cirinya seperti diuraikan pada tautan tersebut. Silakan Anda lihat juga tayangan berikut ini.

 
Ringkasnya, saat ini, kita dikelilingi oleh "makhluk" penggila internet. Banyak hal dikemas dengan ringkas sehingga mudah di akses di mana pun, kapan pun, melalui internet. Jari-jemarinya lebih sering dan lebih akrab dengan tombol-tombol pada gadget (handphone, smartphone, laptop) daripada bersentuhan dengan kulit tangan seseorang atau benda/barang lainnya.
Di antara yang dikemas ringkas itu adalah sumber bacaan. Yang semula berupa lembaran-lembaran kertas berbentuk buku, majalah, koran, dll, sekarang berganti bentuk menjadi buku digital dengan beragam bentuk pula: pdf, swf, epub, mobi, kindle, dll. Nah, pada tulisan ini saya akan mengulas salah satunya, yaitu epub.

Sigil

Kecenderungan itu sebentuk keniscayaan yang mewabah ke seluruh penjuru dunia dan merasuki bagian-bagiannya, termasuk dunia pendidikan. Pada kekinian ini, Pemerintah Indonesia melalui Departemen Pendidikan dan Kebudayaan beserta unsur-unsur terkait juga melaksanakan pendidikan dan pelatihan (diklat) yang berkaitan dengan materi tentang kelas maya dan buku digital. Salah satu perangkat lunak untuk membuat buku digital adalah Sigil (yang terbuka dan gratis).
Salah satu alur kerja dalam pembuatan buku digital (epub) oleh Sigil adalah sebagai berikut.
  1. Naskah/dokumen ditulis oleh pengolah kata (microsoft word atau sejenisnya)
  2. Hasil dari tahap 1 kemudian disimpan sebagai berkas *.html dengan opsi Web Page, Filtered
  3. Berkas *.html itu selanjutnya dibuka oleh Sigil untuk disunting menjadi suatu "buku" berbentuk epub.
Penyuntingan di dalam Sigil dilakukan, terutama, dalam bentuk "pengkodean" HTML. Oleh karena itu diperlukan sedikit pemahaman tentang hal itu. Selebihnya menjadi mudah karena Sigil telah menyediakan tombol-tombol menu berkaitan dengan tata letak halaman dan tata naskah. Termasuk dalam bagian penyuntingan ini adalah daya tarik Sigil, yaitu (memiliki kemampuan untuk) menyisipkan audio atau video (bila diperlukan). Dengan demikian, selain teks, epub juga dapat memuat media audio atau video. 




$\mathbf{\LaTeX}$ 

Berita buruknya, Sigil tidak menghasilkan epub yang baik bila naskah yang disusun itu memuat rumus (equation) karena (pada epub yang dihasilkannya) equation-equation itu menjadi "berantakan". Masalah ini hanya dapat diatasi oleh $\small\LaTeX$!
Ada beberapa pilihan untuk hal ini, tetapi pada umumnya rumit! Hehehe.... 
Saya ambil cara termudah. Saya tambahkan script dari MathJax berikut ini ke dalam pengkodean HTML pada naskah yang disunting dalam Sigil.

<script type="text/x-mathjax-config">
      MathJax.Hub.Config({
        TeX: {extensions: ["cancel.js"]},
        tex2jax: {
          inlineMath: [ ['$','$'], ['\\(','\\)'] ],
          processEscapes: true
        }
      });
    </script>
<!--?xml version="1.0" encoding="utf-8"?-->

Script itu memenuhi keperluan penulisan equation yang sederhana (dasar). Untuk lingkup perintah (environment) seperti cases, align, dan aligned, saya gunakan Pandoc (dari LaTeX ke HTML) dan hasilnya saya cantumkan ke dalam naskah yang disunting tersebut.
Perlu diketahui, meskipun berbagai peramban (browser) menyediakan alat untuk membaca berkas epub, tetapi alat itu tidak mampu menampilkan isi berkas epub yang memuat equation. Oleh karena itu, sebagai contoh, silakan Anda membaca epub ini melalui pembaca epub (Calibre, Adobe Digital Edition, STDU Viewer, dll) pada komputer atau smartphone Anda.

Penutup

Mungkin ada tersisa pertanyaan, "Mengapa memilih epub, bukan yang lain?". Di antara alasannya adalah berkas epub itu ringan, ukurannya sangat kecil, bersifat multiplatform, dan dapat dibuka oleh beragam jenis perangkat.
Demikian semoga tulisan ini bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2016

Tuesday, June 7, 2016

Desktop Publishing

Mukadimah

Memang belum ada terjemahan baku untuk istilah desktop publishing (DTP), tetapi maknanya adalah suatu cara untuk menerbitkan sendiri beberapa jenis cetakan dengan menggunakan komputer pribadi dan pencetak (printer). Cara ini, secara umum, memerlukan dua prasyarat, yaitu keterampilan (skill) penggunanya dan software yang digunakan. Jenis cetakan yang dapat dibuat adalah brosur, kartu nama, formulir, kalender, piagam/sertifikat, daftar riwayat hidup (CV), sampul CD/DVD, amplop, pamflet (flyer), kartu ucapan, kartu undangan, surat, logo, daftar menu makanan, suratkabar, kartu pos, dan poster. Mari kita lihat dulu contoh hasilnya berikut ini.



Bagaimana, bagus bukan? Lalu, apa kaitannya dengan $\small\LaTeX$? Apakah itu hasil dari $\small\LaTeX$? Tentu bukan, itu bukan hasil dari $\small\LaTeX$, melainkan hasil dari software DTP.
Ini hanya soal rasa! Bahwa $\small\LaTeX$ memiliki kemampuan untuk membuat itu, tetapi (dalam hal tertentu) kita juga punya pilihan ini untuk bekerja secara "instant".

Apa yang Harus Dilakukan?

Seperti dapat Anda lihat di sini, cukup banyak software desktop publishing (DTP) yang tersedia, baik yang gratis (open source) maupun yang berbayar. Software DTP bersifat layaknya pengolah kata, yaitu "apa yang dilihat, itu yang didapat" (WYSIWYG). Teks dituliskan dalam pengolah kata, sedangkan bentuk gambar terbaik yang digunakan adalah Scalable Vector Graphics (SVG).
Karena prasyarat di atas, maka hasil cetak yang baik tentu bergantung pada keterampilan penggunanya dalam menata halaman cetakan. Meskipun demikian, sebagai "penolong", tersedia pula beberapa selingkung (template) yang siap untuk digunakan sesuai dengan keperluannya. Pada contoh di atas, saya juga menggunakan salah satu selingkung yang tersedia.
Sebagai pemula, saya pilih PagePlus Starter Edition ketika mengawali ini. Anda dapat memperoleh software itu di situ. Tentu dengan fitur yang terbatas, tetapi 100% gratis dan hanya memerlukan alamat surel (email) untuk menerima nomor seri dari software tersebut.
Nah, untuk gambar, tetaplah hasil dari $\small\LaTeX$ yang terbaik. Saya mengubahnya dari PDF ke Portable Network Graphics (PNG) oleh FastStone Capture, kemudian mengubahnya menjadi SVG oleh vector magic. Software vector magic dapat Anda unduh di sana (25MB).
Selain itu, Anda dapat mencoba software desktop publishing gratis (open source) lainnya, yaitu Scribus.


Penutup

Nah, "tanpa $\small\LaTeX$", sekarang Anda dapat mencetak sendiri dokumen dengan kualitas yang baik. Untuk pengguna $\small\LaTeX$, setidaknya, ini menjadi pilihan untuk membuat sampul dokumen. Untuk hal ini, mungkin masih diperlukan lagi software PDF yang memiliki kemampuan untuk menggabungkan (combine) halaman-halaman PDF yang sudah dibuat. 
Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2016

Thursday, June 2, 2016

Memuat Berkas *.swf pada Tulisan di Blog

Mukadimah

Senang sekali akhirnya, setelah beberapa hari mencari cara dalam jaringan, akhirnya berhasil juga menampilkan berkas *.swf pada tulisan ini, seperti tampak di bawah ini.


Ternyata harus dilakukan di luar jaringan dan pada tulisan ini saya memilih dropbox sebagai tempat penyimpan berkasnya.

Bagaimana Caranya?

  1. Kita buat dulu berkas *.swf. Dalam hal ini saya mengubahnya dari berkas *.pdf dengan menggunakan pdf2swf. Anda dapat mengunduhnya di sini (gratis), memasangnya pada komputer, kemudian menggunakannya untuk membuat berkas *.swf.
  2. Unggah berkas *.swf tersebut ke dropbox  (Sebagai contoh, berkas di atas bernama garudapancasila.swf). 
  3. Salin kode embed ini:

    <iframe frameborder="0" height="600" src="tautan berkas dari dropbox" width="825"></iframe>

    kemudian salin tautan dari berkas *.swf di dropbox tadi dan ganti teks merah itu oleh tautan tersebut. Tetapi, hapus teks "?dl=0" dan gantilah "www" oleh "dl" sehingga menjadi seperti ini

    <iframe frameborder="0" height="600" src="https://dl.dropbox.com/s/18dq3e6u6z0nmxl/garudapancasila.swf" width="825"></iframe>

  4. Aturlah nilai ketinggian (height) dan lebar (width) sesuai dengan ukuran pada halaman blog Anda. Simpan dulu, kemudian lihat hasilnya.

Penutup

Tentu saja cara ini merupakan satu pilihan ketika, dengan berbagai pertimbangan, kita akan menunjukkan kepada pembaca suatu dokumen yang kita miliki.
Demikian semoga bermanfaat.

Adjie Gumarang Pujakelana 2016

Wednesday, June 1, 2016

Kalender Pendidikan Tahun Pelajaran 2016/2017

Hari ini, 1 Juni 2016, saya baru menerima Kalender Pendidikan 2016/2017 dari Dinas Pendidikan Nasional Kabupaten Sumbawa, seperti tampak di bawah ini. 



Untuk kegiatan-kegiatan akademik lainnya (dalam lingkungan sendiri) memang masih memerlukan penandaan baru.

Bagaimana dengan kalender pendidikan yang berlaku di tempat Anda?
Demikian semoga bermanfaat.

Adjie Gumarang Pujakelana 2016

Monday, May 30, 2016

Menghitung Hari Bersama Date Number

Mukadimah

Mungkin ini bukanlah hal baru bagi Anda yang sudah terbiasa bekerja dalam Excel, seperti tampak pada gambar di samping. Masalahnya, dalam tulisan ini, kita akan melakukan perhitungan tentang jarak (rentang waktu) antara dua tanggal (hari) dalam $\small\LaTeX$ yang hasilnya termuat sebaris (inline) dengan teks pada naskah/dokumen yang kita tulis.

Dalam hal ini kita bekerja dalam selingkung (template). Yang pertama saya pinjam dari Steven B. Segletes, seorang ahli di forum, yang menunjukkan cara berhitung rentang waktu antara dua tanggal, dalam hitungan hari, jam, dan menit. Yang kedua saya pinjam dari Martin Scharrer, seorang ahli di forum, yang menunjukkan cara berhitung rentang waktu antara suatu tanggal hingga hari ini, dalam hitungan tahun dan bulan.

Kedua selingkung itu sama-sama menggunakan paket utama datenumber, hanya saja untuk yang kedua memerlukan tambahan paket calc.

Perhitungan Rentang Waktu (Hari, Jam, Menit) di Antara Dua Tanggal

Berapa hari, berapa jam, berapa menitkah rentang waktu antara tanggal 12 Oktober 2015 pkl. 11.30 am hingga tanggal 2 Mei 2016 pkl. 1.20 pm?
Untuk menghitungnya kita memerlukan penetapan beberapa perintah baru sebagai berikut.
\gdef\mornaft{}

\def\xfoo#1:#2 #3m#4\relax{(#1)*60+#2\if p#3+720\fi\ifnum#1=12-720\fi}

\newcommand\ampm[1][T]{%
\if T#1%
 \def\numfoo##1##2{%
  \the\numexpr(\expandafter\xfoo##2\mornaft\relax)-%
    (\expandafter\xfoo##1\mornaft\relax)\relax}%
\else%
 \def\numfoo##1##2{%
  \the\numexpr(\expandafter\xfoo##2 am\relax)-%
    (\expandafter\xfoo##1 am\relax)\relax}%
\fi
}
\ampm

\def\barr#1#2{%
  \edef\tmp{\the\numexpr((\numfoo{#1}{#2})-(30))/60\relax}%
  \ifnum\tmp<0 addtocounter="" barm="" barr="" d="" dan="" datenumber="" edef="" else="" fi="" hari="" if="" ifnum="" jam="" m="" menit="" mydays="" mystartdate="" newcommand="" newcounter="" numexpr="" numfoo="" relax="" setcounter="" setdatenumber="" span="" the="" themydays="" timediff="" tmp="" value="">
Kemudian dalam penggunaannya kita tuliskan
\timediff
{2015}{10}{12}{11:30 am}
{2016}{5}{2}{01:20 pm}
Misalnya, di dalam teks kita tulis
Rentang waktu antara tanggal 12 Oktober 2015 pkl. 11.30 am hingga tanggal 2 Mei 2016 pkl. 1.20 pm adalah \textbf{
\timediff
{2015}{10}{12}{11:30 am}
{2016}{5}{2}{01:20 pm}
}.
maka akan menghasilkan 
Rentang waktu antara tanggal 12 Oktober 2015 pkl. 11.30 am hingga tanggal 2Mei 2016 pkl. 1.20 pm adalah 203 hari, 1 jam, dan 50 menit.

Perhitungan Rentang Waktu (Tahun, Bulan) di Antara Suatu Tanggal Hingga Hari ini.

Bila Anda mulai bekerja selaku Pegawai Negeri Sipil (PNS) pada 5 Maret 1992, berapa lamakah masa kerja Anda hingga saat ini?
Dengan menambahkan paket calc, kita memerlukan penetapan perintah baru sebagai berikut.
\newcounter{datetoday}
\newcounter{diffyears}
\newcounter{diffmonths}
\newcounter{diffdays}

\newcommand{\difftoday}[3]{%
      \setmydatenumber{datetoday}{\the\year}{\the\month}{\the\day}%
      \setmydatenumber{diffdays}{#1}{#2}{#3}%
      \addtocounter{diffdays}{-\thedatetoday}%
      \ifnum\value{diffdays}>0
        \def\diffbefore{in }%
        \def\diffafter{}%
      \else
        \def\diffbefore{}%
        \def\diffafter{}%
        \setcounter{diffdays}{-\value{diffdays}}%
      \fi
      \setcounter{diffyears}{\value{diffdays}/365}%
      \setcounter{diffdays}{\value{diffdays}-365*\value{diffyears}}%
      \setcounter{diffmonths}{\value{diffdays}/30}%
      \setcounter{diffdays}{\value{diffdays}-30*\value{diffmonths}}%
      %
      \diffbefore
      \ifnum\value{diffyears}=0
      \else
        \ifnum\value{diffyears}>1
            \thediffyears\space tahun,
        \else
            \thediffyears\space tahun,
        \fi
      \fi
      \ifnum\value{diffmonths}=0
      \else
        \ifnum\value{diffmonths}>1
            \thediffmonths\space bulan
        \else
            \thediffmonths\space bulan
        \fi
      \fi
      \diffafter
}
Kemudian dalam penggunaannya kita tuliskan
\difftoday{1992}{03}{05}
Misalnya, di dalam teks kita tulis
Saya telah bekerja selaku PNS sejak 5 Maret 1992, maka masa kerja saya hingga saat ini adalah \textbf{
\difftoday{1992}{03}{05}
}
maka akan menghasilkan
Saya telah bekerja selaku PNS sejak 5 Maret 1992, maka masa kerja saya hingga saat ini adalah 24 tahun, 3 bulan.

Penutup

Kita hanya perlu mencatumkan paket dan perintah tersebut, sesuai dengan perhitungan yang diinginkan, di dalam mukadimah (preamble) dari dokumen yang kita buat. Hal-hal lainnya, seperti jenis huruf dll, mengikuti keperluan dari dokumen itu.

Demikian semoga bermanfaat.

Adjie Gumarang Pujakelana 2016

Saturday, May 28, 2016

Selingkung (Template) Kalender Pendidikan

Mukadimah

Menjelang bulan Juli pasti Bapak/Ibu guru disibukkan oleh berbagai persiapan dalam menghadapi tahun pelajaran baru. Di antaranya adalah membuat dokumen program/perencanaan pembelajaran, termasuk di dalamnya kalender pendidikan. Saat tulisan ini dibuat, tentu kalender pendidikan tahun pelajaran 2016/2017 belum diterbitkan oleh dinas pendidikan atau unit instansi. Oleh karena itu, sebagai contoh, kalender pendidikan dalam tulisan ini mengacu pada kalender pendidikan tahun pelajaran 2015/2016 yang berlaku pada instansi tempat penulis bertugas.
Perhatikan gambar di atas. Pernahkah Anda menemukan (atau membuat) kalender pendidikan semacam itu? Dalam tulisan ini akan diulas tentang cara membuat kalender pendidikan itu dalam kelas dokumen Exam dengan menggunakan paket TikZ.

Kepala dan Kaki

Inilah alasan penulis menggunakan kelas dokumen exam, karena memerlukan keterangan dokumen pada kepala dan kaki halaman dan itu sudah tersedia di dalamnya. Untuk keperluan ini kita memerlukan paket tikzpagenodes. Kalender ini termuat cukup pada satu halaman, oleh karena itu perintah kepala dan kakinya hanya untuk halaman pertama. (Tentu saja, demi keselarasan dokumen, selingkung ini pun dapat digunakan untuk membuat dokumen program tahunan, program semester, dll.)
Pada dasarnya, pada kepala halaman, kita membuat suatu persegi panjang yang dibubuhi "keterangan" di dalamnya. Sebagai pilihan, penulis isi persegi panjang itu oleh warna dan teks juga diwarnai putih.
\firstpageheader{}{
\begin{tikzpicture}[remember picture,overlay,line width=.8pt,text width=20.3cm,text height=.6cm]
\node[rectangle,font=\color{White}\bfseries\Large,fill=DarkOrange] at (-3.85,0) (atas) {\hfill Kalender Pendidikan};
\end{tikzpicture}
\vfill
}
{
\begin{tikzpicture}[remember picture,overlay,line width=.8pt,text width=7.3cm,text height=.5cm]
\node[rectangle,font=\color{White}\bfseries\Large,fill=Black] at (-3.8,0) (atas) {SMK Negeri 2 Sumbawa Besar};
\end{tikzpicture}
\vfill
}
Pada kaki halaman, kita buat ruas garis dan pada pojok kanannya kita buat "belah ketupat" (diamond) yang diisi oleh nomor halaman (untuk kesinambungan dengan naskah/dokumen lainnya).
\firstpagefooter{}{
\begin{tikzpicture}[remember picture,overlay,line width=.8pt]
\node[diamond,draw,font=\small] at (current page footer area.south east) (dia) {\thepage};
\draw ([xshift=1pt]dia.west) -- (current page footer area.south west);
\end{tikzpicture}
}{} 
%\firstpageheadrule
Karena kita membuat pengaturan sendiri untuk kepala halaman, maka garis pada kepala halaman yang telah disediakan oleh paket exam kita tiadakan.

Pengaturan Kalender

Kalender ini berbentuk memanjang/mendatar (landscape) dan dibuat oleh paket TikZ. Untuk keperluan ini kita memerlukan beberapa paket dan kepustakaan TikZ sebagai berikut.
\usepackage{tikz} 
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{calendar}
\usepackage{pdflscape}
Seperti tampak pada gambar di atas, kalender tersebut diatur per bulan dengan menyertakan nama bulan, tahun, dan hari di atasnya. Untuk nama hari harus ditetapkan tersendiri ke dalam Bahasa Indonesia karena digunakan dalam keseluruhan kalender itu. Hal-hal tersebut diperintahkan oleh makro sebagai berikut.
\makeatletter%
\tikzoption{day headings}{\tikzstyle{day heading}=[#1]}
\tikzstyle{day heading}=[]
\tikzstyle{day letter headings}=[
    execute before day scope={ \ifdate{day of month=1}{%
      \pgfmathsetlength{\pgf@ya}{\tikz@lib@cal@yshift}%
      \pgfmathsetlength\pgf@xa{\tikz@lib@cal@xshift}%
      \pgftransformyshift{-\pgf@ya}
      \foreach \d/\l in {0/Sen,1/Sel,2/Rab,3/Kam,4/Jum,5/Sab,6/Min} {
        \pgf@xa=\d\pgf@xa%
        \pgftransformxshift{\pgf@xa}%
        \pgftransformyshift{\pgf@ya}%
        \node[every day,day heading]{\small\l};%
      } 
    }{}%
  }%
]
\makeatother%
Sedangkan nama bulan dan tahun berupa teks yang dituliskan secara langsung sesuai dengan bulannya.

Pengaturan dan Penandaan Kalender pada Tiap Bulan

Kalender untuk tiap bulannya dibuat oleh gambar TikZ sebagai berikut.
\begin{tikzpicture}[opsi]
\calendar (mycal) [opsi]
....<perintah>
\end{tikzpicture}
Untuk opsi pada gambar TikZ, penulis hanya mengatur skala dan bentuk huruf.
scale=1,font=\scriptsize\bfseries
Pada opsi untuk perintah kalender kita cantumkan penanggalan (dates): tahun-bulan-hari, tampilan mingguan (week list), peletakkan nama bulan, nama bulan, dan pengaturan hari. Sebagai contoh, berikut ini penetapan opsi untuk bulan Juli.
\calendar (mycal) [
    dates=2015-09-01 to 2015-09-30,
    week list,month label above centered,
    month text=\normalsize\textcolor{black}{September 2015}, 
    day yshift = 0.6cm,day xshift=.9cm,
    day letter headings,
    every month/.append style={yshift=-.25cm}
                ]
Perintah-perintah berikutnya berkenaan dengan penandaan untuk hari-hari tertentu yang bersesuaian dengan hari libur umum, hari libur nasional, dan kegiatan akademik di sekolah. Secara umum, hari Minggu itu libur maka pada bagian <perintah> kita cantumkan
if (Sunday) [red];
Selanjutnya pada hari-hari tertentu lainnya penulis lingkari dengan pengisian warna berbeda-beda pada tanggal yang bersangkutan. Misalnya,
\fill[biruku,fill opacity=0.5] (mycal-2015-07-01) circle (7pt);
\fill[Turquoise,fill opacity=0.5] (mycal-2015-07-02) circle (7pt);
\fill[Green,fill opacity=0.5] (mycal-2015-07-06) circle (7pt);
Setelah semua hari-hari tertentu itu ditandai semacam itu, selanjutnya keterangan untuk penandaan itu kita perintahkan di bawah/setelah lingkup perintah (environment) gambar  TikZ tersebut sebagai berikut. 
\tikz\path[fill=biruku] (0,0) circle (3pt); Libur puasa\: 
\tikz\path[fill=Green] (0,0) circle (3pt); Awal masuk sekolah\\
\tikz\path[fill=Turquoise] (0,0) circle (3pt); Masa Orientasi Siswa
Demikian pula opsi-opsi dan perintah-perintah yang dicantumkan pada bulan-bulan selanjutnya.

Penutup

Ulasan di atas memang hanya mencakup bagian-bagian pokok dalam penyusunan kalender tersebut. Pengkodean selengkapnya dapat Anda unduh di sini.
Demikian semoga bermanfaat.

Adjie Gumarang Pujakelana 2016

Thursday, May 19, 2016

Bunga Rampai Masalah Matematika

Tayangan ini hasil dari FlipSnack.
Bagaimana menurut Anda?

Adjie Gumarang Pujakelana 2016


Related Posts Plugin for WordPress, Blogger...