deklarasi tipe data bentukan di c++
TRANSCRIPT
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;
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-
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
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
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
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:
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;
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
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;
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;
#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
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));
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
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
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/