Wednesday, February 13, 2013

TMD04 - [11] Konversi ke Decimal dan Hexadecimal - Validasi Part 1

Sebelumnya, disini telah dibahas mengenai konversi ke dalam decimal atau pun hexadecimal. Pada program tersebut, program akan menerima inputan dari user. Inputan akan berupa integer. Yang menjadi masalah adalah bagaimana jika yang di input oleh user bukan integer, semisal string?
Nah, pada program ini akan dibuat sebuah validasi, dimana jika bukan integer yang dimasukkan oleh user maka program tidak akan bekerja.

Cara kerja yang kita gunakan adalah membuat perandaian (if). Jika yang di input oleh user bukan yang ditentukan (pada kasus ini integer), maka program tidak bekerja. Code yang dipakai adalah :
if (!cin.good())

Sehingga source code nya secara keseluruhan adalah sebagai berikut.

 /*  
      Nama     : Tulus Pardamean Simanjuntak  
      NIM      : 49012086  
      Jurusan  : Teknik Media Digital  
      File     : number_conversion_validation1.cpp  
 */  
 #include <iostream>  
 using namespace std;  
 int main ()  
 {  
      int angka, pil;  
      cout << "Masukkan sebuah nilai integer : ";  
      cin >> angka;  
      if (!cin.good())  
      {  
           cout << "\nAnda harus masukkan angka\n\n";  
      }  
      else  
      {  
           cout << "\nBilangan setelah di konversi adalah \n";  
           cout << "pada decimal : " << dec << angka << "\n";  
           cout << "pada hexadecimal : 0x" << hex << angka << "\n\n";  
      }       
      system ("pause");  
      return 0;  
 }  
Semoga bermanfaat. :)

TMD02 - [12] Rekursif & Sort

Fungsi rekursif dapat digunakan pada beberapa kasus, termasuk sortir.
Sortir yang dilakukan dapat dilakukan dari yang lebih kecil ke yang lebih besar, ataupun sebaliknya, dari yang lebih besar ke yang lebih kecil.
Berikut adalah contoh kode programnya.

 /*  
      Nama     : Tulus Pardamean Simanjuntak  
      NIM      : 49012086  
      Jurusan  : Teknik Media Digital  
      File     : 4_mengurutkan.c  
 */  
 #include <stdio.h>  
 #include <stdlib.h>  
 void mengurutkan (int *tIntA, int *tIntB);   
 int main()   
 {  
      int tListAngka[20];   
      int tSwap;   
      int tUrutan;   
      int i;  
      int pil;  
      printf ("\n\t - Program Pengurutan (Sortir) -\n");  
      printf ("=================================================\n\n");  
      printf ("Masukkan jumlah elemen> \n");  
      scanf ("%d", &i);  
      printf ("\nMasukkan %d angka integer\n", i);  
      for (tUrutan = 0; tUrutan < i; tUrutan++)  
           scanf ("%d", &tListAngka[tUrutan]);  
      do   
      {  
           tSwap = 0;   
           for (tUrutan = 0; tUrutan < i; tUrutan++)  
           {   
                if (tListAngka[tUrutan] < tListAngka[tUrutan+1])   
                {   
                     mengurutkan (&tListAngka[tUrutan], &tListAngka[tUrutan+1]);   
                     tSwap = 1;   
                }   
           }   
      } while (tSwap == 1);   
      printf ("\nIngin diurut bagaimana?\n");  
      printf ("1: Kecil ke Besar\n");  
      printf ("2: Besar ke Kecil\n\n");  
      printf ("pilihan Anda? >>> ");  
      scanf ("%d", &pil);  
      if (pil == 1)  
      {  
           printf ("\n\nSetelah di urut dari Kecil ke Besar:\n");  
           for (tUrutan = i-1; tUrutan >= 0; tUrutan--)   
           {   
                printf ("%d\n", tListAngka[tUrutan]);   
           }   
      }  
      else  
      {  
           printf ("\n\nSetelah di urut dari Besar ke Kecil:\n");  
           for (tUrutan = 0; tUrutan < i; tUrutan++)   
           {  
                printf ("Urutan [%d] = %d\n", tUrutan+1, tListAngka[tUrutan]);   
           }  
      }  
      printf ("\n");  
      system ("pause");  
      return 0;  
 }   
 void mengurutkan (int *tIntA, int *tIntB)   
 {   
      int tInt = *tIntA;   
      *tIntA = *tIntB;   
      *tIntB = tInt;   
 }  
Semoga bermanfaat. :)

TMD02 - [11] Rekursif Perpangkatan

Sebuah fungsi yang memanggil dirinya sendiri disebut sebuah fungsi rekursif. Fungsi rekursi akan sangat berguna untuk memecahkan kasus permasalahan tertentu dimana solusinya dapat diperoleh dari bentuk permasalahan yang lebih sederhana dari permasalahan yang serupa, dan solusi dari bentuk permasalahan yang lebih sederhana tadi diperoleh dari bentuk permasalahan yang lebih sederhana lagi namun serupa, demikian seterusnya.

Berikut adalah contoh dari rekursif perpangkatan.

 /*  
      Nama     : Tulus Pardamean Simanjuntak  
      NIM      : 49012086  
      Jurusan  : Teknik Media Digital  
      File     : 3_rekursif.c  
 */  
 #include <stdio.h>  
 #include <stdlib.h>  
 int main(void)  
 {  
      int i, pkt, result;  
      int Perpangkatan (int k, int l);  
      printf ("\n\t - Program Rekursif Perpangkatan -\n");  
      printf ("===================================================\n\n");  
      printf ("Masukkan bilangan bulat positif> ");  
      scanf ("%d", &i);  
      printf("\nIngin dipangkat berapa? ");  
      scanf ("%d", &pkt);  
      if (pkt == 0)  
           result = 1;  
      else  
           result = Perpangkatan (i, pkt);  
      printf ("\nHasilnya adalah %d\n\n", result);  
      system("pause");  
      return 0;  
 }  
 int Perpangkatan (int k, int l)  
 {  
      if (l==0)  
           return 1;  
      else  
           return k*Perpangkatan(k,l-1);  
 }  

Semoga bermanfaat. :)