Thursday, April 12, 2012

Ternary Operator

Ternary operator dalam ilmu komputer merupakan operator untuk bahasa pemrograman yang memiliki 3 argumen yang dipisahkan oleh karakter '?' dan ':'. Operator ini merepresentasikan operasi asignment suatu variabel berdasarkan kondisi argumen sebelum '?'. Bentuk umum dari operator ini adalah:
(kondisi)?ekspresi_pertama:ekspresi_kedua;
ekspresi_pertama dijalankan jika kondisi bernilai true, jika kondisi bernilai false maka ekspresi_kedua yang akan dijalankan.
Lihat contoh statemen operator ternary berikut:
No C++/Java PHP
1 max=(a>b):a:b; $max=($a>$b)?$a:$b;
2 n=(n%2==0)?n/2:3*n+1; $n=($n%2==0)?$n/2:3*$n+1;

Statement pada tabel di atas jika dituliskan dengan struktur kontrol kondisi if sebagai berikut:
No C++/Java PHP
1
if (a>b) {
  max=a;
  } else {
  max=b;
  } 
if ($a>$b) { 
  $max=$a; 
  }else {
  $max=:$b; 
  } 
2
if (n%2==0) { 
    n=n/2; 
    } else {
    n=3*n+1;
    }
if ($n%2==0) { 
    $n=$n/2; 
    } else {
    $n=3*$n+1;
    }
Lalu bagaimana jika kondisi yang dapat dipenuhi lebih dari 2, misal untuk menentukan bilangan terbesar dari 3 bilangan, perhatikan pseudocode berikut:
if a>b 
  if a>c
   max=a
  else
   max=c
else
  if b>c
   max=b
  else
   max=c

Implementasi operator ternary dari pseudocode lihat contoh script lengkap dalam C++ berikut:
#include <iostream>

using namespace std;
int main()
{
   int a=90,b=80,c=530,max;
   max=(a>b)?(a>c)?a:c:(b>c)?b:c; //menentukan nilai max
   cout<<max;
   return 0;
 }

Dari pemaparan contoh-contoh di atas, operator ternary dapat digunakan sebagai pengganti statement if sehingga kode yang dibuat dapat menjadi lebih pendek sehingga dapat mengurangi code of line yang efeknya adalah ukuran file code yang dihasilkan akan lebih kecil.
Technorati Profile

Sunday, April 8, 2012

C++ Operator: Increment-decrement Operator

Operator increment merupakan operator yang digunakan untuk menambah 1 nilai suatu variabel bertipe bilangan dan operator decrement merupakan kebalikan dari operator increment, yaitu mengurangi 1 nilai dari suatu variabel.

Operator increment dalam C++ dinyatakan dengan:
++nama_varibel atau dengan nama_variabel++   
StatementBentuk Lain
i++; atau ++i; i=i+1;
i+=1;
i--; atau --i;i=i-1;
i-=1;
Tanda ++ atau -- sesudah dan sebelum variabel memberikan pengaruh yang berbeda jika operator ini digunakan pada proses assigment variabel lain. Misal:
StatementBentuk LainHasil
i=15;
A=i++;
i=15;
A=i;
i++;
A=15;
i=16;
i=20;
A=--i;
i=20;
i--;
A=i;
A=19;
i=19;

Perhatikan statement berikut:
int a=10,b=12,c=-7,hasil=0;
hasil = a++ + ++b - c++;

Statement ini akan menghasilkan nilai-nilai:
hasil = 30, a=11, b=12, dan c=-6;

Kenapa nilai Hasil=30 ??
Statement di atas mewakili :
b=b+1;
hasil=a + b - c; //10 +13 - (-7) = 30
a=a+1;
c=c+1;

Untuk lebih jelasnya anda jalankan code program berikut:
#include <iostream>
  using namespace std;
  int main() {
  int a=5,b=6,c=2,result=2;
  cout<<a<<" "<<b<<" "<<c<<" "<<result<<endl;
  result += a++ + --b - --c + ++a - b++;
  cout<<a<<" "<<b<<" "<<c<<" "<<result;
  return 0;
  }
Kode ini akan memberikan output:
5 6 2 2
7 6 1 12

Technorati Profile

Tuesday, April 3, 2012

Site Detik Finance diblokir Google


Pagi-pagi mau baca berita di detik kok tiba-tiba waktu klik berita di detik finance ada peringatan bahwa situs ini dilaporkan sebagai web penyerang yang berbahaya bagi informasi data-data pribadi di komputer.
Jika di klik button Mengapa situs ini diblokir akan diarahkan ke halaman diagnostic google di http://safebrowsing.clients.google.com/safebrowsing/diagnostic?client=Firefox&hl=id&site=http://finance.detik.com/read/2012/04/02/104523/1882576/1034/wah-tak-hanya-alphard-fortuner-sampai-jaguar-juga-minum-premium?991104topnews, yang berisi:





Apa status cantuman terbaru untuk finance.detik.com?

Situs tercantum sebagai mencurigakan - mengunjungi situs web ini dapat membahayakan komputer Anda.

Sebagian dari situs ini tercantum karena kegiatan mencurigakan sebanyak 4 kali selama 90 hari terakhir.

Apa yang terjadi saat Google mengunjungi situs ini?

Dari 876 laman yang kami uji pada situs tersebut selama 90 hari terakhir, 13 laman menyebabkan perangkat lunak berbahaya terunduh dan terpasang tanpa persetujuan pengguna. Google terakhir kali mengunjungi situs ini pada 2012-04-02 dan konten yang mencurigakan terakhir kali ditemukan di situs ini pada 2012-04-02.

Perangkat lunak berbahaya mencakup 2 scripting exploit(s), 1 trojan(s). Infeksi yang berhasil menyebabkan rata-rata 5 proses baru pada mesin target.

Perangkat lunak berbahaya diinangi pada 1 domain, termasuk jhcgqjwhegorqtg.co.cc/.

Situs ini diinangi pada 2 jaringan, termasuk AS27357 (RACKSPACE), AS24211 (DETIK).

Apakah situs ini telah bertindak sebagai perantara yang menyebabkan penyebaran perangkat lunak jahat lebih lanjut?

Selama 90 hari terakhir, finance.detik.com tidak tampak berfungsi sebagai perantara terinfeksinya situs mana pun.

Apakah situs ini telah menginangi perangkat lunak jahat?

Tidak, situs ini tidak menginangi perangkat lunak berbahaya selama 90 hari terakhir.

Bagaimana hal ini bisa terjadi?

Dalam beberapa kasus, pihak ketiga dapat menambahkan kode berbahaya pada situs yang sah, yang akan memicu kami untuk menampilkan pesan peringatan.

Langkah berikutnya:




Apa ada kemungkinan situs detik di hack ?

Type your summary hereType rest of the post hereTechnorati Profile

Saturday, November 8, 2008

Functional Dependencies (Basis Data)

Ya udah lama ga nulis diblog sekarang mau kembali lagi dengan tema baru, kok ga fokus? ya begitulah kira-kira, tuhan kan suka membolak-balikan hati manusia sehingga apa yang direncanakan kadang-kadang berubah di tengah jalan. Tapi untuk materi lainya akan menyusul nanti (insya allah).

Functional Dependencies atau ketergantungan fungsional merupakan ketergantungan relasi suatu atribut dalam tabel atau set entity terhadap atribut yang lainya.
Misalnya diberikan relasi R, Atribut A dikatakan mempengaruhi secara fungsional atribut lainya B yang juga berada di R, ditulis dengan A --> B (baca: A menentukan B atau B tergantung A), jika untuk setiap elemen/anggota dari atribut A memetakan satu elemen pada Y, dan tidak harus sebaliknya.

Contoh:
Misalkan pada Data Mahasiswa terdapat atribut: NIM, Nama, Alamat. dikarenakan Nama tergantung pada NIM dan Alamat tergantung pada NIM, maka :
NIM --> Nama dan NIM --> Alamat.

Aturan-aturan Ketergantungan Fungsional:
Jika A,B,dan C merupakan himpunan atribut pada relasi R, maka terdapat sifat-sifat yang dikenal dengan axioma amstrong (sifat-sifat ini digunakan untuk normalisasi) adalah sebagai berikut:

  1. Aksioma Reflexity: Jika B merupakan subset A, maka A --> B,

  2. Aksioma Augmentasi: Jika A --> B, maka AC --> BC,

  3. Aksioma Transitifity: Jika A --> B dan B --> C, maka A --> C


dengan aturan-aturan diatas dapat dibuat aturan turunan sebagai berikut:

  1. Union: Jika A --> B dan A --> C, maka A --> BC,

  2. Dekomposisi: Jika A --> BC , maka A --> B dan A --> C,

  3. Peseudo Transitifity: Jika A --> B dan BC --> D, maka AC --> D,



sumber : wikipedia


Type rest of the post here

Technorati Profile

Wednesday, October 3, 2007

"Exception in thread "main" java.lang.NoClassDe fFoundError: hello"

Ini adalah problem pertama saya ketika baru belajar java dan probelm ini juga yang biasa didapati oleh new user-nya java dan sedikit saya posting solusi untuk mengatasi masalah ini

Masalah
"Exception in thread "main" java.lang.NoClassDe fFoundError: hello"

ini berarti interpreter java tidak menemukan class hello di classpath.

classpath sendiri adalah path atau direktori yang menyimpan class-2x java. jadi misalkan anda membuat program java di

d:\javaprogram

dengan nama hello.java
lalu dicompile dengan cara javac hello.java
maka akan ada file baru dengan nama hello.class

ada kemungkinan direktori d:\javaprogam bukan merupakan classpath
untuk menambahkan direktori d:\javaprogram menjadi classpath ikuti langkah ini:

1. Tidak permanen
sebelum menjalankan java terlebih dahulu ketikan perintah berikut:

set classpath=d: \javaprogram; %classpath%

lalu anda dapat menjalankan perintah java

java hello (misalnya)

2. permanen
Klik kanan mycomputer --> properties --> advance --> environments variables --> pilih classpath di system variables --> edit -- > dan tambahkan ;d:\javaprogram di akhir baris
lalu klik OK

tips ini mungkin hanya berjalan di lingkungan WINXP


Technorati Profile