Sabtu, 25 April 2020

Finite State Automata & Non Finite State Automata

1. FSA  ( Finite State Automata )


Finite State Machine dapat berupa suatu mesin yang tidak memilikioutput. Finite State Machine yang tidak mengeluarkan output ini dikenal sebagai Finite State Automata(FSA).
Pada FSA mesin mula-mula dalam state S0 dan menerima sederatan masukan yang dapat mengubahnya ke state-state berikutnya. Dalam FSAjuga dikenal himpunan state-state tertentu yang disebut sabagai FINALSTATE. Perubahan dari satu state ke state berikutnya mengikuti sturantertentu yang dirumuskan sebagai suatuFUNGSI transisi M.
FSA didefinisikan sebagai pasangan 5 Tupel → M = (Q, ∑, δ, S, F).
Keterangan :
Q : Himpunan hingga state.
∑ (Sigma) : Himpunan hingga simbol input (alfabet).
δ (Delta) : Fungsi transisi, menggambarkan transisi state FSA akibat pembacaan simbol input. Biasanya fungsi transisi ini digambarkan dalam bentuk tabel.
S ∈ : State awal.
F ⊆ : Himpunan state akhir.
FSA terbagi menjadi dua jenis, yaitu :
1. Deterministic Finite Automata
    Artinya: Dari suatu state ada tepat satu state berikutnya untuk setiap simbol input yang          diterima.
2. Non Deterministic Finite Automata (NDFA) / NFA
    Artinya: Dari suatu state bisa terdapat 0,1 atau lebih busur keluar (transisi) berlabel                simbol input yang sama.

Contoh I :
Buatlah diagram transisi dari FSA yang didefinisikan sebagai :
M = (K, VT, M, S, Z) dimana :S ={S0, S1, S2, S3}VT ={ 0,1 }K ={S0 , S3}
Dengan fungsi transisi M ada pada tabel transisi sebagai berikut :
Diagram Transisi :
Cara kerja FSA :

Mula-mula dalam state S0
Jika dari S0 menerima 1 : akan ke State-S1
Jika dari S0 menerima 11 : akan ke State-S1 lalu ke S2
Jika dari S0 menerima 0 : akan tetap di State- S0
Jika dari S0 menerima 10 : akan tetap kembali lagi State- S0
Jika dari S0 berturut-turut menerima masukan : 111, maka ia akan kembali ke- S0

Contoh II :
             Seorang petani dengan seekor serigala, kambing dan seikat rumput berada pada suatu sisi sungai. Tersedia hanya sebuah perahu kecil yang hanya dapat dimuati dengan petani tersebut dengan salah satu serigala, kambing atau rumput. Petani tersebut harus menyeberangkan ketiga bawaannya kesisi lain sungai. Tetapi jika petani meninggalkan serigala dan kambing pada suatu saat, maka kambing akan dimakan serigala. Begitu pula jika kambing ditinggalkan dengan rumput, maka rumput akan dimakan oleh kambing. Mungkinkah ditemukan suatu cara untuk melintasi sungai tanpa menyebabkan kambing atau rumput dimakan.
FSA Sebagai Pengenal String
       Mesin FSA tersebut jika menerima masukan sederetan simbol dari simbol-simbol yang diijinkan maka akan menuju suatu state tertentu. Jika state akhir yang ditempuh setelah suatu FSA menerima sederetan simbol adalah state final, maka deretan simbol (string) tersebut dikatakan dikenali oleh FSA, atau dengan kata lain FSA mengenali string tersebut.
String yang dikenali oleh FSA merupakan suatu bahasa yang dikenali oleh FSA tersebut. Jika dimiliki FSA M maka bahasa yang dikenali oleh FSA di notasikan sebagai :
L(M) = { x | x semua string yang mengantar M dari S0 ke (Si ϵ Z) }
Untuk mesin FSA pada contoh :
L(M) = { 0* , 0*(10)0* , 0*(110,111)0* }
Contoh :
Tentukan bahasa L(M) yang dikenali oleh Mesin M berikut ini :

Jawab :
Dari diagram terlihat bahwa final-state adalah S3. Pergerakan state yang mengantar ke final state adalah S0 S1 S2 S3 yakni string : 011 atau string 111 yang dapat ditulis sebagai (0,1)11.
Pergerakan yang lain adalah dari S0 langsung ke S2 yaitu : S0 S2 S3 yang dilakukan melalui string : 01 Setelah berada pada final state masih ada pergerakan yang bersifat rekursif pada S3 yaitu apabila diberikan masukan 0,00,000,… atau : 0*.
Dengan demikian jika seluruh string tersebut digabungkan akan menjadi : (0,1)110* U 010*, sehingga bahasa yang dikenali adalah : L(M)= { (0,1)110* U 010* } = { ((0,1)11 U 01)0* }

2. DFA (DETERMINISTIC FINITE AUTOMATA)


Deterministic Finite Automata (DFA) → M = (Q, ∑, δ, S, F), dimana :

Q : Himpunan state/kedudukan
∑ (Sigma) : Himpunan simbol input
δ (Delta) : Fungsi transisi, dimana δ ∈ Q x ∑ → Q
S ∈ : State awal (initial state)
F ⊆ : Himpunan state akhir (final state)

Language → L(M) : (x | δ (S,x) di dalam F)

Pada DFA, untuk karakter input tertentu, mesin hanya menuju satu state. Fungsi transisi didefinisikan pada setiap state untuk setiap simbol input. Dan juga di DFA null (atau ε) pemindahan tidak diizinkan, DFA tidak dapat mengubah state tanpa karakter input apa pun.

Contoh :
Diketahui DFA :
Q = {q0, q1, q2}
∑ = {a, b}
S = q0
F = {q0, q1}

δ diberikan dalam tabel berikut :


Ilustrasi graf untuk DFA F sebagai berikut :


Penelusuran/Tracing :

Telusurilah, apakah kalimat-kalimat berikut diterima DFA : abababaa, aaaabab, aaabbaba.
Jawab :

M(q0,abababaa) → M(q0,bababaa) → M(q1,ababaa) → M(q0,babaa) → M(q1,abaa) → M(q0,baa) → M(q1,aa) → M(q0,a) → q0
Tracing berakhir di q0 (stata penerima) → kalimat abababaa diterima

M(q0,aaaabab) → M(q0,aaabab) → M(q0,aabab) → M(q0,abab) → M(q0,bab) → M(q1,ab) → M(q0,b) → q1
Tracing berakhir di q1 (stata penerima) → kalimat aaaababa diterima

M(q0,aaabbaba) → M(q0,aabbaba) → M(q0,abbaba) → M(q0,bbaba)→ M(q1,bbaba) → M(q2,baba) → M(q2,aba) → M(q2,ba) → M(q2,a) → q2
Tracing berakhir di q2 (bukan stata penerima) --> kalimat aaabbaba ditolak

Simpul Singkat : Sebuah kalimat diterima oleh DFA di atas jika tracingnya berakhir di salah satu state akhir.


3. NDFA/NFA (NON DETERMINISTIC FINITE AUTOMATA)

Non Deterministic Finite Automata (NFA) → M = (Q, ∑, δ, S, F), dimana :

Q : Himpunan state/kedudukan
∑ (Sigma) : Himpunan simbol input
δ (Delta) : Fungsi transisi, dimana δ ∈ Q x (∑ ⋃ ε) → P(Q)
P(Q) : set of all subsets of Q
S ∈ : State awal (initial state)
F ⊆ : Himpunan state akhir (final state)

Language → L(M) : (x | δ (S,x) di dalam F)

Contoh :
Berikut ini sebuah contoh NFA (Q, ∑, δ, S, F). dimana :
Q = {q0, q1, q2, q3, q4}
∑= {a, b,c}
S = q0
F = {q4}

δ diberikan dalam tabel berikut :


Digram Transisi yang dapat dibuat :


L(M) = {aabb,...}

Sebuah kalimat di terima NFA jika :

Salah satu tracing-nya berakhir di state akhir, atau himpunan state setelah membaca string tersebut mengandung state akhir.

Penelusuran/Tracing :
Telusurilah, apakah kalimat-kalimat berikut diterima NFA di atas :
ab, abc, aabc, aabb

Jawab :

δ(q0 ,ab) ⇒ δ(q0,b) ∪ δ(q1 ,b) ⇒ {q0, q2} ∪ {q1} = {q0, q1, q2}
Himpunan state tidak mengandung state akhir ⇒ kalimat ab tidak diterima

δ(q0, abc) ⇒ δ(q0, bc) ∪ δ(q1, bc) ⇒ {δ(q0, c) ∪ δ(q2, c)} ∪ δ(q1, c)
{{q0, q3} ∪ {q2}} ∪ {q1} = {q0, q1, q2, q3}

Himpunan state tidak mengandung state akhir ⇒ kalimat abc tidak diterima

δ(q0, aabc) ⇒ δ(q0, abc) ∪ δ(q1, abc) ⇒ {δ(q0, bc) ∪ δ(q1, bc)} ∪ δ(q1, bc)
⇒ {{δ(q0, c) ∪ δ(q2, c)} ∪ δ(q1, c)} ∪ δ(q2, c)
⇒ {{{q0, q3} ∪ {q2}} ∪ {q1}} ∪ {q1} = {q0, q1, q2, q3}

Himpunan state tidak mengandung state akhir ⇒ kalimat aabc tidak diterima

δ(q0, aabb) ⇒ δ(q0,abb) ∪ δ(q1, abb) ⇒ {δ(q0, bb) ∪ δ(q1, bb)} ∪ δ(q1, bb)
⇒ {{δ(q0, b) ∪ δ(q2, b)} ∪ δ(q1, b)} ∪ δ(q1, b)
⇒ {{{q0, q2} ∪ {q2, q4}} ∪ {q1}} ∪ {q1} = {q0, q1, q2, q4}

Himpunan state mengandung state akhir ⇒ kalimat aabb diterima


4. EKUIVALEN ANTAR DFA


          Dua buah DFA dikatakan equivalen jika keduanya dapat menerima bahasa yang sama. Misalkan kedua DFA tersebut adalah A dan A’. Misalkan pula bahasa yang diterima adalah bahasa L yang dibangun oleh alfabet VT = {a1, a2, a3, ..., an}. Berikut ini algoritma untuk menguji equivalensi dua buah DFA.

1) Berikan nama kepada semua stata masing-masing DFA dengan nama berbeda. Misalkan nama nama tersebut adalah : S, A1, A2, ... untuk DFA A, dan : S’, A1’, A2’, ... untuk DFA A’.

2) Buat tabel (n+1) kolom, yaitu kolom-kolom : (v, v’), (va1, va1’), ..., (van, van’), yaitu pasangan terurut (stata DFA A, stata DFA A’).

3) Isikan (S, S’) pada baris pertama kolom (v, v’), dimana S dan S’ masing-masing adalah stata awal masing-masing DFA.

4) Jika terdapat edge dari S ke A1 dengan label a1 dan jika terdapat edge dari S’ ke A1’ juga dengan label a1, isikan pasangan terurut (A1, A1’) sebagai pada baris pertama kolom (va1, va1’) Lakukan hal yang sama untuk kolom-kolom berikutnya.

5) Perhatikan nilai-nilai pasangan terurut pada baris pertama. Jika terdapat nilai pasangan terurut pada kolom (va1, va1’) s/d (van, van’) yang tidak sama dengan nilai pasangan terurut (v, v’), tempatkan nilai tersebut pada kolom (v, v’) baris-baris berikutnya. Lakukan hal yang sama seperti yang dilakukan pada langkah (4). Lanjutkan dengan langkah (5).

6) Jika selama proses di atas dihasilkan sebuah nilai pada kolom (v, v’), dengan komponen v merupakan stata penerima sedangkan komponen v’ bukan, atau sebaliknya, maka kedua DFA tersebut tidak ekuivalen. Proses dihentikan.

7) Jika kondisi (6) tidak dipenuhi dan jika tidak ada lagi pasangan terurut baru yang harus ditempatkan pada kolom (v, v’) maka proses dihentikan dan kedua DFA tersebut ekuivalen.
Contoh :

Periksalah ekuivalensi kedua DFA berikut :

Jawab :
Dengan menggunakan algoritma di atas maka dapat dibentuk tabel berikut,


Keterangan :
> (2, 5) adalah pasangan terurut baru
> (3, 6) adalah pasangan terurut baru
> (4, 7) adalah pasangan terurut baru
> tidak ada lagi pasangan terurut baru


5. REDUKSI JUMLAH STATE

       Reduksi dilakukan untuk mengurangi jumlah state tanpa mengurangi kemampuan untuk menerima suatu bahasa seperti semula (efisiensi). State pada FSA dapat direduksi apabila terdapat useless state. Hasil dari FSA yang direduksi merupakan ekuivalensi dari FSA semula. Pasangan State dapat dikelompokkan berdasarkan:

1. Distinguishable State yang artinya dapat dibedakan. Dua state p dan q dari suatu DFA            dikatakan indistinguishable apabila : 
    δ(q,w) ∈ F dan δ(p,w) ∈ F atau δ(q,w) ∉ F dan δ(q,w) ∉ F
2. Indistinguishable State yang artinya tidak dapat dibedakan.
    Dua state p dan q dari suatu DFA dikatakan distinguishable apabila :
    Ada string w ∈ S* hingga δ(q,w) ∈ F dan δ(p,w) ∉ F

Relasi :
Pasangan dua buah state memiliki salah satu kemungkinan : distinguishable atau indistinguishable tetapi tidak kedua-duanya.

Dalam hal ini terdapat sebuah relasi :

Jika    p dan q    indistinguishable,
dan    q dan r     indistinguishable
maka     p, r        indistinguishable
dan      p,q,r        indistinguishable

Dalam melakukan eveluasi state, didefinisikan suatu relasi :
Untuk Q yg merupakan himpunan semua state

D adalah himpunan state-state distinguishable, dimana D Ì Q
N adalah himpunan state-state indistinguishable, dimana N Ì Q
maka x Î N jika x Î Q dan x ∉ D

Langkah :

Hapuslah semua state yg tidak dapat dicapai dari state awal (useless state)
Buatlah semua pasangan state (p, q) yang distinguishable, dimana p ∈ F dan q ∉F. Catat semua pasangan-pasangan state tersebut.
Cari state lain yang distinguishable dengan aturan: “Untuk semua (p, q) dan semua a ∈ ∑, hitunglah δ (p, a) = pa dan δ (q, a) = qa” Jika pasangan (pa, qa) adalah pasangan state yang distinguishable maka pasangan (p, q) juga termasuk pasangan yang distinguishable.
Semua pasangan state yang tidak termasuk sebagai state yang distinguishable merupakanstate-state indistinguishable.
Beberapa state yang indistinguishable dapat digabungkan menjadi satu state.
Sesuaikan transisi dari state-state gabungan tersebut.

Contoh :

Sebuah Mesin DFA

Sumber :

Sabtu, 18 April 2020

Tata Bahasa Bebas Konteks (POHON PENURUNAN)

Dalam tata bahasa regular grammar akan ditemukan pembatasan pada ruas kanan yang merupakan hasil produksinya. Maka dalam tata bahasa bebas konteks atau context free grammar tidak ditemuka adanya pembatasan. Dalam menurunkan string, simbol-simbol variabel akan mewakili bagian-bagian yang belum diturunkan dalam string tersebut. Dalam tata bahasa regular grammar, bagian yang belum terturunkan terletak pada bagian ujung string, sedangkan pada CFG bisa lebih banyak bagian yang belum terturunkan. Contoh produksi CFG adalah sebagai berikut : 
B → CDeFg
D → BcDe
Bahasa bebas konteks menjadi dasar dalam pembentukan suatu parser/proses analisis sintaksis. Bagian sintaks dalam suatu kompilator umumnya didefinisikan menggunakan tata bahasa bebas konteks. Terinspirasi dalam bahasa manusia, ilmuwan-ilmuwan menciptaka bahasa pemograman turut serta memberikan grammar, grammar ini disebut Context Free Grammar (CFG). Hasilnya, kompiler suatu bahasa pemograman dibuat lebih mudah dan menghindari ambiguitas ketika parsing bahasa tersebut. Proses parsing merupakan proses pembacaan string dalam bahasa sesuai CFG tertentu, sesuai dengan aturan. 

Pohon(tree) merupakan suatu graph terhubung tidak sirkuler yang memiliki satu simpul(node) atau vertex yang disebut akar. Pohon penurunan atau derivation tree atau parse tree berguna untuk menggambarkan bagaimana memperoleh suatu string dengan cara menurunkan simbol-simbol variabel menjadi simbol-simbol terminal. Setiap simbol diturunkan menjadi terminal sampai tidak ada yang bisa diturunkan lagi. 

Proses penurunan atau parsing bila dilakukan dengan cara sebagai berikut :
  1. Penurunan terkiri (leftmost derivation) : Simbol variabel terkiri yang diperluas terlebih dahulu.
  2. Penurunan terkanan (rightmost derivation) : Simbol variabel terkanan yang diperluas terlebih dahulu.
                                                     


Soal Latihan 1 Parsing/Parse Tree

S → AA
A → AAA | a | bA | Ab

Buatlah pohon penurunan dari himpunan produksi diatas untuk membangkitkan string dengan susunan "bbabaaba".
Jawab :
Soal Latihan 2 Parsing/Parse Tree

S → AB
A → Aa | bB
B → a | Sb


Buatlah pohon penurunan dari himpunan produksi diatas untuk membangkitkan string dengan susunan "baabaab".
Soal Latihan 3 Parsing/Parse Tree


S → Ba | Ab
A → Sa | Aab | a
B → Sb | Bba | b


Buatlah pohon penurunan dari himpunan produksi diatas untuk membangkitkan string dengan susunan "bbaaaabb".

Soal Ambiguitas 

S → AB | C
A → aAb | ab
B → cBd | cd
C → aCd | aDd
D → bDc | bc


Buatlah pohon penurunan dari himpunan produksi diatas untuk membangkitkan string dengan susunan "aabbccdd".

Jawab : 

Untuk menjawab soal latihan ini ada dua cara penyelesaian :

Pohon 1

Pohon 2

Untuk pembelajaran lebih lengkapnya bisa di cek video berikut : 




Sabtu, 11 April 2020

TATA BAHASA BEBAS KONTEKS (PENYEDERHANAAN)

Penyederhanaan tata bahasa bebas konteks ini memiliki tujuan agar tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak diperlukan atau menghilangkan aturan produksi yang tidak berarti.



contoh :


 AB | a

A → a


Kelemahannya : aturan produksi AB menjadi tidak
berarti karena B tidak memiliki penurunan.

Suatu tata bahasa bebas konteks dapat
disederhanakan dengan melakukan cara berikut
ini :
1.Penghilangan produksi useless
2.Penghilangan produksi unit
3.Penghilangan produksi ε

Penghilangan Produksi Useless


Produksi useless adalah :
• Produksi yang memuat simbol variabel yang
tidak memiliki penurunan yang akan
menghasilkan terminal-terminal seluruhnya
(masih ada simbol variabel yang tersisa)

• Produksi yang tidak akan pernah dicapai
dengan penurunan apapun dari simbol awal
sehingga produksi itu redundan (berlebih).

contoh 1 :


 aB | C

B → e |Ab

C → bCb | adF | ab
F → cFB

Lakukan penyederhanaan produksi useless dengan:
1. Menganalisis Vn yang tidak memiliki turunan atau Vn yang tidak
pernah berhenti pada Vt, kemudian hilangkanlah.
2. Redudant/Berlebih/tidak terjangkau dari start awal.

Analisa :

         B → Ab (A tidak punya penurunan)
         C → adF (F tidak punya penurunan)
         F → cFB (F tidak punya penurunan ke terminal)


 Hasil Penyederhanaan:

        S → aB | C
        B → e
        C → bCb | ab

contoh 2 :
S → Aa | B
A → ab | D
B → b | E
C → bb
E → aEa

Lakukan penyederhanaan produksi useless dengan:
1. Menganalisis Vn yang tidak memiliki turunan atau Vn yang tidak
pernah berhenti pada Vt, kemudian hilangkanlah.
2. Redudant/Berlebih/tidak terjangkau dari start awal.

 Analisa :
      A → D (A tidak punya penurunan)
      B → E (F tidak punya penurunan)
      C → bb (C → bb adalah redudan)
      E → aEa (E tidak punya penurunan ke terminal) 

     Hasil Penyederhanaan:

     S → Aa | B
     B → ab
     C → b

Penghilangan Produksi Unit


• Produksi unit adalah produksi dimana ruas kiri
dan kanan aturan produksi hanya berupa satu
simbol variabel,
• misalkan A  B, C  D

contoh 1:
 Aa | B
B  A | bb
 a | bc | B

Lakukan penyederhanaan produksi unit dengan:
1. Penghilangan pada produksi unit yang ruas kiri dan kanannya satu
simbol variable non terminal, dan tidak memiliki turunan.
Analisa :

       A → B ==> A → bb
       B → A ==> B → a | bc | bb , Karena B → bb sudah ada maka cukup ditulis B → a | bc
       S → B ==> S → a | bc | bb
       
      Hasil Penyederhanaan :
      S → Aa | a | bc | bb
      B → a | bc | bb

      A → a | bc | bb

contoh 2:
S  A | Aa
 B
 C | b
 D | ab
 b

Lakukan penyederhanaan produksi unit dengan:
1. Penghilangan pada produksi unit yang ruas kiri dan kanannya satu
simbol variable non terminal, dan tidak memiliki turunan.

Analisa :

       C → D ==> C → b
       B → C ==> B → b | ab , Karena B → b sudah ada maka cukup ditulis B → ab
       A → B ==> A → ab | b
       S → A ==> S → ab | b

      Hasil Penyederhanaan:
      S → ab | b | Aa
      A → ab | b
      B → ab | b
      C → b | ab

      D → b

Penghilanagan Produksi  ε

Produksi ε adalah produksi dalam bentuk

α  ε

atau bisa dianggap sebagai produksi kosong.

• Penghilangan produksi ε dilakukan dengan
penggantian produksi yang memuat variabel
yang bisa menuju produksi ε atau biasa
disebut nullable.

Contoh 1 :
 AB
 abB | aCa | ε
 bA | BB | ε
 ε

Lakukan penyederhanaan produksi Empty/ε dengan:
1. Menghilangkan produksi unit yang mengandung ε
Analisa :
       Variabel yang nullable: A,B,C, maka:
       A → ε (dihapus)

      Maka, S → AB | B
                  A → abB | ab | aa
                  B → b | BB
                  B → ε (dihapus)

      Maka, S → AB | A
                  B → bA | BB | B
                  A → abB | ab | aa
                  C → ε (dihapus)

      Maka, A → abB | aa

     Hasil Penyederhanaan :
      S → AB | A | B
      A → abB | ab | aa
      B → bA | b | BB | B

Contoh 2 :
 aBCD | bb | A | ε
 CDa | ef
 b | Af | ε
 BbC | ea
 ε

Lakukan penyederhanaan produksi empty/ε dengan:
1. Menghilangkan produksi unit yang mengandung ε.
 Analisa :
      Variabel yang nullable: S,B,D, maka:
      S → ε (dihapus)
      B → ε (dihapus)
      D → ε (dihapus)

      Hasil Penyederhanaan:
        S → aBC | aC | bb | A
        A → Ca | ef
        B → b | Af
        C → BbC | bC | ea

Latihan Kompleks

penyederhanaan pada himpunan produksi berikut
dengan penghilangan empty+unit+useless sekaligus.

 BACa
 AC
dC | ε
 D | ε
 d
Penghilangan produksi empty(ε) :

      Analisa:
        Variabel yang nullable: A,C, maka:
        A → ε (dihapus)
        C → ε (dihapus)

       Maka:

         S → BACa |BAa | BCa
         B → AC | A | C
         A → dC | d
         C → D
         D → d

    Penghilangan produksi unit :
      Analisa:

       C → D ==> C → d
       B → A ==> B → dC | d
       B → C ==> B → d

      Maka:
       S → BACa |BAa | BCa
       B → AC | dC | d
       A → dC | d
       C → d
       D → d

   Penghilangan produksi useless:

      Analisa:

       D → d (D → d adalah redudan)

   Hasil Akhir Penyederhanaan :
     S → BACa |BAa | BCa
     B → AC | dC | d
     A → dC | d
     C → d

berikut adalah penjelasan video mengenai contoh soal diatas :
https://drive.google.com/file/d/1ajR4zJaeQbgGf-QLjsdkWiUHhwAGrQeG/view?usp=sharing

Senin, 02 Desember 2019

Penjumlahan bilangan desimal positif dengan desimal negatif, dan sebaliknya. Lakukan langkah konversi kedalam biner lalu desimalkan.

misalkan

35 + (-20) = 15. apakah sama hasilnya antara desimal positif dan negatif tersebut ?
contoh :

desimal positif diubah terlebih dahulu ke biner.

                         35 (10)  100011 (2)

maka =                           32  16  8  4  2  1
                                        1    0   0  0  1  1  (2)   35   (10)
   
yang di garis bawahi dijumlahkan, dan terlihat bilangan biner nya. lalu selanjutnya kita cari desimal negatifnya ke biner kan.

 -20 (10) 010100 (2)

maka =                             32   16   8   4    2   1
                                          0     1    0   1    0   0  (2)    20   (10)

biner negatifnya berubah menjadi 010100 + 1 = 101100. dikarenakan negatif desimal adalah complement.


35 = 100011
-20 =101100+
         001111 = 15
note*
-20 nya di biner kan setelah complement kan baru di tambahkan


penjelasan tentang complement :

Semua angka 1 di ubah menjadi 0 dan semua angka 0 diubah menjadi 1.
Bilangan biner yang telah diubah di tambah 1. Terkait : Penjumlahan dan Pengurangan Bilangan Biner. Jika ada angka satu paling kanan Buang angka 1 paling kanan.
dan terakhir tentukan nilai dari binernya apakah sama


ketentuan penjumlahan bilangan biner :
0+0 = 0
0+1 = 1
1+0 = 1
1+1 = 10 => 0 sisip 1
1+1+1 = 11 => 1 sisip 1.


Rabu, 27 November 2019

operasi bilangan biner

Jenis Bilangan Serta Konversi Bilangan Biner, Oktal, Desimal, dan Hexadesimal

Hasil gambar untuk wallpaper biner,  oktal,  heksa desimal, desimal


  • Bilangan Biner
    Merupakan bilangan yang terdiri dari dua karakter saja, yaitu angka satu (1) dan nol (0). Dalam bilangan biner tidak akan dikenli angka 2, 3, 4 dan seterusnya. Dapat ditulis dengan format 1011(2)
  • Bilangan Oktal
    Merupakan bilangan yang terdiri dari 9 karakter, yaitu angka nol (0), satu (1), dua (2), tiga (3), empat (4), lima (5), enam (6), dan tujuh (7). Biasanya ditulis dengan format 236(8)

  • Bilangan Desimal
    Merupakan bilangan yang terdiri dari 10 karakter, yaitu angka nol (0), satu (1), dua (2), tiga (3), empat (4), lima (5), enam (6), tujuh (7), delapan (8), dan sembilan (9). Pada umumnya ditulis dengan format 128(10)

  • Bilangan Hexadesimal
    Merupakan bilangan yang terdiri dari 16 karakter, yaitu nol (0), satu (1), dua (2), tiga (3), empat (4), lima (5), enam (6), tujuh (7), delapan (8), sembilan (9), sepuluh (A), sebelas (B), duabelas (C), tigabelas (D), empatbelas (E), limabelas (F). Kita lihat bahwa ada karakter huruf di bilangan hexadesimal, maksudnya adalah jika ada angka 10, maka angka tersebut diganti dengan huruf A, jika 11 maka diganti B, jik 12 diganti C, dan seterusnya. Jika kita hitung, jumlah karakter antara 0-F adalah 16 karakter. Biasanya bilangan hexadesimal ditulis dengan format 12A(16)

konversi bilangan

Konfersi bilangan dapat diartikan merubah sebuah bilangan menjadi jenis bilangan lain, misalkan dari bilangan biner menjadi desimal, dari oktal menjadi desimal, dari hexadesimal menjadi desimal atau sebaliknya. Contoh-contoh dibawah akan menjelaskan berdasarkan contoh soal

  1. Biner Menjadi Desimal
    1010(2) =……..(10)   >>>>>>> 10(10)

    coretanbocahit.blogspot.com
    Biner To Desimal
    Jika ada soal seperti diatas, maka kerjakan dengan menggunakan cara seperti gambar diatas, yaitu kita susun angka binernya dengan format kebawah dan dimulai dari angka biner pertama, selanjutnya setiap angka biner dikalikan dengan perpangkatan 2, perpangkatan dimulai dari pangkat 0 dan ditulis dari bawah seperti gambar diatas. Langkah terahir adalah, hasil perkalian dari selurh angka biner dengan perpangkatan dijumlahkan dan akan ketemu hasil ahirnya.

  2. Oktal Menjadi Desimal
    267(8) =……..(10)   >>>>>>> 183(10)
    coretanbocahit.blogspot.com
    Oktet To Desimal

    Metode penghitungan sama persis dengan konversi dari biner ke desimal, hanya saja perpangkatan yang digunakan adalah 8 pangkat 0 dan seterusnya.

  3. Hexadesimal Menjadi Desimal
    32AD(16) =……..(10)   >>>>>>> 12973(10)
    Hexadesimal To Desimal

    Sama seperti konversi dari biner ke desimal atau dari oktet ke desimal, yang mebedakan hanya perpangkatannya saja, yaitu pada konversi bilangan hexadesimal ke desimal menggunakan perpangkatan 16. Kita lihat bahwa dalam perhitungan huruf A diganti dengan nilai 10 dan huruf D diganti dengan nilai 13.

  4. Desimal Menjadi Biner
    10(10) =……..(2)   >>>>>>> 1010(2)
    coretanbocahit.blgospot.com
    Desimal To Biner

    Jika kita diminta untuk menkonversikan bilangan desimal menjadi bilangan biner, maka kita hanya perlu membagikan bilangan desimal tersebut dengan 2 seperti gambar diatas. 10 dibagi 2 hasilnya adalah 5 (ditulis dibawahnya) dan sisanya adalah 0 (ditulis warna merah). Selanjutnya 5 dibagi 2 hasilnya adalah 2 dan sisanya 1. 2 dibagi 2 hasilnya adalah 1 dan sisanya adalah 0. Setelah itu kita hanya tinggal menyusunnya saja, angka yang kita susun adalah sisa dari setiap pembagian, dan penyusunan dimulai dari angka terahir. Jadi hasil dari penghitungan diatas adalah 1010.


  5. Desimal Menjadi Oktal
    183(10) =……..(8)    >>>>>>> 267(8)
    coretanbocahit.blogspot.com
    Desimal To Oktal

    Metode yang digunakan untuk konversi dari desimal menjadi oktal adalah sama dengan metode yang digunakan saat konversi desimal menjadi biner, hanya saja pembagi yang digunakan adalah 8. Kita lihat diatas bahwa 183 dibagi 8 adalah 22 dan sisanya adalah 7, 22 dibagi 8 adalah 2 dan sisanya 6, karena 2 sudah tidak bisa dibagi 2 maka selesai sampai disini. Langkah selanjutnya adalah menyusun hasil bagi tersebut dimulai dari angka terahir

  6. Desimal Menjadi Hexadesimal
    12973(10) =……..(16)    >>>>>>> 32AD(16)
    coretanbocahit.blogspot.com
    Desimal To Hexadesimal

    Caranyapun sama seperti konversi dari desimal menjadi biner ataupun dari desimal menjadi oktal. Namun yang perlu diperhatikan bahwa jika ada angka 10 keatas tidak boleh ditulis sebagai angka, namun harus ditulis sebagai huruf seperti penjelasan diatas.
  Bilangan Biner

Bilangan biner (binary) merupakan bilangan berbasis dua. Angka dari bilangan biner hanya berupa angka 0 dan 1.
Konversi Bilangan Oktal ke Desimal
Untuk konversi oktal ke binner anda perlu mengalikan digit dengan pangkat dari bilangan 8.

Contoh :
3658 = …….10 ?

Untuk melakukan konversi bilangan oktal ke bilangan berbasis 10 (desimal) lakukan dengan mengalikan setiap digit dari bilangan tersebut dengan pangkat 0, 1, 2, …, dst, dari basis mulai dari yang paling kanan.

3658 = (3 x 82)10 + (6 x 81)10 + (5 x 80)10 = 192 + 48 + 5 = 245

Untuk fungsi konversi oktal ke decimal di ms excel gunakan OCT2DEC()


Konversi Bilangan Oktal ke Biner
Cara ini merupakan kebalikan cara konversi biner ke oktal. Setiap digit oktal akan langsung dikonversi ke biner lalu hasilnya digabungkan.

Contoh:
548 = …….2 ?
  1. Pertama-tama hitung 58 = 1012 (Lihat cara konversi dari desimal ke biner)
  2. Lalu hitung 48 = 1002
  3. Sehingga didapat 548 = 1011002
  4. Anda juga dapat menggunakan rumus di ms excel OCT2BIN() yang akan menkonversi bilangan oktal ke biner


 Gambar: Cara konversi bilangan oktal ke biner



Konversi Bilangan Oktal ke Heksa desimal
Untuk perhitungan secara manual, konversi bilangan oktal ke desimal dilakukan dengan mengkonversi bilangan oktal ke bilangan basis antara terlebih dahulu. Ada dua cara yang sering digunakan untuk konversi oktal ke hexadecimal. Cara pertama konversi dahulu bilangan oktal ke desimal, lalu dari bilangan desimal tersebut dikonversi lagi ke heksadesimal. Cara kedua adalah dengan menkonversi bilangan oktal ke bilangan biner, lalu dari biner di konversi lagi menjadi bilangan heksadesimal. Cara kedua merupakan cara yang paling sering digunakan.

Contoh :
3658 = …….16

  1. Konversi bilangan oktal menjadi bilangan biner

    3658 = 11 110 101 2
    angka 3, 6, dan 5 dikonversi terlebih dahulu menjadi biner.
  2. Kemudian bilangan biner tersebut dikelompokkan setiap 4 digit dimulai dari yang paling kanan
  3. Selanjutnya 4 digit biner transformasikan menjadi heksadesimal
    11 110 101 2 = F516


 Gambar: Cara konversi bilangan oktal ke biner secara manual dan otomatis
bilangan heksadesimal

Bilangan heksadesimal (hexadecimal)merupakan bilangan berbasis 16. Sehingga angka digit yang digunakan adalah 0, 1, 2, …, 8, 9, A, B, …, E, F dimana A s/d F merupakan nilai untuk 10 s/d 15 desimal.


Konversi Bilangan Heksa desimal ke desimal
Untuk konversi heksadesimal ke desimal lakukan dengan mengalikan digit bilangan heksa dengan pangkat bilangan 16 dari kanan ke kiri mulai dengan pangkat 0, 1, 2, …, dst

Contoh :
F516 = …….8 ?

F516 = (15 x 161)10 + (5 x 16-0)10 = 240 + 5 = 245

Untuk fungsi konversi heksadesimal ke desimal di ms excel gunakan fungsi HEX2DEC()



Konversi Bilangan Heksadesimal ke Biner
Cara ini merupakan kebalikan cara konversi biner ke heksadesimal. Setiap digit heksadesimal langsung dikonversi ke biner lalu hasilnya dipadukan.

Contoh:
F516 = …….2 ?
  1. Pertama-tama hitung F16 = 11112 (F16 = 1510 = 11112, Lihat cara konversi dari desimal ke biner)
  2. Lalu hitung 516 = 01012 (harus selalu dalam 4 digit biner, bila nilai hasil konversi tidak mencapai 4 digit biner maka tambahkan angka 0 di depan hingga menjadi 4 digit biner)
  3. Kemudian didapat F516 = 111101012
  4. Fungsi di ms excel yang dapat anda gunakan untuk mengkonversi heksadesimal ke biner adalah HEX2BIN()



 Gambar: Cara konversi bilangan heksadesimal ke biner secara manual dan otomatis



Konversi Bilangan Heksa Desimal ke Oktal
Untuk konversi heksa desimal ke oktal mirip dengan cara konversi oktal ke desimal. Lakukan konversi heksadesimal ke biner terlebih dahulu lalu dari binner di konversi lagi ke oktal.

Contoh :
F516 = …….8

  1. Konversi bilangan heksadesimal menjadi bilangan biner

    F516 = 1111 01012
    angka F dan 5 dikonversi terlebih dahulu menjadi biner.
  2. Kemudian bilangan biner tersebut dikelompokkan setiap 3 digit dimulai dari yang paling kanan
  3. Selanjutnya 3 digit biner transformasikan menjadi oktal
    11 110 101 2 = 3658


 Gambar: Cara konversi bilangan heksadesimal ke oktal  secara manual dan otomatis

1. Operasi Aritmatika Bilangan Biner

Aritmatika Bilangan Binner merupakan beberapa operasi perhitungan yang terjadi dalam bilangan biner.
Terdapat 5 operasi aritmatika pada bilangan biner, antara lain:
  1. Penjumlahan
  2. Pengurangan
  3. Perkalian
  4. Pembagian
  5. Bilangan Biner Bertanda

A. Penjumlahan Bilangan Biner

Dalam bilangan biner terdapat dua aturan dasar, antara lain:
0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 1, simpan 1
Sebagai cara penjumlahan bilangan desimal yang kalian kenal sehari-hari, penjumlahan bilangan biner juga harus selalu memperhatikan carry (sisa) dari hasil penjumlahan pada tempat yang lebih rendah.
Sebagai contoh:
Soal 1.
1111 2
10100 2
_______+
100011 2 Carry of 1 (3 kali)
Soal 2.
pengertian operasi aritmatika
Dalam contoh diatas, telah dilakukan penjumlahan 8 bit tanpa carry, sehingga hasil penjumlahnya masih berupa 8 bit data. Untuk contoh berikutnya akan dilakukan penjumlahan 8 bityang menghasilkan carry.
Soal 3.
operasi aritmatika sistem komputer
Hasil penjumlahan diatas menjadi 9 bit data, sehingga untuk 8 bit data, hasil penjumlahannya bukan merupakan jumlah 8 bit data A dan B tetapi bit yang e-8 (dihitung mulai dari 0) atau yang disebut carry juga harus diperhatikan  sebagai hasil penjumlahan.

B. Pengurangan Bilangan Biner

Pada bilangan biner terdapat dua cara dalam pengurangan yakni dengan 1s complement dan 2s complement, Perbedaan diantara keduanya antara lain:
  • 1s complement
    merupakan sebuah cara untuk membalikkan bilangan negatif menjadi positif (sebab sebenarnya dalam bahasa komputer tidak kenal operasi pengurangan).
    Sehingga operasi pengurangan ini akan menjadi penjumlahan.
    1s complement dari sebuah bilangan dilakukan dengan mengubah 0 menjadi 1 dan 1 menjadi 0. Sebagai contoh: soal operasi logika dan aritmatika
  • 2s complement kurang lebih mempunyai fungsi yang sama dengan 1s complement yakin membuat sebuah bilangan negatif menjadi positif. Tetapi cara 2s complement sedikit ada perbedaan yakni 1s complement yang ditambah dengan 1. Sebagai contoh: aritmatika sistem komputer Lalu operasi logika
    Sehingga 2s complement dari 10001 yaitu 01111 dan 1s complement-nya yaitu 01110.

C. Perkalian Bilangan Biner

Dilakukan sama dengan cara perkalian yang terdapat dalam operasi bilangan desimal. Dasar perkalian pada bilangan biner ialah sebagai berikut:
0 x 0 = 0
1 x 0 = 0
0 x 1 = 0
1 x 1 = 1
Sebagai contoh:
Soal 1.
1110 2
           1100 2 x
           0000
         0000
        1110
      1110 +
      10101000 2
aritmatika dasar

D. Pembagian Bilangan Biner

Pembagian biner dilaksanakan dengan menggunakan cara yang sama dengan yang ada pada bilangan desimal. Pembagian biner 0 tidak memiliki arti, sehingga dasar pembagian pada bilangan biner adalah sebagai berikut:
0 : 1 = 0
1 : 1 = 1
Contoh #1:
101 / 1111101 \ 11001
        101 _
         101
         101 _
          0101
            101 _
              0
penjumlahan deret aritmatika

2.Operasi Aritmatika Bilangan Oktal

A. Penjumlahan Bilangan Oktal

Berikut adalah tahapan untuk operasi penjumlahan oktal, antara lain:
  1. tambahkan masing-masing kolom secara desimal
  2. rubah dari hasil desimal ke dalam bilangan oktal
  3. tuliskan hasil dari digit paling kanan dari hasil oktal
  4. jika hasil penjumlahan pada masing-masing kolom terdiri dari dua digit, maka digit paling kiri adalah carry of untuk penjumlahan kolom berikutnya.
  5. sisa akan muncul atau terjadi apabila jumlahnya sudah melebihi 7 pada setiap tempat.
Sebagai contoh:
operator aritmatika

B. Pengurangan Bilangan Oktal

Pengurangan Oktal bisa dilakukan dengan cara yang sama dengan yang ada pada operasi pengurangan bilangan desimal.
Pada pengurangan apabila bilangan yang dikurangi lebih kecil dari pada bilangan pengurangnya maka akan dilakukan peminjaman (borrow) pada tempat yang lebih tinggi (dengan nilai 8).
Sebagai contoh:
Pengurangan Bilangan Oktal

C. Perkalian Bilangan Oktal

Berikut adalah tahapan untuk operasi perkalian oktal, antara lain:
  1. kalikan masing-masing kolom secara desimal.
  2. rubah dari hasil desimal ke bilagan oktal.
  3. tuliskan hasil dari digit paling kanan dari hasil oktal.
  4. jika hasil perkalian pada masing-masing kolom terdiri atas 2 digit, maka digit paling kiri adalah carry of untuk ditambahkan pada hasil perkalian pada kolom berikutnya.
Perkalian Bilangan Oktal

D. Pembagian Bilang Oktal

Pembagian Bilangan Oktal3. Operasi Aritmatika Bilangan Heksadesimal

A. Penjumlahan Bilangan Heksadesimal

Dalam penjumlahan bilangan heksadesimal, sisa akan terjadi atau berlangsung apabila jumlah dari masing-masing tempat melebihi 15.
Sebagai contoh:
Penjumlahan Bilangan Heksadesimal
bilangan heksadesimal

B. Pengurangan Bilangan Heksadesimal

Pada pengurangan apabila bilangan yang dikurangi lebih kecil dibandingkan dengan bilangan pengurangnya maka akandilakukan peminjaman (borrow) pada tempat yang lebih tinggi (dengan nilai 16).
Sebagai contoh:
Pengurangan Bilangan Heksadesimal

C. Perkalian Bilangan Heksadesimal

Berikut adalah tahapan untuk operasi perkalian heksadesimal, antara lain:
  1. kalikan masing-masing kolom secara
  2. rubah dari hasil desimal ke oktal
  3. tuliskan hasil dari digit paling kanan dari hasil bilangan oktal
  4. jika hasil perkalian pada masing-masing kolom terdiri atas 2 digit, maka digit paling kiri adalah carry of untuk ditambahkan pada hasil perkalian kolom berikutnya.
Sebagai contoh:
Perkalian Bilangan Heksadesimal

D. Pembagian Bilangan Heksadesimal

Pembagian pada bilangan Heksadesimal sama halnya seperti yang ada dalam pembagian pada bilangan decimal.
Sebagai contoh:
Pembagian Bilangan Heksadesimal

Increment dan Decrement

Increment (bertambah) dan Decrement (berkurang) merupakan dua pengertian yang sering sekali dipakai dalam teknik miroprosessor.
Dalam matematik pengertian increment yaitu Bertambah Satu dan decrement berarti Berkurang Satu.

Increment Sistem Bilangan

Seperti uraian di atas bahwa increment berarti bilangan sebelumnya akan ditambah dengan 1.
Increment Sistem Bilangan

Decrement Sistem Bilangan

Decrement didapatkan dengan cara mengurangi bilangan sebelumnya dengan 1.
Sebagai contoh:
Decrement Sistem Bilangan
source : 

Finite State Automata & Non Finite State Automata

1. FSA  ( Finite State Automata ) Finite State Machine dapat berupa suatu mesin yang tidak memilikioutput. Finite State Machine yang tid...