Kamis, 27 Desember 2012

List & plist pada Common Lisp


1. List



List adalah sebuah daftar dari data - data.
Misalnya : Oncom, 500gr, 2500.
Bayangkan sebuah tabel pada excel dengan row A sebagai judul tabel dan datanya dimulai pada row A2.



contoh list

Contoh :

>(list Oncom 500gr 2500)
(Oncom 500gr 2500)




2. plist



plist merupakan kependekan dari property list yang merupakan cita rasa lain dari metode membentuk sebuah list. Lucunya perintah yang digunakan sama saja dengan membentuk list biasa yaitu dengan LIST.
Perhatikan contoh berikut :



> (list :nama p3m4la5 :email abc@gmail.com :hobi melamun)
(:nama p3m4la5 :email abc@gmail.com :hobi melamun)

 

Jika sudah melihat perbedaanya, kemudian apa gunanya ?

Hal yang membuat plist lebih keren daripada list biasa adalah fungsi GETF. Perhatikan lagi contoh dibawah ini :

> (getf (list :nama "p3m4la5" :email "abc@gmail.com" :hobi "melamun") :email)
"abc@gmail.com"


bandingkan dengan cara mengakses list dengan metode pertama :

>(car (cdr '(oncom 500gr 2500)))
500GR

Selasa, 27 November 2012

Aksara Ngalagena

Untuk latihan, berikut ini daftar aksara ngalagena. Cobalah untuk menebak huruf - huruf tersebut. Untuk mengeceknya anda cukup mendekatkan kursor pada huruf huruf tersebut.

Mungkin pada internet explorer ilustrasi ini tidak akan berhasil. Untuk hasil maksimum silahkan menggunakan Opera, Chrome atau Firefox

Minggu, 18 November 2012

Aksara sunda ( konversi )



Menyambung ulasan di artikel yang lalu, silahkan dicoba konversi dari huruf latin ke aksara Sunda dibawah ini.

Untuk daftar aksara, sebagai panduan bagi anda silahkan klik disini.

Rabu, 14 November 2012

Inkscape animation

Gerakan kursor anda ke bagian kiri gambar ( blok gambar otak )
Let your cursor over left part of image

Guess what, flash or not ? 

Jika anda mengira ini komponen flash, saying sekali tebakan anda meleset. Karena ini merupakan file svg yang dibuat dengan Inkscape alias animasi inkscape

Saya baru belajar mengenai interaksi svg pada web dan ternyata menarik. Dengan menyisipkan beberapa kode ke dalamnya kita dapat membuat animasi sederhana pada web. Walaupun demikian, jangan berharap mendapat penjelasan rinci mengenai metode atau tutorial disini. Animasi diatas merupakan proyek animasi svg saya yang pertama, jadi pada dasarnya saya belum mengerti teknik – teknik seperti ini. Mungkin setelah beberapa kali percobaan kedepan, kita bisa berbagi kode atau metode animasi inkscape yang lebih keren. 

Sayangnya saya pun lupa untuk mencatat alamat – alamat situs referensinya. 

Tested on : 
Opera 11.64
Firefox 9.0.1
Chrome 17.0.963.56

Sabtu, 10 November 2012

Ebook reader untuk ponsel java


0. Mukodimah ebook reader


Membaca merupakan salah satu kegemaran saya, sayangnya harga buku kian hari kian meningkat. Bukan rahasia lagi jika harga sebuah buku akan mahal sekali.

Mulailah saya beralih ke internet. Membaca artikel - artikel yang menarik hingga mengunduh berbagai ragam bacaan dalam berbagai format. Timbul juga masalah lain, bahwa membaca PDF pun harus menggunakan komputer. Bisa juga sih menggunakan ponsel pintar tapi harganya lumayan juga, sedangkan yang saya miliki hanya ponsel java keluaran sekitar 4 tahun lalu.

Dengan keterbatasan tersebut pertamanya saya selalu browsing dengan opera mini dan menyimpan artikel - artikel tertentu untuk dibaca offline. Repotnya bahwa ekstensi file .obml sampai sekarang belum bisa saya baca di komputer. Padahal di kartu memori HP udah numpuk.

Suatu saat saya googling semacam ebook reader untuk ponsel java tetapi yang kira - kira cocok dengan ponsel jadul saya. Banyak sekali e-reader tetapi umumnya hanya cocok dengan ponsel keluaran terbaru. Nah saya menemukan aplikasi yang bagus bernama Albite reader.



1.  Bahan.


Saya mendapatkan aplikasi ini di getjar ( lihat link di bawah artikel ). Jika anda berminat silahkan mencari ke sana.


2. Test



Tak sabar rasanya untuk melakukan test. Pertama - tama saya sediakan file .txt pada ponsel saya. dan hasilnya :





Karena penasaran, saya pun mengetes membuka file html dan ternyata hasilnya OK. Mungkin lebih baik, karena file gambarnya pun bisa ikut ditampilkan.





3. Penutup



Bagi anda yang sedang mencari e-reder ada baiknya anda mencoba aplikasi ini. saya belum mencoba untuk membuka file PDF, tapi bagi saya bisa membuka file .html saja sudah memuaskan. Saya tinggal mengunduh buku - buku [ gratis ] versi online dan menancapkanya pada ponsel s40 kesayangan saya.

update : 08/04-14


Ebook reader ponsel java : alternatif lain

update : 03/01-13


Ternyata kerenya lagi, bisa juga digunakan untuk membaca format epub. Gimana mau coba ?

update 02/10-13

Link unduh :


http://m.albite.org/reader
 

Kamis, 08 November 2012

ROT13 dengan LISP

0. Mukodimah

Beberapa hari yang lalu saya iseng ngubrek - ngubrek arsip forum LISP. Dari sekian puluh ribu arsip saya menemukan hal yang menarik. Disebut menarik karena ini seperti game permainan kata tapi tidak terlalu sulit untuk ditela'ah.

Apakah itu ? Ialah ROT13.

Sekedar mengingatkan, bahwa ROT13 merupakan varian dari Caesar Cipher.

Misalnnya pada ilustrasi diatas terdapat sebuah piringan / roda caesar. Perputaran bagian dalam akan menghasilkan pasangan unik antara karakter bagian dalam dengan bagian luar. Nah pada ROT13 pergeseran dibuat sebanyak 13 karakter. Sehingga karakter A akan berpasangan dengan karakter N. Sesuai dengan rumus { Cipher = Plaintext + K } dimana K adalah pergeseran karakter.

Ringkasnya huruf A akan disandikan menjadi huruf N. Untuk permainan pramuka tingkat SD pasti akan menarik...... Contoh penerapan :

"Nu grealngn Nxh tnagrat frxnyv, fnlnat benat Ynva gvqnx gnh"


1. The code

Dari sekian banyak kode di arsip yang saya temukan, saya akan mengutip satu saja. Ingat, pepatah bilang banyak cara untuk menuju ke Roma. Kode ini miliknya Tiarnán Ó Corráin. Inilah kode / formula yang dimaksud :

(defconstant alphabet "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ")

(defun rot13/char (char)
  (if (alpha-char-p char)
      (char alphabet
            (mod (+ (position char alphabet) 26)
                 52))
      char))

(defun rot13 (string)
  (map 'string #'rot13/char string))

Belajar LISP paling dasar memang membosankan, ini merupakan contoh lain yang bisa dilakukan dengan bahasa pemrograman LISP supaya lebih menarik. Jadi inilah ROT13 dengan LISP.

Lihat bagian (mod (+ (position char alphabet) 26) 52)) dengan seksama.


2. Testing

Sebenarnya kalimat "Nu grealngn Nxh tnagrat frxnyv, fnlnat benat Ynva gvqnx gnh" diatas dihasilkan dengan kode ppada poin satu diatas. Tetapi sebagai prosedur tetap ada baiknya saya tampilkan sebuah ilustrasi seperti di bawah ini :




Nah sekarang yang menjadi persoalan bagaimana cara untuk memecahkan sandi ROT13 ini ? Pasti anda tau dong.... :)

Ya memang dimana ada proses enkripsi maka disitu harus ada proses deskripsi. Lebih jauh, kedua proses ini akan bertanding siapa yang lebih unggul sampai akhirnya manusia bosan sendiri. Tanpa teknik deskripsi [ yang tepat ] jangan harap anda bisa mengekstrak password windows XP teman atau bos anda hahaha

Senin, 05 November 2012

Inkscape in action

Meski judulnya Inkscape in action, bukan berarti saya mahir. Berikut iseng - iseng hasil belajar Inkscape.



Semuanya 100% menggunakan inkscape. Tool yang saya pergunakan untuk membuat efek - efek tidak lebih dari tool blur.

Saya biasanya menggunakan Inkscape sebagai rekreasi otak.... sehingga postingan kali ini masuk ke kategori serba - serbi saja.

Saya yakin anda lebih jago, bila berkenan tunjukan link ke karya anda pada kolom komentar sehingga saya bisa mengunjungi dan mempelajarinya.

Lihat latihan inkscape yang lain di ( another inkscape experiment ) :
http://myp3m4la5.blogspot.com/2012/11/gerakan-kursor-anda-ke-bagian-kiri.html

Kamis, 01 November 2012

Latihan LISP

Berikut ini merupakan ilustrasi cara LISP bekerja. Pertama, LISP akan membaca dari kiri sampai ujung terkanan. Kecuali jika terdapat eror, maka LISP akan berhenti sebelum sampai ke kanan. Kedua, Lisp akan mengeksekusinya dari kanan menuju ke kiri. Mungkin daripada balik lagi ke kiri bikin cape saja..... mendingan sikat saja dari kanan. :)


>( cons ( first '( a s k ))( cons 'juga ( rest '( a s k ))))
>( cons ( first '( a s k ))( cons 'juga '( s k )))
>( cons ( first '( a s k ))'( juga s k ))
>( cons '( a )'( juga s k ))
>( a juga s k )


Analogi lain seperti :


(2+4)*(5+6*3)    =(2+4)*(5+6*3)
        =(2+4)*(5+18)
        =(2+4)*(23)
        =(6)*(23)
        =138

Latihan LISP lanjutan posting kemarin.

Selain dengan fungsi FIRST dan REST, hasil yang sama juga bisa diperoleh dengan mengunakan fungsi CAR dan CDR. Entah kenapa saya diajarinya malah first & rest terlebih dahulu.

Baik, untuk latihan lisp kali ini, lakukan operasi CAR & CDR pada list - list berikut ini :

1. ( a b c )
2. ( x y z ( a b c ))
3. bakso
4. (( merah )(( putih )))
5. ( car ( car x ))
    jika x = list nomor 4

Sekaligus latihan fungsi CONS, biar rame.

Buatlah formula untuk membentuk list - list berikut ini dengan fungsi CONS :

1. ( aku ( sayang kamu ))
2. ( aku ( sayang ) kamu )
3. (( aku sayang ) kamu )
4. (( aku sayang kamu ))
5. ( aku sayang kamu )

jika :

    a. aku
    b. sayang
    c. kamu
    d. ( ) / NIL

    Contoh :
       
        ( cons a ( cons b ( cons c NIL ))) ........... <== bentuk formula yang diinginkan.
    untuk :
        ( cons 'aku ( cons 'sayang ( cons 'kamu NIL))) ..... eksekusi pada interpreter
   

Seperti game asah otak bukan ? Mari berlatih bersama....! jika terdapat hal yang salah silahkan hubungi saya :)

Contoh lain :
        ( cons 'a( cons ( cons 'b ( cons 'c NIL )) NIL ))

        Jika nilai - nilainya disubstitusi maka :
   
        (cons 'aku(cons(cons 'sayang(cons 'kamu NIL))NIL))

Rabu, 17 Oktober 2012

Fungsi FIRST dan REST


0. Mukodimah

Setelah oprek - oprek gambar dengan inkscape, mari kita lanjutkan pelajaran LISP. Belajar Lisp secara perlahan adalah gaya saya karena otak saya kurang encer :)

Banyak fungsi yang bisa digunakan untuk mengakses list. Tetapi fungsi yang akan kita pelajari saat ini adalah

* first
* rest

Sayang sekali fungsi ini mungkin tidak ada pada Autocad, setidaknya pada versi 2007. Jadi sebaiknya gunakan GNU Common LISP. Standarnya sih fungsi diatas ditulis dengan huruf kapital, hanya saja saya sedang malas....

Contoh hasil pada Autocad :

Command: ( first '( z x c ))
; error: no function definition: FIRST


Syntax :     ( first <list>)
                 ( rest <list>)

1. Percobaan

Buka Clisp-mu dan mainkan contoh berikut :

>  ( first ( x y z ))
*** - EVAL : undefined function X

Hal tersebut karena Lisp tidak mengenali X, dan menginformasikan bahwa X belum didefinisikan. Bandingkan dengan contoh berikut :

>  ( first ( quote ( x y z ))
> X

Inilah asal muasal tanda ( ' ) pada LISP. Karena umumnya kita malas untuk mengetik kata - kata panjang maka disingkat dengan tanda ( ' ). Ini dinamakan fungsi quote.



> ( first '( x y z ))
> X
> ( rest '( x y z ))
> ( Y Z )

Sudah mendapat gambaran ? Benar sekali, first akan menghasilkan elemen pertama dari sebuah list. Sedangkan rest membuang elemen pertama pada sebuah list.

2. Latihan

2.1    > ( first '( aku sayang kamu ))
         > AKU

2.2    > ( rest '( aku sayang kamu ))
         > ( SAYANG KAMU )

2.3    > ( rest ( rest '( aku sayang kamu )))
         > ( KAMU )

2.4    > ( first (rest '( aku sayang kamu )))
         > ( SAYANG )

2.5     > ( first ( rest ( rest '( aku sayang kamu ))))
          > KAMU

3. Latihan lanjutan

Umpamanya kita mempunyai sebuah list yang berisikan aku sayang kamu. Kemudian kita berubah pikiran dan ingin menyisipkan juga setelah aku sehingga hasilnya adalah aku juga sayang kamu.

( aku sayang kamu ) menjadi ( aku juga sayang kamu )

Berikut contoh yang saya kerjakan :

( cons ( first '( aku sayang kamu ))( cons 'juga ( rest '( aku sayang kamu ))))

Lebih mirip sebuah permainan susun kata bukan ? :)

Yep, memang demikianlah adanya. Saya yakin anda bisa membuat formula yang labih efisien daripada contoh yang saya berikan. Itulah salah satu contoh permainan kata pada LISP dengan fungsi - fungsi sederhana.

4. CMIIW

Semua ini adalah catatan pelajaran saya, sangat besar kemungkinan salah. Karena itu mohon koreksi dari anda.

Selasa, 16 Oktober 2012

Fill and stroke pada Inkscape


0. Mukodimah

Tujuan bagian ini untuk mengakrabkan istilah stroke and fill terutama bagi para pemula seperti saya.

Umumnya pada software pengolah vector [ vector editor ] isi dan cangkang [ fill & stroke ], warna merupakan elemen yang bisa diedit masing - masing.

Kesimpulan awalnya adalah suatu bentuk / shape dalam Inkscape ini bisa terdiri dari :

* Stroke & fill [ cangkang dan isinya ]
* Stroke saja [ cangkangnya saja ]
* Fill saja [ isinya saja ]

1. Eksekusi

Bagian utama fill & stroke ini adalah palet warna. Pada Inkscape umumnya berada di bagian bawah. Terlihat mencolok dengan deretan macam - macam warna.

Selain bagian utama tadi, terdapat pula propertis lain untuk 'dimainkan'. Berikut ini beberapa ilustrasinya.

  
Propertis lain



Propertis utama


Pada dasarnya semua menu terkumpul dalam satu shortcut [ ctrl + shift + F ]. Menu ini merupakan induk dalam permainan warna pada Inkscape.

Diantaranya mode warna  seperti RGB, CMYK dst. Gradient, Blur, Opacity, Stroke properties de el el karena itulah disebut menu fill and stroke.

2. Selanjutnya

Mari berlatih bersama……

Minggu, 14 Oktober 2012

Star tool Inkscape

0. Mukodimah

Berikut ni merupakan lanjutan dari seri mengenal Inkscape dasar. Saat ini kita akan menggunakan star tool ( create star and polygons ).
Shortcut : *

1. Percobaan





Seperti ilustrasi di atas, dengan mengganti nilai propertis star tool ini kita bisa mendapatkan berbagai macam bentuk yang menarik.

2. Kesimpulan

Tidak banyak hal yang bisa disimpulkan, hanya yakin bahwa anda bisa menemukan bentuk yang lebih menarik daripada yang bisa saya hasilkan.

Selamat mencoba.

Jumat, 12 Oktober 2012

Fungsi cons pada LISP


0. Syntax

            ( cons '<ekspresi> '<list> )

Cons pada lisp ini berfungsi untuk menambahkan ekspresi pada list setelahnya. Ingat format penulisannya harus ekspresi dulu kemudian diikuti list-nya.

1. Contoh

Buka Lisp mu dan ketikan pada promt :

> ( cons 'saya '( sangat lapar ))
> ( SAYA SANGAT LAPAR)
> ( cons 'x '(y z))
> ( X Y Z )
> ( cons 'hello NIL)
> ( HELLO )
>

2. Latihan

a. ( cons 'alamat (palsu))
b. ( cons alamat '(palsu))

Apa hasil dari kedua latihan tadi ?

Kamis, 11 Oktober 2012

Inkscape gradient

Untitled Document
Berikut adalah latihan gradient tool pada Inkscape.




Keterangan :

1. Buat sebuah persegi panjang ( shortcut : "F4" ), isi dengan warna misalnya #44AA00

2. Tool yang digunakan : gradient ( "ctrl+F1" atau cukup "G" ), pastikan linear gradient.

3. Klik edit pada propertis gradient > klik add stop. Kemudian pilih warna lain yang lebih terang.

Software : Inkscape 0.48.2 r9819 portable

Related Posts Plugin for WordPress, Blogger...