Laman

Minggu, 24 Juni 2012

Compress and Decompress file using agorithm Run-Length Encoding (C++)

Buat teman-teman yang lagi nyari program Compress and Decompress file ini ada contoh yang sudah bisa jalan..
tapi run-nya pake cmd
pada tau gak cara run C++ lewat cmd?? kalo belum tanya tuh ama om google.


programnaya sebagai berikut. tapi ini masih acak-acakan gitu. trus belum ada komentnya. mungkin nanti punya waktu luang akan dibenerin. oke silakan dilihat..


file: compress.cpp

Tag html

Kali ini mari kita bahas mengenai tag html. apa sih itu tag html(mahsudnya yang <html>...</html> itu loh)? udah pada tau belum? belum aja yah. hhehehe. mari kita bahas(sesuai dengan pengetahuan yang saya punya tentunya)

kegunaan dari <html>
1. Tag <html> memberitahukan kepada browser bahwa ini adalah dokuman HTML.
2. <html> juga dikenal sebagai root dari element.
3. Tag <html> adalah tempat untuk semua HTML elemnt, kecuali tag <!DOCTYPE>.

Attribute yang dapat digunakan pada <html>
1. xmlns: ini untuk namespace yang digunakan(hanya untuk dokument XHTML).
    Nilai yang dapat dimasukan : http://www.w3.org/1999/xhtml
2. dir: menentukan arah dari text untuk konten dalam suatu element.
    Nilai yang dimasukan: rtl atau ltr
3. lang: menentukan code bahasa untuk konten dalam suatu element.
    Nilai: language_code
4. xml:lang: seperti lang tapi ini dalam dokument XHTML.
    Nilai: language_code

nah sekian dulu yah.. semoga bermanfaat untuk kita semua

Tag !DOCTYPE


Kali ini saya akan bahas mengenai tag yang ada pada HTML. (mumpung lagi belajar matakulia yang punya kaitannya dengan HTML jadi bahas sekalian aja.. hehehe).
Nah di HTML tuh ada banyak banget tagnya tapi pada postingan kali in saya mau bahas mengenai <!DOCTYPE> lainnya menyusul yah...

Pasti teman-teman perna nemu tag ini di tiap page source yah kan? Iya deh biar pembahasannya lanjut.. dan teman-teman tau itu buat apa? Apa ayo? Ada yang tau gak?
Nah buat yang belum pada tau tag <!DOCTYPE> ini fungsinya buat memberi tau ama web browser tentang versi HTML apa yang kita gunakan untuk menulis sebuah page. Ada beberapa cara DOCTYPE secara umum.

1. Ini untuk HTML 5

  1. <!DOCTYPE html>  

Sabtu, 23 Juni 2012

Knight Tour menggunakan algoritma Depth First Search(DFS)

Sudah lama sejak terakhir posting karena disibukan oleh tugas-tugas dan project yang menumpuk semester kemaren akhirnya bisa posting lagi..

Apa sih Knight Tour itu?? pasti uda pada tau semuanya kan. Bagi yang belum tau Knight Tour itu adalah semacam permainan yang mengharuskan kita menjalankan bidak kuda (itu loh yang ada di catur yang bentuk kuda pastinya. Yang jalannya bentuk “L”) melewati semua kotak yang ada di papan catur tanpa ada satu kotak yang dilewati 2 kali. Ngertikan?? pasti pada ngerti dong..
Oke aku bikin program ini menggunakan algoritma Depth First Search, penjelasannya teman-teman bisa lihat disini.

Jadi program yang saya bikin kayak gini


  1. public void processKnightTour(int indexX, int indexY, int size){  
  2.     int[] x={2,2,-2,-2,1,1,-1,-1};  
  3.     int[] y={1,-1,1,-1,2,-2,2,-2};  
  4.     countStep=0;  
  5.     int indexList,i,j;  
  6.     int sizeBoard=size;  
  7.     workList = new ArrayList();  
  8.     node[indexX][indexY] = 1;  
  9.     workList.add(new Coordinate(indexX, indexY));  
  10.     current =(Coordinate) workList.get(workList.size()-1);  
  11.     boolean statusChild;  
  12.     //int nilaiCurrent;  
  13.     while(node[current.getRow()][current.getColumn()] != sizeBoard*sizeBoard){  
  14.         //nilaiCurrent = node[current.getRow()][current.getColumn()];  
  15.         statusChild = false;  
  16.         for(int loop=0; loop<8; loop++){  
  17.             if(current.getRow()+x[loop]>=0 && current.getRow()+x[loop] < sizeBoard && current.getColumn()+y[loop]>=0 && current.getColumn()+y[loop] < sizeBoard){  
  18.                 if(node[(current.getRow()+x[loop])][(current.getColumn()+y[loop])]==0){   
  19.                     workList.add(new Coordinate(current.getRow()+x[loop], current.getColumn()+y[loop], current));  
  20.                     statusChild = true;  
  21.                 }  
  22.             }      
  23.         }  
  24.           
  25.         if(statusChild == true){  
  26.             workList.remove(workList.indexOf(current));  
  27.         }else{  
  28.             after = (Coordinate) workList.get(workList.size()-2);  
  29.             if(!current.getParent().equals(after.getParent())){  
  30.                 for(i=0; i<sizeBoard; i++){  
  31.                     for(j=0;j<sizeBoard;j++){  
  32.                         if(node[i][j]>node[after.getParent().getRow()][after.getParent().getColumn()]){  
  33.                             node[i][j]=0;  
  34.                         }  
  35.                     }  
  36.                 }  
  37.             }  
  38.             node[current.getRow()][current.getColumn()] = 0;                  
  39.             workList.remove(workList.size()-1);                  
  40.         }  
  41.         current = (Coordinate) workList.get(workList.size()-1);  
  42.         node[current.getRow()][current.getColumn()] = (node[current.getParent().getRow()][current.getParent().getColumn()])+1;              
  43.         countStep++;  
  44.     }          
  45. }  
penjelasannya gini..

Senin, 18 April 2011

Convert Octal to Binary

#include "string.h"
#include "iostream.h"
void binary(int x, int y){
    if(y!=0){
        int bin=x/y;
      cout<<bin;
       binary(x%y,y/2);
   }
}
int main(){
    int n[100];
   char octal[100];
    cout<<"enter the octal number : ";
   cin>>octal;
    int length=strlen(octal);
   int cek=1;
   for(int i=0;i<length;i++){
        n[i]=octal[i]-48;
      if(n[i]>7 || n[i]<0){
            cek=0;
         break;
      }
   }
   if(cek==0){
        cout<<"nilai yang anda masukan bukan bilangan octal"<<endl;
   }else{
       for(int i=0;i<length;i++){
            binary(n[i],4);
       }
   }
}