Posted by: Yohanes Andy Afriandi | January 9, 2012

Bilangan Fibonacci

Hello world…

Jadi inget masa kuliah, waktu itu mata kuliah algoritma dan pemrograman (Alpro). Pembahasan materi waktu itu adalah membuat bilangan deret fibonacci. Algoritma deret fibonacci adalah sebagai berikut :

Misalkan 2 nilai pertama pada deret fibonacci adalah 0 dan 1. Maka bilangan selanjutnya adalah merupakan penambahan bilangan sebelumnya dengan sebelumnya lagi. sebagai contoh, kita sudah mempunyai 2 nilai pertama di deret fibonacci yaitu 0 , 1. Maka bilangan berikutnya adalah 0 ditambah 1 dan terbentuklah bilangan baru yaitu 1. Deret barunya adalah 0,1,1. Deret berikutnya adalah 1 ditambah dengan 1, maka deret baru yang terbentuk adalah 0,1,1,2. begitu juga seterusnya.

contoh : 0, 1, 1, 2, 3, 5, 8, 13, 21

Selanjutnya saya iseng-iseng membuat source code nya di Java, tapi saya tidak menggunakan fungsi rekursif. Rekursif adalah fungsi yang memanggil dirinya sendirinya sendiri. Berikut source code fibonacci :

public class Fibonacci {

    //fungsi untuk melakukan bilangan fibonacci
    public void cetakFibonacci(int deret, int nilaiPertama, int nilaiKedua){
        for(int i=0 ; i<deret ; i++){
            System.out.print(nilaiPertama+" ");
            nilaiPertama = nilaiPertama + nilaiKedua;
            nilaiKedua = nilaiPertama - nilaiKedua;
        }
    }

    public static void main(String args[]){
        Scanner input = new Scanner(System.in);

        //variable String untuk menampung inputan dari user
        String jumlahDeret;
        String deretPertama;
        String deretKedua;

        //variable integer untuk menampung hasil konversi dari inputan
        int deret;
        int nilaiPertama;
        int nilaiKedua;

        //display user interface
        System.out.print("Jumlah deret : ");
        jumlahDeret = input.next();
        System.out.print("Nilai deret pertama : ");
        deretPertama = input.next();
        System.out.print("Nilai deret kedua :  ");
        deretKedua = input.next();
        System.out.print("\n");

        //konversi dari string ke integer
        deret = Integer.parseInt(jumlahDeret);
        nilaiPertama = Integer.parseInt(deretPertama);
        nilaiKedua = Integer.parseInt(deretKedua);

        //panggil fungsi fibonacy
        Fibonacci fibonacci = new Fibonacci();
        fibonacci.cetakFibonacci(deret, nilaiPertama, nilaiKedua);
    }

}

Penjelasan dari source diatas, jumlah deret bisa kite tentukan sendiri, dan 2 nilai pertama dapat kita tentukan.
Hasilnya adalah sebagai berikut:

Jumlah deret : 9
Nilai deret pertama : 0
Nilai deret kedua :  1

0 1 1 2 3 5 8 13 21

Sekian postingan saya, semoga bermanfaat.

Posted by: Yohanes Andy Afriandi | October 25, 2011

Sensasi Keripik Setan “Slondok Ngabret”

Hello world…

Beberapa saat lalu, saya mencicipi kripik setan yang dibawakan teman saya. Bagi yang belum tahu, keripik setan adalah istilah untuk keripik yang memiliki rasa pedas yang begitu luar bisa. Entah apa maksudnya dinamakan keripik setan, mungkin untuk orang yang memakannya akan menjadi seperti orang yang “kesurupan”, mengerikan, :( .

Merk keripik yang saya cicipi adalah Slondok Ngabret. Saya sendiri tidak tahu arti dari nama tersebut, yang jelas sensasi pedasnya begitu luar biasa(2 (dua) rasa digabung menjadi satu, yaitu pedas dan rasa jeruk limau). Saya juga tidak tahu, dari mana keripik ini berasal. Informasi lengkapnya, menyusul saja yaa. :d .

Slondok Ngabrettt

Pedes Gilaaaa

Sekian postingan saya, semoga bermanfaat. :)

Posted by: Yohanes Andy Afriandi | October 18, 2011

Kode Etik Informatika

Hello world…

Tidak seperti dokter dan apoteker yang mempunyai kode etik, untuk bidang informatika sepertinya belum ada. Mungkin hal ini dikarenakan belum terdapatnya badan atau ikatan yang memayunginya. Jika dokter terdapat IDI (Ikatan Dokter Indonesia) dan apoteker terdapat IAI (Ikatan Apoteker Indonesia). Mungkin untuk informatika jadnya III (Ikatan Informatika Indonesia), hehehehe.

Kode etik untuk bidang informatika sampai sekarang memang belum ada yang tertulis, namun sebenernya bisa mengacu ke IEEE Code of Ethics (IEEE : Institute of Electrical and Electronics Engineers). Berikut kutipannya (terjemahkan sendiri ya. :d ):

  1. to accept responsibility in making decisions consistent with the safety, health, and welfare of the public, and to disclose promptly factors that might endanger the public or the environment;
  2. to avoid real or perceived conflicts of interest whenever possible, and to disclose them to affected parties when they do exist;
  3. to be honest and realistic in stating claims or estimates based on available data;
  4. to reject bribery in all its forms;
  5. to improve the understanding of technology; its appropriate application, and potential consequences;
  6. to maintain and improve our technical competence and to undertake technological tasks for others only if qualified by training or experience, or after full disclosure of pertinent limitations;
  7. to seek, accept, and offer honest criticism of technical work, to acknowledge and correct errors, and to credit properly the contributions of others;
  8. to treat fairly all persons regardless of such factors as race, religion, gender, disability, age, or national origin;
  9. to avoid injuring others, their property, reputation, or employment by false or malicious action;
  10. to assist colleagues and co-workers in their professional development and to support them in following this code of ethics.

Namun yang pasti, secara umum kode etik yang harus di pegang menurut saya adalah menjaga kerahasian data (ex: password, file penting dll), apapun kondisinya. :d

Sekian postingan saya, semoga bermanfaat. :)

Posted by: Yohanes Andy Afriandi | October 17, 2011

Sumpah Apoteker

Hello world…

Beberapa waktu lalu, saya menghadiri sidang / upacara sumpah apoteker yang diselenggarakan di ITB. Kebetulan pacar saya juga ikut untuk di sumpah menjadi apoteker. Ternyata Apoteker pun ada sumpahnya juga. Sama seperti dokter, Apoteker juga merupakan gelar profesi.

Saya tidak sempat untuk menghafal sumpah apoteker tersebut, tapi setalah saya browsing, saya menemukannya. hehehehe. Berikut petikan sumpah apotekernya:

  1. Saya akan membaktikan hidup saya guna kepentingan perikemanusiaan terutama dalam bidang kesehatan;
  2. Saya akan merahasiakan segala sesuatu yang saya ketahui karena pekerjaan saya dan keilmuan saya sebagai Apoteker;
  3. Sekalipun diancam, saya tidak akan mempergunakan pengetahuan kefarmasian saya untuk sesuatu yang bertentangan dengan hukum perikemanusiaan;
  4. Saya akan menjalankan tugas saya dengan sebaik-baiknya sesuai dengan martabat dan tradisi luhur jabatan kefarmasian;
  5. Dalam menunaikan kewajiban saya, saya akan berikhtiar dengan sungguh-sungguh supaya tidak terpengaruh oleh pertimbangan keagamaan, kebangsaan, kesukuan, politik kepartaian, atau kedudukan sosial;
  6. Saya ikrarkan Sumpah/Janji ini dengan sungguh-sungguh dan dengan penuh keinsyafan;

Sumpah di atas juga disesuaikan dengan agama masing-masing calon apoteker yang dipeluknya.

itu saja sepenggal cerita saya, semoga bermanfaat. :)

sumber

Posted by: Yohanes Andy Afriandi | October 17, 2011

Good bye, Dennis Ritchie

Hello world…

Beberapa waktu lalu, “dunia OS” kehilangan Steve Jobs, kini giliran “dunia programming” yang kehilangan tokoh terbesar sepanjang masa, Dennis Ritchie. Dennis Ritchie meninggal diusia 70 tahun. Bagi yang belum tahu, beliau adalah pembuat bahasa pemrograman C yang merupakan nenek moyang dari bahasa C++, Java, PHP bahkan sistem operasi unix/linux.

#include <stdio.h>
int main()
{
  printf("goodbye, dad\n");
  return 0;
}

berikut foto dari beliau.

Dennis Ritchie

Sekian postingan saya, Selamat jalan Dennis Ritchie…

Posted by: Yohanes Andy Afriandi | October 14, 2011

Silhouette

Hello world…

Pagi yang buta ini (hah? pagi ko buta), maksud saya pagi yang cerah ini, saya memulai hari baru saya. (halah, lebay). hehehehe. Saya awali dengan kata-kata kesukaan saya “Selamat pagi dunia”. kata-kata itu merupakan salah satu judul lagu dari favorit saya yaitu Glenn Fredly, yang saya sendiri lupa itu di album mana. :p

Postingan kali ini saya tidak akan membahas lagu Glenn Fredly tersebut. Yang akan saya bahas kali ini adalah siluet. Siluet merupakan bentuk karya fotografi favorit saya, mengapa demikian? Saya juga tidak tahu (maaf, pagi-pagi udah bikin garingan yang tidak begitu renyah. :p). Let see… :d

Menurut Wikipedia :

Siluet adalah efek yang dihasilkan dalam fotografi karena adanya perbedaan signifikan antara pantulan cahaya objek utama di bagian depan gambar dengan latar belakangnya. Untuk menghasilkan siluet, cahaya dari bagian belakang objek harus sangat terang kemudian ditangkap dengan mengukur luminitas cahaya latar belakang.

Siluet juga bisa dihasilkan dengan menghalangi pantulan cahaya objek utama secara selektif.

Sedangkan menurut saya, siluet adalah teknik mengambilan objek dengan menggunakan media, sebagai contoh kamera, dimana objek diletakan di depan sumber cahaya. Jadi objek berada di antara cahaya dan kamera.

Berikut contoh hasil dari siluet. Gambar di bawah ini bukan gambar hasil jepretan saya. Saya hanya mengumpulkan contoh-contoh gambar siluet dari berbagai sumber. Jika ingin melihat hasil karya saya, nanti untuk postingan berikutnya, saya perlihatkan. :d

Siluet

Sekian postingan saya, semoga bermanfaat. :d

Posted by: Yohanes Andy Afriandi | October 4, 2011

Java 3D lanjut 2

Hello world…

Sudah lama saya tidak corat – coret di blog saya, hehehe. (* sedikit curhat, mungkin saya sibuk dengan kerjaan saya yang selalu “kejar tayang” dan banyak gangguan dari para temen2 saya yang ga jelas. :nohope.

ok tanpa banyak ba bi bu, saya akan mulai postingan saya kali ini.

Sebelumnya saya pernah posting tentang Java 3D (bisa dilihat du daftar postingan saya). Sedikit berbeda dengan postingan saya yang sebelumnya dimana source code yang saya posting puaaanjang bgt (mencapai 2000 baris), namun pada kali ini jumlah  barisnya lebih sedikit, hanya sekitar 110 baris. :p

let see…


/**
 *
 * @author Yohanes Andy A
 * 4 October 2011
 */

import com.sun.j3d.utils.behaviors.keyboard.KeyNavigatorBehavior;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.geometry.Box;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.awt.Color;
import javax.media.j3d.AmbientLight;
import javax.media.j3d.Appearance;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Material;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;

public class Java3D {

    private SimpleUniverse universe;
    private Appearance cubeAppearence;
    private BranchGroup rootGroup;
    private BoundingSphere bounds;

    public void init(){
        createUniverse();
        createAppearance();
        createCubeOfCubes();
        createLights();
        createBehaviourInteractors();
        universe.getViewingPlatform().setNominalViewingTransform();

        // add the cube group of objects to SimpleUnvirse object
        universe.addBranchGraph(rootGroup);
    }

    public void createUniverse(){
        universe = new SimpleUniverse();
        rootGroup = new BranchGroup();
        bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);
    }

    private void createAppearance(){
        cubeAppearence = new Appearance();
        Color3f ambientColor = new Color3f();
        ambientColor.set(Color.yellow);
        Color3f emissiveColor = new Color3f(0.0f,0.0f,0.0f);
        Color3f specularColor = new Color3f(1.0f,1.0f,1.0f);
        Color3f diffuseColor = new Color3f();
        diffuseColor.set(Color.yellow);
        float shininess = 20.0f;
        cubeAppearence.setMaterial(new Material(ambientColor,emissiveColor,
                                        diffuseColor,specularColor,shininess));
    }

    private void createCubeOfCubes(){
        // build up a cube of 10 cube for each axis (x, y, z)
        for (float x = -.5f; x             for (float y = -.5f; y                 for (float z = -.5f; z                     Box box = new Box(0.02f, 0.02f, 0.02f, cubeAppearence);
                    TransformGroup tg = new TransformGroup();
                    Transform3D transform = new Transform3D();
                    Vector3f vector = new Vector3f(x, y, z);
                    transform.setTranslation(vector);
                    tg.setTransform(transform);
                    tg.addChild(box);
                    rootGroup.addChild(tg);
                }
            }
        }
    }

    private void createLights(){
        Color3f ambientLightColour = new Color3f(0.9f, 0.9f, 0.9f);
        AmbientLight ambientLight = new AmbientLight(ambientLightColour);
        ambientLight.setInfluencingBounds(bounds);
        Color3f directionLightColour = new Color3f(1.0f, 1.0f, 1.0f);
        Vector3f directionLightDir = new Vector3f(-1.0f, -1.0f, -1.0f);
        DirectionalLight directionLight = new DirectionalLight(directionLightColour,
                                                directionLightDir);
        directionLight.setInfluencingBounds(bounds);
        rootGroup.addChild(ambientLight);
        rootGroup.addChild(directionLight);
    }

    private void createBehaviourInteractors(){
        TransformGroup viewTransformGroup = universe.getViewingPlatform().getViewPlatformTransform();
        KeyNavigatorBehavior keyInteractor = new KeyNavigatorBehavior(viewTransformGroup);
        BoundingSphere movingBounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);
        keyInteractor.setSchedulingBounds(movingBounds);
        rootGroup.addChild(keyInteractor);
        MouseRotate behavior = new MouseRotate();
        behavior.setTransformGroup(viewTransformGroup);
        rootGroup.addChild(behavior);
        behavior.setSchedulingBounds(bounds);
    }

    public static void main(String[] args) {
        (new Java3D()).init();
    }

}

Perbedaan yang paling mendasar adalah, pada postingan pertama saya menggunakan murni library Java yaitu AWT. Namun pada potingan kali ini, saya menggunakan library yang bernama Java3D dari oracle dan bisa di download di sini.
Jika tidak terdapat error pada saat kompilasi, run file tersebut. dan berikut hasilnya.

3D Cube

Sekian postingan saya, semoga bermanfaat. :d. Maaf jika ada kesalahan, maklum masih nyubi. :d

Posted by: Yohanes Andy Afriandi | April 8, 2011

SQLite

Hello world…

Beberapa waktu lalu, saya mendapatkan project untuk membuat sebuah sistem informasi untuk riwayat kunjungan pasien di salah satu perusahaan lewat teman saya. Sistem informasi yang saya buat berbasis desktop dengan menggunakan bahasa pemrograman kesayangan saya, Java. Namun saya sempat mengalami kendala dengan penggunaan database. Awalnya saya memilih database MySQL. Namun karena lokasi perusahaannya ada di Jakarta, saya tidak bisa kesana untuk melakukan instalasi. Karena seperti yang kita tahu, MySQL merupakan database yang khsusus di simpan di sebuah mesin server, bukan PC Standalone.

Karena aplikasi yang akan dibuat merupakan aplikasi standalone, maka saya putuskan untuk tidak menggunakan MySQL sebagai DBMS. Sempat kepikiran waktu itu menggunakan Microsoft Access, namun saya tidak menyukai koneksi lewat ODBC, selain itu tidak gratis. :p . Nah setelah saya pikir-pikir, mencari dan mencari, akhirnya saya menemukan Database yang tepat, namanya SQLite. Berikut saya jelaskan SQLite dari beberapa sumper yang saya baca. Silahkan disimak. :D

SQLite merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp.

Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai.

wikipedia

SQLite merupakan sebuah database OpenSource seperti halnya MySQL, Firebird, dan lain-lain. Dengan ukuran file yang sangat kecil SQLite layak dipertimbangkan untuk pemilihan sebuah database relasional (RDBMS). Di dalam pustaka SQLite terdapat beberapa fasilitas yang dapat kita gunakan untuk memanipulasi data ataupun mendefinisikan data. Untuk mendapatkan SQLite versi 3 dapat kita peroleh di sini.

java.unindra.net

Menurut saya, SQLite merupakan mesin database yang cukup handal. Karena semua fitur-fitur yang terdapat pada bahasa SQL, terdapat juga pada SQLite. SQLite akan membentuk file yang berekstensi .db, .db3 atau .sqlite.

Dari pengalaman saya, SQLite masih cepat dalam menampilkan data sebanyak 20.000 baris. walaupun terdapat delay. Namun secara keseluruhan, bekerja dengan baik dan stabil.

Sekian postinga saya, semoga bermanfaat. :D

SQLite

Gambar diambil dari sini.

Posted by: Yohanes Andy Afriandi | March 24, 2011

Life is…

Hello world…

Life is an opportunity, benefit from it.
Life is beauty, admire it.
Life is bliss, taste it.
Life is a dream, realize it.
Life is a challenge, meet it.
Life is a duty, complete it.
Life is a game, play it.
Life is a promise, fulfill it.
Life is sorrow, overcome it.
Life is a song, sing it.
Life is a struggle, accept it.
Life is a tragedy, confront it.
Life is an adventure, dare it.
Life is luck, make it.
Life is too precious, do not destroy it.
Life is life, fight for it.

Mother Teresa

life is a miracle… :)

Posted by: Yohanes Andy Afriandi | March 24, 2011

Alasan Kenapa Saya Menyukai Java

Hello world…

Beberapa waktu lalu, saya sempat di tanya oleh rekan-rekan saya, kenapa saya sangat menyukai Java. Kenapa tidak C#, PHP atau VB. Waktu itu saya hanya menjawab, “Java itu sangat ngertiin gw.”. Rekan-rekan yang lain hanya diam. Mereka bingung dengan jawaban saya hehehehe. Sebenarnya saya juga tidak tahu secara spesifik, mengapa saya menyukai Java. Soalnya yang tahu, cuma saya dan Java. :p hahahahahah.

Ok, saya akan mencoba menjelaskan mengapa saya menyukai Java dari pada bahasa pemrograman lain yang merupakan satu ‘nenek moyang’ dari keluarga bahasa C. Saya coba jelaskan berdasarkan pengalaman yang saya alami. Jadi kalo ada kekurangan, mohon untuk ditambahkan. :D .

Java  merupakan jenis bahasa pemrograman yang berorientasi objek. Saya lebih menyukai paradigma ini dibandingkan dengan terstruktur. Alasannya, sistem yang kita buat bisa lebih mudah untuk dikembangkan. Selain itu, saya bisa membuat komponen yang reusable atau komponen yang bisa digunakan berulang-ulang. Alasan lain, paradigma ini memudahkan saya untuk membuat suatu pemodelan sistem informasi (dengan menggunakan UML sebagai tools).

Java bersifat multiplatform. Ini yang paling saya suka. Dulu saya merasa puas dengan VB (waktu itu masih VB 6). Kayanya gimana gitu bisa buat aplikasi berbasis GUI di Windows. Namun lama kelamaan, saya berfikir, tidak selamanya sistem operasi itu berbasis Windows. Bagaimana dengan Linux, Open Solaris, Mac, dll? Nah, makanya saya mulai melirik bahasa pemrograman yang multiplatform. Akhirnya saya bertemu dengan Java deh. hehehehe. :D . Sudah saya coba aplikasi Java, baik yang berbasis web, desktop, atau perangkat mobile. hehehehe.

Java mempunyai kemampuan multithread. Multithread adalah kempuan suatu program atau aplikasi untuk mengerjakan beberapa proses dalam satu waktu. Thread dalam Java memiliki kemampuan untuk memanfaatkan kelebihan multi prosessor apabila sistem operasi yang digunakan mendukung multi prosessor.

Java tidak mempunyai pointer. Segala kerumitan yang terdapat pada C dan C++, disederhanakan di Java. Contohnya pointer. Dulu saya stress dengan yang namanya pointer di C++ dan sempat membuat saya frustasi(lebay mode : on). Eh, di Java, pointer ditiadakan. hehehe. jadi berkuranglah beban pikiran saya.(halah-halah). hehehehe. :D

Itulah alasan mengapa saya menyukai Java. Saya mengungkapkan ini semua berdasarkan pengalaman yang pernah saya alami. Saya juga sempat belajar C# yang menurut saya merupakan Java buatan Microsoft dan saya pernah membuat aplikasinya. Namun menurut saya, masih lebih baik Java. Gaya bahasa C# hampir sama dengan Java.

Saya sendiri tidak fanatik terhadap satu bahasa pemrograman tertentu. Saya hanya mempelajari apa yang baru, dan menarik kesimpulan dari apa yang sudah saya pelajari. Jadi jika suatu saat saya menemukan bahasa pemrograman yang lebih baik dari Java, bukan barang mustahil saya menggunakan bahasa pemrograman yang baru tersebut dan meninggalkan Java. :D

Sekian postingan saya. Jika terdapat kekurangan, mohon ditambahkan, karena saya juga masih newbie di Java.

regards..

Older Posts »

Categories

Follow

Get every new post delivered to your Inbox.