Agustus 27, 2008

Perbandingan PDH dan SDH

Perbandingan PDH dan SDH

PDH adalah sistem yang selama ini digunakan, hingga diterapkannya SDH. Kata plesiochronous berasal dari bahasa Yunani plesio yang berarti hampir. Nama ini baru dimunculkan setelah SDH diresmikan oleh CCITT, karena orang merasa perlu memberikan nama baru untuk sistem lama, yang sebelumnya dianggap sinkron, tetapi masih "kalah" sinkron dengan SDH. Dalam sebuah jaringan transmisi, pemultiplekan memiliki masalah dalam hal pencabangan dan penyisipan (drop and insert) karena sulit untuk memonitor dan mengendalikan proses ini. Jikasebuah multiplexer berusaha untuk menggabungkan beberapa sinyal ke dalam sebuah arus data (stream), terjadi kesulitan karena pulsa detak setiap sinyal tidak persis sama. Dalamsistem PDH, perbedaan sebesar 50 bit pada kecepatan 2 048 Mb/s adalah sesuatu yang wajar.Ini karena PDH tidak menyinkronkan jaringan dalam arti sesungguhnya. PDH hanya menggunakan pulsa detak maksimum pada setiap simpul (switching node) sebagai standar. Jika tidak ada lagi data bit dalam buffer karena sinyal data tersebut menggunakan pulsa detak yang lebih lambat, maka PDH akan menyisipkan bit-bit tambahan (stuff bits, Stopfbit). Sebaliknya, multiplexer penerima harus membuang bit-bit tambahan tersebut. Kerugian lain yang dimiliki PDH adalah kemampuan komponen transmisi yang terbatas
pada satu jenis layanan saja, pada umumnya layanan telepon biasa yang dikenal dengan Plain Old Telephone Service (PTOS). Hal ini tentu saja tidak sesuai lagi dengan perkembangan teknologi yang mengutamakan efisiensi hardware (dalam hal ini kabel baik serat optik maupun tembaga). Jaringan transmisi modern harus mampu menggabungkan beberapa jenis layanan. Integrasi dan fleksibilitas inilah yang ditawarkan SDH sebagai salah satu kelebihannya.

Keunggulan SDH yang paling utama adalah prinsip pemultiplekan yang murni sinkron. Kebalikan dari teknik pemultiplekan PDH seperti yang disebutkan di atas, beberapa sinyal data dapat dimultiplek menjadi sinyal SDH yang memiliki kecepatan lebih tinggi secara langsung (direct syncronous multiplexing). Cara kerja teknik ini akan dijelaskan dalam bagian-bagian selanjutnya.
Sifat-sifat SDH lainnya adalah sebagai berikut :
# Manajemen dan maintanance jaringan yang sangat baik dan fleksibel. Hampir 5% dari
seluruh lebar pita digunakan untuk fungsifungsi ini (lihat bagian selanjutnya mengenai
struktur frame).
# Self healing, yaitu pencarian rute kembali (rerouting) tanpa pemutusan layanan.

Agustus 14, 2008

PENGULANGAN

PENGULANGAN
5.1. Pengulangan Dengan For…Next
Pengulangan proses menggunakan For…Next adalah bentuk pengulangan
terkendali dengan variabel kendali yang terus berjalan maju atau mundur. Format
penulisan pengulangan ini adalah sebagai berikut:
For variabel = nilai_awal To nilai_akhir [Step langkah]

Next variable
Contoh 1:
Untuk menentukan barisan bilangan 1, 2, 3, …., 10 maka bilangan mempunyai nilai
awal = 1, nilai akhir=10 dan step antar bilangan = 1, sehingga bisa ditulis dengan
For bilangan=1 To 10 Step 1

Next bilangan
Karena step=1, maka secara default tidak perlu dituliskan sehingga perintahnya bias
ditulis dengan:
For bilangan=1 To 10

Next bilangan
Contoh Aplikasi 5.1:
Untuk menampilkan barisan bilangan 1 sampai dengan N, dengan N dimasukkan.
Hasil barisan ditampilkan pada Label.
(1) Buat project baru. Pada form, isi property [Name] dengan formLatihan51
(2) Tambahkan komponen-komponen: 1 label, 1 textbox, 1 buah listBox dan 1
command button
(3) Untuk label1, isi property [Caption] dengan ”N=”. Untuk textbox1,
kosongkan property [Text]. Untuk command1, isi property [Caption] dengan
Barisan. Atur posisi masing-masing komponen seperti gambar 5.1. berikut:

(4) Click pada command1, tambahkan program untuk membuat barisan bilangan
dari 1 sampai dengan N sebagai berikut:
Private Sub Command1_Click()
N = Val(Text1)
List1.Clear
For i = 1 To N
List1.AddItem i
Next i
End Sub
Fungsi Val digunakan untuk mengubah tipe data text menjadi tipe data
numerik, sedangkan fungsi Str digunakan untuk mengubah tipe data numerik
menjadi tipe data text.
Property clear pada List1 digunakan untuk membersihkan isi list1, dan
property AddItem pada List1 digunakan untuk menambahkan isi list1.
Dengan demikin sebelumnya dibersihkan, kemudian ditambah isinya dengan
barisan bilangan yang dibuat.
(5) Simpan project dengan nama projectLatihan51. jalankan dan coba isi N yang
berbeda-beda, perhatikan hasilnya.
Contoh 2:
Menampilkan barisan bilangan 20, 19, 18, ...., 3, 2, 1 dapat dilakukan dengan:
For bilangan=20 To 1 Step -1
List1.AddItem bilangan
Next bilangan
Contoh 3:
Menampilkan barisan bilangan 1, 4, 7, 10, 13, 16, 19, 22, .... 3N+1 dapat dilakukan
dengan:
For bilangan=0 To N Step -1
List1.AddItem 3*bilangan+1
Next bilangan
Contoh Aplikasi 5.2:
Untuk menampilkan huruf A sampai dengan Z menggunakan pengulangan For..Next,
dapat dilakukan dengan langkah=langkah sebagai berikut:
(1) Buat project baru. Pada form, isi property [Name] dengan formLatihan52 (2)
Tambahkan komponen-komponen: 1 buah listBox dan 1 command button
(3) Untuk command1, isi property [Caption] dengan Alfabet. Atur tampilannya
seperti gambar 5.2 berikut.

(4) Click pada command1, tambahkan kode untuk menampilkan barisan alfabet
menggunakan For..Next. Teknik yang digunakan adalah menggunakan kode
ASCII untuk masing-masing karakter, dimana kode ASCII untuk ’A’ adalah 65,
dan demikian seterusnya kode ASCII ditambah satu-persatu sampai 26 kali.
Private Sub
Command1_Click()
List1.Clear
For i = 1 To 26
kodeASCII = 64 + i
List1.AddItem Chr(kodeASCII)
Next i
End Sub
Fungsi CHR adalah fungsi untuk mengambil karakter dari kode ASCII.
(5) Simpan project dengan nama projectLatihan52. Jalnkan untuk mengethaui
apakah hasilnya sudah benar atru tidak.
Contoh 4:
Menampilkan barisan fibbonanci sampai N kali (N bilangan bulat positif) dimana
nilai saat ini adalah jumlah dari nilai dua suku sebelumnya. Contoh barisan
fibonanci: 1 1 2 3 5 8 13 21 34 ...
suku1=1
suku2=1
List1.AddItem suku1
List1.AddItem suku2
For i=3 To N
bil=suku1+suku2
List1.AddItem bil
suku1=suku2
suku2=bil
Next i
Contoh 5:
Menampilkan barisan bilangan kelipatan 3 yang lebih kecil dari 100 dan berhenti
saat bilangan tersebut juga kelipatan 7. Untuk menghentikan pengulangan For..Next
sebelum mencapai nilai akhir dapat dilakukan dengan perintah Exit For.
For i=3 To 100 Step 3
If i mod 7 = 0 then Exit For
Next i
Contoh 6:
Menampilkan barisan N bilangan yang berganti-ganti 1 dan -1 seperti :
1 -1 1 -1 1 -1 1 -1 .....
adalah sebagai berikut:
bilangan = -1;
List1.Clear
For i=1 To N
bilangan = -1 * bilangan
List1.AddItem bilangan
Next i
Atau dengan cara:
List1.Clear
For i=1 To N
If i mod 2 = 0 then bilangan = -1 else bilangan = 1
List1.AddItem bilangan
Next i
Contoh 7:
Menampilkan barisan N bilangan yang berganti-ganti positif dan negatif seperti :
1 -2 3 -4 5 -6 7 -N .....
dapat dilakukan dengan cara mengalikan variable kontrol dari looping (i) dan
bilangan sebagai berikut:
List1.Clear
For i=1 To N
If i mod 2 = 0 then bilangan = -1 else bilangan = 1
List1.AddItem i*bilangan
Next i

5.2. Pengulangan Dengan While…Wend
Pengulangan dengan While... Wend adalah bentuk pengulangan terkendali
dengan proses akan diulang selama kondisi yang diberikan masih dipenuhi. Format
penulisan pengulangan ini adalah:
While

Wend
Variabel kontrol pada jenis looping tidak otomatis bertambah/berkurang seperti pada
looping dengan For...Next, sehingga penambahan atau pengurangan nilai dilakukan
dengan menggunakan akumulator yang dituliskan dengan
var = var + step
Meskipun hal ini bukan suatu keharusan. Karena tidak setiap looping membutuhkan
akumulator, variabel yang terus-menerus bertambah atau berkurang.
Contoh 8:
Menampilkan bilangan bulat ganjil dari satu sampai dengan 11, ini merupakan
looping dengan akumulator yang dapat dituliskan sebagai berikut:
bilangan=1
While bilangan<=11
List1.AddItem bilangan
bilangan = bilangan + 2
Wend
Contoh 9:
Mencari nilai fungsi f(x) = - x2 + 3x – 2 dari x=-1 sampai dengan f(x) mendekati nol,
atau dalam arti |f(x)|<0.001, dengan step 0.01, dapat dituliskan dengan:
x = -1
fx = -x ^ 2 + 3 * x – 2
while abs(fx)>0.001
x=x+0.01
fx = -x ^ 2 + 3 * x – 2
wend
label1.Caption = fx

5.3. Pengulangan Dengan Do Loop Until
Pengulangan dengan Do Loop Until adalah bentuk pengulangan terkendali
dengan proses akan diulang sampai kondisi yang diberikan dipenuhi. Format
penulisan pengulangan ini adalah:
Do

Loop Until
Contoh 10:
Menampilkan bilangan bulat ganjil dari satu sampai dengan 11, ini merupakan
looping dengan akumulator yang dapat dituliskan sebagai berikut:
bilangan=1
do
List1.AddItem bilangan
bilangan = bilangan + 2
Loop until bilangan>11
Contoh 11:
Mencari nilai fungsi f(x) = - x2 + 3x – 2 dari x=-1 sampai dengan f(x) mendekati nol,
atau dalam arti |f(x)|<0.001, dengan step 0.01, dapat dituliskan dengan:
x = -1
do
x=x+0.01
fx = -x ^ 2 + 3 * x – 2
loop until abs(fx) <= 0.001
label1.Caption = fx
5.4. Pengulangan Bertingkat
Pada contoh-contoh di atas, hanya dilakukan satu pengulangan. Padahal
dalam banyak aplikasi pemrograman menggunakan pengulangan yang lebih dari satu
misalkan pada pengolahan matrik, diperlukan pengulangan untuk baris dan
pengulangan untuk kolom pada setiap baris. Pengulangan yang adalah di dalam
pengulangan inilah yang dinamakan pengulangan bertingkat.
Pengulangan bertingkat secara umum dapat dituliskan dengan bentuk
penulisan sebagai berikut:
Pengulangan 1
...............................................
Proses di dalam pengulangan 1
Pengulangan 2
.......................................
Proses dalam pengulangan 2
.......................................
Akhir pengulangan 2
...............................................
Akhir pengulangan 1
Contoh 12.
Menampilkan n baris dari barisan bilangan 1 2 3 4 5 sebagai berikut:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
..............
Dapat ditulis dengan:
For baris = 1 To N
Kal=””
For i = 1 To 5
Kal = kal & str(i)
Next i
List1.AddItem kal
Next baris
Contoh 13.
Menampilkan 5 baris dari kombinasi barisan bilangan 1 2 3 4 5 sebagai berikut:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
Perhatikan bahwa pada baris ke 1 hasilnya adalah dari 1 sampai dengan 1, pada baris
ke 2 hasilnya adalah dari 1 sampai dengan 2, pada baris ke 3 hasilnya adalah dari 1
sampai dengan 3. Sehingga dapat dikatakan untuk baris ke i hasilnya adalah dari 1
sampai dengan i. Dan dapat dituliskan sebagai berikut:
For i = 1 To 5
kal = ””
For j=1 To i
kal = kal & str(j)
Next j
List1.AddItem kal
Next i
Contoh 12.
Menampilkan n baris dari barisan bilangan 1 2 3 4 5 sebagai berikut:
1 2 3 4 5
5 4 3 2 1
1 2 3 4 5
5 4 3 2 1
..............
Perhatikan bahwa pada baris ganjil hasilnya 1 2 3 4 5 dan pada baris yang genap
hasilnya adalah 5 4 3 2 1, maka perlu untuk mengetahui apakah baris itu baris
genap/ganjil untuk menentukan nilai awal, nilai akhir dan step. Dapat ditulis dengan:
For baris = 1 To N
If baris mod 2 =0 Then
Awal = 1 : Akhir = 5
Langkah = 1
Else
Awal = 5 : Akhir = 1
Langkah = -1
End If
Kal=””
For i = awal To akhir Step langkah
Kal = kal & str(i)
Next i
List1.AddItem kal
Next baris
Contoh Aplikasi 5.3:
Membuat program untuk untuk menghitung N bilangan prima, definisi bilangan
prima adalah bilangan yang hanya habis dibagi oleh 1 dan bilangan itu sendiri atau
bisa dikatakan bahwa bilangan prima adalah bilangan yang tidak tidak habis dibagi
oleh bilangan 2 sampai sebelum bilangan itu sendiri.
(1) Buat project baru dengan StandardEXE
(2) Pada form1, isi property [Name] dengan formLatihan53.
(3) Tambahkan komponen-komponen: 1 buah label, 1 textbox, 1 listbox dan 1
command button.
(4) Isi porperty masing-masing komponen seperti tabel di bawah ini dan atur
posisinya seperti gambar 5.3 berikut

(5) Click pada command1, tambahkan prorgam untuk membangkitkan N bilangan
prima pertama.
Private Sub Command1_Click()
n = Val(Text1)
List1.Clear
k = 0
bil = 2
While k < n
prima = True
For pembagi = 2 To bil - 1
If bil Mod pembagi = 0 Then prima = False
Next pembagi
If prima Then
List1.AddItem bil
k = k + 1
End If
bil = bil + 1
Wend
End Sub
(6) Simpan project dalam projectLatihan53.
Contoh 13:
Menampilkan hasil penjumlahan dari deret berikut:
1 + 2 + 3 + 4 + ... + N
dapat dilakukan dengan:
s=0
For i=1 To n
s = s + i
next i
Penulisan s=s+i dinamakan dengan akumulator, yaitu suatu variabel yang terus
menerus bertambah sesuai data. Akumulator ini banyak digunakan dalam penulisan
kode program dari rumus-rumus yang menggunakan jumlahan (sigma) sebagai
berikut:

Contoh 14:
Menampilkan hasil penjumlahan dari rumus deret yang dituliskan dengan



dapat dilakukan dengan:
s=0
For x=1 To n
s = s + (x - 1) ^ 2
next x

ARRAY
6.1. Konsep Array
Array dalam bahasa Indonesia adalah indeks, maka variabel array adalah
variabel yang mempunyai indeks. Sehingga penulisannya adalah var(indeks). Array
sangat penting di dalam pemrograman, karena array mampu menampung banyak
data yang bertipe sama. Sebagai contoh variabel array x menampung nilai-nilai
bilangan bulat {3, 6, 8, 7, 5, 1} berarti indeks untuk variabel x ini adalah 1 sampai
dengan 6, dan ditulis sebagai x(1), x(2), x(3), x(4), x(5) dan x(6).
Array dapat diibaratkan sebagai kereta api dalam komputer, yang di
dalamnya tedapat gerbong-gerbong memory yang berisi data-data yang mempunyai
tipe dan perlakuan yang sama. Untuk mengambil atau menampilkan nilai array dapat
dianalogikan dengan mencari kursi dalam gerbong kereta api, maka pada karcis perlu
dituliskan nomor gerbong, Array juga demikian, untuk menampilkan nilai array
tinggal menyebutkan indeks-nya. Misalkan untuk menampilkan nilai variabel x yang
ke 5 dituliskan dengan x(5).
Untuk dapat membuat variabel array maka terlebih dahulu harus
didefinisikan nama variabel array dan berapa jumlah maksimalnya dengan cara:
Dim nama_variabel(jumlah_array) as Tipe_Data
Perintah ini diletakkan sesuai kebutuhan apakah array ini hanya untuk subroutine
(event) lokal atau pada seluruh event di form.
Sebagai contoh untuk membuat array bilangan bulat yang dapat menampung 10
bilangan dapat dituliskan dengan:
Dim bilangan(10) as integer
Bila jumlah array sudah ditentukan 10 maka tidak boleh menggunakan data lebih
dari 10, karena 10 menyatakan jumlah maksimum dari data yang akan ditampung
adalan suatu array. Sebagai contoh:
Bilangan(4) = 100 .....Perintah ini benar
Bilangan(12) = 8 ......Perintah ini salah karena batasnya sudah ditentukan 10.
Contoh 1:
Memasukkan 6 nama sebagai berikut “Basuki”, “Achmad”, “Rizki”, “Widya”,
“Dian”, dan “Teguh” ke dalam array dan menampilkan semua nama ke dalam List
saat form di panggil.
Dim nama(6) as String
Private Sub Form_Load()
nama(0) = ”Basuki”
nama(1) = ”Achmad”
nama(2) = ”Rizki”
nama(3) = ”Widya”
nama(4) = ”Dian”
nama(5) = ”Teguh”
List1.Clear
For i=0 To 5
List1.AddItem nama(i)
Next i
End Sub
Array pada Visual Basic dimulai dari indeks 0. Sehingga data pertama dituliskan
dengan var(0).
Visual Basic juga mengenal array dinamis, dimana jumlahnya bisa tak terbatas.
Untuk mendefinisikan array dinamis dapat dilakukan dengan mendefinisikan array
tanpa menuliskan jumlah maksimum arraynya sebagai berikut:
Dim variabel() as tipe_data
Untuk contoh nama di atas, dapat dituliskan dengan:
Dim nama() as string
Contoh Aplikasi 6.1:
Membuat project untuk menuliskan data-data nama siswa dengan nomor dibuat
otomatis, dengan jumlah data siswa maksimum adalah 20. Kemudian menampilkan
semua data nama siswa yang sudah dimasukkan.
(1) Buat project baru dengan StandardEXE
(2) Tambahkan komponen-komponen: 1 label, 1 textbox, 1 listbox dan 2 command
button
(3) Masukkan nilai property dari masing-masing komponen dan form seperti tabel di
bawah ini, dan atur penempatan setiap komponen seperti gambar 6.1.

(4) Tambahkan kode program pada jendela kode sebagai berikut:
‘ Mendefinisikan variabel global nama sebagai array
‘ dan jumlah data
Dim nama(20) As String
Dim n As Integer
Private Sub Command1_Click()
‘ Menambah nomor array dan memindahkan isi text1
‘ ke array nama
n = n + 1
nama(n) = Trim(Text1.Text)
‘ Mengosongkan isi text1 dan menaruh kursor ke text1
Text1.Text = ""
Text1.SetFocus
End Sub
Private Sub Command2_Click()
‘ Menampilkan semua isi array nama
List1.Clear
For i = 1 To n
List1.AddItem nama(i)
Next i
End Sub
Private Sub Form_Load()
‘ Saat form dipanggil jumlah array diisi dengan nol
n = 0
End Sub
(5) Simpan project dengan nama projectLatihan61.
Contoh Aplikasi 6.2:
Membuat project untuk memasukkan data-data penjualan yang berisi jumlah produk
penjualan dalam satu bulan. Kemudian dihitung rata-rata penjualan, bulan yang
mengalami penjualan tertinggi dan bulan yang mengalami penjualan terendah.
(1) Buat project baru dengan StandardEXE
(2) Tambahkan komponen-komponen: 2 buah label, 2 textbox, 1 listbox dan 4
command button
(3) Isi property dari setiap komponen seperti tabel di bawah ini dan atur posisi tiap
komponen seperti gambar 6.2.




(4) Pada jendela kode, tambahkan kode program berikut:
'Mendefinisikan array data penjualan jual(n)
'Dan jumlah data penjualan n
Dim jual(100) As Single
Dim n As Integer
Private Sub Command1_Click()
'Jumlah data bertambah dan ambil data dari text1
n = n + 1
jual(n) = Val(Text1)
'Tampilkan ke list
List1.AddItem jual(n)
End Sub
Private Sub Command2_Click()
'Menghitung nilai rata-rata dari data
jumlah = 0
For i = 1 To n
jumlah = jumlah + jual(i)
Next i
rata2 = jumlah / n
List1.AddItem ""
List1.AddItem "Rata-rata = " & rata2
End Sub
Private Sub Command3_Click()
'Menghitung nilai maksimal dari data
jualMaks = jual(1)
For i = 2 To n
If jual(i) > jualMaks Then jualMaks = jual(i)
Next
List1.AddItem ""
List1.AddItem "Penjualan maksimum = " & jualMaks
End Sub
Private Sub Command4_Click()
'Menghitung nilai minimal dari data
jualMin = jual(1)
For i = 2 To n
If jual(i) < jualMin Then jualMin = jual(i)
Next
List1.AddItem ""
List1.AddItem "Penjualan maksimum = " & jualMin
End Sub
Private Sub Form_Load()
'Nilai awal jumlah data diberi nol
n = 0
List1.Clear
End Sub
(5) Simpan project dengan nama projectLatihan62.

Contoh 2:
Membuat barisan fibbonanci menggunakan konsep array. Definisi dari barisan
fibonanci adalah suku ke n adalah jumlah dari dua suku sebelumnya (suku ke n-1 dan
suku ke n-2) atau dituliskan dengan:
x(n) = x(n-1) + x(n-2)
Dan kode programnya adalah:
x(1) = 1
x(2) = 1
For i=1 To N
x(i) = x(i-1) + x(i+1)
Next i
‘ Menampilkan hasilnya
For i=1 To N
List1.AddItem x(i)
Next i
6.2. Array 2 Dimensi
Array bisa menggunakan satu indeks yang disebut dengan satu dimensi
seperti yang sudah dijelaskan di atas. Dan juga bisa menggunakan lebih dari satu,
misalkan 2 indeks yang dinamakan dengan array 2 dimensi dan ditulis dengan:
variabel(indeks1,indeks2)
Array 2 dimensi ini biasa digunakan untuk keperluan matrik, dimana indeks pertama
menyatakan baris dan indeks kedua menyatakan kolom. Sebagai contoh a(2,3) adalah
nilai a pada baris 2 dan kolom 3.
Contoh Aplikasi 6.3:
Membuat program untuk memasukkan matrik dan menampilkan matrik sebagai
berikut:
(1) Buat project baru dengan standardEXE
(2) Tambahkan komponen-komponen: 1 buah labe, 1 buah textbox, 1 buah listbox,
dan 2 buah command buttom
(3) Isi property setiap komponen seperti pada tabel d bawah ini, dan atur posisinya
seperti gambar 6.3

(4) Pada jendela code, tambahkan kode perogram sebagai berikut:
'Definisi matrik berukuran 4x4
Dim m(4, 4) As Single
Private Sub Command1_Click()
'Memasu
kkan nilai matrik sesuai dengan
'baris dan kolom yang dimasukkan
baris = Val(Text1)
kolom = Val(Text2)
m(baris, kolom) = Val(Text3)
End Sub
Private Sub Command2_Click()
'Menampilkan semua isi matrik
List1.Clear
For i = 1 To 4
kal = ""
For j = 1 To 4
kal = kal & m(i, j) & " "
Next j
List1.AddItem kal
Next i
End Sub
(5) Simpan project ini dengan nama projectLatihan63.
Contoh 3:
Membuat penjumlahan dua buah matrik a dan b yang berukuran sama (mxn)
menggunakan rumus:
c(i, j) = a(i, j) + b(i, j)
dapat dilakukan dengan:
For baris=1 To m
For kolom=1 To n
c(baris,kolom) = a(baris,kolom) + b(baris,kolom)
Next kolom
Next baris
Contoh 4:
Membuat perkalian dua buah matrik a dan b yang berukuran sama (nxn)
menggunakan rumus:


dapat dilakukan dengan:
For baris=1 To n
For kolom=1 To n
z = 0
For i=1 To n
z = z + a(baris,i) * b(i,kolom)
Next i
c(baris,kolom) = z
Next kolom
Next baris
6.3. Control Array
Pada visual Basic, array tidak hanya berlaku untuk variabel tetapi juga
berlaku untuk komponen. Pemakaian array pada komponen ini dinamakan dengan
control array. Control array ini banyak terjadi ketika membuat komponen dengan
cara meng-copy dari komponen yang sudah ada, misalkan untuk membuat command
button dengan meng-copy command1 akan muncul konfirmasi “You already have a
control named command1. Do you want to create a control array ?”. Bila pertanyaan
ini djawab dengan Yes, maka hasil command yang kedua mempunyai nama
command1(1), sedangkan command yang pertama mempunyai nama command1(0).
Control array ini sangat berguna bila membuat suatu project dengan banyak
komponen yang mempunyai model dan kegunaan yang sama. Control array juga
berguna untuk membuat project dengan komponen serupa yang sangat banyak
misalkan untuk lampu indikator yang menyatakan volume atau kekuatan.
Contoh Aplikasi 6.4:
Membuat kalkulator dengan kemampuan penjumlahan dan pengurangan, dapat
dilakukan dengan memanfaatkan control array pada tombol-tombol yang digunakan.
(1) Buat project baru dengan StandardEXE. Untuk form, isi porperty [Name] dengan
formLatihan64.
(2) Tambahkan komponen TextBox, atur property [Font] dengan size 18 dan bold,
atur property alignment dengan 1-Right Justify. Isi property [Text] dengan 0
(nol).
(3) Tambahkan command Button, atur property [Font] dengan size 14 dan bold.
Buatlah 14 buah command button dengan cara meng-copy dan jadikan control
array sehingga menjadi command1(0), command1(1), command1(2) sampai
dengan command1(13).
(4) Atur posisinya seperti gambar 6.4 berikut.

(5) Pada jendela code, tambahkan kode program sebagai operasi kalkulator sebagai
berikut:
% Definisi variabel global
Dim kal, operasi As String
Dim b


il As Integer
Private Sub Command1_Click(Index As Integer)
% Penambahan kerakter setiap tombol angka ditekan
kal = kal + Trim(Str(Index))
Text1 = kal
End Sub
Private Sub Command2_Click()
% Membersihkan memory dan text1
Text1 = "0"
kal = ""
End Sub
Private Sub Command3_Click(Index As Integer)
Select Case Index
Case 0:
% Operasi perhitungan bila tombol = ditekan
bil2 = Val(kal)
If operasi = "+" Then bil = bil + bil2
If operasi = "-" Then bil = bil - bil2
Text1 = bil
kal = Trim(Str(bil))
Case 1:
%Penampungan variabel dan operator untuk penjumlahan
bil = Val(kal)
operasi = "+"
kal = ""
Case 2:
%Penampungan variabel dan operator untuk pengurangan
bil = Val(kal)
operasi = "-"
kal = ""
End Select
End Sub
(6) Simpan project dengan nama projectLatihan64. Cobalah lakukan proses
perhitungan seperti kalkulator biasa. Kalkulator ini memang masih sederhana,
dan bisa ditambah fasilitasnya dengan menambah command button dan setiap
eventnya.
Contoh Aplikasi 6.5:
Membuat indikator proses dengan memanfaatkan control array. Lakukan
pengulangan 1 sampai dengan 20, setiap pengulangan lakukan pengulangan lagi
sebanyak 1000000 dn lakukan proses perhitungan sederhana misalkan x=2*j+1.
Buatlah indikator yang menunjukkan sudah berapa pengulangan pertama yang
selesai dengan indikator dibuat memanfaatkan property [Visible] pada shape. Untu
membuat program ini lakukan langkah-langkah sebagai berikut:
(1) Buat project baru dengan StandardEXE. Untuk form1, isi property [Name]
dengan formLatihan65
(2) Tambahkan komponen Command, isi property [Caption] dengan Proses.
(3) Tambahkan komponen shape, isi property [FillColor] dengan Pallete Merah, dan
isi property [FillStyle] dengan 0-Solid. Copy komponen shape ini sebanyak 19
kali sehingga totalnya adalah 20 shape dan letakkan berjajar, seperti pada gambar
6.5 berikut.

(4) Pada jendela code, tambahkan kode program untuk menampilkan indikator
pengulangan sebagai berikut:
Private Sub Command1_Click()
'Hilangkan semua shape dengan mengatur visible
For i = 0 To 19
Shape1(i).Visible = False
Next i
'Lakukan pengulangan
For i = 1 To 20
'Lakukan pengulangan sebanyak 1000000
For j = 1 To 1000000
'Lakukan proses perhitungan sederhana
x = 2 * i + 1
Next j
'Tampilkan shape ke i-1
Shape1(i - 1).Visible = True
Shape1(i - 1).Refresh
Next i
End Sub
(5) Simpan project dengan nama projectLatihan65

Agustus 08, 2008

Feeder Window Installation

Agustus 07, 2008

Installing the antena

Checking instalation of antena pole

PARAMETER_PARAMETER KEY PERFORMANCE INDICATOR CDMA



Indicator # 1 : Acces Failure Rate

* Mobile Origination Failure Rate ( Harga rata-rata kesalahan proses pembangunan hubungan ) didefinisikan sebagai jumlah kesalahan atau kegagalan hubungan dibagi dengan jumlah total proses pembangunan hubungan yang berhasil.
- Mobile Originations are Mobile-to-Land (MTOL) calls
- Jika nilainya kurang dari 5 % sudah cukup wajar atau bisa diterima
- Jika nilainya kurang dari 2 % termasuk sudah bagus

*Mobile Termination Failure rate ( Harga rata-rata kesalahan proses pemutusan hubungan) didefinisikan sebagai jumlah kegagalan pemutusan hubungan dibagi dengan jumlah total proses pemutusan hubungan yang berhasil. Dimana atau parameter-parameternya sama dengan Mobile Origination Failure Rate jika nilainya kuran dari 2 % sudah dianggap sangat baik.

Indicator # 2 : Drop Call Rate

* Dropped Call bisa didefenisikan sebagai kejadian dimana ada kanal trafik yang dilepaskan atau direlease oleh base station atau mobile station lain tanpa ijin atau persetujuan dengan mobile station yang lain.

* Dropped Call Rate didefinisikan sebagai jumlah total dropped call dibagi dengan total panggilan yang berhasil yang diukur dalam periode waktu tertentu.

* Unjuk kerja tau performansinya jika sudah kurang dari 2 % sudah dianngap baik.

Indicator # 3 : FER (Frame Error Rate)

* Frame Error didefinisikan sebagai frame yang diterima oleh MS/BS dengan membawa bit-bit error( karena kesalahan CRC check) atau karena frame tersebut mengalami pengkikisan atau penghapusan/erasure biasanya karena frame tersebut tidak cukup bagus kualitasnya untuk mencapai frame rata yang sudah ditentukan nilainya.

* FER secara normal hanya diukur dengan menghitung frame full rate yang error dibagi dengan jumlah Full rate frame.

* FER harus diukur selama periode panggilan khusus (typical) sekitar 100-120 detik.

* Biasanya target yang diharapkan untuk komunikasi suara FERnya harus kurang dari 1 %.

* FER
- Pada kanal forward terukur pada handset
- Pada kanal reverse terukur pada base station
- FER dapat dikatakan sebagai kesimpulan dari seluruh kualitas panggilan yang sangat valid.

* FER bisa dikatakan sebagai hasil akhir dari keseluruhan tes pada link atau jalur tranmisi.
- Jika FER bernilai atau dianggap bagus dalam arti nominal FER rendah maka permasalahan-permaslahan yang lain dalam sisi transmisi dapat dianggap tidak terlalu berpengaruh.
- Jika FER jelek maka ini merupakan masalah besar

Indicator # 4 : Rata-rata waktu setup panggilan

* Pendefinisian Waktu Call Setup :
- Untuk Mobile Origination (pembangunan hubungan) waktu call setup bisa didefinisikan sebagai waktu start mulainya suatu bentuk hubungan panggilan ( sebagai contoh mulainya pembangunan hubungan kanal akses) hingga panggilan memasuki tahap voice ( contohnya ketika service connect message diterima)
- Untuk Mobile Termination Call( pemutusan hubungan ) call setup time dapat diartikan dalam berbagai persepsi atau pandangan tergantung pada sumber informasi yang digunakan. Sebagai contoh jika mobile log digunakan, call setup bisa diartikan sebagai start atau mulainya ketika mobile mengirim page response message hingga service connect message diterima.

* Jika BS logs tersedia, waktu call setup bisa diukur dari page message dikirimkan hingga service connect message diterima oleh MS.

* Rata-rata waktu setup panggilan biasanya terkait dengan inerface udara dan jaringan yang digunakan.

* Waktu setup tidak termasuk waktu yang digunakan ketika mobile station men scan untuk penerimaan sinyal pilot.

Indicator # 5 : SHO (soft handoff) Persentasi

* Soft Handoff % dapat dijelaskan sebagai persentase waktu yang digunakan ketika panggilan dalam keadaan atau sedang dalam keadaan soft handoff.

* Parameter ini tidak selalu dibuat spesifikasinya akan tetapi parameter ini mempunyai dampak yang sangat besar terhadap kapasitas dan mempunyai keterkaitan yang erat dengan biaya dan QoS (Quality of Services)

* Soft handoff persentase mempunyai typical yang berniali 33 %, meskipun persentase ini bisa bervariasi karena perbedaan topologi dan beban atau loss (rugi-rugi)

* Persentase soft handoff dapat dispesifikasikan secara lebih lanjut karena adanya soft dan softer handoff tau juga persentase soft handoff ini bisa dispesifikasikan lagi karena adanya 2-way, 3-way, 4-way handoff dan seterusnya.

Indicator # 6 : Daya (Power) yang diterima di Handset

* Daya terima di MS
- biasanya diexpresikan dengan dBm
- Pengukuran diperoleh dari handset intermediate Frekuensi (IF) Automatic Gain Control (AGC) voltage
- broadband, Pengukuran yang tidak cerdas karena diperoleh dengan menghitung semua radio frekuensi (RF) yang terdapat dalam bandwith sinyal carrier tanpa memperhatikan sumber datangnya sinyal RF tersebut, tidak hanya RF dari BTS.

*Daya yang diterima merupakan parameter penting akan tetapi nilainya yang pasti tidak terlalu diperhatikan.
_ Terlalu banyak daya sinyal yang diterima (-35 dBm atau lebih tinggi) dapat menyebabkan amplifier pada telephone yang pertama kali menerima daya tersebut akan kelebihan beban, karena amplifier ini sangat sensitive hal ini dapat menyebabkan intermod dan perusakan kode pada sinyal cdma yang diterima.
- Terlalu kecil sinyal yang diterima (-105 atau lebih kecil) dapat meninggalkan terlalu banyak noise pada sinyal setelah dilakukan proses penyebaran (de-spreading) yang akan mengakibatkan kesalahan symbol, bit error, FER yang buruk dan masalah lainnya.

Indicator # 7 : Ec/Io – Apakah arti sesungguhnya?

* Mengapa kita tidak dapat menggunakan level daya yang diterima oleh hand set untuk memandu handoff?

* Karena pada pengukuran level daya yang diterima oleh handset itu hanya merupakan pengukuran yang sederhana, karena total daya semua sector BTS dapat menjangkau MS

* Kita memerlukan cara untuk mengukur kyat daya sinyal untuk masing-masing sector secara sendiri-sendiri (individually) dan kita harus bisa mengukur kyat sinyal tersebut secara cepat dan sederhana

* Solusinya hádala dengan menggunakan masing-masing sinyal pilot tiap sector (kode walsh 0) sebagai sinyal test untuk memandu handoff.
- Pada MS jika ada sinyal pilot pada sector tertentu yang sangat kuat dan bersih dari noise hal itu juga menandakan atau berarti kita dapat mendengar adanya kanal traffic pada sector tersebut, sehingga memungkinkan terjadinya handoff (ide yang bagus).
- akan tetapi jira sinyal pilot pada sector tertentu terlalu lemah maka hal ini akan mengakibatkan kita tidak dapat atau tidak menguntungkan jika menggunakan kanal traffic pada sector tersebut.

* Bagaimana Ec/Io dapat bervariasi dengan beban traffic yang ada
-Karena masing-masing sector mengirimkan jumlah daya sinyal tertentu dalam hal ini yang paling diperhitungkan ádalah daya pada kanal pilot, sedangkan daya pada sector tersebut merupakan penjumlahan atau kumpulan dari daya kanal-kanal yang lain seperti sinkronisasi dan paging serta tentu saja daya kanal traffik yang digunakan pada saat itu.

- Ec/Io merupakan ratio dari daya kanal pilot terhadap total daya pada kanal kanal yang lain (pilot + sinc + paging _ traffic). Pada suatu sector ketika nobody talking, Ec/Io mempunyai jumlah daya yang khas (typically) sekitar 50 % atau -3 dB. Pada suatu sector ketika kanal traffic penuh atau maksimal, Ec/Io mempunyai jumlah daya yang khas (typically) sekitar 20 % atau -7 dB


* Bagaimana Ec/Io bervariasi dengan lingkungan radio frekuensi (RF)
- Pada keadaan yang bersih istilah yang umum untuk situasi dimana ada satu sector yang dominan dan mengakibatkan mobile station dapat menikmati kyat sinyal Ec/Io sebaik atau sama pada saat pertama kali dikirimkan dari BTS.

- Pada keadaan pilot pollution, istilah yang digunakan untuk menggambarkan situasi dimana terlalu banyak sector yang overlap dan mengakibatkan MS bisa mendengarkan sayur soup atau campuran dari berbagai sinyal dari BTS-BTS karena tidak ada yang dominant.
- Io ádalah jumlah atau penjumlahan kumpulan semua daya sinyal yang menjangkau MS.
- Ec ádalah kuat daya sinyal PILOT pada satu sector “single”
- Io yang besar menyebabkan atau berpengaruh terhadap Ec yang kecil, Ec/Io menjadi rendah.


Indicator # 8 : Handset Transmitter Power ( daya yang dikirimkan oleh MS)

* TXPO (Handset Transmit Power)
- TXPO merupakan ukuran daya yang sebenarnya dari daya RF yang keluar pada pengirim oleh MS, termasuk hasil dari efek kombinasi open loop power control dari penerima AGC dan close loop power control dari BTS.
- TXPO tidak dapat melebihi daya maksimum yang dapat dikirim oleh MS ( Typically +23 dbm)
TXPO = -(RXdbm) – C + TXGA
C = +73 untuk sistem 800 MHZ
= +76 untuk sistem 1900 MHZ
* Berapakah dan bagaimanakah level daya TX yang tepat .? Apasaja yang diinginkan BTS harus dipenuhi.
- selama close loop power control bekerja dengan baik, level daya yang dikirimkan oleh MS tidak terlalu berpengaruh dalam transmisi agar tranmisi berjalan dengan baik, lakukan saja apa yang diinginkan BTS dalam sistem tersebut.
- Bagaimanapun juga jika BTS pernah meminta lepada MS untuk melakukan pengurangan atau penambahan level daya yang dikirimkan maka dapat diperkirakan bahwa ada sesuatu masalah ( mungkin daya lebih rendah dari -60 dbm atau lebih tinggi dari +23 dbm)


Indicador # 9 : Transmit Gain Adjust (Pengaturan Gain pengirim)

* Apakah yang dimaksud closed loop Transmit Gain Adjust (TXGA) ?
- Perbaikan daya oleh base station dengan cara menanyakan MS untuk melakukannya pada waktu itu juga.
- Pada permulaan panggilan sebelum bit power control mulai bekerja TXGA bernilai nol. Kemudian setelah power control mulai bekerja TXGA akan bernilai 800 per detik.
- Selama panggilan berlangsung TXGA adalah jumlah total bit power control yang diterima selama proses panggilan tersebut.
- Tiap bit power control menanyakan atau bekerja sebesar 1 db perbaikan daya naik maupun turun.
- masing-masing bit power control bekerja berdasarkan pada keputusan terakhir BTS apakah dayanya MS terlalu kuat atau terlalu lemah dengan demikian tidak ada nilai cumulative dari error (kekurang tepatan) ketika masing-masing keputusan BTS tersebut selalu terbaru atau fresh.

TXPO = -(RXdbm) – C + TXGA
C = +73 untuk sistem 800 MHZ
= +76 untuk sistem 1900 MHZ

Agustus 06, 2008

Installing a Board

Agustus 03, 2008

Rake Receiver Untuk Peningkatan Performansi

Karena adanya multipath maka akan diperoleh tambahan noise pada system apabila delay spread lebih besar dari waktu chip. Peningkatan performansi dapat dilakukan apabila lintasan-lintasan yang tiba pada penerima dapat dideteksi secara terpisah dan kemudian digabungkan secara koheren (disamakan phasanya). Penerima seperti ini disebut sebagai rake receiver.

Cara kerja rake receiver akan ditunjukkan oleh gambar dibawah ini. Misalkan sinyal yang sampai pada mobile station 1, diinisialkan z(t) yang merupakan penjumlahan dari N lintasan sinyal. Untuk lintasan 2 perkalian z(t) dengan ci(t-x2), kemudian integrasi dimulai pada x2, selama Tb detik yang akan menghasilkan respon untuk lintasan 2. Hal yang sama dilakukan untuk semua lintasan kemudian respon semua lintasan dijumlahkan setelah fasanya disamakan. Rake receiver ini akan menghasilkan sinyal yang lebih kuat untuk proses demodulasi