Minggu, 12 Juni 2011

Tugas Struktur Data Pertemuan 12 ( STRUKTUR SEARCHING )

SOAL

Jika terdapat 1000 mahasiswa baru BSI,jika ingin dilakukan pencarian dengan number urut  212 dengan menggunakan tekhnik Binary search
 
Ada berapa langkah penyelesaian....
M=(L+U)/2=(1+1000)/2=1001/2=500,5 =>Data (m)=500
<!1. X             Data(m)
21    212    <       500
        Karena kondisi <,maka :
       U=M-1=500-1=499
M=(L+U)/2=(1+499)/2=500/2=250 =>Data(m)=250
 
<! 2. X             Data(m)
       212     <       250
        Karena kondisi <,maka:
        U=M-1=250-1=249
M=(L+U)/2=(1+249)/2=250/2=125  =>Data(m)=125
 
     3. X           Data(m)
212     >        125

Karena kondisi >,maka:

L=M+1=125+1=126
M=(L+U)/2=(126+249)/2=375/2=187,5 =>Data(m)=187
 
 4. X               Data(m)
     212      >      187
 Karena kondisi >,maka:
 L=M+1=187+1=188
M=(L+U)/2=(188+249)/2=218,5 =>Data (m)=218
 
    5. X              Data(m)
        212     <      218
         Karena kondisi <,maka :
         U=M-1=218-1=217
M=(L+U)/2=(188+217)/2=202,5 =>Data(m)=202
 
      6. X             Data(m)
         212    >       202
         Karena kondisi >,maka:
         L=M+1=202+1=203
M=(L+U)/2=(203+217)/2=210  
 
    7. X              Data(m)
       212      >      210
      Karena kondisi >,maka:
       L=M+1=210+1=211
M=(L+U)/2=(211+217)/2=214
 
    8. X     Data(m)
       212     <      214
     Karena kondisi <,maka:
     U=M-1=214-1=213
     M=(L+U)/2=(211+213)/2=424/2=212
 
    9. X        Data(m)
       212     =      212
      Karena kondisi =, maka DATA DITEMUKAN

Senin, 09 Mei 2011

STRUKTUR POHON ( TREE )

NOTASI VENN

NOTASI GARIS


  • Ketinggian level : 3
  • Simpul               : I, H, S, A, N
  • Daun                 : 2 (A, N)
  • Bobot               : 2
  • Ruas                 : 5-4= 1
  • Level       I        : I
  • Level       II       : H, S
  • Level       III      : A, N
NOTASI KURUNG
=(I (H (A )),S(N ))

Minggu, 17 April 2011

STRUKTUR DATA PERTEMUAN 4



TUGAS STRUKTUR DATA STACK

Soal!

  1. Stack termasuk (a) linear list atau (b) non linear lilst? Jelaskan
  2. Apa saja perlakuan yang di mungkinkan sehinga suatu stack di katakana dalam kondisi hampa?
  3. sebutkan 4 (empat) operasi pada stack dan beri contoh-contohnya.
  4. sebutkan dua kesalahan yang mungkin terjadi pada pengoprasian stack dan pada kondisi seperti apa kesalahan itu bias terjadi?
  5. konfersikan notasi infix A-B*C^D^(E*F/(G-H)) ke notasi postfix.
Jawab:
  1. Stack adalah termasuk (a) linear list, karena penghapusan elemenya hanya dapat di lakukan pada satu posisi, yaitu posisi akhir dari list (TOP)
  2. Perlakuan yang di mungkinkan sehinga suatu stack di katakana dalam kondisi hampa yaitu Dengan cara memeriksa TOP of STACK, jika TOP masih =-1, maka berarti STACK masih kosong.
  3. A. ISEMPTY
Ex: Int ISEMPTY ()                 
          {                                                        
          If (tumpuk.top==-1                        
          Return 1;                     
          Else                                                   
          Return 0;
          }
B. ISFULL
Ex: Int ISFULL ()
          {
          If (tumpuk, top==MAX_STACK-1                    
          Return 1;                                                         
          Else                                           
          Return 0;                                 
          }                                              
          C. PUSH
          Ex: Void Push (char d[s])
                   {tumpuk.top++
                   Strcpy(tumpuk.data[tumpuk.top],d);
                   }
      
                
           D. CLEAR
             Ex: Void POP ()
                    {
                     Print(“Data yang di POP=%5/n”,tumpuk.data
                     [tumpuk.top]);tumpuk.top--;
                     }

  1. Kesalahan yang mungkin terjadi pada pengoprasian stack yaitu apabila penghapusan di lakukan di posisi awal, dan apabila  cara memeriksa TOP of STACK, TOP tidak =-1, yatu pada posisi hampa.


  1. Infix    : A-B*C^D^(E*F/(G-H))
Postfix : AB-CD*^E^F*GH-+

Senin, 11 April 2011

TUGAS STRUKTUR DATA

Pertemuan Dua (Array Dimensi 1&2)

Soal dan Jawaban


1.Diketahui float A[5] dan lokasi awal terletak di alamat 00F(H) maka lokasi A[3] adalah :
   Jawab :
   float A[5]
   B         = 00F(H)
   L         = 4
  @A[i]  = A[3]
  @A[i]   = B + ( i - 1 )*L   
     A[3]   = 00F(H) + ( 3-1)*4
               = 00F(H) + 2*4
               = 00F(H) + 8(D)   
               = 00F(H) + 8(H)
               = 017(H)

2.Diketahui double A[20] dan lokasi awal terletak di alamat 00AB(H) maka lokasi untuk A[15] adalah :
   Jawab :
   double A[20]
   B          = 00AB(H)
   L          = 8
  @A[i]    = A[15]
  @A[i]    = B + ( i - 1 )*L
      A[15] = 00AB(H) + ( 15 - 1 )*8
                = 00AB(H) + 14*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 :
   int A[100]
   B          = 00FB(H)
   L           = 2
  @A[i]    = A[78]  
  @A[i]    = B + ( i - 1 )*L
      A[78] = 00FB(H) + ( 78 - 1 )*2
                = 00FB(H) + 77*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 :
   Jawab :
   char A[50]
   B          = 00FF(H)
   L          = 1
 @A[i]    = A[38]
 @A[i]    = B + ( i - 1)*L
     A[38] = 00FF(H) + ( 38 - 1 )*1
               = 00FF(H) + 37*1
               = 00FF(H) + 37(D)
               = 00FF(H) + 25(H)
               = 0124(H)

Catatan :
Rumus :  @A[i] = B + ( i - 1 )*L
Dimana : @A[i] = Posisi array yang dicari
                      B = Posisi awal index di memory komputer
                       i  = Subkrip atau indeks array yang dicari
                      L  = Ukuran / Besar memory suatu type data


Berikut adalah ukuran / besar memory suatu type data untuk :
char      = 1
int         = 2
float      = 4
double  = 8


Berikut urutan bilangan heksa (H) :
0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F
nilai A = 10
nilai B = 11
nilai C = 12
nilai D = 13
nilai E = 14
nilai F = 15


KONVERSI BILANGAN DESIMAL (D) KE HEKSA (H)
Karena bilangan heksa (H) berjumlah 16 maka untuk setiap bilangan desimal (D) yang besarnya <10 maka nilainya sama, untuk bilangan desimal 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, 15 = F, sedangkan untuk bilangan desimal (D) yang besarnya >16 harus dibagi 16 dan sisanya ditulis di akhir urutan hasil bagi..
contoh : 
a). 9(D) = ....(H)
    jawab : 
     9(D) = 9(H)


b). 23(D) = ....(H)
     jawab :
     23/16 = 1 sisa 7
     jadi 23(D) = 17(H)


c).  32(D) = ....(H)
     jawab :
      32/16 = 2 sisa 0
     jadi 32(D) = 20(H)


d).  43(D) = ...(H)
     jawab :
     43/16 = 2 sisa 11
     nilai 11 pada bilangan heksa adalah B
     jadi 43(D) = 2B(H)

TUGAS STRUKTUR DATA

Latihan Soal Struktur Data(Pertemuan 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?
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?
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?
4.       Deklarasi Array X adalah double A[2][4][5], dengan alamat awal indek A[0][0][0] berda di 0021(H), tentukan berapa alamat array di A[2][2][2]?
JAWAB:  
  1.    Diket:    A[5][4]                                                 Peny: M[3][4]= 00F(H)+{(3-1)*4+(4-1)}*4
M= 00F(H)                                                                    =00F(H)+(8+3)*4
L= 4                                                                                = 00F(H)+44(D)
                @M[i][j]=A[3][4]                                                          = 00F(H)+2C(H)
                i= 3                                                                                 = 03B(H) (BARIS)
                j= 4                                                                    M[i][j]= 00F(H)+{(4-1)*5+(3-1)}*4            
                K= 5                                                                               = 00F(H) +17*4
                N=4                                                                                = 00F(H)+68(D)          
                                                                                                      =00F(H)+44(H)
                                                                                                      =053(H) (KOLOM)

2                              2Diket:    A[50][75]                                                 Peny: M[48][60]= 00FF(H)+{(48-1)*75+(61)}*10
M= 00FF(H)                                                                    =00FF(H)+(3525+59)*10
L= 10                                                                                = 00FF(H)+8C00(H)
                i= 48                                                                                 = 8CFF(H) (BARIS)
                j= 60                                                                    M[i][j]= 00FF(H)+{(4-1)*5+(3-1)}*4            
                K= 50                                                                               = 00FF(H) +17*4
                N=75                                                                                = 00FF(H)+68(D)          
                                                                                                      =00FF(H)+44(H)
                                                                                                      =053(H) (KOLOM)

3                               3. Diket:    A[25][50]                                                 Peny: M[17][48]= 009F(H)+{(17-1)*50+(48-1)}*8
M= 009F(H)                                                                    =009F(H)+(800+4733)*8
L= 8                                                                                = 009F(H)+6776(D)
                @m[i][j]=A[17][48]                                                          = 09F(H)+6776(D)
                i= 17                                                                                 = 1B17(H) (BARIS)
                j= 48                                                                  M[i][j]= 00F(H)+{(48-1)*25+(17-1)}*8            
                K= 25                                                                               = 009F(H) +9528*8
                N=50                                                                               = 009F(H)+2538(H)          
                                                                                                      =2507(H)
                                                                                                     (KOLOM)
         4. Diket:    A=[2][4] [5]                                                Peny: [M][N][P]= A[2][2][2]
A=[0][0][0]                                                             =0021(H)+{(12-1)*2+(2-1)*4+(2-1)*5}*8
L= 8                                                                         =0021(H)+{2+4+5}*8
                                                                                              =0021(H)+88(D)
                                                                                                  =0021(H)+58(H)
                                                                                                  =0079(H)


TUGAS STRUKTUR DATA

Latihan Soal Struktur Data (pertemuan 1)

1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah :

a. Boolean
b. String

c. Char

d. Integer

e. Float

2.==, <= , >= , !=, termasuk dalam operator ...

a. Aritmatika

b. Unary

c. Binary

d. Relasi

e. Bitwise


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

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 = "<
getch(); )
tipe data yang tepat untuk (a) adalah .....
a. Boolean
b. String
c. Char
d. Integer
e. Array

5. void main()
(int r=10;int s;
clrscr();
s=10+ ++r;
cout<<"r = "<<<'\n';
cout<<"s = "<
()getch; )









JAWABANYA
1. b. String
karena :
merupakan sekumpulan dari beberapa karakter, yang banyaknya berubah-ubah sesuai kebutuhan, besarannya 1 s/d 255 karakter.

2. d. Relasi
karena :
operator tesebut bukan pemberi nilai, hanya sebagai pembanding yang menghasilkan nilai numerik 1 (True) atau 0 (False).

3. a. Boolean
karena :
Type data Boolean hanya sebagai pembanding dari suatu keputusan dalam pemrograman c++, operator yang digunakan And, Or atau Not (bukan pemberi nilai)

4. d. Integer
karena :
dari listening pemrograman tersebut mengandung kata penjumlahan yang berarti menggunakan angka sebagai hasil dari pemrograman tersebut, maka bisa menggunakan type data Integer ataupun Float. Namun karena Float tidak ada, maka jawabannya adalah integer.


5. a. r =11 , s = 21
Karena :
Dalam proses s=10+ ++r; disini mari kita perhatikan rumus ++r itu sama halnya dengan r+1
(ingat rumus : ++a = a+1).

Jadi bila di run dalam proses pemrograman, listeningnya sebagai berikut :
s =10+ ++r;
s =10+ r+1 (ingat r = 10)
s =10+ 11
s =11
Hasilnya :
r = 11 (karena ++r = r+1, maka : r =10 jadi r+1 = 10+1=11)
s = 21 (hasil dari proses pemrograman)

Contoh lain :
Bila kita sedikit ubah proses dari s=10+ ++r menjadi s=10+ +r
Maka :
. s=10+ +r
s=10+ +10
s=20
Jadi hasilnya r =10 , s = 20