Minggu, 17 April 2011

tugas 4 pertemuan 5

TUGAS STRUKTUR DATA Pertemuan V (STACK)

Soal dan Jawaban

1.Stack termasuk (a) Linear list atau (b) Non Linear list?Jelaskan?!
   Jawab : 
(a) Linear List
Stack merupakan bentuk khusus dari linear list yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari list (TOP)

2.Apa saja perlakuan yang di mungkinkan sehingga suatu stack dikatakan dalam kondisi hampa?
   Jawab :
Dengan cara memeriksa TOP of STACK.
Jika TOP masih = -1
maka berarti STACK masih kosong

3.Sebutkan 4 (empat) operasi pada stack dan berikan contoh-contohnya?!
   Jawab : 
            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--;

4.Sebutkan dua kesalahan yang mungkin terjadi pada pengoperasian Stack dan pada kondisi apa kesalahan itu bisa terjadi?!
Jawab :
1). Apabila penghapusan dilakukan pada posisi awal
2). Apabila TOP tidak = -1
Kesalahan itu bisa terjadi pada posisi hampa

5.Konversikan notasi infix A-B*C^D^(E*F/(G-H))  ke notasi postfix
Jawab :
AB-CD*^E^F*GH-+


      



Sabtu, 09 April 2011

TUGAS 3

SOAL:
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 teletak 009F (h) ,maka lokasi teletak A[17][48] secara kolom dan baris adalah …………
4.             Deklarasi array adalah double  A[2][4][5], dengan alamat awal index A[0][0][0] berada di 0021 (h) tentukan berapa alamat array di A[2][2][2] …….
Penyelesaian :
1.          A. baris
Dik : float = A[5] [4]                   B =    00f                  k = 5                   j = 4
L        = 4                            I =     3                     n = 4
@m [i] [j] =                                   m[0] [0] + {(j-i) * k + (i-1) }*l
                    = 00f (h) + {(4-1-) * 5 + (3-1)} *4
                    = 00f(h) + { 17 } * 4
                    = 00f(h ) + 68 (d)
                    = 00f(h) + 44 (h)
                    = 053 (h)
B. kolom
@ m[i] [j] = m[0] [0] + {(i-1) * n + (j-1)}*l
                    = 00f (h) + {(3-1) * 4 + (4-1)}* 4
                    = 00f (h) + {11} * 4
                    = 00f (h) + 44 (d)
                    = 00f (h) + 2C (h)
                    = 03B (h)

2.          A. baris
          Dik : long double A [50] [75]    l = 10                      I = 48               n =  75
                   A [0][0] = 00f (h)            j = 60                      k = 50
          @A[i] [j]   = A [40] [60]
          A[48] [60]= 00ff (h) + {(48-1) * 75) + (60-1)} * 10
                              = 00FF(h) + {(3525 + 59 ) * 10 }
                              = 00FF (h) + 35840 (d)
                              = 00FF (h) + 8C00
                              = 8CFF
          b. kolom
          @[48] [60]= 00FF (h) + {(60-1) * 50 + (48-1)}* 10
                              = 00FF (h) + { (59 * 50) + 47}*50
                              = 00FF(h) + 29970(d)
                              = 00FF (h) + 7212 (d)
                              = 7611 (h)

3.          A. baris
          Dik : i=17                                          j= 48                     
                  K = 25                                     n= 50
          @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) + {800+47}* 8
                              = 009F (h) + 6776 (d)
                              = 009F (h) + 1A78
                              = 1B17 (h)

          B. kolom
          @ M[i] [j]    = M[0] [0] + {(j-1) * k + (i-1)}*l
          A[17] [48]   = 009F (h) + {(48-1)*25 + (17-1) }* 8
                              = 009F (h) + {(47)*25 +(16)*8
                              = 009F (h) + 9528 (d)
                              = 009F (h) + 2538 (h)
                              = 25D7 (h)

4.          Dik :           A : [2] [4] [5]
                              A [0] [0] [0] = 0021 (h)
                              L =8
@ [m] [n] [p]   = A [2] [2] [2]
                              = 0021(h) + {(2-1)*2 + (2-1) * 4 + (2-1)*5}*8
                              = 0021(h) +{2+4+5}*8
                              = 0021(h) +88 (d)
                              = 0076 (h)

Kamis, 07 April 2011

         soal:tugas ke 2
           1.       Diketahui float A[5] dan lokasi awal terletak di alamat 00f (h) , maka lokasi A[3] adalah ………..
            2.       Diketahui double A[20] dan lokasi awal terletak di alamat 00AB (h) , maka lokasi A[15] adalah ……….
             3.       Diketahui int A[100] dan lokasi awal terletak di alamat 00FB (h), maka lokasi A[78] adalah……..
             4.       Diketahui char A[50] dan lokasi awal terletak di alamat 00F (h) , maka lokasi A[38] adalah……


JAWABAN:
          1.     Dik : float A[5]
B = 00f (h)
I = 3
L = 4
A[3] = B +  ( i-1 )*L
Penyelesaian
A[3] =00F + ( 3-1 ) * 4                   00F
          =00F (h) + 8 (d)                         8 +
          = 0017                                     0017
     2.         DOUBLE
        Dik :  double A[20]
                    B = 00AB (h) / 0021 (h) A[5] @ A[15]
                    L = 8
                    = B + ( i-1 )* L                       00AB(h)
                    = 0021(h) + (15-1)*8              9A(h) +
                    = 0021(h) + 112(d)             011B (h)
                    = 011B (h)









      3.             INTERGER
            Dik : int A[100}
                      B = 00FB (h) /   A[78]   @A[i]=A[78]
                      L = 2
                         = B + ( i-1 )*L
                         = 00FB (h) + (78-1)*2
                        = 00FB(h) + 154(d)     00FB
                        = 00FB (h) 9A                   9A +
                        = 0195 (h)                   0195

       4.             CHAR
            Dik ;  char A[50]
                        B = 00FF (h)
                        C = 1
            @ A[i] = A[38]                             00FF
                        = B + (I – 1)*L                        25 +
                        = 00FF (h) + (38-1)*1       0124
                        = 00FF (h) + 37(d)
                        = 00FF (h) 25 (h)
                        = 0124 (h)