Pendahuluan

Kemajuan di bidang telekomunikasi dan komputer telah memungkinkan seseorang untuk melakukan transaksi bisnis secara cashless, selain itu ia juga dapat mengirimkan informasi kepada temannya secara on-line.

Kegiatan-kegiatan tersebut tentu saja akan menimbulkan resiko bilamana informasi yang sensitif dan berharga tersebut diakses oleh orang-orang yang tidak berhak (unauthorized persons). Misalnya, informasi mengenai nomor kartu kredit anda, bila informasi ini jatuh kepada orang-orang yang jahat maka anda harus bersiap-siap terhadap melonjaknya tagihan kartu kredit anda.

Sebelum tahun 1970-an, teknologi kriptografi digunakan terbatas hanya untuk tujuan militer dan diplomatik. Akan tetapi kemudian bidang bisnis dan perorangan mulai menyadari pentingnya melindungi informasi berharga.

Pengertian Dasar

Suatu pesan yang tidak disandikan disebut sebagai plaintext ataupun dapat disebut juga sebagai cleartext. Proses yang dilakukan untuk mengubah plaintext ke dalam ciphertext disebut encryption atau encipherment. Sedangkan proses untuk mengubah ciphertext kembali ke plaintext disebut decryption atau decipherment. Secara sederhana istilah-istilah di atas dapat digambarkan sebagai berikut :

Proses Enkripsi/Dekripsi
Gb. 1. Proses Enkripsi/Dekripsi Sederhana

Cryptography adalah suatu ilmu ataupun seni mengamankan pesan, dan dilakukan oleh cryptographer. Sedang, cryptanalysis adalah suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang melakukannya disebut cryptanalyst.

Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan.

Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :

EK (M) = C (Proses Enkripsi)
DK (C) = M (Proses Dekripsi)

Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya.

Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan.

Cryptographic system (cryptosystem)

Suatu cryptosystem terdiri dari sebuah algoritma, seluruh kemungkinan plaintext, ciphertext dan kunci-kunci. Secara umum cryptosystem dapat digolongkan menjadi dua buah, yaitu :

1. Symmetric Cryptosystem

Dalam symmetric cryptosystem ini, kunci yang digunakan untuk proses enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat pula diturunkan dari kunci yang lainnya. Kunci-kunci ini harus dirahasiakan. Oleh karena itulah sistem ini sering disebut sebagai secret-key ciphersystem. Jumlah kunci yang dibutuhkan umumnya adalah :

nC2 = n . (n-1)
--------
2

dengan n menyatakan banyaknya pengguna.
Contoh dari sistem ini adalah Data Encryption Standard (DES), Blowfish, IDEA.

2. Assymmetric Cryptosystem

Dalam assymmetric cryptosystem ini digunakan dua buah kunci. Satu kunci yang disebut kunci publik (public key) dapat dipublikasikan, sedang kunci yang lain yang disebut kunci privat (private key) harus dirahasiakan. Proses menggunakan sistem ini dapat diterangkan secara sederhana sebagai berikut : bila A ingin mengirimkan pesan kepada B, A dapat menyandikan pesannya dengan menggunakan kunci publik B, dan bila B ingin membaca surat tersebut, ia perlu mendekripsikan surat itu dengan kunci privatnya. Dengan demikian kedua belah pihak dapat menjamin asal surat serta keaslian surat tersebut, karena adanya mekanisme ini. Contoh sistem ini antara lain RSA Scheme dan Merkle-Hellman Scheme.

Setiap cryptosytem yang baik harus memiliki karakteristik sebagai berikut :

  • Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma yang digunakan.
  • Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar.
  • Cryptosystem yang baik akan menghasilkan ciphertext yang terlihat acak dalam seluruh tes statistik yang dilakukan terhadapnya.
  • Cryptosystem yang baik mampu menahan seluruh serangan yang telah dikenal sebelumnya
Namun demikian perlu diperhatikan bahwa bila suatu cryptosystem berhasil memenuhi seluruh karateristik di atas belum tentu ia merupakan sistem yang baik. Banyak cryptosystem lemah yang terlihat baik pada awalnya. Kadang kala untuk menunjukkan bahwa suatu cryptosystem kuat atau baik dapat dilakukan dengan menggunakan pembuktian matematika.

Hingga saat ini masih banyak orang yang menggunakan cryptosystem yang relatif mudah dibuka, alasannya adalah mereka tidak mengetahui sistem lain yang lebih baik serta kadang kala terdapat motivasi yang kurang untuk menginvestasikan seluruh usaha yang diperlukan untuk membuka suatu sistem.

Cryptographic Protokol

Pengertian

Suatu protokol adalah serangkaian langkah yang melibatkan dua pihak atau lebih dan dirancang untuk menyelesaikan suatu tugas. Dari definisi ini dapat diambil beberapa arti sebagai berikut :

  • protokol memiliki urutan dari awal hingga akhir;
  • setiap langkah harus dilaksanakan secara bergiliran;
  • suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai;
  • diperlukan dua pihak atau lebih untuk melaksanakan protokol;
  • protokol harus mencapai suatu hasil;
Selain itu, suatu protokol pun memiliki karakteristik yang lain, yaitu :
  • setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu mengenai protokol dan seluruh langkah yang akan dilaksanakan;
  • setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya;
  • protokol tidak boleh menimbulkan kerancuan;
  • protokol harus lengkap;
Cryptographic protocol adalah suatu protokol yang menggunakan kriptografi. Protokol ini melibatkan sejumlah algoritma kriptografi, namun secara umum tujuan protokol lebih dari sekedar kerahasiaan. Pihak-pihak yang berpartisipasi mungkin saja ingin membagi sebagian rahasianya untuk menghitung sebuah nilai, menghasilkan urutan random, atau pun menandatangani kontrak secara bersamaan. Penggunaan kriptografi dalam sebuah protokol terutama ditujukan untuk mencegah atau pun mendeteksi adanya eavesdropping dan cheating.

Fungsi Protokol

Dalam kehidupan kita sehari-hari terdapat banyak sekali protokol tidak resmi, misalnya saja dalam permainan kartu, pemungutan suara dalam pemilihan umum. Akan tetapi tidak ada seorang pun yang memikirkan mengenai protokol-protokol ini, protokol-protokol ini terus berkembang, semua orang mengetahui bagaimana menggunakannya.

Saat ini, semakin banyak interaksi antar manusia dilakukan melalui jaringan komputer. Komputer ini tentu saja memerlukan suatu protokol formal agar dapat melakukan hal yang biasa dilakukan manusia tanpa berpikir. Bila kita berpindah dari satu daerah ke daerah lain dan mengetahui bahwa kartu pemilihan suaranya berbeda dengan yang biasa kita gunakan, kita dapat beradaptasi dengan mudah. Akan tetapi kemampuan ini belum dimiliki oleh komputer, sehingga diperlukan suatu protokol.

Protokol digunakan untuk mengabtraksikan proses penyelesaian suatu tugas dari mekanisme yang digunakan. Protokol komunikasi adalah sama meskipun diimplementasikan pada PC atau VAX. Bila kita yakin bahwa kita memiliki protokol yang baik, kita dapat mengimplementasikannya dalam segala benda mulai dari telepon hingga pemanggang roti cerdas.

Penyerangan terhadap protokol

Penyerangan cryptographic dapat ditujukan pada beberapa hal berikut :

  • algoritma cryptographic yang digunakan dalam protokol;
  • teknik cryptographic yang digunakan untuk mengimplementasikan algoritma dan protokol;
  • protokol itu sendiri;
Seseorang dapat mencoba berbagai cara untuk menyerang suatu protokol. Mereka yang tidak terlibat dalam protokol dapat menyadap sebagian atau seluruh protokol. Tindakan ini disebut penyerangan pasif, karena si penyerang tidak mempengaruhi atau mengubah protokol, ia hanya mengamati protokol dan berusaha untuk memperoleh informasi.

Selain itu, seorang penyerang dapat berusaha untuk mengubah protokol demi keuntungannya sendiri. Ia dapat mengirimkan pesan dalam protokol, menghapus pesan, atau bahkan mengubah informasi yang ada di dalam suatu komputer. Tindakan-tindakan ini disebut sebagai penyerangan aktif, karena ia membutuhkan suatu campur tangan aktif.

Seorang penyerang tidaklah hanya berasal dari lingkungan luar protokol, namun ia mungkin juga berasal dari dalam protokol itu sendiri, ia dapat merupakan salah satu pihak yang terlibat dalam protokol. Tipe penyerang semacam ini disebut sebagai cheater. Passive cheater mengikuti protokol, tetapi berusaha memperoleh informasi lebih banyak daripada yang diperbolehkan protokol bagi dirinya. Active cheater mengubah protokol dalam usahanya untuk berbuat curang.

Usaha untuk menjaga keamanan protokol akan semakin sulit apabila pihak-pihak yang terlibat umumnya merupakan active cheater, oleh karena itu suatu protokol yang baik harus mampu atau pun harus aman terhadap kemungkinan passive cheating.

Berbagai macam basic cryptanalytic attacks

Tujuan cryptanalytic attack adalah untuk mengetahui beberapa plaintext yang sesuai dengan ciphertext yang ada dan berusaha menentukan kunci yang memetakan satu dengan yang lainnya. Plaintext ini dapat diketahui karena ia merupakan standar atau karena pendugaan. Jika suatu teks diduga berada di dalam suatu pesan, posisinya mungkin tidak diketahui, tetapi suatu pesan lazimnya cukup pendek sehingga memungkinkan cryptanalyst menduga plaintext yang diketahui dalam setiap posisi yang mungkin dan melakukan penyerangan pada setiap kasus secara paralel.

Suatu algoritma enkripsi yang kuat tidak hanya mampu bertahan terhadap serangan plaintext yang dikenal tetapi juga mampu bertahan terhadap adaptive chosen plaintext. Dalam penyerangan ini, cryptanalyst berkesempatan memilih plaintext yang digunakan dan dapat melakukannya secara berulang kali, memilih plaintext untuk tahap N+1 setelah menganalisis hasil tahap N.

Yang dimaksud cryptanalytic attacks adalah usaha-usaha yang dilakukan seseorang untuk memperoleh informasi ataupun data yang telah dienkripsi. Secara ringkas terdapat tujuh macam basic cryptanalytic attacks berdasarkan tingkat kesulitannya bagi penyerang, dimulai dari yang paling sulit adalah :

  • Ciphertext-only attack. Dalam penyerangan ini, seorang cryptanalyst memiliki ciphertext dari sejumlah pesan yang seluruhnya telah dienkripsi menggunakan algoritma yang sama.
  • Known-plaintext attack. Dalam tipe penyerangan ini, cryptanalyst memiliki akses tidak hanya ke ciphertext sejumlah pesan, namun ia juga memiliki plaintext pesan-pesan tersebut.
  • Chosen-plaintext attack. Pada penyerangan ini, cryptanalyst tidak hanya memiliki akses atas ciphertext dan plaintext untuk beberapa pesan, tetapi ia juga dapat memilih plaintext yang dienkripsi.
  • Adaptive-chosen-plaintext attack. Penyerangan tipe ini merupakan suatu kasus khusus chosen-plaintext attack. Cryptanalyst tidak hanya dapat memilih plaintext yang dienkripsi, ia pun memiliki kemampuan untuk memodifikasi pilihan berdasarkan hasil enkripsi sebelumnya. Dalam chosen-plaintext attack, cryptanalyst mungkin hanya dapat memiliki plaintext dalam suatu blok besar untuk dienkripsi; dalam adaptive-chosen-plaintext attack ini ia dapat memilih blok plaintext yang lebih kecil dan kemudian memilih yang lain berdasarkan hasil yang pertama, proses ini dapat dilakukannya terus menerus hingga ia dapat memperoleh seluruh informasi.
  • Chosen-ciphertext attack. Pada tipe ini, cryptanalyst dapat memilih ciphertext yang berbeda untuk didekripsi dan memiliki akses atas plaintext yang didekripsi.
  • Chosen-key attack. Cryptanalyst pada tipe penyerangan ini memiliki pengetahuan tentang hubungan antara kunci-kunci yang berbeda.
  • Rubber-hose cryptanalysis. Pada tipe penyerangan ini, cryptanalyst mengancam, memeras, atau bahkan memaksa seseorang hingga mereka memberikan kuncinya.


Analisis berbagai tipe penyerangan secara matematis

Suatu penyerangan pasif atas cryptosystem adalah semua metode untuk mengungkapkan informasi tentang plaintext dan ciphertextnya dengan tanpa mengetahui kunci. Secara matematis :

Diberikan fungsi F, G, dan H yang terdiri dari n variabel.
Diberikan sistem enkripsi E.
Diberikan suatu distribusi plaintext dan kunci.

Suatu penyerangan atas E dengan menggunakan G dengan mengasumsikan F membagi H dengan probabilitas p adalah suatu algoritma A dengan sepasang input f,g dan satu buah output h sedemikian hingga terdapat probabilitas p atas h = H(P1, …, Pn), jika kita memiliki f = F(P1, …, Pn) dan g = G(EK(P1), …, EK(Pn)). Perlu diperhatikan bahwa probabilitas ini tergantung pada distribusi vektor-vektor (K,P1,…,Pn).

Penyerangan akan merupakan suatu trivial bila terdapat probabilitas paling sedikir p untuk h = H(P1, …, Pn) jika f = F (P1,…,Pn) dan g = G (C1,…,Cn). Di sini C1,…,Cn terletak pada ciphertext yang mungkin, dan tidak memiliki hubungan tertentu dengan P1,…,Pn. Dengan kata lain, suatu serangan akan merupakan trivial bila ia tidak benar-benar menggunakan enkripsi EK(P1),…,EK(Pn).

Dengan merumuskan penyerangan secara matematis, kita dapat secara tepat memformulasikan dan bahkan membuktikan pernyataan bahwa suatu cryptosystem itu kuat. Kita katakan, sebagai contoh, bahwa suatu cryptosystem adalah aman terhadap seluruh penyerangan pasif jika sembarang penyerangan nontrivial terhadapnya tidak praktis. Jika kita dapat membuktikan pernyataan ini maka kita akan memiliki keyakinan bahwa cryptosystem kita akan bertahan terhadap seluruh teknik cryptanalytic pasif. Jika kita dapat mereduksi pernyataan ini hingga pada beberapa masalah yang tidak terpecahkan maka kita masih tetap memiliki keyakinan bahwa cryptosystem kita tidak mudah dibuka.

Ciphertext-only attack

Dengan menggunakan notasi di atas, suatu ciphertext-only attack adalah suatu penyerangan dengan F adalah konstanta. Diberikan hanya beberapa informasi G(EK(P1),..EK(Pn)) tentang n ciphertext, penyerangan harus memiliki kesempatan menghasilkan beberapa informasi H(P1,…,Pn) tentang plaintext. Penyerangan akan merupakan suatu trivial bila ia hanya menghasilkan H(P1,…,Pn) ketika diberikan G(C1,…,Cn) untuk C1,…,Cn acak.

Sebagai contoh, misalkan G ( C ) = C dan misalkan H(P) adalah bit pertama P. Kita dapat secara mudah menulis suatu penyerangan, pendugaan, yang menduga bahwa H(P) adalah 1. Penyerangan ini adalah trivial karena tidak menggunakan ciphertext, probabilitas keberhasilannya adalah 50 %. Di lain pihak, terdapat penyerangan atas RSA yang memproduksi satu bit informasi tentang P, dengan probabilitas keberhasilan 100 %, menggunakan C. Jika diberikan suatu C acak maka tingkat kesuksesan turun menjadi 50%. Inilah yang disebut penyerangan nontrivial.

Known-plaintext attack

Penyerangan known-plaintext klasik memiliki F(P1,P2) = P1, G(C1,C2) = (C1,C2), dan H(P1,P2) tergantung hanya pada P2. Dengan kata lain, bila diberikan dua ciphertext C1 dan C2 dan satu dekripsi P1, penyerangan known-plaintext seharusnya menghasilkan informasi tentang dekripsi P2.

Brute-force attack

Umpamakan penyerangan known-plaintext berikut. Kita diberikan sejumlah plaintext P1,…,Pn-1 dan ciphertext C1,…,Cn-1. Kita juga diberikan sebuah ciphertext Cn. Kita jalankan seluruh kunci K. Bila kita temukan K sedemikian sehingga EK(P1) = Ci untuk setiap IK(Cn).

Jika n cukup besar sehingga hanya satu kunci yang bekerja, penyerangan ini akan sukses untuk seluruh input yang valid pada setiap waktu, sementara ia akan menghasilkan hasil yang tepat hanya sekali untuk input acak. Penyerangan ini adalah nontrivial, masalahnya ia sangat lambat bila terdapat banyak kemungkinan kunci.




Smadav 2010 Rev. 8 dirilis dengan berbagai fitur dan penyempurnaan baru yang dikhususkan untuk pemberantasan virus lokal. Fitur-fitur itu seperti Smad-Behavior yang bisa mengenali virus lokal baru yang belum ada di database Smadav dari tingkah lakunya ketika menginfeksi sistem. Smad-Ray yang bisa melakukan scan flashdisk secara otomatis setelah terpasang hanya dalam waktu maksimum 5 detik. Smadav 2010 lebih stabil dan sangat disarankan untuk digabungkan dengan antivirus internasional karena Smadav hanya bisa menangani virus lokal. Pengebalan flashdisk (menggunakan folder autorun.inf) telah disempurnakan lagi dan sebelumnya akan ada konfirmasi sehingga Anda bisa memutuskan apakah suatu flashdisk ingin dikebalkan atau tidak.
Sebagai informasi, dari sampel-sampel virus yang di-upload pengguna ke situs Smadav.net, penyebaran virus lokal saat ini sudah mulai turun drastis di Indonesia. Mungkin ini dikarenakan sudah banyaknya antivirus lokal yang bisa membasmi virus-virus lokal. Dan juga karena pengguna Windows XP yang sudah berkurang karena sebagian sudah meng-upgrade sistem operasinya menjadi Windows Vista atau Windows 7 yang sangat aman dari infeksi virus khususnya virus lokal. Penyebaran virus di Indonesia lebih banyak didominasi oleh virus dan malware internasional yang tentunya tidak bisa diatasi Smadav. Anda wajib dan sangat disarankan menggunakan antivirus internasional untuk perlindungkan komputer Anda dari virus dan malware internasional ini.
demo


12/19/2009

Array di C#

Array adalah salah data type yang terdiri dari beberapa elemen atau kumpulan kumpulan values dari variable yang sejenis. Untuk lebih jelasnya perhatikan gambarannya sebagai berikut :
Jika kita mendeklarasikan variable primitif sebagai contoh int a = 10; maka dalam memori komputer akan menyimpan nama dari varibel tersebut beserta valuenya.

Perbedaannya dengan array adalah, dalam suatu varibel yang dideklarasikan sebagai array dia bisa menyimpan value lebih dari satu pada indeks yang berbeda

maka dalam ilustrasi diatas bisa diartikan bahwa variabel array “A” dengan tipe integer memiliki nilai 10 pada indeks ke-0, 11 pada indeks ke-1, 19 pada indeks ke-2, dan 27 pada indeks ke 3. Dengan demikian array “A” memiliki panjang 4 dan memiliki tipe data integer.
Berikut ini adalah contoh implementasi array pada C#.

using System;

namespace InputOutput
{
class Program
{
static void Main(string[] args)
{
int[] array = new int[10];

for ( int counter = 0; counter <>
{
Console.WriteLine(array[counter]);
}
}
}
}

Maka setelah kita compile akan menghasilkan output demikian : Index Value 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 Contoh diatas merupakan array yang belum diberi nilai, maka setiap indeks dalam array akan diisi nilai 0 oleh C#, nah selanjutnya kita akan bahas mengenai bagaimana memberi nilai pada array tersebut, perhatikan contoh program dibawah ini :

using System;

namespace InputOutput {

class Program {

static void Main(string[] args) {

int[] array = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 };

for ( int counter = 0; counter <>

Console.WriteLine(array[counter]);

}
}
}
}

Maka ketika kita compile, output array tidak lagi bernilai 0, karena sudah kita isi nilai didalamnya, perhatikan outputnya dibawah ini : Index Value 0 32 1 27 2 64 3 18 4 95 5 14 6 90 7 70 8 60 9 37 Penggunaan Array tidak hanya terbatas disitu saja, kita juga bisa membuat array multi dimensi, berbeda dengan contoh contoh diatas tersebut, array multi dimensi memiliki indeks legih dari satu digit, misal array[4][4], hal ini dapat direpresentasikan bahwa array tersebut memiliki jumlah kolom 4 dan baris 4.



Deklarasi array multidimensi tanpa memeberi nilai adalah seperti dibawah ini :
int array[][] = new int[ 10 ];
dan untuk deklarasi array sekaligus memberi nilai pada array tersebut adalah seperti ini :
int array[,] = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 } };

Yang akan kita bahas kali ini adalah mengenai Control Statements, dimana pertama tama kita akan membahas tentang struktur percabangan. Yaitu sebuah cara dimana program akan membuat suatu decesion atau keputusan terhadap apa yang akan dilakukannya, Sebagai contoh perhatikan kalimat berikut : “Jika hari hujan maka jalanan licin” sedangkan keadaan yang terjadi adalah hari tidak hujan maka jalanan tidak licin. Kasus tersebut adalah contoh sederhana dari sebuah kasus percabangan, sebagai contoh lain adalah berikut : “Jika nilai lebih dari 60 maka lulus” hal ini bisa digambarkan dalam flowchart seperti dibawah ini :


Maka dalam flowchart tersebut diilustrasikan bahwa jika “grade” lebih dari sama dengan 60 maka akan di-print “paseed”, hal ini dapat direpresentasikan dalam C# sebagai berikut :

using System;

namespace Percabangan
{
class Program
{
static void Main(string[] args)
{
int grade = Convert.ToInt32(Console.ReadLine());
if (grade >= 60)
{
Console.WriteLine("Passed");
}
else
{
Console.WriteLine("Failed");
}

}
}
}

Dalam program diatas dapat kita lihat bahwa percabangan sederhana dalam pemrograman komputer direpresentasikan dengan menggunakan if else. Dimana cara penggunaannya adalah sebagai berikut:
if ( kondisi )
{ Tindakan1 }
else
{ Tindakan2 }

Selain percabangan ini, kita juga bisa menggunakan multi percabangan, yaitu menggunakan struktur “if,else if”. Perbedaannnya adalah percabangan ini bisa digunakan untuk multi kondisi sehingga tidak hanya terbatas pada dua kondisi seperti if esle. Cara penggunaannya adalah sebagai berikut :

if (kondisi1)
{ Tindakan1 }
else if(kondisi2)
{ Tindakan2 }
else if(kondisi3)
{ Tindakan3 }
else if(kondisi4)
{ Tindakan4 }
else
{ Tindakan5 }

Untuk contoh programnya adalah sebagai berikut :

using System;

namespace Percabangan
{
class Program
{
static void Main(string[] args)
{
int studentgrade = Convert.ToInt32(Console.ReadLine());
if ( studentGrade >= 90 )
{ Console.WriteLine("A");}

else if ( studentGrade >= 80 )
{ Console.WriteLine("B"); }

else if ( studentGrade >= 70 )
{ Console.WriteLine("C"); }

else if ( studentGrade >= 60 )
{ Console.WriteLine("D"); }

else
{ Console.WriteLine("E"); }
}
}
}

Selain menggunakan if, else if, kita juga bisa menggunakan Switch Case untuk merepresentasikan multi percabangan. Sebagai contoh perhatikan program dibawah ini :

using System;

namespace Percabangan
{
class Program
{
static void Main(string[] args)
{
int angka = Convert.ToInt32(Console.ReadLine());
switch (angka)
{
case 1:
Console.WriteLine("Satu");
break;
case 2:
Console.WriteLine ("Dua");
break;
case 3:
Console.WriteLine ("Tiga");
break;
default:
Console.WriteLine ("Bukan Satu, Dua, Ataupun Tiga!!!");
break;
}
}
}
}


Maka ketika kita compile program diatas akan meminta inputan bilangan integer, jika kita inputkan 1, maka yang keluar adalah Satu , jika 2 maka yang keluar adalah Dua , jika 3 maka yang keluar adalah Tiga , dan jika lain itu maka yang keluar adalah Bukan Satu, Dua, Ataupun Tiga!!!.

Setelah kita membahas program Hello Words sederhana, selanjutnya kita akan membahas mengenai input dan output yang digunakan dalam C#. Sebagai contoh pertama perhatikanlah program dibawah ini, dimana program akan meminta inputan berupa dua buah bilangan integer atau bilangan bulat kepada user dan menampilkan hasil penjumlahannya ke layar.

using System;

namespace InputOutput
{
class Program
{
static void Main(string[] args)
{
Console.Write("Masukan Bilangan Bulat Pertama : ");
int angaka1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukan Bilangan Bulat Kedua : ");
int angaka2 = Convert.ToInt32(Console.ReadLine());

int sum = angaka1 + angaka2;

Console.WriteLine("Jumlahnya Adalah : " + sum);
}
}
}

Console.ReadLine() Adalah fungsi yang digunakan untuk membaca inputan dari user, akan tetapi format dari inputan yang diambil tersebut berupa string sehingga kita perlu mengubahnya menjadi integer agar dapat dioperasikan oleh karena itu kita menggunakan fungsi Convert.ToInt32() .
int sum = angaka1 + angaka2; Adalah operasi aritmatika yang menunjukan bahwa variabel jumlah diisi oleh penjumlahan dari variable angka1 dan angka1
Console.WriteLine("Jumlahnya Adalah : " + sum); Adalah cara untuk menampilkan suatu variable pada layar, jadi yang akan ditampilkan adalah text “Jumlahnya Adalah :” dan nilai dari variable jumlah.
Output dari program diatas adalah :
Masukan Bilangan Bulat Pertama: 35
Masukan Bilangan Bulat Pertama: 65
Jumlahnya Adalah : 117

Selain penjumlahan operator artimatikan dalam C# juga bisa berupa :
Perkalian #contoh : c = a * b;
Pembagian #contoh : c = a / b;
Pengurangan #contoh : c = a - b;
Modulo #contoh : c = a % b;

C# (C Sharp) adalah sebuah bahasa pemrograman yang dibuat setelah bahasa pemrograman Java muncul, basis dari C# sebenarnya adalah C++. Karena banyaknya kekurangan dan kelemahan dari bahasa pemrograman C++, maka akhirnya dibuat bahasa pemrograman Java, dengan fitur dan model yang lebih kompleks dari C++, Java memiliki banyak peminat. Akan tetapi setelah diketahui bahwa ternyata dalam bahasa pemrograman Java juga masih memiliki banyak kelemahan, akhirnya Java dikembangkan menjadi C#, dimana dalam bahasa pemrograman C# tersusun dari 70% Java, 20% C++ dan 10% baru. Sehingga hal ini dapat menciptakan suatu bahasa pemrograman baru yang menutup kelemahan C++, maupun Java.

Langsung saja mari kita perhatikan contoh program hello words dengan menggunakan C# berikut ini;

using System;

class Welcome
{
static void main( string[] args )
{
Console.WriteLine( "Hello Words !!!" );
}
}

Maka output dari program diatas adalah :

Hello Words !!!

Console.WriteLine( "Hello Words !!!" ); Adalah fungsi dalam C# yang digunakan untuk mencetak text kedalam layar dimana setelah mencetak text, ia langsung berganti ke baris baru dibawahnya. Sedangkan Console.Write() adalah fungsi yang digunakan untuk mencetak text akan tetapi tidak berganti baris ketika selesai.
Seperti halnya bahasa pemrograman yang lain, id dalam C# kita juga diperbolehkan menggunakan escape character, yaitu beberapa karakter khusus yang digunakan untuk memodifikasi pencetakan text yang kita lakukan. Untuk lebih jelasnya perhatikan contoh dibawah ini :
using System;

class Welcome
{
static void main( string[] args )
{
Console.WriteLine( "Hello\nWords!!!" );
}
}

Maka setelah kita mengcompile program diatas akan dihasilkan output seperti dibawah ini :

Hello
Words!!!

Pemrograman Bahasa C untuk AVR Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan high level language, dimana memudahkan programmer menuangkan algoritmanya. Untuk mengetahui dasar bahasa C dapat dipelajari sebagai berikut.

1. Struktur penulisan program
#include < [library1.h] > // Opsional
#include < [library2.h] > // Opsional
#define [nama1] [nilai] ; // Opsional
#define [nama2] [nilai] ; // Opsional
[global variables] // Opsional
[functions] // Opsional
void main(void) // Program Utama
{ [Deklarasi local variable/constant] [Isi Program Utama] }

2. Tipe data
char : 1 byte ( -128 s/d 127 )
unsigned char : 1 byte ( 0 s/d 255 )
int : 2 byte ( -32768 s/d 32767 )
unsigned int : 2 byte ( 0 s/d 65535 )
long : 4 byte ( -2147483648 s/d 2147483647 )
unsigned long : 4 byte ( 0 s/d 4294967295 )
float : bilangan desimal
array : kumpulan data-data yang sama tipenya.

3. Deklarasi variabel & konstanta
Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah.
Penulisan : [tipe data] [nama] = [nilai] ;
Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah.
Penulisan : const [nama] = [nilai] ;
Tambahan: Global variabel/konstanta yang dapat diakses di seluruh bagian program.
Local variabel/konstanta yang hanya dapat diakses oleh fungsi tempat dideklarasikannya.

4. Statement
Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /* ] dan [ */ ]. Statement yang tidak dieksekusi disebut juga comments / komentar.
Contoh: suhu=adc/255*100; //contoh rumus perhitungan suhu

5. Function Function
adalah bagian program yang dapat dipanggil oleh program utama.
Penulisan : [tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2]) { [statement] ; }

6. Conditional statement dan looping if else
digunakan untuk penyeleksian kondisi
if ( [persyaratan] ) { [statement1]; [statement2]; } else { [statement3]; [statement4]; }
for : digunakan untuk looping dengan jumlah yang sudah diketahui
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) { [statement1]; [statement2]; }
while : digunakan untuk looping jika dan salama memenuhi syarat tertentu
while ( [persyaratan] ) { [statement1]; [statement2]; }
do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun min 1 kali
do { [statement1]; [statement2]; } while ( [persyaratan] )
switch case : digunakan untuk seleksi dengan banyak kondisi
switch ( [nama variabel] ) { case [nilai1]: [statement]; break; case [nilai2]: [statement]; break; }

7. Operasi logika dan biner Logika
AND :&&
NOT : !
OR : ||
Biner AND : &
OR : |
XOR : ^
Shift right: >>
Shift left : <<
Komplemen : ~

8. Operasi relasional (perbandingan)
Sama dengan : ==
Tidak sama dengan : !=
Lebih besar : >
Lebih besar sama dengan : >=
Lebih kecil : <
Lebih kecil sama dengan : <=

9. Operasi aritmatika
+ , - , * , / : tambah,kurang,kali,bagi
+= , -= , *= , /= : nilai di sebelah kiri operator di tambah/kurang/kali/bagi dengan nilai di sebelah kanan operator
% : sisa bagi
++ , -- : tambah satu (increment) , kurang satu (decrement)
Contoh :
a = 5 * 6 + 2 / 2 -1 ;
maka nilai a adalah 30 a *= 5 ;
jika nilai awal a adalah 30, maka nilai a = 30x5 = 150. a += 3 ;
jika nilai awal a adalah 30, maka nilai a = 30+5 = 33. a++ ;
jika nilai awal a adalah 5 maka nilai a = a+1 = 6. a-- ;
jika nilai awal a adalah 5 maka nilai a = a-1 = 4.




Kali ini MiewzZ mau ngasih trik sederhana dalam memanipulasi Support Information pada Windows XP. Sebenarnya yang akan kita manipulasi adalah 3 hal, yaitu keterangan “Manufactured and suppo and g akan kita manipulasi adalah 3 hal, yaitu keterangan "anurmation pada Winrted by:” beserta gambar/logonya, dan keterangan di dalam menu Support Information. Ketiga hal tersebut dapat kalian temukan di System Properties Windows (tekan Windows+PauseBreak di Keyboard untuk membukanya).

Langkah Pertama membuat SourceCode untuk file Oeminfo.ini, buka notepad dan masukkan sourcecode berikut:

[General]

Manufacturer=MiewzZ //ganti: bebas

Model=-=KOmputer Anda Terdeteksi Virus Yang Mematikan …. !=- //ganti: bebas

SupportURL=Http://MiewzZ-4rea.co.cc //ganti: bebas

[Support Information]

Line1="Komputer Aink..."

Line2="Kumaha Aink Ajig...!!!"

Line3=""

Line4=""

Line5=""

Line6=”Instal ulang Windows nya”

//Untuk Keterangan di Line1 sampai Line tak terbatas silahkan isi Informasi apapun sesuka kalian.

Simpan file diatas dengan nama Oeminfo.ini dan pada Save As Type rubah menjadi All Files. Copy-Paste File ini di C:\WINDOWS\system atau jika tidak ada biasanya untuk Windows XP SP2 atau versi build yang lama biasanya di C:\WINDOWS\system32, jika muncul replace tekan Yes/Ok.

Untuk merubah Logo, buat image/gambar/foto (bebas) dengan dimensi +/- 180x120 dan simpan gambar dengan type BMP. Simpan di tempat yang sama seperti Oeminfo.ini.

Ok beres, silahkan buka lagi System Properties Windows kalian.

10/09/2009

TRICK GPRS GRATIS

Semua trick gprs gratis ini menggunakan operamini mod v3.12 sebagai sarana yang tepat untuk bisa berinternet gratis.
Berikut untuk dasar pengaturan jaringan operamininya:

1. untuk INDOSAT:

* server operamini dirubah: http://mmsc.indosat.com @server.operamini.com:80
* centang waktu koneksi, isi dengan: 60
* centang koneksi 'shadow'
* URL untuk koneksi juga dirubah: http://mmsc.indosat.com @mini.opera.com/help/faq
* dalam ponsel menggunakan proxy: pilih tidak
* server: mmsc.indosat.com
* port: 8080
login: indosat
password: indosat
Dan pengaturan java untuk koneksi gprs pada ponsel menggunakan indosatmms
Catatan:
Pastikan pengaturan seting jaringan sudah benar. Jika setelah dicoba tidak berhasil, atau muncul peringatan "isi web diblokir operator", saya anjurkan untuk exit atau keluar dari aplikasi, lalu masuk dan coba lagi, masukan alamat http://opera-mini.ru/index.html untuk pertama kali browsing, jika berhasil, selanjutnya silahkan untuk menjelajah ke alamat manapun sepuasnya.
Semoga berhasil...

Cara yang lebih praktis dan tidak ribet, gunakan koneksi indosatmms, langsung buat browsing lewat Hp, atau kalau browsing menggunakan operamini, pilih Http sebagai protokol koneksi.
"INDOSAT MASIH BISA

2. untuk XL:

* server opera mini: tetap (tidak dirubah)
* centang periksa waktu koneksi, di isi dengan: 500
* URL untuk koneksi: tetap (tidak dirubah)
* dalam ponsel menggunakan proxy: pilih HTTP
* server: www.br4v0.co.cc
* port: 8000
* pada saat mencoba trik ini, dianjurkan pulsa tersisa 1000, atau lagi tidak ada pulsa sama sekali, atau bisa juga sedang dalam masa tenggang.
"XL MASIH BISA"

3. untuk 3:

* server operamini: http://10.67.96.1 @server.operamini.com:80 atau http://server.operamini.com:80 ?wap.three.co.id
* URL untuk koneksi: http://10.67.96.1 @mini.opera.com/help/faq atau http://mini.opera.com/help/faq?10.67.96.1
* dalam ponsel menggunakan proxy: pilih tidak
* server: 10.4.0.10
* port: 3128
* login: 3gprs
* password: 3gprs
* pulsa pada saat mencoba trik ini harus ada tersisa minimal 1000.
"3 SUDAH TDK BISA"

4. untuk AXIS:

* server operamini: http://webconfig.axisworld.co.id @server.operamini.com:80
* URL untuk koneksi: http://webconfig.axisworld.co.id @mini.opera.com/help/faq
* dalam ponsel menggunakan proxy: pilih tidak
* server: 195.189.142.86
* port: 80
* login: axis
* password: 123456
"AXIS SUDAH TDK BISA LAGI"
Download operamini mod v3.12 test6 indo di mari.......
http://im3super.bplaced.com/java05/operamod.v3.12.test6.id.jar