Senin, 06 Juni 2011

Tugas Binary Search

soal : 
  Jika terdapat 1000 mahasiswa.
  Jika ingin melakukan pencarian dengan nomor urut 212 dengan  mengunakan teknik
-   Linier search
-   Binary search
 
Ada berapa langkah penyelesaian??


Penyelesaian :   a. Dengan teknik linier search sudah jelas yaitu 212 langkah.
 

b. Dengan teknik Binary search yaitu:


Diketahui :
L= 1
U= 1000
 

Ditanyakan:
 x=212………….?
 

Jawab :


m =(L + U)/2
    =(1+1000)/2
    =500,5
 
1. X DATA (m)
   212 <500 U=m-1 = 500-1 =499 m=(L +U)/2 =(1+499)/2 =250 
 

2. X DATA(m) 212 < 250 U=m-1 =250-1 =249 m=(L+U)/2 =(1+249)/2 =125 


3. X DATA(m) 212 > 125


    L=m+1
      =125+1
      =126


    m=(L+U)/2
       =(126+249)/2
       =187,5


4. X DATA(m)

    212 > 187


    L=m+ 1
      =187+1
      =188


    m=(L+U)/2
       =(188+249)/2
       =218,5


5. X DATA(m)

    212 < 218 U=m -1 =218-1 =217 m=(L+U)/2 =(188+217)/2 =202,5 6. X DATA(m) 212 > 202


    L=m +1
      =202 +1
      =203


   m=(L+U)/2
      =(203+217)/2
      =210



7. X. DATA(m)

    212. > 210


    L=m +1
      =210 + 1
      =211


   m=(L+U)/2
      =(211+217)/2
      =214



8. X DATA(m)

    212. < 214

   U=m -1
      =214 – 1
      =213


   m=(L+U)/2
      =(211+213)/2
      =212


9, X DATA(m)
    212 = 212

 Jadi dengan teknik Binary search ada 9 langkah penyelesaian untuk menyelesaikan soal diatas.

Senin, 18 April 2011

Tugas -4

Penjelasan  latihan Soal Struktur Data Pertemuan 4 (stack atau tumpukan)
  1. Stack termasuk (a) linear list atau (b) non linear list.jelaskan.
  2. Apa saja perlakuan yang dimungkinkan sehingga suatu stack dikatakan dalam keadaan hampa?
  3. Sebutkan 4(empat) operasi pada stack dan beri contohnya .
  4. Sebutkan dua kesalahan yang mungkin terjadi pada pengoperasian stack dan pada kondisi seperti apa kesalahan itu bisa terjadi.
  5. konversikan notasi infix A-B*(^D^(E*F/(G-H)) ke notasi positif.

Penjelasan
  1. stack(tumpukan) termasuk linear list/ bentuk khusus dari linear list yang pemasukan dalam penghapusan elemennya hanya dapat dilakukan pada satu posisi , yaitu posisi akhir dari list (top)
  2. Suatu stack dikatakan dalam kondisi hampa jika posisi akhir dari list(top) pada stack berada di posisi top= -1.
  3. 4(empat) operasi pada stack
Sebenarnya ada 6 operasi pada stack yaitu :
    1. push (menginput data pada stack)
Ex : void push (char d[20])
            {
            Tumpukan . top ++ ;
            Strcpy (tumpukan . data [tumpuk . top],d);
            Printf (“data berhasil dimasukkan”);
            }
    1. pop (mengambil data pada stack )
Ex : void pop ()
{
printf (“data %s terambil “,  tumpuk . data [tumpuk . top]);
tumpuk . top -- ;
}
    1. isFull (mengecek apakah stack penuh )
Ex : int isFull ()
            {
            if(tumpuk . top = = max _stack -1)
            return 1;
            else
            return 0;
            }
    1. isEmpty (mengecek apakah stack kosong )
Ex : int isEmpty ()
            {
            if(tumpuk . top = = -1)
            return 1;
            else
            return 0;
            }
    1. clear (membersihkan isi seluruh stack )
Ex : void clear ()
            {
                                    tumpuk . top = -1;
                                    printf (“semua data terhapus “);
                                    }
    1. print (mencetak seluruh isi stack)
Ex : void print ()
            {
            for (int i = tumpuk . top;i>=0 ; i - -)
            printf(“%s\n”,tumpuk . data [i]);
            }
  1. kesalahan yang mungkin terjadi pada pengoperasian stack dan pada kondisi seperti apa kesalahan itu bisa terjadi.
    1. apabila keadaan stack kosong dan kita akan mem-pop (menghapus data) maka akan terjadi kesalahan dan kemudian error(underflow).
    2. apabila keadaan stack penuh dan kita akan men-top (menambah data) maka akan terjadi kesalahan dan kemudian error (underflow).
    5.  konversikan notasi infix  A-B*(^D^(E*F/(G-H)) ke notasi postfix
    infix      = A-B*(^D^(E*F/(G-H))
    postfix  = ABCDEFGH-/*^^*-

    Minggu, 10 April 2011

    Tugas - 3

    Penjelasan  latihan Soal Struktur Data Pertemuan 3 (Array Dimensi  2 dan 3)

    1.      Terdapat Array float A[5][4] dan lokasi awal terletak di alamat 00F(H)
    maka lokasi A[3][4] secara kolom dan baris adalah…

    Penjelasan:
    Diketahui:Float A[5][4]
             @M[0][0]=00F(H)
                            i=3
                            J=4
                           K=5
                           N=4
                           L=4
              
    Ditanyakan:A[3][4]  secara kolom dan baris..?

    => a)Secara baris per baris
                @M[i][j]=@M[0][0]+{(i-1)*N+(j-1)}*L
                  A[3][4]=00F(H) +{(3-1)*4+(4-1)}*4
                             =00F(H) +44(D)
                             =00F(H) +2C(H)
                             =03B(H)

         b)Secara kolom per kolom
                @M[i][j]=@M[0][0]+{(j-1)*K+(i-1)}*L
                  A[3][4]=00F(H) +{(4-1)*5+(3-1)}*4
                             =00F(H) +68(D)
                             =00F(H) +44(H)
                             =053(H)
               

    2.      Terdapat  Array Long Double A[50][75]  dan lokasi awal terletak di alamat 00FF(H) ,
    maka lokasi A[48] [60] secara kolom dan baris adalah…


    Penjelasan:
    Diketahui: Long Double A[50][75]  
                       @M[0][0]=00FF(H)
                   i=48
                   J=60
                   K=50
                   N=75
                   L=10

               
              
    Ditanyakan: A[48] [60] secara kolom dan baris,,,?

     => a)Secara baris per baris
                @M[i][j]=@M[0][0]+{(i-1)*N+(j-1)}*L
                A[48][60]=00FF(H) +{(48-1)*75+(60-1)}*10
                               =00FF(H) +35840(D)
                               =00FF(H) +8C00(H)
                               =8CFF(H)


               
         b)Secara kolom per kolom           
                @M[i][j]=@M[0][0]+{(j-1)*K+(i-1)}*L
                A[48][60]=00FF(H) +{(60-1)*50+(48-1)}*10
                               =00FF(H) +29970(D)
                               =00FF(H) +7512(H)
                               =7611(H)



    3.      Terdapat Array Double A[25][50]  dan lokasi awal terletak di alamat 009F(H) maka lokasi A[17][48]  secara kolom dan baris adalah…

    Jawab:
    Diketahui: Double A[25][50]
              @M[0][0]=009F(H)
                              i=17
                             J=48
                            K=25
                            N=50
                             L=8

    Ditanyakan: => A[17][48]  secara kolom dan baris,,,?

    => a)Secara baris per baris
                @M[i][j]=@M[0][0]+{(i-1)*N+(j-1)}*L
                A[17][48]=009F(H) +{(17-1)*50+(48-1)}*8
                            =009F(H) +6776(D)
                            =009F(H) +1A78(H)
                            =1B07(H)

         b)Secara kolom per kolom           
                @M[i][j]=@M[0][0]+{(j-1)*K+(i-1)}*L
                A[17][48]=009(H) +{(48-1)*25+(17-1)}*8
                               =009(H) +1191(D)
                               =009(H) +4A5(H)
                               =0544(H)




    4.      Deklarasi Array X adalah Double  A[2][4][5] dan lokasi awal terletak di alamat awal index A[0][0][0] berada di  0021(H) ,tentukan berapa alamat Array di A[2][2][2]….

    Jawab:
    Diketahui: Double A[2][4][5]
             M[0][0][0]=0021(H)
                            n=2
                            m=2
                            p=2
                            L=8
                      
    Ditanyakan: A[2][2][2]….?
    => @M[n][m][p]=M[0][0][0]+{((n-1)*(index 1))+ ]+((m-1)*(index 2) +((p-1)*(index 3)}*L
        M[2][2][2]=0021(H) +{((2-1)*(2))+ ]+((2-1)*(4) +((2-1)*(5)}*8
                         =0021(H) +320(D)
                         =0021(H)+140(H)
                         =0161(H)

    Senin, 04 April 2011

    Tugas - 2

    1. Diketahui float A[5] dan lokasi awal terletak di alamat 00F(H),maka lokasi A[3] adalah........
        jawab :
        A[3] = 00F(H) + (3-1)*4
                 = 00F(H) + 8(D)
                       = 00F(H) + 8(H) 
                       = 0017(H)
    2. Diketahui double A[20] dan lokasi awal terletak di alamat 00AB(H),maka lokasi A[15] adalah........
        jawab :
        A[15] = 00AB(H) + (15-1)*8
                   = 00AB(H) +112(D)
                          = 00AB(H) + 70(H)
                          = 011B(H)
    3. Diketahui int A[100] dan lokasi awal terletak di alamat 00FB(H),maka lokasi A[78] adalah........
        jawab :
        A[78] = 00FB(H) + (78-1)*2
                   = 00FB(H) + 154(D)
                          = 00FB(H) + 9A(H)     
                   = 0195(H)
    4. Diketahui char A[50] dan lokasi awal terletak di alamat 00FF(H),maka lokasi A[38] adalah.......
        A[38] = 00FF(H) + (38-1)*1
                   = 00FF(H) + 37(D)    
                          = 00FF(H) + 25(H) 
                   = 0124(H) 

    Minggu, 27 Maret 2011

    Struktur Data

     Penjelasan Latihan Soal Struktur Data Pertemuan 1


    1. Type data di bawah ini yang tidak termasuk dalam type data sederhana tunggal,adalah :
        a. Boolean
        b. String
        c. Char
        d. Integer
        e. Float

    jawaban : b.String
    Penjelasan : karena string termasuk dalam type data sederhana majemuk dan tipe data ini digunakan untuk data yang terdiri dari beberapa atau b anyak character.

    2. ==,<=,>=,!=,.termasuk dalam operator...
        a. Aritmatika
        b. Unary
        c. Binary
        d. Relasi
        e. Bitwise

    jawaban : d. Relasi
    penjelasan: karena yang termasuk dalam operator relasi adalah =,!=,>,<,==,>=,<=.

    3. Type data yang menghasilkan bentuk keluaran nilai True dan False (benar dan salah),adalah...
        a. Boolean
        b. String
        c. Char
        d. Integer
        e. Float

    Jawaban : a. Boolean
    Penjelasan : karena dinyatakan dengan 1&0 ( bermnilai benar atau salah ) dan operator yang digunakan adalah And,Or dan Not.

    4. void main()
    {
    ....(a)...x,y,z;
    clrscr();
    cout<<"\n input nilai x=";cin>>x;
    cout<<"\n input nilai y=";cin>>y;
    z= x+y;
    cout<<"\n hasil penjumlahan ="<< z;
    getch();
    }
    Tipe data yang tepat untuk (a) adalah....
      a. Boolean
      b. String
      c. Char
      d. Integer
      e. Array

    Jawaban : d. Integer 
    Penjelasan : dalam z= x+y merupakan operasi bilangan yang menghasilkan nilai.

    5. void main()
    {
    int r = 10; int s;
    clrscr();
    s = 10 + ++r;
    cout<<"r= "<<r<<'\n';
    cout<<"s= "<<s<<'\n';
    getch();
    }
    Hasil eksekusi dari program diatas adalah
      a. r =11, s = 21
      b. r = 11, s = 20
      c. r = 12, s = 21
      d. r = 10, s = 21
      e. r = 10, s = 20




    Jawab : a. r = 11, s = 21
    Penjelasan r = 1 + r
                       = 1 +10
                       = 11

                     s = 10 + ++r
                        = 10+ 11
                        = 21

    Template by:
    Free Blog Templates