Sabtu, 27 Februari 2010

Sejarah dan Definisi Javascript

Sejarah

JavaScript diperkenalkan pertama kali oleh Netscape pada tahun 1995. Pada awalnya bahasa yang sekarang disebut JavaScript ini dulunya dinamai “LiveScript” yang berfungsi sebagai bahasa sederhana untuk browser Netscape Navigator 2 yang sangat populer pada saat itu. Kemudian sejalan dengan sedang giatnya kerjasama antara Netscape dan Sun (pengembang bahasa pemrograman “Java”) pada masa itu, maka Netscape memberikan nama “JavaScript” kepada bahasa tersebut pada tanggal 4 desember 1995. Pada saat yang bersamaan Microsoft sendiri mencoba untuk mengadaptasikan teknologi ini yang mereka sebut sebagai “Jscript” di browser milik mereka yaitu Internet Explorer 3. JavaScript sendiri merupakan modifikasi dari bahasa pemrograman C++ dengan pola penulisan yang lebih sederhana dari bahasa pemrograman C++.

Definisi

JavaScript adalah bahasa pemrograman yang khusus untuk halaman web agar halaman web menjadi lebih hidup. Kalau dilihat dari suku katanya terdiri dari dua suku kata, yaitu Java dan Script. Java adalah Bahasa pemrograman berorientasi obyek, sedangkan Script adalah serangkaian instruksi program. Dalam aplikasi client untuk Navigator, pernyataan Java Script yang tertulis dalam sebuah halaman web dapat mengetahui dan merespon perintah pemakai seperti gerakan mouse, input form, dan navigasi halaman HTML. Sebagai contoh, anda dapat menulis sebuah fungsi Java Script untuk memverifikasi bahwa seseorang telah benar menuliskan informasi yang cocok dalam sebuah form yang

meminta diisi nomor telepon dan nomor kode pos. Tanpa transmisi jaringan apapun, sebuah halaman HTML yang dilengkapi dengan tulisan Java Script dapat menginterpretasikan teks yang dituliskan pada halaman tersebut dan memberikan tampilan teks dialog penolakan apabila teks yang dituliskan tadi salah. Atau anda dapat mempergunakan Java Script untuk memerintahkan sebuah aksi (seperti memainkan file suara, mengeksekusi sebuah “applet” atau berkomunikasi dengan “plug-in” lain) sebagai respon terhadap dibukanya sebuah halaman web atau penutupan halaman tersebut oleh pengguna internet.

Definisi Orthogonal Array

Sebelum jauh-jauh bicara orthogonal array (OA) dan penggunaannya dalam perancangan percobaan, ada baiknya kita lihat terlebih dahulu susunan angka di bawah ini.
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 1 1 0 0 1 1 0

Susunan di atas terdiri atas 4 baris dan 8 kolom. Setiap baris, cuma ada dua jenis angka 1 dan 0. Apa menariknya susuan tersebut? Kalau diperhatikan pelan-pelan, hehe gak usah buru-buru, setiap kita pilih tiga baris, yang manapun, maka kita akan menemukan setiap kemungkinan kombinasi angka. Karena ada dua jenis setiap barisnya, maka kalau ada tiga baris ya ada 2 x 2 x 2 = 8 kemungkinan kombinasi yaitu 000, 001, 010, 001, 011, 101, 110, 111.

Sekali lagi, ambil tiga baris yang manapun, maka delapan kombinasi itu ada semua, dan masing-masing ada satu.

Berbeda dengan susunan berikut.
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
1 0 1 0 0 1 0 1

Kalau kita pilih 3 baris, misalnya baris ke-1, ke-3, dan ke-4, maka ini yang kita dapatkan
0 0 0 0 1 1 1 1
0 1 0 1 0 1 0 1
1 0 1 0 0 1 0 1
Tidak semua 8 kombinasi ada. Sebut saja, 000 tidak ada dalam kombinasi tersebut.

Bagaimana seandainya kita pilih 2 baris? Karena cuma dua baris, maka ada empat kemungkinan kombinasi yaitu 00, 01, 10, 11. Sekarang ceritanya lain. Dari susunan yang kedua (juga yang pertama), kalau kita ambil sembarang dua baris, maka keempat-empat kombinasi itu ada, dan masing-masing kombinasi muncul dua kali. Kombinasi 00 ada dua, 01 ada dua, 10 ada dua, terakhir 11 juga ada dua.

Well, now we are ready to define clearly about orthogonal array. Ini rekapnya:

* Pada susunan yang pertama, setiap kita ambil tiga baris maka semua kedelapan kombinasi ada dan jumlah munculnya sama banyak yaitu satu kali.
* Pada susunan yang kedua, kalau kita ambil tiga baris maka tidak semua kedelapan kombinasi ada.
* Tetapi, pada susunan yang kedua dan yang pertama, setiap kita ambil dua baris maka semua keempat kombinasi ada dan jumlah munculnya sama banyak yaitu dua kali.

Susunan pertama disebut sebagai OA dengan strength 3, sedangkan yang kedua OA dengan strength 2. Istilah strength, mengacu pada jumlah baris terbanyak sehingga semua kombinasi ada dengan frekuensi kemunculan sama besar.

Mengulang saja, OA adalah susunan baris-kolom, dimana kalau kita ambil beberapa baris dengan jumlah tertentu, maka kombinasi yang mungkin terbentuk muncul dengan frekuensi yang sama.

Mudah-mudahan sampai sini sudah cukup jelas pengertian tentang orthogonal array.

definisi array

Array adalah suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data yang sama. Elemen-elemen array tersusun secara sekuensial dalam memory computer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi (multi dimensi).

Array Satu Dimensi
Array Satu Dimensi tidak lain adalah kumpulan elemen-elemen identik yang tersusun dalam satu baris. Elemen-elemen tersebut memiliki tipe data yang sama, tetaoi isi dari elemen tersebut boleh berbeda.
Bentuk umum dari array:
Nama Array[n]={elemen0,elemen1,elemen2,…,n}
N=jumlah elemen
Contoh program:


Contoh Outputnya:
Nilai maksimum : 76
Nilai minimum :12

Contoh Program ke-2:


Outputnya:

Atau



Array Dua Dimensi
Array Dua Dimensi sering digambarkan sebagai sebuah matriks, merupakan perluasan dari array satu dimensi. Jika array satu dimensi hanya terdiri dari sebuah baris dan beberapa kolom elemen, maka array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang bertipe sama.

Bentuk umum:
Nama Array [m][n];
Atau
Nama Array [m][n]={ {a,b,..,z},{1,2,….,n-1} };
Contoh:
Double matrik [4][4];
Bool papan [2][2] = { {true,false} };
Pendeklrasian array dua dimessi hamper sama dengan pendeklarasian array satu dimensi, kecuali bahwa array dua dimensi terdapat dua jumlah elemen yang terdapat di dalam kurung siku dan keduanya boleh tidak sama.
Elemen array du dimensi diakses dengan menuliskan kedua indeks elemennya dalam kurung siku seperti pada contoh berikut:
//papan nama memiliki 2 baris dan 5 kolom
Bool papan [2][5];

Papan[0][0] =true;
Papan[0][4]=false;
Papan[1][2]=true;
Papan[1][4]=false;
Contoh Program :

Jumat, 26 Februari 2010

Array Dimensi Banyak

C memungkinkan untuk membuat array dimensi lebih dari satu. Bentuk umum pendeklarasian array berdimensi banyak adalah :

tipe nama_array[ukuran_1][ukuran_2] . . . [ukuran_N];

File arraydb.c

#include

static char barishari[2][13] = {
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};

int hari_per_tahun();

int hari_per_tahun(int *tahun, int *bulan, int *hari)
{
int i, kabisat; kabisat = *tahun % 4 == 0 && *tahun % 100 != 0 || *tahun % 400 == 0;
for (i=1; i < *bulan; i++)
*hari += barishari[kabisat][i];
return *hari;
}

main()
{
int a,b,c;

a=1988;
b=3;
c=1;

printf(”%d\n”, hari_per_tahun(&a, &b, &c));
}

$ gcc -o arraydb arraydb.c
$ ./arraydb
61
$

A R R A Y

 Array atau Larik
Array atau Larik adalah sekumpulan data yang mempunyai tipe data sejenis. Misalnya numerik atau string, dan diidentifikasikan dengan sebuah nama variable array.
Di dalam sebuah array, setiap rinci data disebut dengan komponen atau elemen array, ditentukan oleh suatu besaran yang disebut dengan subskrib atau index yang menunjukkan letak sebuah elemen dalam array.
Berdasarkan banyaknya subskrib yang menentukan letak suatu elemen dalam larik dikenal adanya array dimensi satu, arary dimensi dua dan array dimensi banyak.

 Array Dimensi Satu
Array dimensi satu disebut juga dengan vector, adalah sebuah array yang terdiri dari sejumlah elemen data, dan poisis setiap elemen ditentukan oleh sebuah subskrib.
Setiap array harus dideklarasikan terlebih dahulu, hal ini digunakan untuk mengalokasikan ruang memori yang akan digunakan dan juga menentukan tipe data dari elemen array.

Bentuk umum deklarasi array dimensi satu adl :
DIM namavar ({cacah | awal to akhir}) [As tipe]

Dengan cacah : banyaknya elemen array
Awal : nomor awal subskrib
Akhir : nomor akhir subskrib
Tipe : tipe data elemen array.


 Array Dimensi Dua
Array dimensi dua, lebih dikenal dengan matriks atau tabel, adalah sekumpulan elemen yang sejenis, dan posisi setiap elemennya ditentukan oleh dua buah subskrib yaitu nomor baris dan nomor kolom.

array 1 dimensi bahasa c

Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan nama yang sama. Array merupakan konsep yang penting dalam pemrograman, karena array memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan terindeks. Array menggunakan indeks integer untuk menentukan urutan elemen-elemennya, dimana elemen pertamanya dimulai dari indeks 0, elemen kedua memiliki indeks 1, dan seterusnya.

Contoh program:

/*contoh program array 1 dimensi*/
#include
#define max 5 /*nilai konstanta*/

main()
{
int x[max];
int j;
printf(“masukan nilai : \n”);
for(j=0; j{
printf(“x[%d] = %d\n “,j,x[j]);
}
}

#include
main()
{
int x[5] = {15,25,35,45,55};
int y[5] = {15};
int z[5] = {15,0,35};
int j;

for(j=0; j<5; j++)
{
printf(“x[%d] = %2.d, y[%d] = %2.d, z[%d] = %2.d\n”,j,x[j],j,y[j],j,z[j]);
}
}

/*program menampilkan 10 nilai mahasiswa*/
#include
#define max 10
main()
{
int x[max];
int i;
for(i=0; i{
printf(“masukan nilai mahasiswa [%d] = “,i);
scanf(“%d”,&x[i]);
}
printf(“\n”);
{
for(i=0; iprintf(“nilai mahasiswa [%d] = %d\n”,i,x[i]);
}
}

/*program menghitung pangkat bilangan 1 sampai 10*/
#include

main()
{
int pangkat[100];
int i,x;

for(i=0; i<10; i++)
{
x=i+1;
pangkat[i]=x*x;
printf(“pangkat dari %d adalah %d\n”,x,pangkat[i]);
}
return 0;
}

Dan program ini untuk membendakan penggunaan array dengan variable biasa.

contoh programnya:

/*program menghitung rata2 dari 5 bilangan menggunakan array*/
#include
#define max 5
main()
{
int x[max];
int i,jum;
float rata2;
for(i=0; i{
printf(“masukan bilangan [%d] = “,i);
scanf(“%d”,&x[i]);
}
jum=0;
for(i=0; ijum+=x[i];
rata2=jum/max;
{
printf(“\njumlah = %d\n”,jum);
printf(“rata-rata = %.2f”,rata2);
}
}

/*program menghitung rata2 dari 5 bilangan menggunakan variable biasa*/
#include

main()
{
int x1,x2,x3,x4,x5,jum;
float rata2;

printf(“masukan bilangan ke 1 = “);
scanf(“%d”,&x1);
printf(“masukan bilangan ke 2 = “);
scanf(“%d”,&x2);
printf(“masukan bilangan ke 3 = “);
scanf(“%d”,&x3);
printf(“masukan bilangan ke 4 = “);
scanf(“%d”,&x4);
printf(“masukan bilangan ke 5 = “);
scanf(“%d”,&x5);

jum=x1+x2+x3+x4+x5;
rata2=jum/5;

printf(“\njumlah = %d\n”,jum);
printf(“rata-rata = %.2f”,rata2);

}

Rabu, 24 Februari 2010

ARRAY

ARRAY
Array atau larik adalah tipe struktur yang mempunyai komponen dalam jumlah yang tetap dan setiap komponen mempunyai data yang sama. Posisi masing-masing komponen dalam array dinyatakan sebagai nomor index.

Dalam sumber lain, Array adalah suatu tipe data terstruktur yang terdapat pada memori yang terdiri dari sejumlah elemen yang mempunyai tipe data yang sama dan merupakan gabungan dari beberapa variabel sejenis serta memiliki jumlah komponen yang jumlahnya tetap. Elemen-elemen dari array tersusun secara sequential dalam memori Komputer.

1. Array suatu dimensi
Array suatu dimensi tidak lain adalah kumpulan elemen-elemen yang identik, yang tersusun dalam satu baris. Elemen-elemen tersebut memiliki type data yang sama, tetapi isi dari elemen tersebut boleh berbeda-beda.
Pendeklarasian array diawali denga kata baku type dan diikuti dengan nama array dan tanda sama dengan (=), lalu kata baku array beserta range indeks dan diakhiri dengan kata baku of beserta type datanya.

Bentuk umum dari deklarasi tipe array adalah :

type pengenal = array [tipe_index] of tipe;

dengan pengenal : nama tipe data
tipe_index : tipe data untuk nomor index
tipe : tipe data komponen

Parameter tipe_index menentukan banyaknya komponen array tersebut. Berikut contoh dari deklarasi :

type vek = array [1…..100] of integer;

menunjukkan bahwa vek adalah nama-pengenal/variabel yang berupa array yang komponennya bertipe integer dan banyaknya 100 buah.
Deklarasi yang demikian ini disebut deklarasi array dimensi satu, yang disebut vektor.


2. Array Dua Dimensi
Array dua dimensi, yang sering digambarkan pada sebuah matrix adalah merupakan sebuah perluasan dari sebuah array satu dimensi. Jika pada array satu dimensi hanya terdiri dari sebuah baris dengan beberapa kolom elemen maka pada array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang bertype sama. Sebagai contoh :
type tabel = array [1..3, 1..4] of real;
tabel(3,4)
artinya terdapat variabel yang bernama tabel yang di deklarasikan sebagai array dimensi dua dengan jumlah maksimal barisnya = 3 dan kolom = 4; serta tipe komponen datanya adalah real.
Bentuk deklarasi array dimensi dua ini yang sering disebut sebagai tabel atau matrix.




3. Array Tiga Dimensi

Array tiga dimensi dapat digambarkan sebagai suatu benda ruang. Deklarasi pada array tiga dimensi tidak berbeda pada array satu dimensi dan dua dimensi yang telah dijelaskan sebelumnya, kecuali pada indeks array.
type ruang = array [1..8,1..5,1..3] of integer;

menunjukkan bahwa ruang adalah nama-pengenal/variabel yang berupa array yang komponennya bertipe integer dan terdiri atas 8 baris, mempunyai 5 kolom dan 3 halaman.
Deklarasi diatas disebut sebagai deklarasi array dimensi tiga.




4. Array banyak dimensi
Sebenarnya array banyak dimensi tidak terlalu sering dipakai seperti halnya array satu dimensi, dua dimensi, dan tiga dimensi. Namun hal itu bukan berarti pascal tidak membolehkan anda memakainya. Array banyak dimensi ini pada dasarnya sama dengan array sebelumnya kecuali pada jumlah dimensinya saja.

Mengenal Array pada Pascal

Mengenal Array pada Pascal



1. Definisi

Array adalah koleksi data yang tipenya sama, tersusun dalam bentuk barisan linier berurutan (sequence) dan jumlah elemen atau datanya tidak berubah (statis) sesuai dengan deklarasi awal. Semua elemen array diidentifikasi dengan sebuah nama (nama array) dan untuk setiap elemennya diidentifikasi/dibedakan dengan sebuah index.

2. Deklarasi.

Bentuk umum deklarasi array adalah:

type tipe_array = array [range_index] of ipe_data;

var var_array : tipe_array; (1.1)

Atau dapat langsung dituliskan sebagai berikut:

var var_array = array [range_index] of tipe_data; (1.1)

var_array adalah nama variabel array yang dipakai untuk mengidentifikasi array. Pemilihan nama variabel array mengikuti aturan pemberian nama variabel secara umum.

Range_index adalah batasan index yang digunakan untuk mengidentifikasi elemen array. Range_index menentukan jumlah elemen array, yang jumlahnya tidak akan berubah (statis) mulai saat awal disediakan (program dijalankan) hingga program selesai dijalankan. Misalnya range 0..9 atau 1..10 atau –1..8 atau ‘A’..’J’ akan menentukan jumlah elemen array sebanyak 10 buah.

Setiap elemen array diidentifikasi oleh salah satu index yang berada dalam range yang telah ditentukan. Penggunaan index yang berada di luar range Index akan mengakibatkan kesalah, Index ini tidak harus berupa bilangan positif, tetapi harus berupa bilangan bulat atau data-data yang masuk kategori tipe data ordinal (seluruh tipe data dasar selain real dan double), seperti semua varian integer, char, boolean atau tipe data enumerasi yang dibuat sendiri oleh user.

Tipe_data adalah tipe data untuk elemen array. Tipe data elemen array tidak harus berupa integer, atau tipe data dasar yang lain, tetapi dapat berupa tipe data terstruktur seperti array.

Tentang pemilihan model deklarasi, model deklarasi dengan membuat sebuah tipe array seperti model (1.1) akan lebih jelas dan lebih ringkas yang dapat dirasakan saat variabel-variabel bertipe array digunakan sebagai parameter sebuah fungsi atau prosedur.

3. Operasi Pada Array

- Operasi Memasukkan dan Mengambil Nilai

Bila array sudah dideklarasikan dan sudah diberi suatu nama, maka dapat dimanfaatkan sesuai fungsinya sebagai objek data. Operasi memasukkan nilai adalah operasi untuk memasukkan nilai data ke dalam elemen-elemen array. Biasanya hal ini dilakukan dengan operasi penugasan (assignment) dengan objek array terletak sebagai operan di sebelah kiri tanda ‘:=’.

Sedangkan operasi mengambil nilai adalah operasi untuk mendapatkan/membaca nilai dari suatu array. Hal dini dilakukan ketika menggunakan array sebagai operan nada suatu operasi atau sebagai parameter sebuah fungsi/prosedur.

- Operasi Mengakses Array

Operasi mengakses suatu objek data merupakan nama yang lebih umum daripada operasi memasukkan nilai ataupun membaca nilai. Jadi, operasi mengakses array dapat berupa memasukkan nilai atau membaca nilai array. Operasi ini dapat dilakukan pada array secara keseluruhan ataupun pada suatu elemen tertentu.

- Mengakses Elemen Array Secara Acak/Random

Setiap elemen array dapat diperlakukan secara individual terlepas dari elemen-elemen lainnya. Misalnya dalam hal memasukkan data, nilai[7] dapat dimasukkan lebih dulu daripada elemen lainnya.meskipun akhirnya semua elemen array akan diakses, namun tidak aturan yang pasti tentang urutan mengaksesnya. Kita bisa saja mengakses nilai[5] tanpa mengakses komponen array lainnya.

- Mengakses Elemen Array Secara Sequensial (Berurutan)

Struktur array yang elemen-elemennya tersusun secara berurutan, memungkinkan kita mengakses sebagian atau seluruh elemen array secara berurutan.

Untuk proses mengunjungi elemen array (traversal of array) secara berurutan dapat dilakukan dengan proses looping (perulangan). Pada model-model di atas, elemen-elemen array diakses secara berurutan dengan selisih satu index. Jadi elemen ke-6 akan diakses sebelum atau sesudah elemen ke-5 ataupun ke-7. Pergeseran index dilakukan dengan menambah atau mengurangi index sebelumnya dengan 1. Kita juga dapat membuat model yang lain dengan mengubah selisih indexnya. Misalkan menjadi 2, 3, atau berapa saja sesuai keperluan, asalkan selalu berada pada range index.

- Mengakses Array Secara Keseluruhan

Selain mengakses komponen array, kita juga dapat mengakses array secara keseluruhan yang akan mempengaruhi semua elemennya sekaligus. Misalkan A dan B adalah dua buah variabel array yang tipenya sama, dan jumlah elemennya juga sama, maka dalam Pascal dapat dilakukan operasi penugasan A := B yang berarti memasukkan nilai dari setiap elemen array B ke semua elemen A pada Index-Index yang bersesuaian.

4. Array Multidimensi

Tipe data elemen array tidak harus berupa tipe data elementer, namun juga dapat berupa tipe data terstruktur, misalnya array. Sebagai contoh, perhatikan deklarasi berikut :

Var Matrix:array[1..3,1..3] of integer;

Bentuk deklarasi mungkin saja dibuat untuk kasus demikian, tipe nilai_ujian adalah berupa array dengan dua elemen bertipe integer untuk menyimpan nilai ujian midterm dan ujian akhir. Sedangkan variabel nilai adalah array dengan sepuluh elemen bertipe nilai_ujian, yang digunakan untuk menyimpan nilai ujian dari 10 mahasiswa. Elemen-elemen array nilai bertipe array integer. Walaupun terdapat dua buah array, tetapi setiap deklarasi array hanya dibatasi dengna sebuah range Index saja. Jumlah elemen array nilai adalah 10, walaupun secara keseluruhan banyaknya bilangan yang dapat disimpan adalah 20 buah. Array demikian dikenal sebagai array berdimensi 1.

5. Penggunaan Konstanta untuk Batas Index Arrray

Deklarasi konstanta sering digunakan untuk batas bawah dan batas atas pada range Index array. Setiap kali menggunakan array, kita pasti berharap agar ruang yang kita sediakan sesuai dengna banyaknya data yang akan disimpan; jangan sampai berlebihan, ataupun kekurangan.

Sering kali kita terpaksa harus mengubah batas-batas range Index untuk menyesuaikan jumlah data. Penggunaan konstanta akan memudahkan bila ada keperluan untuk mengubah batas-batas range Index array, yaitu cukup mengganti nilai konstanta tersebut.

ALGORITMA PENCARIAN BINER (BINARY SEARCH)

ALGORITMA PENCARIAN BINER (BINARY SEARCH)

memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.
Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan).
Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.

ALGORITMA

Kamus
Const N : integer = 8 { misalkan jumlah elemen array maksimum = 8 }
Type A = array [ 1 ..... N ] of integer
Cari, BatasAtas, BatasBawah, Tengah : Integer
Ketemu : boolean
ALGORITMA
Input (cari) { meminta nilai data yang akan dicari}
BatasAtas  1 { indeks array dimulai dari 1 }
BatasBawah  N
Ketemu  False
While (BatasAtas < BatasBawah) and (not ketemu) do
Tengah  (BatasAtas + BatasBawah) div 2
If A [Tengah] = cari then
Ketemu  true
Else
If ( A [Tengah] < cari ) then { cari di bagian kanan }
BatasAtas  Tengah + 1
Else
BatasBawah  Tengah – 1 { cari di bagian kiri }
Endif
Endif
EndWhile
If (ketemu) then
Output ( ‘Data berada di index nomor’, Tengah )
Else Output ( ‘Data tidak ditemukan’ )
Endif




Contoh Nilai-Nilai data yang sudah terurut :

A
2
5
8
12
15
25
37
57

1
2
3
3
5
6
7
8

Kasus 1 : cari = 12
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
A [Tengah] = A [4] = 12, berarti loop pertama data langsung ditemukan

Kasus 2 : cari = 15
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
A [Tengah] = A [4] = 12 < cari = 15, berarti BatasAtas = Tengah + 1 = 4 + 1 = 5
Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 8) div 2 = 6
A [Tengah] = A [6] = 25 > cari = 15, berarti BatasBawah = Tengah - 1 = 6 - 1 = 5
Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 5) div 2 = 5
A [Tengah] = A [5] = 15, berarti setelah loop ketiga, data ditemukan

Kasus 3 : cari = 10
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
A [Tengah] = A [4] = 12 > cari = 10, berarti BatasBawah = Tengah - 1 = 4 - 1 = 3
Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 3) div 2 = 2
A [Tengah] = A [2] = 5 < cari = 10, berarti BatasAtas = Tengah + 1 = 2 + 1 = 3
Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (3 + 3) div 2 = 3
A [Tengah] = A [3] = 8, berarti setelah loop ketiga, data tidak ditemukan

Untuk jumlah data sebanyak n, maka proses pembandingan maksimal sebanyak ( log n ) kali. Untuk contoh di atas, jumlah data 8, maka proses pembandingan maksimal sebanyak 3 kali.

Senin, 22 Februari 2010

record

Record
􀂄 Seperti array 1 dimensi
􀂄 Terdiri dari serangkaian item data yang terkait
􀂄 Item data berurutan yang ada dalam record bisa
mempunyai jenis yang berbeda
􀂄 Contoh : Mengorganisasikan 3 item data yang
berbeda ke dalam struktur data tunggal
􀂅 NIP : string(8)
􀂅 Nilai : real
􀂅 Lulus : boolean
Deklarasi Record
mahasiswa : record
NIP : string(8)
Nilai : real
Lulus : boolean
end record
􀂄 Setiap elemen memiliki identifier sendiri
􀂄 Elemen dari suatu record disebut field
􀂄 Penunjukan ke setiap field dari suatu record bisa
dilakukan dengan :
􀂅 Notasi “dot” (titik)
􀂅 Notasi “with”
Begin
mahasiswa.NPM := ‘51292215’
mahasiswa.Nilai := 90.5
mahasiswa.Lulus := True
End
Begin
with mahasiswa
do
NPM := ‘51292215’
Nilai := 90.5
Lulus := True
end with
End

penanganan array

Penanganan Array
􀂄 Metode dasar penanganan array :
􀂅 Mencari nilai terbesar
􀂅 Mencari nilai terkecil
􀂅 Menghitung nilai rata-rata
􀂅 Menghitung nilai total
􀂅 Menghitung jumlah nilai di bawah rata-rata
􀂄 Menyortir Array (Sort)
􀂅 Buble sort
􀂅 Straight selection sort
􀂄 Mencari/Meneliti Array (Search)
􀂅 Linear search
􀂄 Contoh : Nilai ujian mahasiswa akan dibaca
dalam array. Kemudian akan ditampilkan nilai
terbesar, nilai terkecil, nilai rata-rata, nilai total,
dan jumlah nilai di bawah rata-rata.
􀂄 Tahapan penanganan array
􀂅 Input nilai data ke dalam array
􀂅 Mengkalkulasi nilai terbesar, terkecil, total, dan ratarata
􀂅 Mengkalkulasi jumlah nilai di bawah rata-rata
􀂅 Menampilkan hasilnya (output)

array

Array (Larik)
􀂄 Set item data yang disusun secara baik menjadi
rangkaian dan diacu atau ditunjuk oleh satu identifier
􀂄 Contoh : Nilai = (56 42 89 65 48)
􀂄 Item data individual dalam array bisa ditunjuk secara
terpisah dengan menyatakan posisinya dalam array itu
􀂅 Nilai(1) menunjuk 56
􀂅 Nilai(2) menunjuk 42
􀂄 Bilangan yang ditulis dalam tanda kurung menandakan
posisi item individual dalam array (disebut juga
subscript / indeks)
􀂄 Set item data yang disusun secara baik menjadi
rangkaian dan diacu atau ditunjuk oleh satu identifier
􀂄 Contoh : Nilai = (56 42 89 65 48)
􀂄 Item data individual dalam array bisa ditunjuk secara
terpisah dengan menyatakan posisinya dalam array itu
􀂅 Nilai(1) menunjuk 56
􀂅 Nilai(2) menunjuk 42
􀂄 Bilangan yang ditulis dalam tanda kurung menandakan
posisi item individual dalam array (disebut juga
subscript / indeks)

ARRAY dan RECORD

ARRAY dan RECORD

I. Array
Array/Larik adalah struktur data yang mengacu pada sebuah/sekumpulan elemen yang
diakses melalui indeks dan merupakan tipe terstruktur yang mempunyai komponen jumlah
yang tetap dan setiap komponen mempunyai tipe data yang sama. Posisi masing-masing
komponen dalam larik dinyatakan sebagai nomor index.
Setiap elemen larik dapat diakses melalui indeksnya, misalnya mengisi elemen larik yang
ke 3 dengan nilai 100, maka cara mengisinya adalah A[3] ← 100.
Keuntungan struktur data larik adalah :
1. Paling mudah pengoperasiannya
2. Ekonomis dalam pemakaian memori, bila semua elemen terisi
3. Akses ke setiap elemen memerlukan waktu yang sama
Proses Larik bisa diganti dengan proses lainnya, misal :
 Mengisi elemen larik dengan 0 (inisialisasi)
 Mengisi elemen larik dari piranti masukan
 Mencetak elemen larik ke piranti keluaran
Proses Larik dapat dimodifikasi untuk proses berikut, misal :
 Mencari bilangan maksimum/minimum pada larik
 Menjumlahkan nilai seluruh elemen larik
 Membuat rata-rata nilai seluruh elemen larik
 Mencari nilai tertentu pada larik
II. Record
Sama halnya dengan larik, rekaman (record) adalah kumpulan data. Perbedaan antara
larik dengan rekaman adalah bahwa dalam larik semua elemennya harus bertipe sama. Tetapi
dalam rekaman setiap elemen bisa mempunyai tipe data yang berbeda satu sama lain.
Dalam aktivitas sehari-hari pemakaian rekaman lebih banyak digunakan dibanding
dengan larik. Beberapa contoh pemakaian misalnya rekaman data akademis mahasiswa,
rekaman gaji pegawai, persediaan barang dalam gudang dan lain-lain.
Rekaman dapat muncul dalam berbagai bentuk, misalnya informasi yang tertulis pada
kartu dan tersimpan dalam sebuah kotak; sebagai informasi yang diketikkan lewat terminal
komputer dan tersimpan dalam harddisk. Biasanya rekaman-rekaman dalam komputer
tersimpan dalam bentuk berkas (file) yang tak gayut terhadap program yang menggunakannya.

rekaman bebas terbagi menjadi dua
bagian, yaitu bagian tetap dan bagian bebas, yaitu bagian yang akan dipilih sesuai dengan
kasus yang dihadapi. Medan dalam bagian bebas sering disebut dengan tag field.
Untuk tag field dari bentuk umum di atas, yang diawali dengan kata baku case, ada
beberapa aturan yang perlu diikuti, yaitu :
 Nilai dari tag field diantara case dan of menentukan struktur yang akan digunakan
untuk keseluruhan rekaman. Tag field mempunyai dua komponen, yaitu pengenal
medan yang menyimpan nilai tag field dan tipe data yang menunjukkan semua
kemungkinan nilai tag field.
 Semua kemungkinan nilai tag digunakan sebagai label dalam bagian statemen
case. Jika terdapat beberapa label maka dipisah dengan tanda koma. Struktur
rekaman yang akan dipilih tergantung dari nilai tag.
 Setiap struktur bebas harus ditulis di dalam tanda kurung. Semua yang ditulis di
dalam tanda kurung menggunakan aturan yang sama seperti halnya pada bagian
tetap. Juga dimungkinkan adanya bagian bebas dalam bagian bebas yang lain
(nested variant).
 Sebuah statemen end menutup bagian tetap dan bagian bebas dari definisi rekaman
bebas.

Minggu, 21 Februari 2010

Jenis Data Sederhana

Jenis Data Sederhana

􀂄 Numerik, terdiri dari :
􀂅 Numerik integer (bilangan bulat)
􀂅 Numerik real (bilangan riil)
􀂄 Karakter, terdiri dari :
􀂅 Alfabet : a .. z, A .. Z
􀂅 Angka : 0 .. 9
􀂅 Simbol khusus : + ? ‘ ! [ ] { } … dll
􀂄 Boolean (logika), terdiri dari :
􀂅 True
􀂅 False

Identifier

􀂄 Dalam bahasa pemrograman, item data
diidentifikasi menurut namanya, bukan menurut
alamat lokasinya dalam memori
􀂄 Identifier akan merupakan konstanta jika ia
selalu dikaitkan dengan nilai data yang sama
􀂄 Identifier akan merupakan variabel jika nilai
datanya yang terkait bisa berubah
􀂄 Literal, nilai data yang tertera dalam program
namun bukan sebagai identifier

Struktur Data

Struktur Data

􀂄 Kelompok item data yang terorganisasi yang
dianggap sebagai suatu unit
􀂄 Disebut juga sebagai jenis data kompleks
(complex data type) atau data aggregates
􀂄 Beberapa struktur data :
􀂅 Array (larik)
􀂅 String
􀂅 Record
􀂅 List (daftar)
􀂅 Tree

Deklarasi Data

Deklarasi Data

􀂄 Jenis data konstanta dan variabel harus didefinisikan
dalam program sehingga :
􀂅 operasi yang tepat dapat dijalankan pada nilai data
dan
􀂅 Jumlah ruang penyimpanan yang tepat bisa
ditentukan
􀂄 Statement untuk mendefinisikan jenis data disebut
declarative statement
􀂄 Beberapa bahasa pemrograman memiliki sintaks
pendeklarasian yang berbeda
􀂄 Beberapa contoh program (pendeklarasian data) yang
akan diberikan ditulis dalam pseudo-code


Contoh
Constants
pi = 3.141592654
Variables
i, qty : integer
harga_satuan, harga_beli : real
status : boolean
nama : character(25)

Jumat, 19 Februari 2010

Pengantar Struktur Data dan Algoritma

Pengantar Struktur Data dan Algoritma

Tinjauan

Software engineering is the study of ways in which to create large and complex computer applications and that generally involve many programmers and designers. Software engineering adalah studi tentang cara-cara untuk menciptakan komputer yang besar dan kompleks aplikasi dan yang umumnya melibatkan banyak programer dan desainer. At the heart of software engineering is with the overall design of the applications and on the creation of a design that is based on the needs and requirements of end users. Di jantung rekayasa perangkat lunak adalah dengan rancangan keseluruhan aplikasi dan pada penciptaan desain yang didasarkan pada kebutuhan dan persyaratan pengguna akhir. While software engineering involves the full life cycle of a software project, is includes many different components - specification, requirements gathering, design, verification, coding, testing, quality assurance, user acceptance testing, production, and ongoing maintenance. Sementara rekayasa perangkat lunak melibatkan seluruh siklus hidup proyek perangkat lunak, yang mencakup banyak komponen yang berbeda - spesifikasi, pengumpulan persyaratan, desain, verifikasi, coding, pengujian, jaminan mutu, pengujian penerimaan pengguna, produksi, dan pemeliharaan berkelanjutan.

Having an in-depth understanding on every component of software engineering is not mandatory, however, it is important to understand that the subject of data structures and algorithms is concerned with the coding phase. Memiliki pemahaman mendalam pada setiap komponen rekayasa perangkat lunak bukan suatu keharusan, bagaimanapun, adalah penting untuk memahami bahwa masalah struktur data dan algoritma berkaitan dengan pengkodean fase. The use of data structures and algorithms is the nuts-and-blots used by programmers to store and manipulate data. Penggunaan struktur data dan algoritma adalah kacang-dan-bercak yang digunakan oleh para programmer untuk menyimpan dan memanipulasi data.

This article, along with the other examples in this section focuses on the essentials of data structures and algorithms. Artikel ini, bersama dengan contoh-contoh lain dalam bagian ini berfokus pada hal-hal penting dari struktur data dan algoritma. Attempts will be made to understand how they work, which structure or algorithm is best in a particular situation in an easy to understand environment. Upaya-upaya akan dilakukan untuk memahami bagaimana mereka bekerja, yang struktur atau algoritma yang terbaik dalam situasi tertentu yang mudah untuk memahami lingkungan.

Data Structures & Algorithms - Defined Struktur Data & Algoritma - Ditetapkan

A data structure is an arrangement of data in a computer's memory or even disk storage. An example of several common data structures are arrays, linked lists, queues, stacks, binary trees, and hash tables. Algorithms , on the other hand, are used to manipulate the data contained in these data structures as in searching and sorting. Sebuah struktur data adalah pengaturan data dalam memori komputer atau bahkan disk penyimpanan. Sebuah contoh dari beberapa struktur data umum adalah array, terkait daftar, antrian, susunan, pohon biner, dan tabel hash. Algorithms, di sisi lain, digunakan untuk memanipulasi data yang terdapat dalam struktur data ini seperti pada pencarian dan penyortiran.

Many algorithms apply directly to a specific data structures. Banyak algoritma mendaftar secara langsung ke struktur data tertentu. When working with certain data structures you need to know how to insert new data, search for a specified item, and deleting a specific item. Ketika bekerja dengan struktur data tertentu Anda perlu tahu bagaimana untuk menyisipkan data baru, mencari item tertentu, dan menghapus item tertentu.

Commonly used algorithms include are useful for: Umum digunakan algoritma termasuk berguna untuk:

* Searching for a particular data item (or record). Mencari item data tertentu (atau catatan).

* Sorting the data. Sorting data. There are many ways to sort data. Simple sorting, Advanced sorting Ada banyak cara untuk menyortir data. Wikipedia menyortir, Advanced sorting

* Iterating through all the items in a data structure. (Visiting each item in turn so as to display it or perform some other action on these items) Iterasi melalui semua item dalam struktur data. (Mengunjungi setiap item pada gilirannya sehingga untuk menampilkan atau melakukan beberapa tindakan lain pada item ini)

Characteristics of Data Structures Karakteristik Struktur Data

Data Structure Struktur data Advantages Keuntungan Disadvantages Kekurangan
Array Array Quick inserts Cepat menyisipkan
Fast access if index known Akses cepat jika indeks dikenal Slow search Lambat pencarian
Slow deletes Lambat menghapus
Fixed size Ukuran tetap
Ordered Array Disusun Array Faster search than unsorted array Cepat cari dari unsorted array Slow inserts Lambat menyisipkan
Slow deletes Lambat menghapus
Fixed size Ukuran tetap
Stack Stack Last-in, first-out acces Last-in, pertama-keluar acces Slow access to other items Lambat akses ke item lain
Queue Antrian First-in, first-out access Pertama-in, pertama-keluar akses Slow access to other items Lambat akses ke item lain
Linked List Linked List Quick inserts Cepat menyisipkan
Quick deletes Quick menghapus Slow search Lambat pencarian
Binary Tree Pohon biner Quick search Pencarian cepat
Quick inserts Cepat menyisipkan
Quick deletes Quick menghapus
(If the tree remains balanced) (Jika pohon tetap seimbang) Deletion algorithm is complex Penghapusan algoritma rumit
Red-Black Tree Red-Black Tree Quick search Pencarian cepat
Quick inserts Cepat menyisipkan
Quick deletes Quick menghapus
(Tree always remains balanced) (Pohon selalu tetap seimbang) Complex to implement Kompleks untuk melaksanakan
2-3-4 Tree 2-3-4 Tree Quick search Pencarian cepat
Quick inserts Cepat menyisipkan
Quick deletes Quick menghapus
(Tree always remains balanced) (Pohon selalu tetap seimbang)
(Similar trees good for disk storage) (Pohon serupa baik untuk penyimpanan disk) Complex to implement Kompleks untuk melaksanakan
Hash Table Hash Tabel Very fast access if key is known Sangat cepat kunci akses jika diketahui
Quick inserts Cepat menyisipkan Slow deletes Lambat menghapus
Access slow if key is not known Akses lambat jika tombol tidak diketahui
Inefficient memory usage Tidak efisien penggunaan memori
Heap Tumpukan Quick inserts Cepat menyisipkan
Quick deletes Quick menghapus
Access to largest item Akses ke konten terbesar Slow access to other items Lambat akses ke item lain
Graph Grafik Best models real-world situations Model terbaik situasi dunia nyata Some algorithms are slow and very complex Beberapa algoritma yang lambat dan sangat kompleks
NOTE : The data structures shown above (with the exception of the array) can be thought of as Abstract Data Types (ADTs). CATATAN: struktur data yang ditampilkan di atas (dengan pengecualian dari array) dapat dianggap sebagai Tipe Data Abstrak (ADTs).

Abstract Data Types Tipe Data Abstrak

An Abstract Data Type (ADT) is more a way of looking at a data structure: focusing on what it does and ignoring how it does its job. An Abstract Data Type (ADT) lebih merupakan cara melihat struktur data: berfokus pada apa yang dilakukan dan mengabaikan bagaimana melakukan pekerjaannya. A stack or a queue is an example of an ADT. Sebuah stack atau antrian adalah contoh dari ADT. It is important to understand that both stacks and queues can be implemented using an array. Penting untuk memahami bahwa kedua tumpukan dan antrian dapat dilaksanakan dengan menggunakan sebuah array. It is also possible to implement stacks and queues using a linked list. Hal ini juga memungkinkan untuk menerapkan tumpukan dan antrian menggunakan linked list. This demonstrates the "abstract" nature of stacks and queues: how they can be considered separately from their implementation. Hal ini menunjukkan "abstrak" sifat dari tumpukan dan antrian: bagaimana mereka dapat dianggap terpisah dari pelaksanaannya.

To best describe the term Abstract Data Type, it is best to break the term down into "data type" and then "abstract". Untuk menggambarkan istilah terbaik Abstrak Data Type, yang terbaik adalah memecah istilah ke dalam "tipe data" dan kemudian "abstrak".

data type jenis data

When we consider a primitive type we are actually referring to two things: a data item with certain characteristics and the permissible operations on that data. Ketika kita mempertimbangkan tipe primitif kita sebenarnya mengacu pada dua hal: sebuah item data dan karakteristik tertentu yang diperbolehkan operasi pada data. An int in Java, for example, can contain any whole-number value from -2,147,483,648 to +2,147,483,647. Sebuah int di Jawa, misalnya, dapat berisi nomor seluruh-nilai dari -2147483648 ke 2147483647. It can also be used with the operators +, -, *, and /. Juga dapat digunakan dengan operator +, -, *, dan /. The data type's permissible operations are an inseparable part of its identity; understanding the type means understanding what operations can be performed on it. Tipe data's diperbolehkan operasi adalah bagian yang tidak terpisahkan dari identitas; memahami jenis operasi berarti memahami apa yang dapat dilakukan di atasnya.

In Java, any class represents a data type, in the sense that a class is made up of data (fields) and permissible operations on that data (methods). Di Jawa, setiap kelas menunjukkan jenis data, dalam arti bahwa sebuah kelas terdiri dari data (field) dan diperbolehkan operasi pada data (metode). By extension, when a data storage structure like a stack or queue is represented by a class, it too can be referred to as a data type. A stack is different in many ways from an int , but they are both defined as a certain arrangement of data and a set of operations on that data. Dengan ekstensi, ketika sebuah struktur penyimpanan data seperti setumpuk atau antrian yang diwakili oleh kelas, itu juga bisa disebut sebagai tipe data. Seorang tumpukan berbeda dalam banyak hal dari sebuah int tetapi mereka berdua didefinisikan sebagai pengaturan tertentu data dan sekumpulan operasi pada data.

abstract abstrak

Now lets look at the "abstract" portion of the phrase. Sekarang mari kita melihat pada "abstrak" bagian kalimat. The word abstract in our context stands for "considered apart from the detailed specifications or implementation" . Kata abstrak dalam konteks kita adalah singkatan dari "dianggap terpisah dari spesifikasi rinci atau pelaksanaan".

In Java, an Abstract Data Type is a class considered without regard to its implementation. It can be thought of as a "description" of the data in the class and a list of operations that can be carried out on that data and instructions on how to use these operations. Di Jawa, seorang Abstract Data Type adalah sebuah kelas dianggap tanpa memperhatikan pelaksanaannya. Ini dapat dianggap sebagai "deskripsi" data di dalam kelas dan daftar operasi yang dapat dilakukan pada data dan instruksi tentang cara untuk menggunakan operasi ini. What is excluded though, is the details of how the methods carry out their tasks. Apa yang dikecualikan meskipun, adalah rincian bagaimana metode melaksanakan tugas-tugas mereka. An end user (or class user), you should be told what methods to call, how to call them, and the results that should be expected, but not HOW they work. Seorang pengguna akhir (atau kelas pengguna), Anda harus diberitahu apa metode untuk memanggil, bagaimana memanggil mereka, dan hasil yang harus diharapkan, tetapi tidak BAGAIMANA mereka bekerja.

We can further extend the meaning of the ADT when applying it to data structures such as a stack and queue. Kita dapat terus memperluas arti dari ADT ketika menerapkannya pada struktur data seperti stack dan queue. In Java, as with any class, it means the data and the operations that can be performed on it. Di Jawa, seperti halnya dengan setiap kelas, itu berarti data dan operasi yang dapat dilakukan terhadapnya. In this context, although, even the fundamentals of how the data is stored should be invisible to the user. Dalam konteks ini, walaupun, bahkan dasar-dasar bagaimana data seharusnya disimpan tidak terlihat oleh pengguna. Users not only should not know how the methods work, they should also not know what structures are being used to store the data. Pengguna tidak hanya tidak tahu bagaimana metode kerja, mereka seharusnya juga tidak tahu apa struktur yang digunakan untuk menyimpan data.

Consider for example the stack class. Perhatikan misalnya kelas stack. The end user knows that push() and pop() (amoung other similar methods) exist and how they work. Pengguna akhir tahu bahwa push () dan pop () (antara lain metode yang serupa) ada dan bagaimana mereka bekerja. The user doesn't and shouldn't have to know how push() and pop() work, or whether data is stored in an array, a linked list, or some other data structure like a tree. Pengguna tidak dan seharusnya tidak perlu tahu bagaimana push () dan pop () bekerja, atau apakah data disimpan dalam array, sebuah linked list, atau beberapa struktur data lain seperti pohon.

The Interface Antarmuka

The ADT specification is often called an interface . ADT spesifikasi yang sering disebut antarmuka. It's what the user of the class actually sees. Itu apa yang user kelas benar-benar melihat. In Java, this would often be the public methods. Di Jawa, ini sering menjadi metode umum. Consider for example, the stack class - the public methods push() and pop() and similar methods from the interface would be published to the end user. Pertimbangkan untuk contoh, kelas tumpukan - metode publik push () dan pop () dan metode yang serupa dari antarmuka akan diterbitkan kepada pengguna akhir.

JENIS – JENIS ALAT PENGUMPUL DATA

JENIS – JENIS ALAT PENGUMPUL DATA

Jenis data yang akan dikumpulkan dan akan digunakan sebagai dasar untuk menilai keberhasilan atau ketidakberhasilan tindakan perbaikan pembelajaran yang dicobakan, dapat bersifat kualitatif, kuanrtitatif atau kombinasi keduanya.

Jenis alat pengumpulan data yang diperlukan dalam penelitian tindakan kelas (PTK) harus diuraikan dengan jelas, seperti melalui pengarnatan partisipatif, pembuatan jurnal harian, observasi aktivitas di kelas, penggambaran interaksi dalam kelas (analisis sosiometrik), pengukuran hasil belajar dengan berbagai prosedur assesmen, dan sebagainya.

Contoh cara pengumpulan data :
Data hasil belajar, diambil dengan memberikan tes kepada siswa
Data tentang situasi pembelajaran pada saat dilaksanakannya tindakan, diambil dengan menggunakan lemabar observasi.
Data tentang repleksi diri serta perubahan - perubahan yang terjadi di kelas, diambil dari jurnal yang dibuat guru.
Data tentang keterkaitan antara perencanaan dengan pelaksanaan pembelajaran, didapatkan dari rencana pembelajaran dan lembar observasi.

Adapun beberapa alat yang dapat dipakai untuk membantu indra manusia dalam penelitian,yaitu :
1.Observasi
2.Interview
3.Quasioner
4.Tes
5.Journal Siswa
6.Asesment
7.Pekerjaan Siswa
8.Audio taping or video taping
9.Catatan tingkah lakuksiswa (Anecdotal records)
10.Attitude Scales (Likert Scales or Semantic Differential)
11.Dokumentasi

Dalam kesempatan ini yang dibahas hanya beberapa alat pengumpul data yang sering digunakan dalam PTK. Adapun alat pengumpul data tersebut. Yaitu :
1. Pengamatan/Observasi
Pengamatan atau observasi adalah proses pengambilan data dalam penelitian di mana peneliti atau pengamat melihat situasi penelitian. Observasi sangat sesuai digunakan dalam penelitian yang berhubungan denganh kondisi/interaksi belajar mengajar, tingkah laku, dan interaksi kelompok. Tipe – tipe pengamatan yaitu, pengamatan berstruktur (dengan pedoman), pengamatan tidak berstruktur (tidak menggunakan pedoman)
Untuk mencapai tujuan pengamatan, diperlukan adanya pedoman pengamatan.
Pengamatan sebagai alat pengumpul data ada kecenderungan terpengaruh oleh pengamat/observe sehingga hasil pengamatan tidak obyektif biasanya disebut dengan hallo efek (kesan yang dibentuk oleh pengamat). Untuk menghindari pengaruh ini digunakan dua atau tiga pengamat yang memiliki latar belakang keilmuan yang serupa.

Prosedur Observasi
a.Beberapa Pendekatan
Sebagaimana telah diisyaratkan sebelumnya, berhubung dengan sifatnya yang sangat teknis maka paparan yang lebih rinci mengenai prosedur observasi dalam PTK dibahas secara tersendiri dalam bagian ini. Dalam hubungan ini, sebagai pengtantar dibahas berbagai sudut pandang yang dapat digunakan dalam menetapkan pilihan prosedur observasi yang akan digunakan dalam sesuatu siklus PTK. Dilanjutkan dengan langkah – langkah observasi serta teknik – teknik yang dapat dipilih.
Ada sejumlah kriteria yang dapat digunakan dalam memilih teknik observasi yang akan digunakan untuk sesuatu siklus tindakan perbaikan dalam rangka PTK. Adapun kriteria – kriteria yang dimaksud adalah (a) jenis data yang diperlukan dalam rangka implementasi sesuatu siklus tindakan perbaikan, (b) indicator – indicator yang relevan yang termanifestasikan dalam bentuk tingkah laku guru dan siswa (c) Prosedur perekaman data yang paling sesuai. Dan (d) pemanfaatan data dalam analisis dan refleksi.
Lebih jauh pencermatan beberapa pendekatan observasi berikut dapat berfungsi lebih mengarahkan pilihan prosedur observasi yang paling sesuai untuk keperluan yang sedang dihadapi.

1)Interpretasi
Sebagaimana telah dikemukakan sebelumnya. Kadar interprestasi dalam observasi dapat direntang mulai dari yang bersifat sepenuhnya mekanistik tanpa interpretasi
Sehingga dinamakan low – inference observation seperi dikembangkan oleh Flanders (1970). Rekaman data hasil observasi yang serupa ini akan berbentuk tanda cacah (tallies) untuk masing – masing kategori amatan, dalam hubungan ini yang terdiri dari (i)teacher talk, (ii) pupil talk, dan (iii) silence/confusion. Meskipun memang ada kemanfaatannya, khususnya untuk memetakan kecenderungan pendominasian diskursis (discourses) dalam interaksi pembelajaran, namun akan banyak juga sisi – sisi kajian lain yang tidaka kan tersentuh dengan prosedur observasi seruoa ini, misalnya yang berkenaan dengan mutu keputusan dan/atau tindakan profesionala guru dalam pengelolaan interaksi pembelajaran. Sebaliknya, untuk keperluan yang terakhir ini, diperlukan high-inference observation, yaitu suatu observasi yang mempersyaratkan penafsiran teknis secara langsung dan cepat (instaneous interpretation) dalam perekaman data hasil observasi.

Dengan kata lain fakta yang direkam dalamobservasi itu lansung diinterpretasikan dengan kerangka piker tertentu, misalnya yang diartikulasikan sebagai asas – asas pembelajaran siswa aktif (Learner-centered instruction).Ini berarti bahwa apa yang dikatakan, atau tidak dikatakan, apa yang dilakukan atau tidak dilakukan oleh guru dan/atau siswa diberi makna yang khas dan unuk dalam mengobservasi sesuatu episode pembelajaran.



2)Fokus
Dari segi titik tujuan observasi dapat dibedakan dari prosedur yang tidak secara a-priori menetapkan titik tujuan kecuali kehendak untuk memotret kesan umum tentang implementasi pendekatan pembelajaran siswa aktif sebagaimana telah dikemukakan dalam butir sebelumnya. Di pihak lain sesuai dengan tujuan yang hendak dicapai. Ada pula observasi yang sebelum pelaksanaannnya telah menetapkan titik –titik tujuan tertentu. Misalnya mengenai dominasi guru dalam diskursis pembelajaran atu kadar tuntutan intelektual pertanyaan –pertanyaan yang diajukan guru (Low cognitive Level vs high cognitive Level). Ini berarti bahwa, dengan penetapan focus yang dimaksud perhatian pengamat terutama akan dibatasi pada titik incar yang telah ditetapkan itu. Di pihak lain ini tentu tidak dapat diartikan bahwa pengamat akan secara kaku menutup mata dan telinga dari kejadian – kejadian di luar focus, yang justru dianggap memiliki makna dan/atau implikasi penting berkaitan dengan tindakan perbaikan yang tengah digelar.

Pada sisi lain, memang ada saatnya diperlukan observasi yang bersifat terbuka (open – ended). Tindakan perbaikan yang memasang prakarsa dan kreativitas siswa (atau guru) sebagi salah satu tujuannya akamn mempersyaratkan observasi yang lebih bersifat terbuka itu. Sebaliknya, penstrukturan yang terlalu dini dan atau kaku, akan gagal menjaring indicator –indikator yang berkenaan dengan prakarsa serta kreativitas siswa (atau guru) yang dimaksud.

3)Pelaksana
Sebagaimana telah dikemukakakn, pada dasarnya dalam konteks PTK guru yang merupakan actor tindakan adalah juga pengamat PTK. Meskipun kerja lama kesejawatan akan dapat sangat membantu produktivitas pengumpilan data dan, pada gilirannya, effektivitas PTK sebagai suatu bentuk perbaikan yang menjanjikan dampak positif yang berkelanjutan.

Meskipun memang dapat juga merupakan permasalahan yang dapat muncul dalam konteks dimana ada rekan sejawat yang menyediakan diri untuk berfungsi sebagai pengamat. Namun permasalahan cakupan dan obyektivitas merupakan titik –titik rawan apabila observasi juga harus dilakukan oleh guru sebagai actor PTK.

Salah satu format yang merupakan modifikassi catatan lapangan. (field notes) yang dapat dimanfaatkan oleh guru yang merangkap fungsi sebagai pelaku tindakan perbaikan dan pengamat dengan hasil yang menjanjikan adalah Jurnal Harian. Pada dasarnya, jurnal harian yang produktif adalah yang mengandung 4 komponen yaitu (i) identifikasi konteks observasi. (ii) informasi factual yang menonjol dalam sesuatu periode observasi. (iii) makna dari informasi faktual tersebut dalam konteks di mana ia teramati. dan (iv) implikasi dari fakta dan makna yang dimaksud dalam butir ii dan iii dalam kerangka piker tindakan perbaikan yang tengah digetar.

Dengan dokumentasi rekaman yang sistematis mulai dari konteks fakta, makna beserta implikasinya dalam sesuatu kerangka piker tertentu itu, maka proses refleksi akan terfasilitasi secara efektif dan effisien karena berhasil memanfaatkan data yang baiak cakupan maupun obyektifitas serta pemaknaannya cukup memadai.

4)Tujuan
Dalam penelitian formal, observasi dilakukan untuk mengumpulkan data yang sahib dan handal (valid dan reliable)yang dapat digunakan sebagai bahan dalam menjawab pertanyaan –pertanyaan penelitian, termasuk yang dikemas dalam bentuk hipotesis – hipotesis. Sebaliknya, dalam PTK obsevasi dilakukan terutama untuk memantau proses dan dampak pembelajaran yang diperlukan untuk dapat menata langkah – langkah perbaikan atas prakarsa sendiri ini sudah ditekankan dalam konteks observasi kesejawatan (peer observation, peer supervision) yang telah dikemukakan sebelumnya. Akhirnya, yang jelas – jelas dan tegas – tegas harus dihindari dalam konteks PTK adalah observasi yang dalam pelaksanaannya terpusatkan pada pengungkapan kekurangan dan/atau kesalahan guru yang berfungsi sebagai actor tindakan perbaikan. Jelasnya observasi yang dalam praktek pelaksanaannya hanya terfokus pada kekurangan dan kesalahan guru itu akan berdampak merugikan misi PTK. Sebab informasi balikan yang dihasilkannya akan dihadapai dengan sikap bermusuhan dan ketertutupan.

5)Alat bantu rekam
Dari segi alat bantu rekam yang digunakan ragam prosedur observasi dapat direntang dari yang nyaris tidak menggunakan alat bantu rekam kecuali selembar kertas kosong, sampai dengan yang menggunakan alat rekam pandang dengar yaitu kamera video yang dapat merekam peristiwa secara relative original. Dalam banyak hal, penggunaan berbagai alat bantu rekam yang canggih itu memang sangat menggoda, dan untuk keperluan – keperluan tertentu. Memang menjanjikan kemanfaatan yang nyata dalam bentuk kelengkapan rekaman.

Namun disamping berbagai keuntungan yang dijanjikannya, penggunaan alat bantu rekam dalam konteks PTK juga perlu dipertimbangkan dari segi kelaikannya (feasibility). Artinya, hasil rekaman yang sangat lengkap dengan alat bantu rekam yang canggih itu, tidak akan termanfaatkan secara maksimal apabila untuk keperluan tayang ulang (replay) diperlukan persiapan dan/atau perlengkapan yang memakan waktu untuk menggelarnya. Belum lagi apabila juga diperhitungkan investasi yang diperlukan atau gangguan (intusion) yang diakibatkan dalam penggunaannya.

6)Sasaran Observasi
Dalam PTK, observasi dipusatkan baik kepada proses maupun hasil (interim) tindakan pembelajaran beserta segala peristiwa yang melingkupinya. Sebagaimana telah dikemukakan, sama seperti pada tindakan pembelajaran yang dilaksanakan secara rutin. Pada saat dilaksanakannya suatu tindakan.secara bersamaan juga dilakukan pengamatan tentang segala sesuatu yang terjadidan tidak terjadi selama proses pembelajaran berlangsung. Selanjutnya,sebagaimana halnya dalam tindakan pembelajaran umumnya, data yang diperoleh dari observasi itu langsung diinterpretasikan maknanaya dalam kerangka piker tindakan perbaikan yang telah direncanakan sebagaimana telah dikemukakan di atas. Pada gilirannya, data dan interpretasi hasil observasi tersebut dijadikan sebagai masukan dalam rangka pelaksanaan retleksi.

b.Pilihan Prosedur Observasi
Dengan menggunakan kombinasi dari berbagai sudut pandang di atas sebagai rujukan, dapat dibedakan adanya 4 metode observasi yaitu observasi terbuka, observasi terfokus, observasi terstruktur dan observasi sistematik. Namun segera perlu ditambahkan bahwa derajat kebaikan dari metode – metode observasi tersebut dalam konteks PTK, terlebih – lebih apabila guru bertindak sebagai actor tunggal pelaksana PTK, tentu saja berbeda – beda. Oleh karena itu, para pelaksana PTK perlu secara jeli dan tentu saja berbeda – beda. Oleh karena itu, para pelaksana PTK perlu secara jeli dan kreatif memodifikasi metode – metode observasi yang dimaksud sehingga sejauh mungkin memenuhi harapan baiak dari segi mutu data yang dapat dihasilkannya, maupun dari segi kelaikan implementasinya.

1)Observasi Terbuka
Sebagaimana disarankan oleh namanya,observasi terbuka dapat secara harfiah dimulai dengan suatu halaman kosong, sehingga pengamat harus berimprovisaas dalam merekam “tonggak – tonggak penting” dalam pengggelaran proses pembelajaran dalam rangka implementasi tindakan perbaikan.Tujuannya adalah agar pengamat dapat merekonstruksi proses implementasi tindakan perbaikan yang dimaksud dalam diskusi balikan. Varian yang lain yang sebenarnya telah mulai menampilkan struktur adalah dengan penggunaan kategori – kategori besar (broad categories) sasaran amatan yang secara komprehensif mencakup berbagai tindakan pembelajaran.

2)Observasi terfokus
Observasi terfokus adalah observasi yang secara cukup spesifik diarahkan kepada sesuatu aspek tindakan guru atau siswa dalam proses pembelajaran. Salah satu contoh kemungkinan fokusa amatan adalah dimensi – dimensi dari strategi bertanya yang dalam sesuatu episode pembelajaran.

3)Observasi terstruktur
Observasi Terstruktur adalah ditandai dengan perekaman data yang relative sederhana, berhubung dengan telah tersediakannya format yang relatif rinci. Sebagai contoh dapat dikemukakan teknik bertanya yang digelar oleh guru dalam sesuatu episode pembelajaran, seperti (i) penyebaran pertanyaan kepada sebanyak mungkin siswa, (ii) jenis respons siswa karena ditunjuk atau mengajukan diri di samping (iii) respon guru terhadap jawaban siswa langsung ditangaani sendiri aatau dilemparkan kepada siswa lain. Dengan format rekaman yang relative rinci pengamat tinggal membubuhkan tanda cacah (tallies) atau tanda – tanda lain sehingga gejala yang diamati terpetakan secara rapi

4)Observasi Sistematik
Dalam observasi sistematik pengkategorian kemungkinana bentuk dan jenis amatan distrukturkan secara lebih rinci lagi. Salah satu contoh dari observasi sistematik yang telah diketahui secara meluaas adalah format FIAC (Flanders’ Interaction Analysys Categories) yang memperkenalakan 3 kategori besar yaitu (i) teacher talk (ii) pupil talk, dan (iii) silence

c.Langkah – langkah Observasi
Dalam hala pelaksanaan PTK dilakukan secara kolaboratif, maka pelaksanaan observasi perlu dilakukan dalam 3 fase kegiatan yaitu (i) pertemuan perencanaan, (ii) Pelaksanaan observasi kelas, dan (iii) Pembahasan balikan. Berikut dijelaskan secara lebih rinci hal – hal yang berkaitan dengan observasi interpretasi dalam rangka penyelenggaraan PTK secara kolaboratif tersebut.

1)Pertemuan Perencanaan
Dalam menyusun rencana observasi perlu diadakan pertemuan bersama untuk menentukan urutan kegiatan observasi dan menyamakan persepsi antara observer (pengamat) dan observee (yang diamati) mengenai focus. Kriteria atau kerangka piker interpretasi di samping teknik observasi termasuk perekaman hasil observasi yang akan digunakan. Bila kesamaan pandang telah tercapai, maka di satu pihak keinginan masing – masing dapat dipenuhi sedangkan di pihak lain kekakuan dalam mengobservasi dapat di kurangi kondisi kerja seperti ini dapat menghemat waktu ayng di gunakan dalam melaksanakan observasi di kelas dalam mendiskusikan balikan dan dalam melakukan refleksi serta dalam menyusun rencana tindak lanjut, apabila diperlukan.

a)Penetapan focus Observasi
Fokus Observasi adalah segala sesuatu yang menjadi sasaran tujuan dalam pelaksanaan observasi. Dalam rangka PTK, focus observasi dibatasi pada sasaran – sasaran tertentu yang diprioritaskan dalam kerangka piker tindakan perbaiakan yang tengah di gelar dalam sesuatu siklus PTK. Berhubung dengan hakekatnya yang khas, maka ada 3 catatan yang perlu diingat dalam pelaksanaan observasi dalam rangka PTK, yaitu (i) actor tindakan perbaikan adalah juga pelaku utama pelaksanaan observasi, dengan resiko bahwa cakupan wilayah observasinya kemungkinan akan lebih terbatas, dibandingkan dengan apabila ada mitra yang dapat memberikan bantuan, (ii) Sebagaimana telah ditekankan sebelumnya, kehadiran pengamat mitra berperan melengkapi amatan dari pelaksana tindakan perbaikan, bukan menggantikannya, dan
(iii) Sebagai pengamat, mitra tetap berfungsi sebagai pengamat, bukan sebagai supervisor penuh atau paling banyak sebagai peer supervisor.

b)Kriteria Observasi
Kriteria yang digunakan dalam pelaksanaan observasi adalah kerangka pikit yang digunakan dalam menafsirkan makna dari berbagai fakta yang terekam sebagai indicator dari berbagai gejala yang diharapkan terjadi sebagai perwujudan dari proses atau dampak dari tindakan perbaikan yang diimplementasikan. Kerangka piker tersebut dapat lebih bersifat kuantitatif seperti misalnya dalam bentuk frekuensi pertanyaan yang diajukan siswa dalam sesuatu kurun waktu tertentu. Sebaliknya, kerangka piker tersebut dapat juga lebih menampilkan sifat kualitataif seperti berkenaan dengan sifat dan/atau tujuan pertanyaan yang diajukan itu (pertanyaan factual atau pertanyaan analitik, pertanyaan evaluatif dan pertanyaan – pertanyaan yang menuntut pengerahan proses kognitif tingkat tinggi lainnya.
Namun yang lebih sering dibutuhkan adalah kombinasi di antara keduanya. Yang tentu saja harus diramu secara kontekstual sesuai dengan tujuan, materi dan prosedur yang terdapat dalam scenario di satu pihak, serta sesuai pula dengan mini perbaikan dari hipotesis tindakan yang kebetulan di gelar pada saat itu. Pada gilirannya, sebagaimana telah diisyaratkan di awal bagian ini, kriteria observasi menyediakan kerangka acuan yang dapat digunakan untuk menunjau kembali berbagai aktivitas yang telah digelar sebagai perangkat tindakan perbaikan. Oleh karena itu, pengembangan kriteria observasi sekaligus juga merupakan pemetaan kerangka piker yang membingkai tindakan perbaikan.

Beberapa contoh kriteria observasi dalam rangka PTK dapat dikemukakan sebagai berikut :
1.Peningkatan proses pembelajaran, seperti :
(a)Peningkatan frekuensi dan/atau kualitas pertanyaan siswa dalam interaksi belajar – mengajar.
(b)Peningkatan kerja sama antar siswa dalam pelaksanaan tugas – tugas pembelajaran
(c)Peningkatan jumlah dan/atau ragam sumber belajar yang dimanfaatkan oleh siswa.

2Peningkatan hasil belajar, seperti :
(a)Peningkatan perasaan puas para siswa
(b)Peningkatan perasaan ingin tabu para siswa
(c)Peningkatan jumlah, jenis dan/mutu produk belajar yang dihasilkan siswa
(d)Peningkatan prestasi akademik konvensional
(e)Penurunan frekuensi terjadinya miskonsepsi terhadap materi belajar

3Peningkatan keterlibatan warga sekolah dalam tindakan perbaikan, seperti :
(a)Keterlibatan sejawat guru – guru lain dalam tindakan – tindakan perbaikan yang serupa
(b)Dukungan pimpinan sekolah dan para orang tua siswa
(c)Pemanfaatan hasil PTK oleh sejawat guru lain

c) Alat bantu observasi
Berbagai alat bantu observasi dapat digunakan untuk memfasilitasi perekaman data sesuai dengan spesifikasi yang dikehendaki. Berbagai alat bantu tersebut dapat direntang mulai dari yang paling terbuka sampai dengan yang paling terstruktur. Selain itu juga terdapat alat bantu rekam elektronik yang dapat mendokumentasikan peristiwa secara relative lengkap sebagaimana telah dikemukakan sebelumnya, alat bantu yang paling terbuka adalah selembar kertas kosong.
Penstrukturan awal dilakukan dengan menetapkan terlebuh dahulu focus observasi berupa pokok – pokok titik incar. Penstrukturan dapat lebih ditingkatkan dengan penggunaan checklist termasuk yang merekam data secara mekanistik tanpa interpretasi secara format RAC (Flanders’ Inter-Action Categories)
Alat bantu rekam elektronik memang menjanjikan kelengkapan dokumentasi, meskipun masih mengandung keterbatasan – keterbatasan juga. Kamera hanya mampu merekam informasi audio, sedangkan kamera video dapat merekam 2 dimensi informasi yaitu audio dan visual, meskipun masih tetap ada keterbatasan teknis seperti misalnya dari segi sudut pandang kamera.

c)Ketarampilan Mengobservasi
Dari segi keterampulan mengobservasi, tidak setiap orang yang berkeinginan, secara begitu saja terampil melakukan observasi. Ada 3 keterampilan utama yang diperlukan untuk dapat melakukan observasi yang baik, yaitu :

(1)Kemampuan “menunda” kesimpulan :
Ketegasan dalam penarikan kesimpulan dapat diatasi dengan selalu “kembali” kepada focus serta tata aturan observasi yang telah ditetapkan sebelumnya. Pengamat yang efektif merekam baik fakta yang dilihatnya dari kerangka piker tindakan perbaikan yang digelar melalui PTK.
Pengamat apakah itu guru pelaku tindakan perbaikan atau mitra pengamat harus secara eksplisit memisahkan antara fakta dengan interpretasi terhadap fakta yang dimaksud. Dengan kata lain kedua-duanya memang harus direkam, namun secara jelas diindikasikan pemilahannya. Fakta yang direkam tanpa penyorotan dari sesuatu bingkai piker, akan kehilangan maknanya sebaliknya rekaman hasil observasi yang hanya memuat interpretasi, cenderung menampilkan gambaran yang distortif (biased)
Alat bantu perekaman elektronok lebih berpeluang menghasilkan gambaran yang lebih obyektif, anamun agar benar – benar bermanfaat sebagai masukan, interpretasi yang dilabel secra jelas memang dibutuhkan. Oleh karena itu, hasil rekaman elektronik harus secepatnya ditranskripsikan dan dibubuhi catatan – catatan interpretative sesuai dengan keperluan sehingga terwujud sebagai catatan lapangan (field-notes)
Alat bantu yang lebuh sederhana yang sangat praktis namun juga cukup produktif. Sehingga cocok digunakan oleh pengamat yang juga sekaligus pelaku tindakan, adalah jurnal harian. Sebagaimana telah dikemukakan jurnal harian merupakan semacam catatan harian sehinggga dapat berfungsi sebagai rekaman pengmatan yang sangat efektif, apabila distrukturkan sedemikian sehingga mengandung (a) rekaman factual, (b) pemberian makna terhadap informasi factual yang terekam itu, dan (c) paparan mengenai implikasinya dilihat dari kerangka piker PTK yang tengah dilakukan.

(2)Keteampilan dalam hubungan antar pribadi.
Khususnya apabila melibatkan mitra sebagai pengamat. Maka diperlukan pendekatan hubungan antar pribadi agar “campur tangan “ pihak luar, tidak justru menimbulkan komplikasi – komplikasi yang tidak perlu. Yang penting ditekankan adalah agar masing – masing pihak, baik yang diamati maupun yang mengamati “bertemu” dalam arena denagan maksud untuk saling membantu dalam belajar.

(3)Kemampuan teknis
Untuk menungkatkan produktivitas, diperlukan kemampuan teknis di pihak pengamat untuk menjadwal. Memilih “sample peristiwa” serta instrumentasi (protokol, checklist dan format – format perekaman data lain) yang paling tepat secara kontekstual sesuai dengan sosok dalam perbaikan yang bersangkutan yang akan digunakan untuk mengumpulkan informasi melalui pengamatan.
(4)Pelaksanaan Observasi
Pada waktu observasi dilakukan, observer mengamati proses belajaran dan mengumpulkan data mengenai segala sesuatu yang terjadi pada proses pembelajaran tersebut, baiak yang terjadi pada guru maupun situasi kelas.Perlu diingat bahwa observer hanya mencatat yang dilihat dan didengar bukan memberikan penilaian atau mengganggu. Untuk menghilangkan ketegangan guru selama diobservasi, pada akhir observasi dilakukan diskusi yang bersifat positif selama 5 atau 10 menit. Observer sebaliknya juga memberikan salinan catatan observasi kepada guru yang diobservasi.

(5)Diskusi Balikan
Sebagaiman telah dikemukakan diskusi balaikan harus dilaksanakan dalam situasi yang tidak menakutkan melainkan saling mendukung (mutually supportive) serta didasarkan pada informasi yang diperoleh selama observasi.penentuan serta penetapan target dilakukan berdasarkan pembahasan yang terjadi dalam diskusi balikan. Target – target yang ditetapkan itu hanya bersifat realistis dalam arti balik untuk dicapi dalam kurun waktu yang telah ditentukan. Pada gilirannya, rencana tindakan untuk pengembanagan berikutnya juga disusun dengan bertolak dari diskusi balikan dimana segala sesuatu yang terjadi dan tidak terjadi selama implementasi tindakan perbaikan itu direfleksikan.
Secara visual ketiga fase observasi kelas dapat digambarakan sebagai berikut :

Planing Meeting




Feedback Discussion Calassropom Observation



The three-phase observation cycle (Hopkin,1993:81)


(6)Perencanaan Tindak Lnjut
Sebagaimana telah dikemukakan, dalam diskusi balikan apabila diperlukan, ditetapkan sasaran – sasaran baru perbaikan. Pada gilirannya sasaran – sasaran baru perbaikan tersebut merupakan titik tolak untuk perancangan tindakan perbaikan untuk siklus berikutnya atau apabila sesuatu tujuan perbaikan telah dinilai tercapai secara cukup memuaskan, terbuka peluang untuk mengidentifikasi permasalahan – permasalahan baru yang memerlukan pengatasan melalui PTK.
Dengan daur kegiatan PTK seperti ini, maka akan terpiculah mekanisme perbaikan yang berkelanjutan.

2.Wawancara
Salah satu cara untuk mengumpulkan data ialah dengan jalan mengajukan pertanyaan – pertanyaan kepada subyek penelitian.Instrumen ini digunakan untuk mendapatkan informasi mengenai fakta, keyakinan, perasaan, niat, dsb. Ada beberapa jenis pertanyaan lisan yaitu wawancara.
Wawancara adalah metode pengumpulan data dengan mengajukan pertanyaan secara lisan kepada subyek yang diteliti. Wawancara memilki sifat yang luwes, pertanyaan yang diberikan dapat disesuaikan dengan subyek, sehingga segala sesuatu yang ingin diungkap dapat digali dengan baik. Ada dua jenis wawancara berstruktur dan tidak berstruktur. Dalam wawancara berstruktur, pertanyaan dan alternative jawaban yang diberikan kepada subyek telah ditetapkan terlebih dahulu oleh pewawancara.
Wawancara tidak berstruktur bersifat informal. Pertanyaan tentang pandangan, sikap, keyakinan subyek, atau keterangan lainnya dapat diajukan secara bebas kepada subyek.

3.Kuesioner
Kontak langsung dengan para subyek yang diperlukan dalam wawancara memakan waktu yang lama, tenaga, dan biayanya. Banyak informasi yang dapat dikumpulkan dengan perantaraan daftar pertanyaan tertulis yang diberikan kepada subyek yang diteliti. Kuesioner ada dua macam kuesioner berstruktur atau bentuk tertutup dan kuesioner tidak berstruktur atau terbuka. Kuesioner berstruktur berisi pertanyan yang disertai dengan pilihan jawaban. Kuesioner tak berstruktur pertanyaan tidak disertai dengan jawaban.

4.Tes
Tes merupakan alat pengukur data yang berharga dalam penelitian. Tes ialah seperangkat rangsangan (stimuli) yang di berikan kepada seseorang dengan maksud untuk mendapatkan jawaban – jawaban yang dijadikan penetapan skor angka. Adapun jenis tes dalam penelitian adalah tes prestasi belajar, dan tes kecerdasan.

5.Daftar inventori kepribadian
Ada beberapa jenis ukuran kepribadian, masing – masing mencerminkan sudut pandang yang berbeda – beda. Peneliti harus mengetahui secara tepat lebih dulu apa yang ingin diukurnya baru kemudaian memilih instrument. Tiga jenis ukuran kepribadian yang paling abanyak dipakai adalah daftar inventori, skala penilaian, dan teknik proyektif.

a.Daftar inventori adalah daftar pertanyaan yang menggambarkan pola – pola tingkah laku dan mereka diminta untuk menunjukkkan apakah tiapa – tiap pernyataan merupakan ciri tingkah laku mereka dengan jalan memberi tanda cek pada jawaban ya, tidak atau tidak tahu. Skor diperoleh dengan menjumlahkan jawaban yang sesuai dengan sifat yang sedang diukur.
b.Skala Penilaian
Skala penilaian merupakan alat penilaian yang memerlukan penilaian yang bdilakukan oleh seseorang terhadap tingkah laku atau penampilan orang lain. Penilaitinggal memberikan nilai pada suatu kontimum(rangkaian satuan) atau suatu kategori yang menggambarkan cirri tingkah laku orang yang dinilai. Jenis skala penilaian ada dua, yaitu skala grafis dan skala kategori.


c.Teknis Proyeksi
Teknik Proyeksi adalah ukuran yang dilakaukan dengan jalan meminta seseorang memberikan respon kepada suatu stimulus yang ambigu atau yang tak tersusun. Teknik ini disebut proyeksi karena seseorang diharapkan memroyeksikan kebutuhan, keinginan, ketakutan, kecemasannya sendiri dalam stimulus tersebut. Berdasarkan penafsiran dan tanggapan subyek, peneliti mencoba menyusun suatu gambaran menyeluruh tentang struktur kepribadian seseorang. Contoh tes Appersepsi Tematik (TAT). Tes Rorsharch yang menggunakan noda tinta.

6.Skala
Skala adalah seperangkat nilai angka yang ditetapkan kepada subyek, obyek, atau tingakah laku denga tujuan mengukur sifat. Skala ini biasa digunakan untuk mengukur sikap, nilai – nilai, dan minat. Skala ini digunakan untuk mengukur seberapa jauh seseorang memiliki ciri yang ingin diteliti. Skala ini memiliki (skala Thurstone), summated scale (skal Guttmjan), dan semantic differential scale.
i.Skala Likert, skala jenis ini merupakan sejumlah pernyataan positif dan negative mengenai suatu obyek sikap. Dalam memberikan respon terhadap pernyataan dalam skala ini, subyek menunjukkan sangat setuju, setuju, tidak mempunyai pilihan, tidak setuju, atau sangat tidak setuju. Contoh Pendidikan Luar Biasa hendaknya dipisahkan dengan pendidikan untuk anak normal.
Sanagat setuju (2), setuju (1), tidak mempunyai pilihan (0), tidak setuju (-1), dan sangat tidak setuju(-2)
ii Skala Thurstone
Thurstone mengembangkan suatu metode untuk menentukan nilai skala tertentu pada hala – hal yang mewakili berbagai tingkat sikap yang menyenagkan. Skala yang dikembangkan oleh Thurstone ada 11 dari menyenagkan, netral sampai tidak menyenagkan.
iii Skala Guttman
Teknik kumulatif timbul karena memberikan kritikan pada skala sikap Thurrstone dan skal likert mengatakan bahwa skala – skala tersebut memuat pernyataan – pernyataan heterogen mengenai berbagai dimensi obyek sikap. Guttman mengembangkan suatu teknik untuk mengatasi masalah ini dengan menggolongkan skala berdimensi tunggal, bermaksud menetapkan apakag sikap yang sedang diselidiki benar – benar hanya menyangkut asatu dimensi. Suatu sikap dianggap berdimensi tunggal kalau sikap itu menghasilkan skala yang kumulatif, yaitu skala yang butir – butirnya berkaitan satu sama lain sedemikian rupa sehingga seorang subyek yang setuju dengan pernyataan nomor 2,akan merasa setuju dengan nomor 1. Contoh reponden diminta setuju atau tidak setuju.
1)Manfaat POMG sepadan dengan waktu yang dihabiskan untuk organisasi
2)POMG mempunyai pengaruh besar guna meningkatkan peranan sekolah
3)POMG adalah organisasi yang paling penting di Indonesia guna meningkatkan peranan sekolah

Contoh Tabel Skala Guttman


______________________________________________________________________

Setuju dengan Tidak setuju Dengan
Pernyataan nomor Pernyataan nomor
Skor 3 2 1 3 2 1

3 X X X 0 0 0

2 0 X X X 0 0

1 0 0 X X X 0

0 0 0 0 X X X

Apabila ini adalah skala kumulatif, maka seharusnya dapat disusun semua tanggapan responden ke dalam pola seperti pada table diatas. Dengan demikian jika skor seseorang diketahui, maka seharusnya kita dapat mengatakan dengan tepat pertanyaan – pertanyaan mana yang di setujui oleh subyek itu.Misal, semua responden mempunyai skor 2, yaitu percaya bahwa manfaat POMG sepadan dengan waktu yang dihabiskan untuk organisasai dan POMG mempunyai pengaruh dengan waktu yang dihabiskan untuk organisasai dan POMG mempunyai pengaruh besar dalam meningkatkan peranan sekolah, namun tidak percaya POMG adalah organisasai yang paling penting di Indonesia untuk meningkatkan peranan sekolah.
Subyek dapat dirangking berdasarkan tanggapan mereka terhadap skala itu. Oleh karena itu peneliti harus membentuk pernyataan – pernyataaan tertentu. Kemudian pola tanggapan yang sebenarnya diteliti dan diukur, sejauh mana tanggapan itu dapat direproduksi dari skor keseluruhan. Salah satu cara yang di lakukan adalah membagi jumlah total kesalahan dengan jumlah total tanggapan dan hasilnya dipakai untuk mengurangi angka satu, sehingga diperoleh koefisien reproduksibilitas. Guttman menyarankan nilai 0,90 sebagai membentuk skala berdimensi tunggal (Komulatif)
iv.Semantic defferential scala (skala perbedaan makna)
Pendekatan lain untuk mengukur sikap terhadap obyek, subyek dan kejadian adalah skala perbedaan makna. Skala ini dikembangkan oleh Osgood, Suci, dan Tannenbaum. Skala ini di dasarkan pada pandangan bahwa obyek itu mempunyai dua macam makna bagi seseorang, yaitu magna denotative dan konotatif, yang dapat dinilai sendiri – sendiri. Magna denotatif suatu subyek dapat dengan mudah dinyatakan, namun tidak begitu dengan magna konotatif. Suatu subyek secara tidak lansung, yaitu dengan menggunakan sejumlah kata – kata sifat yang mempunyai dua kutub (bipolar) dan meminta beberapa orang untuk menilai obyek itu dengan berpedoman pada kata – kata sifat. Osgood menggunakan skala ini atas tujuh titik dengan angka 0 sebagai titik tengahnya ke atas sampai + 3 dan ke bawah – 3 untuk menilai sikap.

Baik +3 +2 +1 0 -1 -2 -3 Buruk
Bersih +3 +2 +1 0 -1 -2 -3 Kotor
Manis +3 +2 +1 0 -1 -2 -3 Pahit
Kuat +3 +2 +1 0 -1 -2 -3 Lemam
Besar +3 +2 +1 0 -1 -2 -3 Kecil
Berat +3 +2 +1 0 -1 -2 -3 Ringan
Aktif +3 +2 +1 0 -1 -2 -3 Pasif
Cepat +3 +2 +1 0 -1 -2 -3 Lambat
Panas +3 +2 +1 0 -1 -2 -3 Dingin

Dengan mengetahui penilai para subyek terhadap suatu obyek, peneliti dapat menetapkan adalah sikap masing – masing terhadap obyek tersebut positif atau negative. Skor sikap seorang responden dapat dibandingkan dengan sikap umum terhadap obyek itu oleh suatu kelompok yang ditunjuk. Dapat juga sampai skor sikap responden denga jalan membandingkan sikap sejumlah orang terhadap obyek tersebut, dan dengan membandingkan pola penilaian mereka dengan pola penilaian orang lain.
Osgood dkk membagi menjadi tiga kelompok kata sifat yaitu,
Evaluatif; terdiri dari baik – buruk, bersih – kotor
Potensi; terdiri kuat – lemah, besar – kecil, dan
Aktivitas; terdiri aktif – pasif, cepat – lambat.