Jika Ingin Dibutuhkan, Jadilah Server yang Baik

Yang pernah belajar jaringan pasti mengenal istilah client-server dan peer-to-peer. Istilah yang menggambarkan jenis hubungan antara satu titik/perangkat dengan perangkat lainnya yang biasanya sebuah komputer. Server yang merupakan komponen utama jaringan client-server memberikan layanan-layanan yang sangat dibutuhkan oleh client. Di dalam literatur komputasi, server cukup unik, di satu sisi sebagai pemimpin dan raja, di sisi lain memberikan layanan-layanan kepada bawahannya, dalam hal ini client. Memimpin tetapi juga melayani, alias sebagai pelayan.

Saya termasuk generasi X (generasi yang berusia 38-53 tahun ketika tulisan ini dibuat) yang sempat mengalami masa krisis ekonomi di tahun 98. Jangankan memperoleh pekerjaan, yang sudah bekerja saja banyak yang menganggur. Sempat beberapa kali melamar pekerjaan, tetapi perusahaan-perusahaan yang dituju “tidak membutuhkan”. Artinya tidak bisa membutuhkan “layanan” dari saya, atau setidaknya sudah ada orang lain yang terpilih. Ada sedikit paradox waktu itu, ketika negara krisis, sejatinya membutuhkan pelayan=pelayan yang bisa mengurangi atau mengatasi krisis, tetapi banyak tenaga-tenaga muda yang tidak bisa/berkesempatan melayani. Waktu berjalan, akhirnya beberapa lembaga membutuhkan layanan saya, dari kampus hingga perusahaan-perusahaan.

Jaman berubah, era dimana informasi tidak/belum berkembang cukup baik di tahun 90-an menjadi era dimana informasi datang secepat kilat. Bila suatu hal butuh beberapa hari untuk tersebar, saat ini hanya dalam hitungan detik bisa menyebar. Tentu saja jika “hal” tersebut dibutuhkan orang banyak. Lembaga yang bisa melayani kebutuhan akan menjadi kuat, sebaliknya yang abai terhadap pelayanan akan tergusur. Era itu saat ini dikenal dengan istilah “disrupsi”. Komplain, keterlambatan, dan kekecewaan-kekecewaan lain yang dirasakan konsumen akan berakibat fatal. Jangankan bisnis yang penuh saingan, bisnis yang tanpa saingan pun akan hancur karena muncul jenis bisnis baru yang memenuhi aspirasi para konsumen.

Beberapa perusahaan bisnis yang saat ini eksis, merupakan perusahaan-perusahaan yang pernah trauma dengan krisis ekonomi. Beberapa bisa eksis bahkan bergerak maju karena permintaan dan suplier yang memang berlebihan dan murah waktu itu (tenaga kerja). Misalnya kampus-kampus, bahkan sangat membutuhkan tenaga pengajar. Saya sendiri mengalami masa di mana siangnya bekerja, malamnya mengajar di kampus. Prinsipnya tetap sama, ketika ada permintaan layanan, ada pula yang menyediakan/menawarkan.

Pertarungan Tak Terhingga (Infinity War)

Ada dua jenis pertarungan, terhingga dan tak terhingga. Contoh pertarungan terhingga adalah pertandingan sepakbola. Ketika waktu habis dan satu tim unggul selisih gol, maka pertarungan berakhir. Di sini dalam kompetisi persaingan sudah jelas, yaitu antar klub. Tetapi dalam bisnis, pertarungannya adalah tak terhingga. Tidak ada yang menang dan kalah, melainkan tetap bermain atau berganti permainan. Bangkrut pun bukan kalah, karena pemainnya bisa bermain lagi, tetepi tidak di pertandingan yang sama. Ketika instagram diambil alih oleh Facebook, instagram tidak bisa dikatakan kalah, melainkan pemilik lamanya berganti permainan. Perhatikan saat ini banyak institusi pendidikan yang merger atau berganti pemilik. Di sini tidak bisa dikatakan kalah, melainkan pemilik lama berganti permainan, alias tidak tertarik lagi memainkan laga di pertandingan yang sama (mengelola kampus)

Dalam pidato-nya di Bali, presiden Jokowi mengingatkan dunia agar janganlah seperti “game of throne” dimana pertandingan bersifat saling menaklukan seperti pertandingan terhingga. Satu untung berarti yang lain rugi. Padahal jika memakai prinsip jaringan komputer client-server jika ada yang membutuhkan maka perlu ada yang melayani. Client itu sendiri sejatinya adalah server bagi pengguna/user yang memakai piranti tersebut. Bagi rekan-rekan yang bekerja, selalu ingat prinsip melayani tersebut. Anda melayani dan sekaligus juga membutuhkan layanan orang lain. Anggaplah pertandingan tak terhingga di perusahaan tempat Anda bekerja. Jangan anggap jabatan yang diturunkan atau bahkan dipecat sebagai kekalahan, melainkan berhenti dan melanjutkan permainan di medan pertandingan menarik lainnya, selama nafas masih ada. Bisa jadi itu merupakan arahan tuhan agar kita berganti permainan, atau setidaknya mengarahkan ke tangga lainnya untuk maju, alias tidak “ngono-ngono thok” (gitu-gitu aja). Bagaimana agar bisa optimal dalam melayani? Tidak ada cara lain dengan terus “mengasah pedang” dan “melatih jurus-jurus” layaknya seorang samurai. Sehingga lebih optimal melayani dan client puas, yuk jadi server yang handal.

 

Iklan

Membuat Kunci Komposit

[basis.data|akuntansi|lab.software|pert.4]

Kunci komposit adalah kunci yang merupakan gabungan dari beberapa field. Misalnya mahasiswa yang mengambil beberapa kelas mata kuliah dan kelas mata kuliah yang memiliki beberapa mahasiswa. Hal itu akibat dari hubungan/relasi Many-to-Many yang mengharuskan dibentuk satu tabel baru (Lihat Post sebelumnya). Untuk membuat kunci komposit pada Ms Access, gunakan SHIFT ketika menyorot field-field yang akan dijadikan primary key. Setelah itu tekan simbol key.

Instal Lex and Yacc untuk Praktikum Teknik Kompilasi

[tek.kompilasi|tek.informatika|s.103|pert.6]

Compilers and language atau yang di Indonesia dikenal dengan mata kuliah teknik kompilasi merupakan materi dasar ilmu komputer, teknik informatika atau sistem komputer. Isinya adalah seluk beluk bagaimana compiler bekerja dari saat scanning, parsing, hingga menghasilkan output dalam bahasa mesin (komputer).

Peran Kompiler

Dahulu, teori-teori kompilasi yang berasal dari teori automata dan grammar dapat diibaratkan “fardhu kifayah”. Hanya segelintir yang tertarik, karena fokusnya adalah menciptakan compiler yang handal dan interaktif, dimana tiap kesalahan dapat diketahui letak kesalahannya. Level mahasiswa doktoral yang biasanya mengutak-atik bidang ini.

Namun saat ini dengan makin memasyarakatnya bidang pemrograman, para pemerhati kompiler berusaha membuat compiler yang bahkan mensuport para anak-anak yang tertarik dengan bahasa pemrograman. Munculnya bahasa-bahasa baru seperti Groovy, Rust, Elixir, Go, Swift, Arduino, Kotlin, dan bahasa pemrograman untuk Android. Android sendiri sangat mensuport Kotlin yang merupakan bahasa pemrograman yang dirancang dalam rangka mengisi kelemahan-kelemahan Java.

Lex and Yacc

Lex yang merupakan Lexical Analyzer Generator bermaksud men-scan kode yang ditulis. Sementara pasangannya Yacc (yet another compilers compiler) berfungsi melakukan parsing berdasarkan grammar. Dengan lex and yacc ini kita dapat membuat kompiler sendiri yang akan memerintahkan komputer menjalankan instruksi sesuai keinginan kita. Misalnya jika dalam bahasa pemrograman rata-rata menggunakan kata “if-else”, maka kita bisa saja menggantinya menjadi “jika-maka” setelah mengaturnya dengan Lex and Yacc ini. Silahkan unduh sourcecode nya lewat Google, lalu instal.

Instalasi

Lex and Yacc dapat berjalan di banyak platform. Untuk mudahnya di sini akan kita coba pada Windows 10. Setelah memperoleh kode sumbernya, klik ganda hingga muncul informasi bahwa akan diinstal Lex and Yacc.

Tekan saja Next> untuk lanjut ke menu persetujuan. Tekan saja Agree.

Berikutnya, Lex and Yacc akan meminta folder tempat program diinstal. Arahkan sesuai dengan keinginan, atau biarkan secara default dengan menekan Next>.

Berikutnya instalasi menanyakan lokasi menu folder Lex and Yacc nantinya. Biarkan secara default saja.

Akhirnya setelah menekan tombol Install maka proses instalasi akan berjalan hingga selesai. Hanya butuh satu hingga beberapa menit.

Pastikan instalasi lengkap dan tombol Finish muncul. Centang jika ingin langsung menjalankan aplikasi ini.

Akan muncul konsol dos (CMD) ketika aplikasi ini berjalan. Tunggu sesaat.

Jika sudah muncul tampilan seperti gambar di bawah berarti Lex and Yacc sudah siap untuk digunakan. Silahkan cari tatacara penggunaannya, bahkan ada juga yang menyediakan sampel programnya. Selamat mencoba.

Menghitung Jumlah Kalimat dengan Regular Expression

[perolehan.inf|t.kom|lab.soft|per.4]

Jumlah kalimat dihitung berdasarkan jumlah stop indicator, dalam hal ini berupa simbol titik. Tentu saja ada beberapa kondisi khusus, misalnya ketika merepresentasikan sebuah bilangan, maka titik tidak dianggap sebagai stop condition. Termasuk juga untuk penunjukan bab atau referensi dalam tanda kurung.

Lanjutkan proyek sederhana perhitungan jumlah kata yang telah dibahas pada pertemuan yang lalu. Tambahkan sebuah tombol pushbutton dan edit text, masing-masing untuk perintah eksekusi dan mengeluarkan/mepresentasikan hasil eksekusi.

Fungsi Find

Silahkan ketik “help find” pada command window untuk mempelajari aturan penulisannya. Dengan melakukan kode di bawah ini pada fungsi Jumlah Kalimat = dapat diketahui lokasi dan jumlah titik yang dimiliki suatu string.

  • titik=find(handles.str==’.’)         %mencari lokasi karakter “.” berada
  • [baris,jlhtitik]=size(titik)            %mencari jumlah titik yang ditemukan
  • set(handles.edit3,’String’,jlhtitik)    %mengeluarkan jawab berapa banyak titik/sekaligus jlh kalimat

Perhatikan gambar di atas. Karena ada dua titik maka terhitung jumlah kalimatnya dua. Bagaimana jika ada titik yang ternyata bukan akhir sebuah kalimat, misalnya sub-bab atau angka decimal, dan lain-lain?

Fungsi Regular Expression (REGEXP)

Fungsi ini bermaksud mencari berdasarkan karakter (huruf per huruf). Fungsi ini digunakan ketika mencari kasus kusus jika ada angka dengan titik di dalamnya yang tidak dihitung sebagai stopping suatu kalimat.

  • titik=find(handles.str==’.’)            %menemukan karakter titik
  • [baris,jlhtitik]=size(titik)                %menghitung banyaknya titik
  • pat = {‘(\d)+[.]’};                    %keyword
  • angkatitik=regexp(handles.str,pat,’match’)    %mencari angka dengan titik
  • angka=angkatitik{1}                %mengeluarkan isi cell
  • [baris,jlhangka]=size(angka)            %menghitung berapa banyak angka-titik
  • jlhtitik=jlhtitik-jlhangka                %mengurangkan jlh titik
  • set(handles.edit3,’String’,jlhtitik)        %mengirim hasil pemrosesan teks

Instruksi pat={‘\d+[.]’) bermaksud mempersiapkan keyword fungsi regexp. Simbol \d+ maksudnya mencari angka desimal (simbol “d”) yang bersisian dengan titik (simbol “[.]”). Perhatikan titik harus dilingkupi dengan kurung kotak “[ ]” yang mengharuskan regexp menyamakan dengan karakter di dalam kurung tersebut, dalam hal ini titik.

Suatu string “Perhatikan gambar 3.2 di bawah ini.” jika menggunakan kode tambahan di atas akan menghasilkan jumlah kalimat yang tepat walaupun ada dua titik di sana karena titik yang berdekatan setelah angka dianggap bukan akhir kalimat. Tentu saja ada masalah jika string “Perhatikan gambar 3.”. Maka harus dibuat kode tambahan agar titik tersebut dianggap akhir kalimat, silahkan coba buat kode-nya sendiri untuk mengatasi hal tersebut.

Membuat Satu Halaman Landscape Pada Sebuah Naskah

[komputer1|psikologi|lab.soft|pert4]

Terkadang satu halaman karena berisi tabel yang melebar agar terlihat jelas dibutuhkan format landscape. Karena hanya satu lembar/page yang landscape maka diperlukan format section agar section lainnya tidak terpengaruh oleh format landscape-nya.

Menggunakan Fungsi Section Breaks

Format ini memisahkan satu section dengan section lainnya. Letakan kursor pada bab yang akan dibedakan section-nya. Lanjutkan dengan menu Page Layout Breaks Section Breaks dan lanjutkan memilih Next Page jika belum pindah halaman dan Continuous jika sudah pindah halaman.

Jika sudah selesai pastikan Section terpisah, misal section 1 dan section 2. Kemudian pada page/lembar berikutnya lakukan cara yang sama, sehingga section 2 yang akan landscape terpisah dengan section 1 dan section 2 yang portrait.

 

 

Kemudian lakukan hal yang sama untuk section 3. Jadi urutannya section-1, Section 2 dan section 3. Jika section 2 dirubah jadi landscape section 1 dan 3 tidak ikut landscape. Hanya saja perhatikan lagi format page number – nya. Selamat mencoba..

Menampilkan Matriks Pada GUI Matlab

Biasanya output ditampilkan pada GUI dengan memanfaatkan Edit Text. Namun jika data yang dihasilkan lebih dari satu maka pada Edit Text tersebut tidak muncul angka/hasil perhitungannya. Salah satu hasil perhitungan yang lebih dari satu angka adalah Matriks. Postingan ini sekedar menginformasikan bagaimana menampilkan matriks pada GUI yang kita buat.

Komponen Uitable

Misal kita memiliki satu matriks berukuran 2×2 yang akan ditampilkan dalam suatu GUI. Setelah sebuah matriks dimasukan, maka gunakan fungsi set untuk mengirimkan ke komponen uitable. Ketik kode berikut:

  • >> a=[1 2 ;3 4];
  • >> figure
  • >> t=uitable;
  • >> set(t,’Data’,a)

Akan dihasilkan sebuah matriks dalam GUI berikut ini:

    

Selanjutnya data yang ditampilkan pada Matriks di GUI bisa berupa hasil perhitungan Matlab. Sebagai contoh GUI di bawah ini menampilan matriks confusion saat testing. Semoga postingan singkat ini bermanfaat.

 

Melakukan Cropping Pada Citra

[peng.citra|t.komputer|lab.hardware|pert.4]

Terkadang untuk menangkap secara detil suatu permukaan diperlukan proses pemotongan/cropping. Sebagai contoh, lanjutan dari pertemuan 3 yang lalu, tambahkan satu tombol Crop Gambar.

Jika tombol “Crop Gambar” ditekan maka gambar hasil cropping akan ditampilkan pada axes2 di sebelah kanan. Dan jika tombol “Ekstrak Citra R-G-B” ditekan akan menghasilkan harga-harga R,G, dan B yang sudah ternormalisasi di tiga edit text di atasnya.

Cropping Image Pada Matlab

Pada Matlab, fungsi cropping dengan menggunakan fasilitas fungsi imcrop. Silahkan tekan “help imcrop” di command window untuk mengetahui format penulisan fungsi tersebut di kode yang akan dibuat.

  • x=uigetfile(‘*.jpg’);
  • data=imread(x);
  • size(data)
  • ans =
  • 423 644 3

Perhatikan ukuran data citra yang dibaca (lewat imread). Jika kita bayangkan dengan koordinat kartesians, maka panjangnya adalah 644 dan lebarnya adalah 423. Untuk panjang tidak masalah karena arahnya dari kiri ke kanan, hanya saja untuk lebar sedikit berbeda dengan koordinat kartesian. Di sini positif ke arah bawah. Jadi titik tengah gambar tersebut adalah panjang 322 dan lebar 211. Jika ingin mengambil lebar 50 dan panjang juga 50 maka region tersebut dari titik (297, 186) dan offset sebesar masing-masing 50 piksel. Masukan fungsi imcrop untuk memotong gambar.

  • >> data2=imcrop(data,[297 186 50 50]);
  • >> imshow(data2)

Perhatikan format penulisan cropping dimana dua angka terakhir merupakan offset dari titik dimana posisi awal crop dimulai. Untuk mengekstrak citra RGB silahkan gunakan kode di pertemuan 3 yang lalu. Selamat mencoba, semoga bermanfaat.