Fungsi Rekursif

8 06 2010

Saya ingin menulis tentang fungsi rekursif (recursive). Sebenarnya pengertian fungsi ini sederhana, saya pertama kali mendengar fungsi ini pada mata kuliah C++. Dan yang tidak menyenangkan adalah saya tidak masuk saat matakuliah ini karena ada dinas ke luar kota, dan materi ini keluar di UAS. Hasilnya saya tidak lulus ujiannya (beserta teman saya satu kelas haha :D ).

Maka dari itu saya mencari bahan tentang rekursif itu untuk tugas perbaikan. Ternyata rekursif itu adalah:

“Suatu cara pemecahan masalah dengan fungsi yang memanggil dirinya sendiri”

Hanya begitu saja pengertiannya. Jadi rekursif  itu adalah fungsi yang narsis, dia akan terus menerus memanggil dirinya sampai syaratnya terpenuhi, mirip looping tapi bukan.

Implementasinya yang paling sederhana (karena saya juga cuma ngerti yang sederhana) adalah faktorial. Rumus faktorial untuk n! (baca: n faktorial) adalah

n! = n x n-1 x n-2 x …… x 1

jadi sebuah bulangan yang difaktorialkan akan dikalikan dengan bilangan tersebut dikurangi satu,dikurangi dua sampai bilangan itu tersisa satu. Fungsinya kira-kira begini

int faktorial (int m)
{
if ( m == 0 )
return 1;
return m * faktorial(m-1);
}

Dari contoh di atas dapat dilihat bahwa fungi faktorial(Factorial) akan memanggil dirinya secara terus menerus sampai n mencapai angka 0.

contoh lain dari rekursif adalah pemangkatan (exponencial). Fungsi dibawah ini dengan parameter n sebagai bilangan yang akan dipangkatkan dan m sebagai  pangkatnya.

int pangkat (int n,int m)
{
if ( m == 0 )
return 1;
return n * pangkat(n,m-1);
}

Fungsi pangkat akan memanggil dirinya sendiri dan menghasilkan n x  n x n x n x n sampai m bernilai 0. Begitulah rekursif bekerja.

Sekian post saya tentang rekursif semoga bisa membantu bagi yang membaca,kalo tidak membantu mohon maaf saya baru belajar.

-Ditulis dalam rangka mengingat rekursif-





Inheritance Dalam Java

16 05 2010

Pengertian Inheritance

Perngertian dari inheritance adalah dimana sebuah objek dapat mempunyai objek turunan. Dalam hal pemrogramman makan dapat diimpelementasikan dengan sebuah class yang mempunyai class turunan. Class yang mempunyai class turunan disebut sebagai Parent Class atau Base Class, sedangkan class yang menjadi turunan dari Parent Class disebut sebagai Subclass atau Child Class. Secara sederhana misal Hewan adlah parent class maka child class bisa berupa ayam,kucing,bebek dll.

Suatu subclass dapat mewarisi sebagian atau keseluruhan sifat dari parent class-nya, denga kata lain sebuah subclass hanya merupakan perluasan dari parent class.

Dekalarasi Inheritance

Cara untuk mendeklarasikan inheritance adalah dengan memberikan keytword extends setelah nama class diikuti denga nama parent class.Kata kunci extends memberikan informasi pada kompiler Java bahwa kita ingin melakukan perluasan class.

Contoh dari deklarasi inheritance:

-          Definisi parent class a

Public class A{

……..

}

-          Definisi child class B yang meripakan turunan dari class A

Public class B extends A{

……

}

Pada dasarnya semua class dalam Java merupakan turunan atau subclass dari super class Object. Contihnya misalkan ada sebuah class:

Public Class A {

………

}

Maka pada saat compilasi compiler Java akan membacanya sebagai subclass dari parent class Object :

Public class A extends Objet{

…….

}

Penggunaan Inheritance

Kita menggunakan inheritance apabila ditemukan Class yang dapat diperluas menggunakan class lain.Misalnya kita mempunyai kelas Pegawai:

Public class Pegawai{

Public String nama;

Public double gaji;

}

Selain itu kita juga mempunyai Class Manajer :

Public class Manajer{

Public String nama;

Public double gaji;

Public String departemen;

}

Dari dua class diatas kita dapat melihat bahwa class Manajer mempunyai data member yang identik dengan class Pegawai ,hanya saja ada tambahan member Departemen.Sebenarnya class Manajer merupakan perluasan dari class manajer dengan tambahan data member Departemen.Maka kita perlu menggunakan konsep inheritance untuk kasus diatas.Sehingga class  Manajer dapat kita tuliskan sebagai berikut.

Public class Manajer extends Pegawai{

Public String departemen;

}

Konsep Inheritance dalam Java

Konsep inheritane yang ada di Java adalah hanya memperkenankan adanya Single inheritance.Konsep Single inheritane artinya bahwa sebuah subclass hanya diperkenankan memiliki satu parent class. Konsep inheritance yang ada di java memperkenankan adanya multilevel inheritance. Konsep multilevel inheritance berarti bahwa sebuah subclass dapat memiliki subclass lagi sebagai turunannya.

Subclass menggunakan keyword super untuk mereferensi data dan fungsi dari parent class-nya. Dengan kata lain keyword super ini berfungsi sebagai alias dari Parent class.Format penulisan dari keyword ini :

-          super.data_member  ->  merujuk pada data member dari parent class

-          super.function_member()  ->  merujuk pada function member dari parent class

-          super()  ->  merujuk pada konstriktor dari parent class

contoh penerapan keyword ini :

class parent {

Public int x = 5;

}

class child extends parent{

Public int x = 10;

Public void info(int x){

System.out.println(“Nilai x Sebagai Parameter =” + x);

System.out.println(“Data Member x di Child class =” + this.x);

System.out.println(“Data Member x di Parent class =” + super.x);

}

}

Public class NilaiX{

Public static void main(String [] args){

child tes = new child();

tes.info(20);

}

}

Demikianlah penjabaran singkat mengenai inheritance pada pemrogramman Java,semoga dapat berguna.





Media Simpan

4 06 2008

Ternyata sejarah Prnyimpanan data itu panjang banget.

Punch Card

Sejak tahun 1725 telah dirancang sebuah media untuk menyimpan data yang diperkenalkan oleh seorang tokoh bernama Basile Bouchon menggunakan sebuah kertas berforasi untuk menyimpan pola yang digunakan pada kain. Namun pertama kali dipatenkan untuk penyimpanan data sekitar 23 September 1884 oleh Herman Hollerith – sebuah penemuan yang digunakan lebih dari 100 tahun hingga pertengahan 1970. Contoh di sini adalah bagaimana sebuah punch card dapat berfungsi sebagai media penyimpanan, memiliki 90 kolom (90 column punch card), terjadi tahun 1972. Jumlah data yang tersimpan dalam media tersebut sangat kecil, dan fungsi utamanya bukanlah menyimpan data namun menyimpan pengaturan (setting) untuk mesin yang berbeda.

Punch Tape

Seorang tokoh bernama Alexander Bain merupakan orang yang pertama kali mengetahui penggunaan paper tape yang biasanya digunakan untuk mesin faksimili dan mesin telegram (tahun 1846). Setiap baris tape menampilkan satu karakter, namun karena Anda dapat membuat fanfold dengan mudah maka dapat menyimpan beberapa data secara signifikan menggunakan punch tape dibandingkan dengan punch card.

Selectron Tube

Pada tahun 1946 RCA mulai mengembagkan Selectron Tube yang merupakan awal format memori komputer dan Selectron Tube terbesar berukuran 10 inci yang dapat menyimpan 4096 bits Harga satu buah tabung sangat mahal dan umurnya sangat pendek di pasaran.

Magnetic Tape

Pada tahun 1950-an magnetic tape telah digunakan pertama kali oleh IBM untuk menyimpan data. Saat sebuah rol magetic tape dapat menyimpan data setara dengan 10.000 punch card, membuat magnetic tape sangat populer sebagai cara menyimpan data komputer hingga pertengahan tahun 1980-an.

Floppy Disk

Pada tahun 1969, floppy disk pertama kali diperkenalkan. Saat itu hanya bisa membaca (read-only), jadi ketika data tersimpan tidak dapat dimodifikasi maupun dihapus. Ukurannya 8 inch dan dapat menyimpan data sekitar 80kB. Empat tahun kemudian, floppy disk yang sama muncul dan dapat menyimpan data sebanyak 256kB. Selain itu, memiliki kemampuan dapat ditulis kembali (writeable). Perkembangan selanjutnya, pada tahun 1990 lahir disk dengan ukuran 3 inci yang dapat menyimpan data sekitar 250 MB, atau biasa disebut juga Zip disk

Hard drive

Hard drive masih diproduksi di bawah pengembangan yang tetap (konstan). Hitachi Deskstar 7K yang Anda lihat pada gambar di bawah adalah hard drive pertama kali yang dapat menyimpan data 500GB – setara dengan 120.000 World’s first hard drive IBM 305 RAMAC. Hal ini cenderung tiap tahun kita dapat memperoleh drive yang dapat menyimpan data secara cepat dengan harga murah.

Compact Disk & DVD

Compact disk muncul bermula dari penemuan Laser Disk, namun berukuran lebih kecil. Dikembangkan oleh kerjasama antara SONY dan Philips pada tahun 1979 dan Compact Disk sangat berlimpah di pasaran pada tahun 1982. Sekarang tipe CD dapat menyimpan data sebesar 700MB.

DVD (Digital Versatile Disc atau Digital Video Disc) merupakan dasar dari CD menggunakan teknologi laser yang berbeda. Panjang gelombang laser menggunakan 780nm sinar inframerah (standar CD menggunakan 625 nm hingga 650nm sinar inframerah) yang membuatnya memungkinkan menyimpan data pada space yang sama. Dua lapisan DVD dapat menyimpan data sebesar 8.5 GB.

Generasi terbaru dari jenis kepingan ini adalah Bluray dan HD DVD,Masing masing drive ini mampu menympa file yang jauh lebih besar dari DVD,30GB (HD DVD) & 40GB(Bluray), Saat ini kedua Format ini sedang bertarung menempatkan diri sebagai pengganti DVD

FLash Drive

TEknologi yang sedang berjaya adalah flash, awalnya flash umum digunakan pada digicam dan kemudian External memory untuk ponsel. kemudian lahirlah USb flash Disk,yang saat pertama kali keluar kapasitasnya 128 MB atau 80 kali Floopy Disk yang pada tahun 2000an masih umum digunakan (terutama untuk anak sekolah)yang kapasitasnya hanya 1,44 MB.sekarang (2008) kapasitas hardisH umumnya 1GB,2 GB dst,yang terbaru bahkan ada HD yang menggunakan teknologi flash yang Kapasitasnya mencapai 200GB, media ini kebih resisitan karena tidakada komponen fisik yang bergerak seperti CD ,dvd atau harddisk





DBase Normalization

16 04 2008

What is Normalization?

Normalization is the process of efficiently organizing data in a database. There are two goals of the normalization process: eliminating redundant data (for example, storing the same data in more than one table) and ensuring data dependencies make sense (only storing related data in a table). Both of these are worthy goals as they reduce the amount of space a database consumes and ensure that data is logically stored.

The Normal Forms

The database community has developed a series of guidelines for ensuring that databases are normalized. These are referred to as normal forms and are numbered from one (the lowest form of normalization, referred to as first normal form or 1NF) through five (fifth normal form or 5NF). In practical applications, you’ll often see 1NF, 2NF, and 3NF along with the occasional 4NF. Fifth normal form is very rarely seen and won’t be discussed in this article.

Before we begin our discussion of the normal forms, it’s important to point out that they are guidelines and guidelines only. Occasionally, it becomes necessary to stray from them to meet practical business requirements. However, when variations take place, it’s extremely important to evaluate any possible ramifications they could have on your system and account for possible inconsistencies. That said, let’s explore the normal forms.

First Normal Form (1NF)

First normal form (1NF) sets the very basic rules for an organized database:

  • Eliminate duplicative columns from the same table.
  • Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key).

Second Normal Form (2NF)

Second normal form (2NF) further addresses the concept of removing duplicative data:

  • Meet all the requirements of the first normal form.
  • Remove subsets of data that apply to multiple rows of a table and place them in separate tables.
  • Create relationships between these new tables and their predecessors through the use of foreign keys.

Third Normal Form (3NF)

Third normal form (3NF) goes one large step further:

  • Meet all the requirements of the second normal form.
  • Remove columns that are not dependent upon the primary key.

Fourth Normal Form (4NF)

Finally, fourth normal form (4NF) has one additional requirement:

  • Meet all the requirements of the third normal form.
  • A relation is in 4NF if it has no multi-valued dependencies.

Remember, these normalization guidelines are cumulative. For a database to be in 2NF, it must first fulfill all the criteria of a 1NF database.jm





Mengunci folder dengan aman (InsyaAllah) hehehehe

7 04 2008

Mengunci folder tanpa menggunakan software, CARANYA GAMAPNG BANGET. pertama bikin text dokumen pake Notepad, terus tuliskan perintah di bawaha ini :

@ECHO OFF

indonezian kunci folder

if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK

if NOT EXIST Locker goto MDLOCKER

:CONFIRM

echo Serius nich mau Kunci ??(Y/N)

set/p "cho=>"

if %cho%==Y goto LOCK

if %cho%==y goto LOCK

if %cho%==n goto END

if %cho%==N goto END

echo Invalid choice.

goto CONFIRM

:LOCK

ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"

attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"

echo Foldernya dah terkunci

goto End

:UNLOCK

echo mau buka folder saya nih....  pasword dulu ya....

set/p "pass=>"

if NOT %pass%== silaumen goto FAIL

attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"

ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker

echo Folder Unlocked successfully

goto End

:FAIL

echo Invalid password

goto end

:MDLOCKER

md Locker

echo Foldernya berhasil di buat

goto End

:End
Setelah itu SAVE AS dengan nama kunci.bat
sekarang kita klik kunci.bat nya ntar muncul folder : locker
Simpan file-file kamu di sana
kemudian kalo dah selesaitinggal klik kunci.bat lagii..

mau buka???
tinggal klik kunci.bat lagi abis itu masukkan pasword : "silaumen" selesai deh...

tipsss:

- teks yang warnanya merah (locker) adalah nama folder. Bisa diganti dengan nam folder yang kita mau…

- teks berwarna biru (silaumen) bisa diganti dengan password yang anda mau…..

- teks berwarna hijau itu komentar2 yang akan muncul kalo kita jalanin kunci.bat nya bisa diganti semau kita…

- yang penting teks yang item jangan dirubah2 ajeee

- trakhir nama filenya gak mesti kunci.bat yang penting ekstensinya .bat

naaah sekarang…….

sselamaaaaaat….

Mencoba….!!!!!!








Follow

Get every new post delivered to your Inbox.