deklarasi tipe data bentukan di c++

16
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 mahasiswa pada bahasa C++ typedef struct{ char nama[150]; char nim[10]; float nTugas; float nUTS; float nUAS; }Mahasiswa; pada kode di atas, Mahasiswa memiliki 5 atribut yaitu nama, nim, nTugas, nUTS, dan nUAS 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 Mahasiswa arrayMahasiswa[100]; Namun, arrayMahasiswa pun belum dapat digunakan, karena itu perlu ada kembali pendeklarasian variabel yang bertipe data arrayMahasiswa semisal: arrayMahasiswa mhs; Bagaimana cara memanggilnya?

Upload: putu-adi-susanta

Post on 20-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Deklarasi Tipe Data Bentukan Di c++

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 mahasiswa pada bahasa C++

typedef struct{ char nama[150];

char nim[10];

float nTugas;

float nUTS;

float nUAS;

}Mahasiswa;

pada kode di atas, Mahasiswa memiliki 5 atribut yaitu nama, nim, nTugas, nUTS, dan

nUAS 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 Mahasiswa arrayMahasiswa[100];

Namun, arrayMahasiswa pun belum dapat digunakan, karena itu perlu ada kembali

pendeklarasian variabel yang bertipe data arrayMahasiswa semisal:

arrayMahasiswa mhs;

Bagaimana cara memanggilnya?

misalnya ingin memasukkan nama. variabel mhs yang bertipe array mahasiswa

dipanggil dan diberi indek, kemudian dengan pemanggilan attribut dengan tanda baca

titik, kita memanggil atrribut yang bersangkutan. seperti pada potongan kode program

di bawah ini:

cin >> mhs[i].nama;

Page 2: Deklarasi Tipe Data Bentukan Di c++

Semoga Bermanfaat

 

January 29, 2013 at 16:31No commentsFirmansyah

ALGORITMA REKURSIFPemrograman rekursif adalah sebuah cara meringkaskan suatu algoritma dengan

memanggil dirinya sendiri. Dalam contoh kasus, biasanya kita menggunakan

perulangan untuk mendefinisikan suatu fungsi yang berulang-ulang. Namun dalam

hal ini, perulangan tidak dilakukan. Konon dengan memakai pemrograman rekursif,

algoritma yang dihasilkan lebih ringkas s.

Dalam 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:

public class Rekursif {

public static void main(String[] args) {

System.out.println(""+faktorial(3));

}

public static double faktorial (int angka){

if(angka == 1){

return 1;

}else

return angka * faktorial(angka-1);

}

 

 

}

pada algoritma di atas, yang menjadi basis adalah ketika angka = 1, maka akan

mengembalikan angka 1. Hal ini kelak akan menjadi pengenti dari fungsi rekursif

tersebut. Sementara rekurens mengembalikan nilai angka * faktorial(angka-

Page 3: Deklarasi Tipe Data Bentukan Di c++

1); yang memang sudah dikenal sebagai rumur rekursif (n! = n (n-1)(n-2) …..). Pada

rekurens terdapat pemanggilan fungsi ini kembali: faktorial(angka-1).

Bila dilakukan dengan iterasi biasa, kode program akan seperti berikut

public class Perulangan {

public static void main(String[] args) {

System.out.println(""+faktorial(3));

}

public static double faktorial(int angka){

double jumlah = 0;

for(int i=1; i<=angka; i++){

jumlah = jumlah * angka;

}

return jumlah;

}

 

}

}

Bila dibandingkan, algoritma rekursif memang lebih mempersingkat; yang berasal dari

penggunaan perulangan.

Semoga Bermanfaat.

Referensi: Munir, Rinaldi. (2007). Algoritma dan Pemrograman dalam Bahasa Pascal

dan C. Bandung: Informatika

January 28, 2013 at 12:34No commentsFirmansyah

ALGORITMA KONVERSI BILANGAN DESIMAL KE BINERKonversi bilangan desimal ke biner banyak dilakukan untuk keperluan komputasi

pada komputer. Misalnya untuk mengetahui IP address pada jaringan internet Anda.

Namun karena ini berupa algoritma, ada beberapa cara untuk menyelesaikan kasus

konversi bilangan ini. Ada yang cara praktis, teoritis, maupun penuh logika. Berikut

adalah perbandingan algoritma tersebut bila dituliskan dalam bahasa Java.

Algoritma 1

Page 4: Deklarasi Tipe Data Bentukan Di c++

public String getKonversiBasis2(long bilangan){

String karakter=" ";

int angka;

if(bilangan == 0){

karakter="0";

}else{

while(bilangan > 0){

angka = (int) (bilangan % 2);

switch(angka){

case 0 : karakter="0"+karakter;

break;

case 1 : karakter="1"+karakter;

break;

}

bilangan = bilangan / 2;

}

}

return karakter;

}

Algoritma di atas adalah algortima secara umum untuk melakukan konversi 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 variabel karakter berupa String yang tak lain adalah

angka-angka biner yang dihasilkan.

Algoritma ke 2

public String getBilanganBiner(String input){

int hasil = integer.parseInt(input);

String bilBiner = Integer.toBinaryString(hasil);

return bilBiner;

}

Kalau yang ini menggunakan “cara praktis” karena tinggal memanggil

methodtoBinaryString(var) yang sudah tersedia pada library Java; bawaan dari

kelas Integer. Hasil dari konversi method toBinaryString(var) akan langsung

Page 5: Deklarasi Tipe Data Bentukan Di c++

dikonversi menjadi String. Cara ini tidak membuat pemrogram tahu alur konversinya

karena hanya menggunakan library.

Algoritma 3

public Convert() {

}

final static char[] dig = {

'0' , '1' , '2' , '3' , '4' , '5' ,

'6' , '7' , '8' , '9' , 'a' , 'b' ,

'c' , 'd' , 'e' , 'f' , 'g' , 'h' ,

'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,

'o' , 'p' , 'q' , 'r' , 's' , 't' ,

'u' , 'v' , 'w' , 'x' , 'y' , 'z'

};

public String konversi(long i,int shift){

char[] buf = new char[64];

int charPos = 64;

int radix = 1 << shift;

long mask = radix - 1;

do {

buf[--charPos] = dig[(int)(i & mask)];

i >>>= shift;

} while (i != 0);

return new String(buf, charPos, (64 - charPos));

}

Nah kalau yang ini, algoritmanya cukup menyulitkan untuk ditelusuri karena

menggunakan fasilitas buffer yang tersedia pada java. semoga bila ada waktu

algoritma ini dapat dibahas pada posting selanjutnya. Jujur penulis pun belum

mengetahui alur dari algoritma ini   .

algoritma manapun yang digunakan sebenarnya tidak ada masalah. Hal terpenting

dari algoritma (yang penulis tahu) adalah efektivitas dan kebenaran logikanya.

Mungkin algoritma tersebut akan mangkus ketika menggunakan cara-cara yang

sederhana

Page 6: Deklarasi Tipe Data Bentukan Di c++

 

January 21, 2013 at 16:24No commentsFirmansyah

DEKLARASI VEKTORDeklarasi vektor pada pemrograman bertujuan untuk menyimpan nilai dari objek atau

variabel. Sifat ini hampir sama dengan deklarasi sebuah array. Dalam artikel ini akan

dibahas mengenai deklarasi vektor di c++. Apabila menemukan kesalahan pada

artikel ini dapat memberikan komentar pada kolom komentar. 

Untuk mendeklarasikan vektor di c++, terlebih dulu untuk melakukan

sebuah #includedari library vector:

#include <vector>

Sementara untuk pendeklarasian awal dari vector tersebut bisa dilakukan dengan

cara berikut:

vector < pair< tipedata1,  tipedata2> > namaVector (ukuran vector);

misalnya kita ingin mendeklarasikan vektor berukuran 500 dengan nama sto, tipe

data yang akan disimpan adalah tipe data integer. Berikut adalah pendeklarasiannya.

vector < pair <int, int> > sto(500);

untuk mengisinya kita dapat menggunakan fungsi berikut;

<nama vector>[indeks].first; untuk mengisi pasangan (pair) yang pertama; dan

<nama vector>[indeks].second; untuk mengisi pasangan (pair) yang kedua.

untuk lebih jelasnya bisa melihat kode program berikut:

Page 7: Deklarasi Tipe Data Bentukan Di c++

Fungsi sto.size(); berfungsi untuk mengetahui ukuran dari vector tersebut

Semoga bermanfaat.

 

 

July 31, 2012 at 06:46No commentsFirmansyah

PROGRAM SEGITIGA PASCALSegitiga pascal tentu sudah tidak asing lagi didengar. Segitiga ‘ajaib’ ini memang

memiliki banyak fungsi untuk komputasi matematika, salah satunya adalah untuk

menentukan koefisien binomial newton. Permasalahannya, bila pengguna ingin

mencari koefisien binomial yang pangkatnya lebih dari enam, mungkin agak lama

untuk mencarinya. Dengan adanya program ini, pencarian segitiga pascal diharapkan

bisa lebih mudah. Berikut kode programnya:

#include <cstdlib>

#include <iostream>

using namespace std;

Page 8: Deklarasi Tipe Data Bentukan Di c++

int main(int argc, char *argv[])

{

int myArr[100][100];

int angka;

cin >> angka;

for(int i = 0; i < angka+1; i++){

for(int j = 0; j < i; j++){

myArr[i][j] = myArr[i-1][j-1] + myArr[i-1][j];

}

}

for(int i = 0; i < angka+1; i++){

for(int h = angka+1; h >= i; h--){

cout << " ";

}

for(int j = 0; j < i; j++){

cout << myArr[i][j]/angka;

cout << " ";

}

cout << "\n";

}

system("PAUSE");

return EXIT_SUCCESS;

}

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

Page 9: Deklarasi Tipe Data Bentukan Di c++

1 commentFirmansyah

PREPROCESSOR PADA C++Pernah mendengar kata preprocessor? Apa itu preprocessor? Mungkin dalam benak

kita langsung tertuju pada tempat memproses data dalam computer. Sebenarnya kata

preprocessor sendiri memang berhubungan dengan proses-memproses. Namun tidak

serta merta merupakan benda/alat yang konkret. Preprocessor yang dibahas disini

adalah preprocessor yang terdapat pada bahasa pemrograman, khususnya bahasa

C++; 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 # (hash) Di dalam bahasa pemrograman C++,

dikenal ada empat sintaks preprocessor yakni

#define, #undef, #ifdef, #ifndef.

Preprocessor #define dan #undef

Preprocessor #define digunakan untuk mengganti setiap keberadaan kata pada

source code dengan kata lain. Sintaksnya adalah sebagai berikut:

#define kata_pengganti kata_yang_diganti

dengan:

Kata_Pengganti: adalah kata yang akan menggantikan kata_yang_diganti/perintah

awal pada source code

Kata_yang_diganti : adalah perintah awal pada source code yang akan diganti

Berikut adalah contoh source code nya:

#include <cstdlib>

#include <iostream>

#define MASUK cin

#define TAMPILKAN cout

using namespace std;

int main(int argc, char *argv[])

{

string nama;

Page 10: Deklarasi Tipe Data Bentukan Di c++

TAMPILKAN << "MASUKKAN NAMA ANDA :  ";

MASUK >> nama;

TAMPILKAN << "NAMA ANDA :  "<< nama<< endl

system("PAUSE");

return EXIT_SUCCESS;

}

Berikut adalah hasil dari kompilasi program

terlihat bahwa perintah cin yang berfungsi

untuk memasukkan inputan ke dalam variabel dari user digantikan dengan

kata MASUK. Begitu juga dengan kata cout yang digantikan dengan kata TAMPILKAN.

Sementara itu, untuk membatalkan/menghilangkan preprocessor dapat dengan

membubuhkan sintaks

#undef kata_pengganti

Preprocessor #ifdef dan #ifndef

preprocessor #ifdef adalah preprocessor yang memiliki syarat apabila preprocessor

tersebut telah didefinisikan, maka bernilai benar. Sebaliknya untuk

preprocessor#ifndef, apabila preprocessor tersebut belum didefinisikan maka

akan bernilaibenar.

contoh kode program:

 

#include <cstdlib>

#include <iostream>

#define MASUK cin

#define TAMPILKAN cout

using namespace std;

int main(int argc, char *argv[])

{

#ifdef MASUK

cout << "TERDEFINISI" << endl;

Page 11: Deklarasi Tipe Data Bentukan Di c++

#else

cout << "TAK TERDEFINISI" << endl;

#endif

#undef MASUK

#ifndef MASUK

cout << "TAK TERDEFINISI" << endl;

#else

cout << "TERDEFINISI" << endl;

#endif

 

system("PAUSE");

return EXIT_SUCCESS;

}

keluaran program adalah sebagai berikut

Dari gambar diatas terlihat bahwa sintaks #ifdef bernilai benar dan menampilkan

tulisan “TERDEFINISI” pada layar, karena preprocessor MASUK telah terdefinisi

sebelumnya. Namun ketika terdapat sintaks #undef MASUK, maka akan

menghilangkan preprocessor tersebut. Ketika diuji dengan sintaks #ifndef MASUK,

nilai #ifndef adalah benar karena preprocessor MASUK 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

 

 

 

 

Page 12: Deklarasi Tipe Data Bentukan Di c++

 

 

July 1, 2012 at 15:46No commentsFirmansyah

PROGRAM KRIPTOGRAFI SEDERHANAKriptografi 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

informasi–informasi penting.

Fasilitas 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. Apabila 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 virus  pada komputer pun menggunakan program enkripsi untuk

mengelabui antivirus yang terdapat di komputer tersebut.

Nah, Bagaimana cara membuat sebuah program enkripsi sederhana ?. Dalam artikel

ini dilampirkan source code program enkripsi sederhana. Pengkodean program ini

menggunakan bahasa pemrograman C++. Enkripsi ini menggunakan rumus: bila a

menjadi z dan bila z menjadi a (berkebalikan). Rumus ini berlaku untuk semua huruf. 

Berikut adalah source code program enkripsi sederhana yang dibuat oleh penulis :

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){

char kalimat[1000];

int kode_ascii;

cin.getline(kalimat,sizeof(kalimat));

Page 13: Deklarasi Tipe Data Bentukan Di c++

for(int i = 0; kalimat[i]; i++){

kode_ascii = int(kalimat[i]);

if(kode_ascii != 32)

{

if((kode_ascii >= 97) && (kode_ascii <= 122))

{

kode_ascii = 122 - (kode_ascii - 97 + 26) % 26;

printf("%c", char(kode_ascii));

}

else

if((kode_ascii >= 65) && (kode_ascii <= 90))

{

kode_ascii = 90 - (kode_ascii - 65 + 26) % 26;

printf("%c", char(kode_ascii));

}

else

printf("%c", char(kode_ascii));

}

else

printf("%c", char(kode_ascii));

}

printf("\n"); }

Berikut adalah penjelasan singkat mengenai variabel, fungsi,  dan method dari source

code di atas :

Variabel, fungsi, dan method Penjelasan

#include <iostream> berfungsi sebagai fungsi untuk membaca masukan dari pengguna maupun

Page 14: Deklarasi Tipe Data Bentukan Di c++

keluaran yang akan dicetak pada layar.

Method int main(int argc, char *argv[]){}

Semua perintah yang terdapat pada method tersebut (di dalam tanda kurung kurawal) akan dieksekusi atau dijalankan.

Variabel char kalimat[1000]

Berfungsi untuk menampung kalimat yang dimasukkan oleh user ke layar. Variable ini mempunyai tipe data char(karakter) yang berupa array yang bisa menampung hingga 1000 karakter.

Variabel  int kode_ascii

Berfungsi untuk menampung nilaiAmerican Standard Code for Information Interchange (ASCII) dari setiap karakter yang dimasukkan. Nilai ASCII adalah suatu standard internasional untuk mengkonversi huruf maupun simbol ke dalam bilangan. Variable ini mempunyai tipe data int (integer).

Fungsicin.getline(kalimat,sizeof(kalimat));

Berfungsi untuk menginputkan huruf ke dalam program. Apabila tidak ada fungsi ini maka pengguna program ini tidak bisa memasukkan huruf apapun.

Fungsi 

for(int i = 0; kalimat[i]; i++){}

Fungsi perulangan ini digunakan untuk memindai karakter demi karakter yang dimasukkan oleh user.

Fungsi  Fungsi ini digunakan untuk mengkonversikan simbol

Page 15: Deklarasi Tipe Data Bentukan Di c++

kode_ascii = int(kalimat[i])

atau huruf ke dalam kode ASCII yang berbentuk numerik.

Fungsi 

printf("%c", char(kode_ascii));

Fungsi ini berguna untuk menampilkan huruf-huruf yang telah berhasil di enkripsi oleh program.

Bila program di-compile dan diberkan sebuah data (masukkan) maka akan tampil

sebagai berikut:

1. Referensi kode program: http://yanuaradji.wordpress.com/2011/05/27/program-

enkripsi-menggunakan-c

compiler menggunakan Dev-Cpp

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