• Tidak ada hasil yang ditemukan

(Binary) Heap. Binary tree yang menyimpan pasangan prioritas (atau prioritas elemen) pada node Property Heap :

N/A
N/A
Protected

Academic year: 2021

Membagikan "(Binary) Heap. Binary tree yang menyimpan pasangan prioritas (atau prioritas elemen) pada node Property Heap :"

Copied!
123
0
0

Teks penuh

(1)

heap

(2)

(Binary) Heap

• Binary tree yang menyimpan pasangan

prioritas (atau prioritas elemen) pada node

• Property Heap :

– Struktural

– Semua level kecuali yang terakhir berisi penuh, level terakhir boleh tidak penuh (berisi 1 anak) tetapi harus terisi.

– Heap

(3)

(Binary) Heap

1 1 1 7 1 3 1 8 2 1 1 9 1 7 4 3 2 3 2 6 2 9 3 1

(4)

Bukan Heap

Heap Violated

1 1 1 9 1 3 1 8 2 1 1 9 1 7 4 2 2 2 3

(5)

Bukan Heap

• Level terakhir

• Ada yang kosong

1 1 1 7 1 3 1 8 2 1 1 9 1 7 4 3 2 6 2 9 3 1

(6)

Menemukan elemen Terkecil

• Elemen dengan prioritas

terkecil

selalu

berada pada posisi

root

dalam

heap

• Hal ini karena jika tidak maka prioritas

tersebut akan menjadi

parent

dengan

prioritas

lebih kecil

dan hal ini

melanggar

heap property

(7)

Menemukan elemen Terkecil

Findmin(a[])

(8)

Height dari Heap

• Diberikan heap dengan n Node dan

ketinggian (height) h

• Recall: Complete Binary Tree dengan

Height h memiliki 2h+1-1 node

• Dengan demikian 2h-1<=2h+1-1

• n=

log2 h

(9)

Implementasi Heap

• Parent (i){return

i/2

}

• Left(i){return 2i}

• Right(i){rreturn 2i+1}

1 1 1 7 1 3 1 8 2 1 1 9 1 7 4 3 2 3 2 6 A 1 1 1 1 2 1 1 4 2 2 1 2 3 4 5 6 7 8 9 10 Parent(5) 2 (17) Left(3) 6 (19) Right(3) 7 17)

(10)

Implementasi Heap

• Secara implisit tree dalam link, dengan

anak node i adalah 2i dan 2i+1

• Kenapa hal ini bermanfaat ?

– Dalam representasi binary , perkalian atau

pembagian dengan 2 merupakan pergeseran

ke kanan atau ke kiri (a** == shl(a) atau

a//==shr(a))

(11)

Penyisipan dalam Heap

• Sisipkan 12

1 1 1 7 1 3 1 8 2 1 1 7 4 3 2 3 2 6 2 9 3 1 Secara struktur maka kita akan tambahkan node

12

Secara struktur sudah benar 19

(12)

Penyisipan dalam Heap

• Sisipkan 12

1 1 1 7 1 8 2 1 1 7 4 3 2 3 2 6 2 9 3 1 Secara struktur maka kita akan tambahkan node

19

Secara struktur sudah benar 12

(13)

Penyisipan dalam Heap

• Sisipkan 12

• Sisipkan 8

1 1 1 7 1 8 2 1 4 3 2 3 2 6 2 9 3 1 19 12 13 8 17

(14)

Penyisipan dalam Heap

• Sisipkan 12

• Sisipkan 8

1 1 1 7 1 8 2 1 4 2 2 2 3 19 12 13 17 8

(15)

Penyisipan dalam Heap

• Sisipkan 12

• Sisipkan 8

1 7 1 8 2 1 4 3 2 3 2 6 2 9 3 1 19 12 8 17 13 11

(16)

Penyisipan dalam Heap

• Sisipkan 12

• Sisipkan 8

1 7 1 8 2 1 4 2 2 2 3 19 12 11 17 13 8

(17)

Cara menyisipkan lainnya

• Perbesar heap

1 1 1 7 1 3 1 8 2 1 1 7 4 3 2 3 2 6 2 9 3 1 19 12 Memakai jalur dari root

(18)

Cara menyisipkan lainnya

• Perbesar heap

1 1 1 7 1 8 2 1 1 7 4 3 2 3 2 6 2 9 3 1 19 12 Memakai jalur dari root

Utk menyisipkan node Temukan elemen dengan prioritas tertinggi yang

lebih besar dari Elemen yang Akan di sisipkan

(19)

Cara menyisipkan lainnya

1 1 1 7 1 2 1 8 2 1 1 7 4 3 2 3 2 6 2 9 3 1 19 13

(20)

Kebenaran Insertion

• Node yang isinya berubah berada pada

path

1 1 1 7 1 3 1 8 2 1 1 7 19 12

(21)

Kebenaran Insertion

• Node yang isinya berubah berada pada

path

• Heap property terlanggar hanya pada node

anak-nya

1 1 1 7 1 3 1 8 2 1 1 7 19 12

(22)

Kebenaran Insertion

• Node yang isinya berubah berada pada

path

• Heap property terlanggar hanya pada node

anak-nya

• Isi yang baru berprioritas lebih kecil

dari sebelumnya

1 1 1 7 1 3 1 8 2 1 1 7 19 12

(23)

Kebenaran Insertion

• Node yang isinya berubah berada pada

path

• Heap property terlanggar hanya pada node

anak-nya

• Isi yang baru berprioritas lebih kecil

dari sebelumnya

1 1 1 7 1 8 2 1 1 7 19 12 13

(24)

Kebenaran Insertion

• Node yang isinya berubah berada pada

path

• Heap property terlanggar hanya pada node

anak-nya

• Isi yang baru berprioritas lebih kecil

dari sebelumnya

• Shg heap property aman

1 1 1 7 1 8 2 1 1 7 13 12

(25)

Heapify(i)

• i adalah index array A

• Binary tree yang berakar di Left(i) dan

Right(i) adalah

heap

• Tetapi, A[i] harus lebih besar dari

anaknya, sehingga terjadi violated pada

heap property

• Fungsi

Heapify

membuat binary tree

berakar di

i

pd heap dengan

(26)

Heapify

• Ini bukan heap

1 7 1 0 1 1 1 6 2 1 1 2 4 2 2 2 3 13

Heap property violated pada node dg index 1 tetapi Subtree pada akar 2 dan 3 adlaah heap

(27)

Cara kerja Heapify

• Heapify akan melihat dua anak dari root yang violated

• Memilih prioritas pada kedua

anak tersebut yang

terkecil

, lalu

menukar

dengan

rootnya

1 1 1 6 2 1 1 2 13 10 17

(28)

Cara kerja Heapify

• Heapify akan melihat dua anak dari root yang violated

• Memilih prioritas pada kedua

anak tersebut yang

terkecil

, lalu

menukar

dengan

rootnya

1 1 2 1 1 2 13 17 10 16

(29)

Cara kerja Heapify

• Heapify akan melihat dua anak dari root yang violated

• Memilih prioritas pada kedua

anak tersebut yang

terkecil

, lalu

menukar

dengan

rootnya

1 1 2 1 1 2 13 16 10 17

(30)

Cara kerja Heapify lainnya

• Heapify(i) melacak path tree ke

bawah

1 7 1 0 1 1 1 6 2 1 1 2 13

(31)

Cara kerja Heapify lainnya

• Heapify(i) melacak path tree ke

bawah

1 7 1 0 1 1 1 6 2 1 1 2 13

(32)

Cara kerja Heapify lainnya

• Heapify(i) melacak path tree ke

bawah

• Node terakhir pada path (misal

j

)

memiliki baik A[left(

j

)], A[right(

j

)]

yang lebih besar dari A[i]

1 7 1 0 1 1 1 6 2 1 1 2 13

(33)

Cara kerja Heapify lainnya

• Heapify(i) melacak path tree ke bawah

• Node terakhir pada path (misal

j

) memiliki

baik A[left(

j

)], A[right(

j

)] yang lebih besar dari

A[i]

• Seluruh elemen path

Memiliki prioritas

lebih

kecil

dari

saudaranya

1 7 1 0 1 1 1 6 2 1 1 2 13

(34)

Cara kerja Heapify lainnya

• Heapify(i) melacak path tree ke bawah

• Node terakhir pada path (misal

j

) memiliki baik

A[left(

j

)], A[right(

j

)] yang lebih besar dari A[i]

• Seluruh elemen path

Memiliki prioritas

lebih

kecil

dari

saudaranya

• Seluruh elemen pd path ini

di pindahkan ke atas

1 1 2 1 1 2 13 17 10 16

(35)

Cara kerja Heapify lainnya

• Heapify(i) melacak path tree ke bawah

• Node terakhir pada path (misal j) memiliki baik

A[left(

j

)], A[right(

j

)] yang lebih besar dari A[i]

• Seluruh elemen path

Memiliki prioritas lebih

kecil dari saudaranya

• Seluruh elemen pd path ini

di pindahkan ke atas

A[i] pindah ke posisi

j

1 1 2 1 1 2 13 17 10 16

(36)

Run Time Analisis

• Heap dengan n node mempunyai height

O(log n)

• Selama penyisipan kita harus

memindahkan elemen ke atas

• Dengan demikian setidaknya di perlukan

O(log n) langkah

(37)

Operasi Binary Heap

• Delete-Min

• Building heap dalam O(n) time

• Heapsort

(38)

Delete Minimum

• Elemen minimum adalah elemen pada top heap

• Kita dapat menghapus elemen tersebut dan

memindahkan anaknya ke atas untuk mengisi ruang

yang kosong karena penghapusan tadi

• Ruang yang kosong pada tree di pindahkan ke bawah

• Di akhiri pada setiap posisi pada akhir level

• Hasilnya tree menjadi tidak ada yang kosong pada akhir

levelnya

(39)

Delete-min dalam heap

8 1 0 11 1 8 2 1 1 2 4 3 23 26 29 31 13 19 17

(40)

Delete-min dalam heap

1 0 11 1 8 2 1 1 2 4 3 23 26 29 31 13 19 17

(41)

Delete-min dalam heap

1 0 11 1 8 2 1 1 2 4 3 23 26 29 31 13 19 17

(42)

Delete-min dalam heap

1 1 1 8 2 1 1 2 4 3 23 26 29 31 13 19 17 10

(43)

Delete-min dalam heap

1 1 1 8 2 1 1 2 4 3 23 26 29 31 13 19 17 10

(44)

Delete-min dalam heap

1 1 2 1 1 2 4 3 23 26 29 31 13 19 17 10 18

(45)

Delete-min dalam heap

1 1 2 1 1 2 4 3 26 29 31 13 19 17 10 18 18

(46)

Delete-min dalam heap

1 1 2 1 1 2 4 3 26 29 31 13 19 17 10 18 23

(47)

Delete-min dalam heap (2)

• Ganti elemen top dengan elemen

terakhir dalam heap

8

1

0 11

1

(48)

Delete-min dalam heap (2)

• Ganti elemen top dengan elemen

terakhir dalam heap

1

0 11

1

(49)

Delete-min dalam heap (2)

• Ganti elemen top dengan elemen

terakhir dalam heap

• Lakukan Heapify(1)

1 2 13 17 10 16 11 11

(50)

Delete-min dalam heap (2)

• Ganti elemen top dengan elemen

terakhir dalam heap

• Lakukan Heapify(1)

1 2 13 10 17 16 11 11

(51)

Delete-min dalam heap (2)

• Ganti elemen top dengan elemen

terakhir dalam heap

• Lakukan Heapify(1)

1 2 13 10 16 17 11 21

(52)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3 4 3 26 1 0 21 13 31

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

(53)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3 4 3 26 1 0 21 13 31

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

(54)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3 4 3 26 1 0 21 13

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

(55)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3 4 3 26 1 0 21 13 17

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

(56)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3 4 3 26 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap 1 21 11

(57)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3 4 3 26 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

Jadi mulai dari parent leaves terakhir

11 8

1 0

(58)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3 4 3 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap 1 8 11

0

(59)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3 4 3 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

Jadi mulai dari parent leaves terakhir

11

8 1

(60)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3 4 3 13 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

11

8 1

(61)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3

13 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

Jadi mulai dari parent leaves terakhir

11

8 1

0

(62)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

2 3

13 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

11 8

1

(63)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

13 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

Jadi mulai dari parent leaves terakhir

11 21 8 1 0 23

(64)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

13 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

11 21 8 1 0 23

(65)

Building Heap

• Dimulai dari bawah ke atas

• Semua leaves adalah heap

13 1 7

Build-Heap (A)

for i

n/2

downto 1

do Heapify(A,i)

Karen leaves berupa heap

Jadi mulai dari parent leaves terakhir

11 21 8 1 0 23

(66)

Analisis Building heap

• Kebenaran : induksi pada i, semua akar tree pada

m>i adalah heap

• Run time : n call pada Heapify = n O(log n)=O(n log

n)

• Height node : panjang dari jalur terpanjang dari node

ke leaf

• Height tree: height node

• Time Heapify(i)=O(height of subtree berakar i)

• Asumsi : jum node n=2k-1 (complete binary tree)

(67)

Analisis Building heap (2)

• Untuk n/2 node dngan height 1, heapify

membutuhkan setidaknya 1 kali tukar

• Untuk n/4 node dngan height 2, heapify

membutuhkan setidaknya 2 kali tukar

• Untuk n/2i node dngan height i, heapify

membutuhkan setidaknya i kali tukar

• Jadi total jumlah pertukaran :

      + + + + + + + =O n n n k n T .3 ... 1 8 1 2 . 4 1 2 1 ) (

(68)

Bagaimana terjadi O(n) ?

∞ ∞ = − ∞ = − ∞ =

=

=

=

=

=

<

=

0 2 1 0 2 1 0

2

2

/

1

2

1

//

)

(

//

)

1

(

1

//

1

1

1

i i i i i i

i

x

masukan

x

x

x

x

i

x

kalikan

x

x

i

si

diferensia

x

if

x

x

Jadi O(n)

(69)

Heapsort

• Buat heap

Lakukan delete-min

Secara berulang hingga

Heap mjd kosong

• Lakukan sort pada, array

Pindahkan (tukar)

elemen yang di hapus

8 1 0 11 1 2 2 1 1 7 1 6 23 43 29 26 13 19 31

(70)

Proses heapsort

• Delete-min

1 1 1 2 21 17 1 6 2 3 4 3 2 9 2 6 13 19 31 8 10

(71)

Proses heapsort

• Heapify (1)

1 1 1 2 21 17 1 6 2 3 4 3 2 9 2 6 13 19 8 31 10

(72)

Proses heapsort

• Heapify (1)

1 1 13 19 8 10 31 12 21 16 23 43 29 26 17

(73)

Proses heapsort

• Heapify (1)

1 1 13 19 8 10 12 31 21 16 23 43 29 26 17

(74)

Proses heapsort

• Heapify (1)

1 1 13 19 8 10 12 16 21 31 23 43 29 26 17

(75)

Proses heapsort

• Delete-min

1 1 13 19 8 10 12 16 21 31 23 43 29 26 17

(76)

Proses heapsort

• Delete-min

1 1 13 10 8 19 12 16 21 31 23 43 29 26 17

(77)

Proses heapsort

• Heapify(1)

13 10 8 19 12 16 21 31 23 43 29 26 17 11

(78)

Proses heapsort

• Heapify(1)

13 10 8 11 12 16 21 31 23 43 29 26 17 19

(79)

Proses heapsort

• Delete-min

19 10 8 11 12 16 21 31 23 43 29 26 17 13

(80)

Proses heapsort

• Delete-min

19 10 8 26 12 16 21 31 23 43 29 11 17 13

(81)

Proses heapsort

• Heapify(1)

19 10 8 26 12 16 21 31 23 43 29 11 17 13

(82)

Proses heapsort

• Heapify(1)

19 10 8 12 26 16 21 31 23 43 29 11 17 13

(83)

Proses heapsort

• Heapify(1)

19 10 8 12 16 26 21 31 23 43 29 11 17 13

(84)

Proses heapsort

• Delete-min

19 10 8 12 16 23 21 31 26 43 29 11 17 13

(85)

Proses heapsort

• Delete-min

19 10 8 29 16 23 21 31 26 43 12 11 17 13

(86)

Proses heapsort

• Heapify(1)

19 10 8 29 16 23 21 31 26 43 12 11 17 13

(87)

Proses heapsort

• Heapify(1)

19 10 8 13 16 23 21 31 26 43 12 11 17 29

(88)

Proses heapsort

• Heapify(1)

19 10 8 13 16 23 21 31 26 43 12 11 29 17

(89)

Proses heapsort

• Delete-min

19 10 8 13 16 23 21 31 26 43 12 11 29 17

(90)

Proses heapsort

• Heapify(1)

19 10 8 43 16 23 21 31 26 13 12 11 29 17

(91)

Proses heapsort

• Heapify(1)

19 10 8 16 43 23 21 31 26 13 12 11 29 17

(92)

Proses heapsort

• Delete-min

19 10 8 16 21 23 43 31 26 13 12 11 29 17

(93)

Proses heapsort

• Heapify(1)

19 10 8 26 21 23 43 31 16 13 12 11 29 17

(94)

Proses heapsort

• Heapify(1)

19 10 8 17 21 23 43 31 16 13 12 11 29 26

(95)

Proses heapsort

• Delete-min

26 10 8 17 21 23 43 31 16 13 12 11 29 19

(96)

Proses heapsort

• Heapify(1)

26 10 8 31 21 23 43 17 16 13 12 11 29 19

(97)

Proses heapsort

• Heapify(1)

26 10 8 19 21 23 43 17 16 13 12 11 29 31

(98)

Proses heapsort

• Delete-Min

31 10 8 19 21 23 43 17 16 13 12 11 29 26

(99)

Proses heapsort

• Heapify(1)

31 10 8 29 21 23 43 17 16 13 12 11 19 26

(100)

Proses heapsort

• Heapify(1)

31 10 8 21 29 23 43 17 16 13 12 11 19 26

(101)

Proses heapsort

• Delete-min

31 10 8 21 23 29 43 17 16 13 12 11 19 26

(102)

Proses heapsort

• Heapify(1)

21 10 8 31 23 29 43 17 16 13 12 11 19 26

(103)

Proses heapsort

• Heapify(1)

21 10 8 23 31 29 43 17 16 13 12 11 19 26

(104)

Proses heapsort

• Delete-min

21 10 8 23 29 31 43 17 16 13 12 11 19 26

(105)

Proses heapsort

• Heapify(1)

21 10 8 43 29 31 23 17 16 13 12 11 19 26

(106)

Proses heapsort

• Heapify(1)

21 10 8 26 29 31 23 17 16 13 12 11 19 43

(107)

Proses heapsort

• Delete-min

21 10 8 26 29 31 23 17 16 13 12 11 19 43

(108)

Proses heapsort

• Heapify(1)

21 10 8 31 29 26 23 17 16 13 12 11 19 43

(109)

Proses heapsort

• Delete-min

21 10 8 29 31 26 23 17 16 13 12 11 19 43

(110)

Proses heapsort

• Hepaify(1)

21 10 8 43 31 26 23 17 16 13 12 11 19 29

(111)

Proses heapsort

• Delete-min

21 10 8 31 43 26 23 17 16 13 12 11 19 29

(112)

Proses heapsort

• Delete-min

21 10 8 43 31 26 23 17 16 13 12 11 19 29

(113)

Proses heapsort

• Delete-min

21 10 8 43 31 26 23 17 16 13 12 11 19 29

(114)

Run time operasi heap

• Insert():O(log n)

• Heapify(): O(log n)

• Findmin(): O(1)

• Deletemin(): O(log n)

• Buildheap(): O(n)

(115)

Psuedo code

• PARENT(i)

return i/2

• LEFT(i)

return 2i

• RIGHT(i)

return 2i + 1

(116)

Tukar

Tukar (a,b)

temp=a

a=b

(117)

Heapify

HEAPIFY(A, i)

l  LEFT(i)

r  RIGHT(i)

if l <=heap-size[A] and A[l] > A[i] then largest  l

else largest  i

If r <=heap-size[A] and A[r] > A[largest] then largest  r

(118)

Shiftdown

ShiftDown(A,i)

ki

repeat

jk

if 2j<=length(A) and A[2j]>A[k]

then k2j

if 2j<length(A) and A[2j+1]>A[k]

then k2j+1

(119)

Shiftup

Shiftup(A,i)

ki

repeat

jk

if j>i and A[j%2]<A[k] then kj%2

Tukar(A[j],A[k])

(120)

Buildheap dan Makeheap

BUILDHEAP(A)

heap-size[A] length[A]

for i length

A/2

downto 1

do HEAPIFY(A, i)

Atau

Makeheap(A)

(121)

FindMax-min, DelMax-min

Findmax(A)

return A[1];

FindMin(A)

return A[n]

DelMax(A)

A[1]A[n]

ShiftDown(A[1..n-1],1)

DelMin(A)

(122)

InsertNode

InsertNode(A,v)

A[n+1]v

(123)

Heapsort

Heapsort (A)

makeheap(A)

for in downto 2 do tukar(A[1],A[i])

Shiftdow(A[1..i-1],1) Atau

HEAPSORT(A)

BUILDHEAP(A)

for i length[A] downto 2 do tukar(A[1],A[i])

Referensi

Dokumen terkait

This was a survey study that used the descriptive data, Customer Response Index (CRI) and independent samples t-test to test the difference in effectiveness between the

Dan eksistensi hakam dalam rangka pencegahan perceraian di Kelurahan Limpomajang Kecamatan Marioriawa Kabupaten Soppeng adalah sebagai arbitrase atau penengah yang

Karakteristik pemerintah daerah yang diukur dengan ukuran pemerintah daerah, pendapatan pajak daerah, kemandirian daerah dan belanja daerah yang diukur dengan jumlah

Dengan dilakukannya penelitian ini, dapat dilihat bagaimana pengendali daya Hybrid mampu mengendalikan daya antara Baterai dan Solar Cell, kinerja Solar Cell saat UAV

Kelebihan dari teori ini adalah meneliti suatu kejadian kecalakaan secara menyeluruh sampai pada titik manajemen sedangkan kelemahan pada teori ini adalah tidak meneliti

Teguh Praludi, “Desain dan Realisasi Filter Bandpass Mikrostrip dengan Struktur Hairpin”, 13(1): 33 – 37 Yaya Sulaeman, “Desain dan Realisasi Filter Bandpass Mikrostrip

Angka Kematian Ibu dan Angka Kematian Bayi menjadi indikator penting dalam menentukan derajat kesehatan masyarakat. Kehamilan makrosomia dapat melahirkan bayi besar yang dapat

Dari penjelasan di atas dapat disimpulkan, bahwa perekonomian Negara Jepang mengalami dinamika yang sangat menarik untuk dicermati di mana Negara Jepang mengalami