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

5 comments:

Related Posts Plugin for WordPress, Blogger...