Rabu, 24 Oktober 2012

Union, Enum dan Bit-Field :D

2. Union


Sama   seperti   struct,   union   juga   merupakan   tipe   data   yang   dibangkitkan,   dimana
anggota-anggotanya   menggunakan   secara   bersama-sama   ruang  penyimpanan   memori
yang  sama,  berbeda  dengan  struktur  yang  masing-masing  variabel  menempati  lokasi
memori  yang  berbeda.    Jumlah  bytes  yang  digunakan  untuk  menyimpan  union  adalah
sedikitnya  cukup  untuk  menyimpan data  terbesar  yang  ditangani.   Oleh  karena  itu,  tipe
union ini umumnya digunakan untuk menangani satu, dua, atau tiga variabel dengan tipe
yang mirip.  Sebagai contoh:
union nilaiUjian {
int uts, uas;
float akhir;
}
Inisialisasi, deklarasi, dan pengolahan terhadap tipe union ini sama dengan struct yang
telah dijelaskan pada bagian sebelumnya.

3. Struktur Enum

Program C menyediakan tipe data yang dapat didefinisikan oleh pemrogram yang disebut
dengan  enumerasi.    Enumerasi,  didefinisikan  dengan  menggunakan  kata  kunci  enum,
adalah sekumpulan konstanta integer   yang direpresentasikan dengan identikasi tertentu.
Nilai dalam enum dimulai dari 0, dapat diubah dengan nilai lainnya, dan menaik dengan
penambahan 1 untuk nilai selanjutnya.  Sebagai contoh, enumerasi berikut:

enum bulan {JAN, PEB, MAR, APR, MEI, JUN, JUL, AGU, SEP, OKT, NOP, DES};

akan menciptakan tipe baru yaitu enum bulan, yang secara otomatis menunjukkan deret
nilai 0 untuk JAN hingga 11 untuk DES.   Nilai bulan ini dapat diubah menjadi 1 hingga
12 dengan cara sebagai berikut:
enum bulan {JAN = 1, PEB, MAR, APR, MEI, JUN, JUL, AGU, SEP, OKT, NOP, DES};
Program  berikut  menyajikan  contoh  penggunaan  tipe  enumerasi. Silakan  ditelaah  dan diduga keluarannya.

#include
enum bulan {JAN = 1, PEB, MAR, APR, MEI, JUN, JUL, AGU, SEP, OKT, NOP, DES};
main() {
enum bulan Bulan;
                       char *namaBulan[] = {"", "Januari", "Pebruari", "Maret", "April", "Mei", "Juni", "Juli","Agustus", "September", "Oktober", "Nopember", "Desember" };
for ( Bulan = JAN ; Bulan <= DEC ; Bulan++ )
printf( "%2d%11s\n", Bulan, namaBulan[Bulan] );
return 0;
}


4. Bit Field

Dalam pemrograman tingkat rendah, seringkali dibutuhkan akses sebuah struktur informasi berupa bit.
Bitfield merepresentasi hal ini. Pengaksesan elemen sama dengan pengaksesan elemen struktur.
it field berlaku seperti integer (dengan nilai terbatas), dan dapat dipakai dalam ekspresi aritmatika.
Digunakan untuk menyimpan beberapa objek dalam 1 byte/word, jika :tempat penyimpanan sangat
terbatas akan dilakukan manipulasi pada register perangkat keras
Contoh: return value status perangkat keras dari bios call/ DOS call pada IBM PC
 Deklarasi bit field pada struktur:
struct   [   struktur>]   {
/*   definisi   komponen   struktur   */
   :   ;
   :   ;
:
   :   ;
}   [   variabel   struktur>];
Harga total jumlah bit maksimum tergantung implementasi (misalnya, untuk Turbo C jumlah bit total
maksimum 16).
-  Contoh:
struct   bagi_dua   {
unsigned   int   BagianKu:   4;
unsigned   int   BagianMu:   4;
}   CounterKita;
/*   CounterKita.BagianKu   mempunyai   range   0..63,
CounterKita.BagianMu   mempunyai   range   0..63,
ukuran   CounterKita   1   byte   (8   bit)   */
 Contoh shift status (return value int 16h fungsi 2):
struct   keyboard_flags   {
unsigned   int   rshift   :   1;   /*   bit   0   (LSB)   */
unsigned   int   lshift   :   1;
unsigned   int   ctrl        :   1;
unsigned   int   alt          :   1;
unsigned   int   scroll   :   1;
unsigned   int   num      :   1;
unsigned   int   caps      :   1;
unsigned   int   insert   :   1;   /*   bit   7   (MSB)   */
}   keystatus;
Contoh akses:
if   (keystatus.ctrl)   {
/*   tombol   Ctrl   ditekan,   lakukan   ....      */
keystatus.ctrl   =   0;
:
}

TYPEDEF :D

TYPEDEF
Kata  kunci  typedef  merupakan  mekanisme  untuk  membuat  sinonim atau  alias  dari  tipedata yang telah didefinisikan sebelumnya.  Sebagai contoh, pernyataan:
typedef  struct mhs MHS;
mendefinisikan tipe data baru bernama MHS sebagai sinonim untuk struct mhs.  Dengan
demikian, pernyataan struct mhs untuk selanjutnya dapat diganti dengan MHS saja.

Model Data STRING :D

1. STRING

“String adalah sederetan simbol yang tidak tertentu panjangnya, yang dianggap sebagai panjang satu unit” (World Agreement Agenda O812). String dapat berupa huruf, angka, karakter khusus, maupun karakter Unicode. Dalam bahasa C/C++ terdapat beberapa fungsi yang digunakan untuk operasi pengolahan string.
1. Fungsi Manipulasi String
String dapat dimanipulasi dengan aturan tertentu. Di mana bahasa C/C++ telah menyediakan semua ini ke dalam pustakanya. Berikut adalah fungsi-fungsi yang digunakan untuk melakukan manipulasi string.
o Fungsi strcat
Fungsi strcat digunakan untuk menggabungkan dua string menjadi satu.
Contoh penggunaaan :
char *str1 = “Hello “;
char *str2 = “World”;
char *str3 = strcat(str1, str2);
Maka nilai dari str3 adalah : Hello World
o Fungsi strlen
Fungsi strlen digunakan untuk menghitung panjang karakter pada suatu string. strlen adalah fungsi yang bertipe data integer.
Contoh penggunaan :
char *str = “Hello”;
int jum = strlen(str);
Maka nilai dari jum adalah : 5
o Fungsi strcpy
Fungsi strcpy digunakan untuk menyalin isi string ke suatu variabel.
Contoh penggunaan :
char *str1 = “Hello”;
char *str2;
strcpy(str1, str2);
Maka nilai dari str2 adalah sama dengan nilai str1 yaitu Hello
o Fungsi strupr
Fungsi strupr digunakan untuk mengubah semua karakter huruf yang terdapat pada suatu variabel menjadi huruf besar semua (Uppercase).
Contoh penggunaan :
char *str = “Hello”;
strupr(str);
Maka nilai str sekarang adalah : HELLO
o Fungsi strlwr
Fungsi strlwr digunakan untuk mengubah semua karakter huruf yang terdapat pada suatu variable menjadi huruf kecil semua (Lowercase).
Contoh penggunaan :
char *str = “Hello”;
strlwr(str);
Maka nilai str sekarang adalah : hello

Minggu, 14 Oktober 2012

C++

Penjumlahan Dan Pengurangan 2 Matrix Statis

#include<conio.h>
#include<iostream.h>

void main(){
    int matrix1[2][2];
        matrix1[0][0]=1;
        matrix1[0][1]=2;
        matrix1[1][0]=3;
        matrix1[1][1]=4;

   int matrix2[2][2]={(3,3),(4,4)};
        matrix2[0][0]=5;
        matrix2[0][1]=6;
        matrix2[1][0]=7;
        matrix2[1][1]=8;

   int hasil[2][2];

   cout<<"Matriks Pertama \n";
   for(int bar=0;bar<2;bar++){
       for(int kol=0;kol<2;kol++){
          cout<<matrix1[bar][kol]<<"    ";
             if(bar==0 && kol==1){
                cout<<"\n";
            }
      }
   }

   cout<<"\n\nMatriks Kedua\n";
   for(int bar=0;bar<2;bar++){
       for(int kol=0;kol<2;kol++){
          cout<<matrix2[bar][kol]<<"    ";
             if(bar==0 && kol==1){
                cout<<"\n";
            }
      }
   }

   cout<<"\n\nResult Penjumlahan\n";
   for(int bar=0;bar<2;bar++){
       for(int kol=0;kol<2;kol++){
          cout<<matrix1[bar][kol]+matrix2[bar][kol]<<"    ";
             if(bar==0 && kol==1){
                cout<<"\n";
            }
      }
   }

   cout<<"\n\nResult Pengurangan\n";
   for(int bar=0;bar<2;bar++){
       for(int kol=0;kol<2;kol++){
          cout<<matrix1[bar][kol]-matrix2[bar][kol]<<"    ";
             if(bar==0 && kol==1){
                cout<<"\n";
            }
      }
   }
getch();
}

Perkalian 2 Matrix Dinamis

#include<iostream.h>
#include<conio.h>

main(){
int matrix1[100][100];
int matrix2[100][100];
int matrix3[100][100];
int baris1,kolom1,baris2,kolom2;
int x,y,z;

cout<<"Matrix Pertama"<<endl;
cout<<"Masukan Jumlah Baris di Matrix Ke-1 :";
cin>>baris1;
cout<<"Masukan Jumlah Kolom di Matrix Ke-1  :";
cin>>kolom1;
cout<<"*************************************************"<<endl;
for(x=0;x<baris1;x++){
for(y=0;y<kolom1;y++){
cout<<"Masukan Angka pada Baris Ke "<<x<<" dan Kolom Ke "<<y<<" : ";
cin>>matrix1[x][y];
}
cout<<endl;
}

cout<<endl<<"Matrix Kedua"<<endl;
cout<<"Masukan Jumlah Baris di Matrix Ke-2  :";
cin>>baris2;
cout<<"Masukan Jumlah Kolom di Matrix Ke-2  :";
cin>>kolom2;
cout<<"*************************************************"<<endl;
for(x=0;x<baris2;x++){
for(y=0;y<kolom2;y++){
cout<<"Masukan Angka pada Baris Ke "<<x<<" dan Kolom Ke "<<y<<" : ";
cin>>matrix2[x][y];
}
cout<<endl;
}
cout<<endl<<"Hasil Matrix 1"<<endl;
cout<<"*******************************************************"<<endl;
for(x=0;x<baris1;x++){
for(y=0;y<kolom1;y++){
cout<<matrix1[x][y]<<" ";
}
cout<<endl;
}
cout<<endl<<"Hasil Matrix 2"<<endl;
cout<<"********************************************************"<<endl;
for(x=0;x<baris2;x++){
for(y=0;y<kolom2;y++){
cout<<matrix2[x][y]<<" ";
}
cout<<endl;
}


for(x=0;x<baris1;x++){
       for(y=0;y<kolom2;y++){
          matrix3[x][y]=0;
             for(z=0;z<kolom1;z++){
            matrix3[x][y]= matrix3[x][y]+matrix1[x][y]* matrix2[x][y];
            }
      }
}
cout<<"Hasil perkalian matrix 1 dan matrix 2 :\n";
cout<<"**************************************************"<<endl;
    for(x=0;x<baris1;x++){
       for(y=0;y<kolom2;y++){
      cout<<matrix3[x][y]<<" ";
      }
       cout<<endl;
   }

getch();
}

Minggu, 25 Maret 2012

Tentukan !

Ga butuh banyak suara, hanya untuk mendengar suara2 merdu yg cuma sesaat. Membuai lembut, mengalun indah, sesaat kemudian hilang bagai kentut. Meninggalkan bau, kemudian lenyap ga berbekas.

Ga butuh banyak tangan, hanya untuk merasakan dekapan hangat yg bersahabat. Berpegang erat seolah berjabat. Lalu kemudian mencekik, menyesakkan dlm kepura2an sesaat n meninggalkan dalam kesakitan.

Ga butuh banyak senyum yg menenangkan, hanya untuk tidak merasa berduka. Lalu menyadari bahwa bukan ketulusan yg selalu ada, tapi sekedar belas kasihan atau senyum terpaksa yg muncul sebelum melupa. Lalu tak akan lagi ada.

Ga butuh banyak rasa, hanya untuk berani sendiri. Untuk berkata pada hati, bahwa semua baik-baik saja. Walau harus dalam sepi. Karena kesejatian yg tak pernah ingkar adalah mempercayai diri sendiri.