Selasa, 29 Januari 2013

Perintah Dasar Linux


Perintah Dasar Linux

perintah dasar ini dapat dilakukan di terminal. untuk membuka terminal, bisa dilakukan dari menu accesorries atau menekan tombol ctrl + alt + t pada keyboard:
  • ls = dir = melihat isi file
  • clear = cls = membersihkan tampilan di layar monitor
  • cp = copy = menyalin file
  • mv = ren, move = mengubah nama file, dan bisa juga untuk memindahkan file ke direktori tertentu
  • cd = cd = berpindah direktori (jika tanpa parameter akan menuju ke home direktori)
  • mkdir = md = membuat direktori
  • rmdir = rd = menghapus direktori kosong
  • cat = type = melihat isi file
  • rm = del = menghapus file atau direktori
  • pwd = cd = melihat direktori aktif saat ini
  • more = more = melihat tampilan per halaman
  • grep = <<tidak ada>> = menyaring tampilan atau file berdasarkan kata tertentu
  • free = mem = melihat informasi memory
Jika di DOS untuk menampilkan keterangan suatu perintah digunakan /?, maka di Linux dapat menggunakan perintah man. Contoh, untuk mengetahui fungsi dari perintah ls, maka dapat menggunakan man ls
Untuk menampilkan daftar perintah yang ada di linux, gunakan perintah info.

Senin, 28 Januari 2013

Bahasa C

Struktur atau template bahasa C adalah berikut:

Bahasa C terdiri dari header (yang terdiri dari preprocessor) dan bagian fungsi
Penulisannya dapat dilihat sebagai berikut:

#include <stdio.h>    //preprocessor

int main ()
{
       //...fungsi-fungsi
       return 0;
} //fungsi main

Bahasa C memiliki banyak library tapi library standard yang biasa digunakan adalah #include <stdio.h>. Ada library stdlib.h, conio.h, math.h, ctype.h, dsb.

Perhatikan bahwa bahasa C adalah program yang bersifat case sensitive artinya memperhatikan penggunaan huruf kapital dan bukan. Selain itu, terdapat beberapa aturan yang perlu dipegang dalam membuat program dalam bahasa C:
  • penulisan library harus dimulai dengan tanda # dan tidak diakhiri semicolon (;)
  • fungsi main adalah fungsi yang pertamakali dieksekusi oleh compiler sementara fungsi lain yang merupakan subfungsi dari main akan dieksekusi jika telah dipanggil oleh fungsi main.
  • fungsi-fungsi dalam main diawali dengan tanda { dan diakhiri juga dengan tanda } sebagai tanda bahwa fungsi yang dimaksud telah selesai.
  • setiap mengakhiri sebuah statement, harus diberi tanda semicolon atau titik koma (;)
  • fungsi-fungsi tersebut diakhiri dengan return 0 sebagai tanda stop.

Untuk membuat program dalam bahasa C kita dapat menggunakan tool dev C++, bisa didownload di sini http://sourceforge.net/projects/dev-cpp/

Senin, 21 Januari 2013

Analisis Sebuah Program Prolog

Dewasa ini, perkembangan teknologi informasi sangat cepat, baik dari segi hardware, software, maupun  storage dari tiap-tiap prosecor. Perkembangan tiap-tiap prosecor sangat di pengaruhi oleh perkembangan teknologi yang sangat cepat. Tiap-tiap vendor selalu melakukan evolusi dari tiap-tiap prosecor, contoh saja Intel yang selalu melakukan perkembangan dari tiap-tiap prosecor mereka,contohnya dari intelcore duo menjadi intel core i3,i5,dan yang terbaru ialah core i7. Selain Intel, vendor-vendor lain yang bekerja di bidang prosecor juga melakukan perkembangan,sebut saja AMD dengan keluaran terbarunya PhenomTM II. Sementara itu pesaing lainya,yaitu Cyrix juga melakukan perkembangan pada produk mereka dengan mengeluarkan prosecor mediaGX yang notabene memiliki kecepatan yang kalah saing oleh dua vendor teratas, meski demikian Cyrix juga selalu melakukan perbaikan kepada prosecor mereka. Perkembangan prosecor pada bidang teknologi sangat mempengaruhi daya minat masyarakat dalam memilih, prosecor mana yang harus mereka pilih jika ingin membeli prosecor. Dengan semakin berkembangnya kelebihan dari tiap-tiap prosecor, diharapkan masyarakat dapat memilih prosecor mana yang cocok untuk mereka pakai sesuai kebutuhan mereka.
Perancangan fakta dan aturan
a. fakta
program ini terdiri dari enam fakta yaitu:
processor(intel).
processor(amd).
processor(cyrix).
jenis(i7,intel).
jenis(phenom,amd).
jenis(mediaGX,cyrix).
b.aturan
program ini terdiri dari 9 aturan yaitu:
vendor(intel,X):-jenis(X,intel), processor(intel).
vendor(amd,X):-jenis(X,amd), processor(amd).
vendor(cyrix,X):-jenis(X,cyrix), processor(cyrix).
lebih_cepat(X,Y):-jenis(X,amd), jenis(Y,intel).
lebih_cepat(X,Y):-jenis(X,intel), jenis(Y,cyrix).
lebih_cepat(X,Y):-jenis(X,amd), jenis(Y,cyrix).
lebih_lambat(X,Y):-jenis(X,intel), jenis(Y,amd).
lebih_lambat(X,Y):-jenis(X,cyrix), jenis(Y,intel).
lebih_lambat(X,Y):-jenis(X,cyrix), jenis(Y,amd).
Penjelasan fakta dan aturan
a.fakta:
processor(intel). Artinya, intel adalah processor
processor(amd). Artinya amd adalah processor
processor(cyrix). Artinya cyrix adalah processor
jenis(i7,intel). Artinya i7 adalah jenis intel
jenis(phenom,amd). Artinya phenom adalah jenis amd
jenis(mediaGX,cyrix). Artinya mediaGX adalah jenis cyrix
b. aturan:
vendor(intel,X):-jenis(X,intel), processor(intel). Artinya intel adalah vendor dari X jika X adalah jenis intel dan intel adalah processor.
vendor(amd,X):-jenis(X,amd), processor(amd). Artinya amd adalah vendor dari X jika X adalah jenis amd dan amd adalah processor.
vendor(cyrix,X):-jenis(X,cyrix), processor(cyrix). Artinya cyrix adalah vendor dari X jika X adalah jenis cyrix dan cyrix adalah processor.
Lebih_cepat(X,Y):-jenis(X,amd), jenis(Y,intel). Artinya X lebih cepat dari Y jika X jenis amd dan Y jenis intel.
Lebih_cepat(X,Y):-jenis(X,intel), jenis(Y,cyrix). Artinya X lebih cepat dari Y jika X jenis intel dan Y jenis cyrix.
lebih_cepat(X,Y):-jenis(X,amd), jenis(Y,cyrix). Artinya X lebih cepat dari Y jika X jenis amd dan Y jenis cyrix.
Lebih_lambat(X,Y):-jenis(X,intel), jenis(Y,amd). Artinya X lebih lambat dari Y jika X jenis intel dan Y jenis amd.
Lebih_lambat(X,Y):-jenis(X,cyrix), jenis(Y,intel). Artinya X lebih lambat dari Y jika X jenis cyrix dan Y jenis intel.
lebih_lambat(X,Y):-jenis(X,cyrix), jenis(Y,amd). Artinya X lebih lambat dari Y jika X jenis cyrix dan Y jenis amd.

Beberapa query yang bisa dibuat dalam program ini:
1?- processor(intel).
true.

2 ?- jenis(i7,X).
X = intel.
(artinya: i7 adalah jenis intel)
3?- vendor(intel,X).
X = i7
(artinya: jika intel adalah vendor dari X, maka X adalah i7).
Prolog memberikan jawaban seperti di atas dengan memanggil data pada fakta i7 adalah jenis intel dan intel adalah processor lalu menyesuaikan dengan aturan jika X jenis intel dan intel adalah processor, maka intel adalah vendor dari X.
4?- vendor(cyrix,X).
X = mediaGX.
(artinya: jika cyrix adalah vendor X, maka X adalah mediaGX).
Hal ini terjadi seperti kasus di atas.
5?- vendor(X,phenom).
X = amd
(artinya: jika X adalah vendor phenom, maka X adalah amd).
Hal ini sesuai dengan fakta bahwa phenom adalah jenis amd dan amd adalah processor lalu prolog akan menyesuaikan fakta ini dengan aturan jika X jenis amd dan amd adalah processor, maka amd adalah vendor dari X.
6?- lebih_lambat(X,phenom).
X = i7 ;
X = mediaGX.
(artinya: jika X lebih lambat dari Phenom, maka X adalah i7 atau mediaGX).
Hal ini sesuai dengan aturan bahwa jika X jenis cyrix maka X lebih lambat dari jenis intel dan jika X jenis intel maka X lebih lambat dari jenis amd. Prolog terlebih dahulu mengambil informasi dari fakta bahwa phenom adalah jenis amd, i7 jenis intel dan mediaGX jenis cyrix.
7?- lebih_cepat(X,mediaGX).
X = i7 ;
X = phenom.
(artinya: jika X lebih cepat dari mediaGX  maka X adalah i7 atau phenom).
Prolog mengambil informasi dari fakta bahwa phenom adalah jenis amd, i7 jenis intel dan mediaGX jenis cyrix lalu memasukkannya dalam aturan bahwa jika X jenis amd maka X lebih cepat dari jenis intel dan jika X jenis intel maka X lebih cepat dari jenis cyrix.

STRUKTUR PROGRAM PROLOG

STRUKTUR PROGRAM PROLOG
Program Prolog terdiri dari :
  1. Domains
  • Domains menyatakan jenis suatu variabel.
  • Domains seperti tipe data dalam bahasa prosedural (Pascal,C)
  • Beberapa domains standar  dalam prolog: char, integer, real, string, symbol.
  • contoh:
namaBunga = symbol
mataKuliah = string
nilai = integer
  • Domains char dipakai pada predikat yang argumennya memiliki nilai berupa karakter tunggal,  yaitu abjad,  angka,  pungtuasi (?.!,<,...), dan operasi (+,‐,...). Penulisan argumen bertipe char dalam prolog diapit tanda ’...’.
contoh: nilai (dita, ’A’).
  • Domains string dipakai pada predikat yang argumennya memiliki nilai berupa karakter jamak yang dapat berupa kata maupun suatu tulisan (kumpulan kata‐kata termasuk di dalamnya pungtuasi dan tanda operasi yang dapat dipisahkan spasi). Penulisan argumen bertipe string dalam prolog diapit tanda ”...”.
contoh: hobi(rina,”Memasak”).
  • Domains integer dipakai pada predikat yang argumennya memiliki nilai berupa bilangan bulat.
Contoh: nilai(tini,”Kalkulus”,75).
  • Domains real dipakai pada predikat yang argumennya memiliki nilai berupa bilangan pecahan. Penulisan argumen bertipe real dalam prolog untuk nilai pecahan ditulis di belakang tanda titik (.).
contoh: nilai(ivan, 8.75).
  • Domains symbol dipakai pada predikat yang argumennya memiliki nilai berupa kumpulan karakter yang hanya terdiri dari huruf atau kata tanpa dipisahkan oleh spasi. Suatu kata  dapat disambungkan dengan kata lain dengan  tanda _ (underscore).
contoh: lelaki(toni_setiawan).
b.  Predicates
  •  Predicates digunakan untuk mendeklarasikan predikat.
  •  Penulisan dalam Prolog :
Diawali dengan huruf kecil.
Contoh:
saudara(x,y)
suka(nama,hobi)
manis(x)
c.  Clauses
  • Clauses digunakan untuk mendefinisikan predikat.
  • Clauses terdiri dari fakta dan aturan:
1.  Fakta
Fakta merupakan suatu kenyataan atau kebenaran yang diketahui.
Fakta menyatakan hubungan/relasi antara dua obyek atau lebih atau menunjukkan sifat suatu obyek.
Penulisan dalam Prolog :
Diawali dengan huruf kecil dan diakhiri dengan tanda titik.
Contoh :
saudara(tina,tini).
suka(lia,menyanyi).
manis(gula).
2.  Aturan
Aturan penulisan :
If ditulis sebagai  ‘titik dua + strep’ (:‐)
And ditulis sebagai  ‘koma’ (,)
Or ditulis sebagai ‘titik koma (;)
d.  Goal
  • Goal adalah tempat pernyataan (query) diberikan atau meminta prolog untuk
mencapai tujuan yang dikehendaki.
Contoh Kasus 1:
UJI KELULUSAN 
  Terdapat Fakta dengan definisi sebagai berikut :
kuliah(X,Y):X kuliah Y
nilai(X,Y,Z):nilai X untuk mata kuliah Y adalah Z
  Terdapat Aturan dengan definisi sebagai berikut:
lulus(X,Y): X lulus Y jika X kuliah Y dan nilai X untuk mata kuliah Y adalah Z dan Z lebih dari 50
Berdasarkan definisi Fakta dan Aturan yang diberikan di atas ketikan program berikut
domains
orang=symbol
matakuliah=string
nilai=integer
predicates
kuliah(orang,mk).
nilai(orang,mk,nilai).
lulus(orang,mk).
clauses
kuliah(adi,"logika").
kuliah(adi,"fisika").
kuliah(budi,"logika").
kuliah(cika,"fisika").
kuliah(cika,"logika").
kuliah(deni,"logika").
kuliah(eni,"logika").
nilai(adi,"logika",50).
nilai(adi,"fisika",45).
nilai(budi,"logika",80).
nilai(cika,"fisika",85).
nilai(cika,"logika",70).
nilai(deni,"logika",70).
nilai(eni,"logika",40).
lulus(X,Y) :‐kuliah(X,Y), nilai(X,Y,Z), Z>50.

Contoh Program Prolog

POHON KELUARGA
  definisi Fakta :
lelaki(X)             : X adalah lelaki
perempuan(X) : X adalah perempuan
ayah(Y,X)          : Y adalah ayah dari X
ibu(Y,X)             : Y adalah ibu dari  X
  definisi Aturan :
anaklelaki(X,Y,Z) :  X adalah anaklelaki dari Y dan Z jika Y adalah ayah dari X dan Z
adalah ibu dari X dan X adalah lelaki
anakperempuan(X,Y,Z) : X adalah anakperempuan dari Y dan Z jika Y adalah ayah dari
X dan Z adalah ibu dari X dan X adalah perempuan
Berdasarkan definisi Fakta dan Aturan yang diberikan di atas maka ketikan program berikut:
domains 
child     = symbol
father    =  symbol
mother  = symbol
predicates 
anaklelaki(child,father,mother).
anakperempuan(child,father,mother).
lelaki(child).
perempuan(child).
ayah(father,child).
ibu(mother,child).
clauses
perempuan(mira).
perempuan(nani).
lelaki(edi).
ayah(budi,edi).
ibu(ani,edi).
ayah(budi,mira).
ibu(ani,mira).
ayah(badu,nani).
ibu(ana,nani).
anaklelaki(X,Y,Z):ayah(Y,X),ibu(Z,X),lelaki(X).
anakperempuan(X,Y,Z):ayah(Y,X),ibu(Z,X),perempuan(X).

Normalisasi dalam Sistem Basis Data

Normalisasi database biasanya jarang dilakukan dalam database skala kecil, dan dianggap tidak diperlukan pada penggunaan personal. Namun seiring dengan berkembangnya informasi yang dikandung dalam sebuah database, proses normalisasi akan sangat membantu dalam menghemat ruang yang digunakan oleh setiap tabel di dalamnya, sekaligus mempercepat proses permintaan data.
Proses normalisasi model data dapat diringkas sebagai berikut:
  1. Menemukan entitas-entitas utama dalam model data.
  2. Menemukan hubungan antara setiap entitas.
  3. Menentukan atribut yang dimiliki masing-masing entitas.
Normalisasi model data dilakukan dengan mengikuti langkah-langkah sederhana, mengubahnya agar memenuhi apa yang disebut sebagai bentuk normal pertama, kedua, lalu ketiga secara berturutan.
Langkah-Langkah Normalisasi
1. Bentuk Normal Pertama ( 1NF )
Sebuah model data dikatakan memenuhi bentuk normal pertama apabila setiap atribut yang dimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri.
2. Bentuk Normal Kedua ( 2NF )
Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia memenuhi bentuk normal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya pada semua identifier entitas tersebut.
3. Bentuk Normal Ketiga (3NF)
Sebuah model data dikatakan memenuhi bentuk normal ketiga apabila ia memenuhi bentuk normal kedua dan tidak ada satupun atribut non-identifying (bukan pengidentifikasi unik) yang bergantung pada atribut non-identifying lain. Apabila ada, pisahkan salah satu atribut tersebut menjadi entitas baru, dan atribut yang bergantung padanya menjadi atribut entitas baru tersebut.

Minggu, 20 Januari 2013

Binary Conversion

Binary to Hexadecimal

● Divide the binary number into sets of 4 digits. Add leading zeros as needed. For example, write the binary number
11101100101001 as 0011 1011 0010 1001.
● Use the following table to convert each 4-digit binary string to a single hex digit: 0001 (1), 0010 (2), 0011 (3), 0100 (4), 0101 (5), 0110 (6), 0111 (7), 1000 (8), 1001 (9), 1010 (A), 1011 (B), 1100 (C), 1101 (D), 1110 (E), and 1111 (F). The digits in () are the hex equivalents to the preceding binary number.
● Remove the space and you will get your hexadecimal number

Hexadecimal to Decimal
● Write out the hexadecimal in its expanded form.
● For example, 1A2B3C16 becomes
1*165+10*164+2*163+11*162+3*161+12*160
● Evaluate the sum in decimal = 1715004
● You can then convert the decimal to Binary

Decimal to Hexadecimal
● Divide the decimal number by 16. Treat the division as an integer division.
● Write down the remainder (in hexadecimal, ie. if the remainder is 12, write down "C") from right to left. If the remainder is 0, then write the result and stop.
● Divide the result again by 16. Treat the division as an integer division.
● Repeat step 2 and 3 until result is less than 1.
● You get your hexadecimal equivalent