Anda di halaman 1dari 15

DEKLARASI TIPE DATA BENTUKAN DI C++

Pendeklarasian tipe data bentukan dilakukan untuk menyatukan atribut-atribut yang terdapat pada suatu entitas. Meski terkesan mirip seperti pendeklarasian suatu kelas, tetapi tipe data bentukan belumlah termasuk suatu kelas. Hal ini dikarenakan pada saat pendeklarasian tipe data bentukan tidak ada operasi atau method yang dapat dicantumkan sebagaimana sebuah kelas. Sesuai namanya, yakni tipe data, jadi hanya kumpulan atribut-atribunya saja; yang berjenis tipe data primitif atau tipe data lainnya. Berikut adalah kode tipe data bentukan untuk entitas mahasis a pada bahasa !""
typedef struct{ char nama[150]; char nim[10]; float nTugas; float nUTS; float nUAS; } ahasis!a;

pada kode di atas, Mahasis a memiliki # atribut yaitu nama, nim, n$ugas, n%$S, dan n%&S dengan berbagai tipe data primitif yang menyertainya. Pendeklarasian tipe data bentukan ditandai dengan klausa typedef struct{}" Bagaimanakah apabila ingin menambahkan larik' apabila ingin menambahkan larik, cukup menambahkan kembali klausa typedeftersebut sebagai berikut(
typedef ahasis!a array ahasis!a[100];

)amun, array ahasis!a pun belum dapat digunakan, karena itu perlu ada kembali pendeklarasian *ariabel yang bertipe data arrayMahasis a semisal(
array ahasis!a mhs;

Bagaimana cara memanggilnya' misalnya ingin memasukkan nama. *ariabel mhs yang bertipe array mahasis a dipanggil dan diberi indek, kemudian dengan pemanggilan attribut dengan tanda baca titik, kita memanggil atrribut yang bersangkutan. seperti pada potongan kode program di ba ah ini(
cin ## mhs[i]"nama;

Semoga Bermanfaat

January 29, 2013 at 16:31 No comments Firmansyah

ALGORITMA REKURSIF
Pemrograman rekursif adalah sebuah cara meringkaskan suatu algoritma dengan memanggil dirinya sendiri. +alam contoh kasus, biasanya kita menggunakan perulangan untuk mendefinisikan suatu fungsi yang berulang-ulang. )amun dalam hal ini, perulangan tidak dilakukan. ,onon dengan memakai pemrograman rekursif, algoritma yang dihasilkan lebih ringkas s. +alam pemrograman rekursif, terdapat dua istilah penting yaitu basis dan rekurens. Basis adalah suatu keadaan yang terdefinisi yang akan menghentikan kondisi rekursif, sementara rekurans adalah sebuah Berikut adalah contoh program rekursif(
pu$lic class %e&ursif { pu$lic static 'oid main(String[] args) { System"out"println(**+fa&torial(,)); } pu$lic static dou$le fa&torial (int ang&a){ if(ang&a -- 1){ return 1; }else return ang&a . fa&torial(ang&a/1); }

pada algoritma di atas, yang menjadi basis adalah ketika angka - ., maka akan mengembalikan angka .. Hal ini kelak akan menjadi pengenti dari fungsi rekursif tersebut. Sementara rekurens mengembalikan nilai ang&a . fa&torial(ang&a/

1); yang memang sudah dikenal sebagai rumur rekursif /n0 - n /n-.1/n-21 3..1. Pada

rekurens terdapat pemanggilan fungsi ini kembali( fa&torial(ang&a/1)" Bila dilakukan dengan iterasi biasa, kode program akan seperti berikut
pu$lic class 0erulangan { pu$lic static 'oid main(String[] args) { System"out"println(**+fa&torial(,)); } pu$lic static dou$le fa&torial(int ang&a){ dou$le 1umlah - 0; for(int i-1; i2-ang&a; i++){ 1umlah - 1umlah . ang&a; } return 1umlah; }

} }

Bila dibandingkan, algoritma rekursif memang lebih mempersingkat; yang berasal dari penggunaan perulangan. Semoga Bermanfaat. 4eferensi( Munir, 4inaldi. /25561. &lgoritma dan Pemrograman dalam Bahasa Pascal dan !. Bandung( 7nformatika
January 28, 2013 at 12:34 No comments Firmansyah

ALGORITMA KONVERSI BILANGAN DESIMAL KE BINER


,on*ersi bilangan desimal ke biner banyak dilakukan untuk keperluan komputasi pada komputer. Misalnya untuk mengetahui 7P address pada jaringan internet &nda. )amun karena ini berupa algoritma, ada beberapa cara untuk menyelesaikan kasus kon*ersi bilangan ini. &da yang cara praktis, teoritis, maupun penuh logika. Berikut adalah perbandingan algoritma tersebut bila dituliskan dalam bahasa 8a*a. &lgoritma .

pu$lic String get3on'ersi4asis5(long $ilangan){ String &ara&ter-* *; int ang&a; if($ilangan -- 0){ &ara&ter-*0*; }else{ !hile($ilangan # 0){ ang&a - (int) ($ilangan 6 5); s!itch(ang&a){ case 0 7 &ara&ter-*0*+&ara&ter; $rea&; case 1 7 &ara&ter-*1*+&ara&ter; $rea&; } $ilangan - $ilangan 8 5; } } return &ara&ter; }

&lgoritma di atas adalah algortima secara umum untuk melakukan kon*ersi bilangan, dengan membagi angka yang diinginkan oleh 2 hingga angka tersebut habis( bernilai nol. Sisa bilangan tersebut akan menjadi bilangan biner dari angka tersebut. Method di atas akan mengembalikan *ariabel karakter berupa String yang tak lain adalah angka-angka biner yang dihasilkan. &lgoritma ke 2
pu$lic String get4ilangan4iner(String input){ int hasil - integer"parse9nt(input); String $il4iner - 9nteger"to4inaryString(hasil); return $il4iner; }

,alau

yang

ini

menggunakan

9cara

praktis:

karena

tinggal

memanggil

methodto4inaryString('ar) yang sudah tersedia pada library 8a*a; ba aan dari kelas 9nteger. Hasil dari kon*ersi method to4inaryString('ar) akan langsung

dikon*ersi menjadi String. !ara ini tidak membuat pemrogram tahu alur kon*ersinya karena hanya menggunakan library. &lgoritma ;

pu$lic :on'ert() { } final static char[] dig - { ;0; < ;1; < ;5; < ;,; < ;=; < ;5; < ;>; < ;?; < ;@; < ;A; < ;a; < ;$; < ;c; < ;d; < ;e; < ;f; < ;g; < ;h; < ;i; < ;1; < ;&; < ;l; < ;m; < ;n; < ;o; < ;p; < ;B; < ;r; < ;s; < ;t; < ;u; < ;'; < ;!; < ;C; < ;y; < ;D; }; pu$lic String &on'ersi(long i<int shift){ char[] $uf - ne! char[>=]; int char0os - >=; int radiC - 1 22 shift; long mas& - radiC / 1; do { $uf[//char0os] - dig[(int)(i E mas&)]; i ###- shift; } !hile (i F- 0); return ne! String($uf< char0os< (>= / char0os)); }

)ah kalau yang ini, algoritmanya cukup menyulitkan untuk ditelusuri karena menggunakan fasilitas buffer yang tersedia pada ja*a. semoga bila ada aktu algoritma ini dapat dibahas pada posting selanjutnya. 8ujur penulis pun belum mengetahui alur dari algoritma ini .

algoritma manapun yang digunakan sebenarnya tidak ada masalah. Hal terpenting dari algoritma /yang penulis tahu1 adalah efekti*itas dan kebenaran logikanya. Mungkin algoritma tersebut akan mangkus ketika menggunakan cara-cara yang sederhana

January 21, 2013 at 16:24 No comments Firmansyah

DEKLARASI VEKTOR
+eklarasi *ektor pada pemrograman bertujuan untuk menyimpan nilai dari objek atau *ariabel. Sifat ini hampir sama dengan deklarasi sebuah array. +alam artikel ini akan dibahas mengenai deklarasi *ektor di c"". &pabila menemukan kesalahan pada artikel ini dapat memberikan komentar pada kolom komentar. %ntuk mendeklarasikan *ektor di c"", terlebih dulu untuk melakukan sebuah Gincludedari library *ector(
Ginclude 2'ector#

Sementara untuk pendeklarasian a al dari *ector tersebut bisa dilakukan dengan cara berikut(
'ector 2 pair2 tipedata1< tipedata5# # namaHector (u&uran 'ector);

misalnya kita ingin mendeklarasikan *ektor berukuran #55 dengan nama sto, tipe data yang akan disimpan adalah tipe data integer. Berikut adalah pendeklarasiannya.
'ector 2 pair 2int< int# # sto(500);

untuk mengisinya kita dapat menggunakan fungsi berikut;


2nama 'ector#[inde&s]"first; untuk mengisi pasangan /pair1 yang pertama; dan 2nama 'ector#[inde&s]"second; untuk mengisi pasangan /pair1 yang kedua.

untuk lebih jelasnya bisa melihat kode program berikut(

<ungsi sto"siDe(); berfungsi untuk mengetahui ukuran dari *ector tersebut Semoga bermanfaat

July 31, 2012 at 06:46 No comments Firmansyah

PROGRAM SEGITIGA PASCAL


Segitiga pascal tentu sudah tidak asing lagi didengar. Segitiga =ajaib> ini memang memiliki banyak fungsi untuk komputasi matematika, salah satunya adalah untuk menentukan koefisien binomial ne ton. Permasalahannya, bila pengguna ingin mencari koefisien binomial yang pangkatnya lebih dari enam, mungkin agak lama untuk mencarinya. +engan adanya program ini, pencarian segitiga pascal diharapkan bisa lebih mudah. Berikut kode programnya(
Ginclude 2cstdli$# Ginclude 2iostream# using namespace std;

int main(int argc< char .arg'[]) { int myArr[100][100]; int ang&a; cin ## ang&a; for(int i - 0; i 2 ang&a+1; i++){ for(int 1 - 0; 1 2 i; 1++){ myArr[i][1] - myArr[i/1][1/1] + myArr[i/1][1]; } } for(int i - 0; i 2 ang&a+1; i++){ for(int h - ang&a+1; h #- i; h//){ cout 22 * *; } for(int 1 - 0; 1 2 i; 1++){ cout 22 myArr[i][1]8ang&a; cout 22 * *; } cout 22 *In*; } system(*0AUSJ*); return JK9TLSU::JSS; }

Bila kode program dieksekusi hasilnya adalah sebagai berikut

Masukkan adalah banyaknya baris yang diinginkan oleh user. Sementara itu, program langsung menampilkan banyaknya baris segitiga pascal tersebut dengan perhitungan yang tepat. Semoga bermanfaat.
July 9, 2012 at 06:38

1 comment Firmansyah

PREPROCESSOR PADA C++


Pernah mendengar kata preprocessor' &pa itu preprocessor' Mungkin dalam benak kita langsung tertuju pada tempat memproses data dalam computer. Sebenarnya kata preprocessor sendiri memang berhubungan dengan proses-memproses. )amun tidak serta merta merupakan benda?alat yang konkret. Preprocessor yang dibahas disini adalah preprocessor yang terdapat pada bahasa pemrograman, khususnya bahasa !""; berikut adalah pembahasannya. Preprocessor adalah sebuah cara untuk menggantikan perintah-perintah yang umum digunakan pada bahasa pemrograman sebelum dieksekusi. Sebelum dieksekusi, compiler akan membaca preprocessor yang ada di dalam kode tersebut. Preprocessor ditandai dengan notasi @ /hash1 +i dalam bahasa pemrograman !"", dikenal ada empat sintaks preprocessor yakni
Gdefine< Gundef< Gifdef< Gifndef"

Pre!ro"e##or $%ef&ne %an $'n%ef Preprocessor @define digunakan untuk mengganti setiap keberadaan kata pada source code dengan kata lain. Sintaksnya adalah sebagai berikut(
Gdefine &ataLpengganti &ataLyangLdiganti

dengan(
3ataL0engganti( adalah kata yang akan menggantikan kataAyangAdiganti?perintah

a al pada source code


3ataLyangLdiganti ( adalah perintah a al pada source code yang akan diganti

Berikut adalah contoh source code nya(


Ginclude 2cstdli$# Ginclude 2iostream# Gdefine ASU3 cin

Gdefine TA 09M3AN cout using namespace std; int main(int argc< char .arg'[]) { string nama;

TA 09M3AN 22 * ASU33AN NA A ANOA 7 ASU3 ## nama; TA 09M3AN 22 *NA A ANOA 7 system(*0AUSJ*); return JK9TLSU::JSS; }

*;

*22 nama22 endl

Berikut adalah hasil dari kompilasi program

terlihat bah a perintah cin yang berfungsi untuk memasukkan inputan ke dalam *ariabel dari user digantikan dengan kata ASU3. Begitu juga dengan kata cout yang digantikan dengan kata TA 09M3AN" Sementara itu, untuk membatalkan?menghilangkan preprocessor dapat dengan membubuhkan sintaks
Gundef &ataLpengganti

Pre!ro"e##or $&f%ef %an $&fn%ef preprocessor $&f%ef adalah preprocessor yang memiliki syarat apabila preprocessor tersebut te(a) %&%ef&n&#&*an, maka bernilai benar. Sebaliknya untuk preprocessor$&fn%ef, apabila preprocessor tersebut be('m %&%ef&n&#&*an maka akan bernilaibenar. contoh kode program(

Ginclude 2cstdli$# Ginclude 2iostream# Gdefine ASU3 cin

Gdefine TA 09M3AN cout using namespace std; int main(int argc< char .arg'[]) { Gifdef ASU3

cout 22 *TJ%OJP9N9S9* 22 endl;

Gelse cout 22 *TA3 TJ%OJP9N9S9* 22 endl; Gendif Gundef ASU3

Gifndef

ASU3

cout 22 *TA3 TJ%OJP9N9S9* 22 endl; Gelse cout 22 *TJ%OJP9N9S9* 22 endl; Gendif

system(*0AUSJ*); return JK9TLSU::JSS;

B keluaran program adalah sebagai berikut

+ari gambar diatas terlihat bah a sintaks Gifdef bernilai benar dan menampilkan tulisan 9$C4+C<7)7S7: pada layar, karena preprocessor M&S%, telah terdefinisi sebelumnya. )amun ketika terdapat sintaks Gundef
ASU3,

maka

akan
ASU3,

menghilangkan preprocessor tersebut. ,etika diuji dengan sintaks Gifndef nilai Gifndef adalah benar karena preprocessor M&S%, tidak terdefinisi lagi.

prepocessor bisa digunakan untuk mempersingkat fungsi masukkan atau keluaran yang biasanya panjang dan kerap dipanggil, sehingga tidak harus menulis ulang perintah tersebut. Semoga Bermanfaat

July 1, 2012 at 15:46 No comments Firmansyah

PROGRAM KRIPTOGRAFI SEDER+ANA


,riptografi adalah sebuah ilmu atau seni yang dipergunakan untuk menjaga kerahasiaan informasi. Sebuah sistem yang telah memiliki fasilitas enkripsi harus memiliki fungsi-fungsi seperti keamanan data, keabsahan data, integritas data, dan kerahasiaan data. Semua fungsi tersebut dipergunakan untuk mencegah kebocoran informasiDinformasi penting. <asilitas enkripsi banyak ditemukan dalam kehidupan sehari-hari. Sebagai contoh adalah ketika kita login di sebuah jejaring sosial. Sebelum kita bisa mengakses akun jejaring sosial yang kita miliki, kita harus memasukkan username =nama pengguna> danpassword kata sandi> dengan tepat. &pabila kita mengisi kombinasi kata sandi dan nama pengguna yang salah, secara otomatis sistem jejaring sosial tersebut tidak mempersilakan kita untuk mengakses akun tersebut. Pada kasus tersebut, enkripsi data terletak pada penjaminan kerahasiaan kombinasi kata sandi dan nama pengguna. Selain untuk kasus diatas, enkripsi juga digunakan untuk menjaga kerahasiaan nomor pin kartu kredit, transaksi e-banking, dan penggunaan kata-kata sandi militer. Bahkan *irus pada komputer pun menggunakan program enkripsi untuk mengelabui anti*irus yang terdapat di komputer tersebut. Nah, Bagaimana cara membuat sebuah program enkripsi sederhana '. +alam artikel ini dilampirkan source code program enkripsi sederhana. Pengkodean program ini menggunakan bahasa pemrograman !"". Cnkripsi ini menggunakan rumus( bila a menjadi E dan bila E menjadi a /berkebalikan1. 4umus ini berlaku untuk semua huruf. Berikut adalah source code program enkripsi sederhana yang dibuat oleh penulis ( @include FiostreamG using namespace std;
int main(int argc< char .arg'[]){ char &alimat[1000]; int &odeLascii; cin"getline(&alimat<siDeof(&alimat));

for(int i - 0; &alimat[i]; i++){ &odeLascii - int(&alimat[i]);

if(&odeLascii F- ,5) { if((&odeLascii #- A?) EE (&odeLascii 2- 155)) { &odeLascii - 155 / (&odeLascii / A? + 5>) 6 5>; printf(*6c*< char(&odeLascii)); } else if((&odeLascii #- >5) EE (&odeLascii 2- A0)) { &odeLascii - A0 / (&odeLascii / >5 + 5>) 6 5>; printf(*6c*< char(&odeLascii)); } else printf(*6c*< char(&odeLascii)); } else printf(*6c*< char(&odeLascii)); } printf(*In*); }

Berikut adalah penjelasan singkat mengenai *ariabel, fungsi, dan method dari source code di atas ( Var&abe(, f'ng#&, %an method
Ginclude 2iostream#

Pen-e(a#an berfun si seba ai fun si untu! membaca masu!an "ari #en una mau#un !eluaran yan a!an "iceta!

#a"a layar$ %emua #erintah yan ter"a#at #a"a metho" tersebut &"i "alam tan"a Method int main(int argc< char .arg'[]) !urun !ura'al( a!an "ie!se!usi atau "i)alan!an$ {} +erfun si untu! menam#un !alimat yan "imasu!!an oleh user !e layar$ *ariable ini mem#unyai ti#e "ata char&!ara!ter( yan beru#a array yan bisa menam#un hin a 1000 !ara!ter$ +erfun si untu! menam#un nilaiAmerican Standard Code for Information Interchange &,%-..( "ari setia# !ara!ter yan "imasu!!an$ Nilai ,%-.. a"alah suatu stan"ar" internasional untu! men !on/ersi huruf mau#un simbol !e "alam bilan an$ *ariable ini mem#unyai ti#e "ata int &integer($

*ariabel char &alimat[1000]

*ariabel int &odeLascii

Fun sicin"getline(&alimat<siDeof(&alima
t));

+erfun si untu! men in#ut!an huruf !e "alam #ro ram$ ,#abila ti"a! a"a fun si ini ma!a #en una #ro ram ini ti"a! bisa memasu!!an huruf a#a#un$ Fun si #erulan an ini "i una!an untu! memin"ai !ara!ter "emi !ara!ter yan "imasu!!an oleh user$ Fun si ini "i una!an untu! men !on/ersi!an simbol atau huruf !e "alam !o"e ,%-.. yan berbentu! numeri!$ Fun si ini ber una untu! menam#il!an huruf0huruf yan telah berhasil "i en!ri#si oleh #ro ram$

Fun si
for(int i - 0; &alimat[i]; i++){}

Fun si
&odeLascii - int(&alimat[i])

Fun si
printf(*6c*< char(&odeLascii));

Bila program di-compile dan diberkan sebuah data /masukkan1 maka akan tampil sebagai berikut(

.. 4eferensi kode program( http(??yanuaradji. ordpress.com?25..?5#?26?programenkripsi-menggunakan-c compiler menggunakan +e*-!pp


http://blog.politekniktelkom.ac.id/30110176/category/algoritma-dan-pemrograman/

Anda mungkin juga menyukai