• Tidak ada hasil yang ditemukan

BAB V IMPLEMENTASI DAN PENGUJIAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB V IMPLEMENTASI DAN PENGUJIAN"

Copied!
12
0
0

Teks penuh

(1)

V-1

BAB V

IMPLEMENTASI DAN PENGUJIAN

Pada Bab ini dipaparkan lingkungan pembangunan, batasan pembangunan, impelementasi kelas, implementasi markup, implementasi Arithmetic Coding, implementasi pengiriman pesan, implementasi penyimpanan pesan, butir uji serta hasil pengujian.

5.1 Lingkungan Pembangunan

Lingkungan implementasi perangkat lunak aplikasi pengiriman pesan teks ber-markup via short message service (SMS) adalah sebagai berikut:

1. Sistem Operasi : Microsoft Windows XP Service Pack 2 2. Perangkat Lunak Utama :

a. Java Development Kit (JDK) 1.5 b. J2ME Wireless Tool Kit (WTK) 2.2 c. Netbeans 5.5

3. Perangkat Keras Utama :

Notebook HP Compaq Presario V3201TU dengan spesifikasi sebagai berikut: a. Processor Intel Core Duo CPU T2250 1,73GHz

b. Memory DDR2 SDRAM 1GB c. Harddisk 80 GB

4. Perangkat Keras Pendukung : Handphone Nokia 6630 White

5.2 Batasan Pembangunan

Batasan implementasi aplikasi pengiriman pesan teks ber-markup via short message service (SMS) adalah sebagai berikut:

1. Pada aplikasi ini tidak terdapat fungsionalitas penyimpanan pesan selain inbox (misalnya sent message, draft).

2. Aplikasi ini tidak dapat berjalan pada handset dengan keypad bertipe Qwerty. 3. Aplikasi ini akan diimplementasi pada handset Nokia 6630 White. Handset Nokia

(2)

5.3 Implementasi Kelas

Implementasi kelas dilakukan sesuai dengan analisis dan perancangan yang telah dilakukan sebelumnya. Pada perancangan, aplikasi pengiriman pesan teks ber-markup dibagi menjadi dua subsistem yaitu subsistem pengiriman pesan dan subsistem penerimaan pesan. Subsistem pengiriman pesan tersusun dari komponen-komponen MessageEditor, MarkupCreator, MessageCompressor, dan MessageSender. Subsistem penerimaan pesan tersusun atas komponen-komponen MessageReceiver, MessageDecompressor, serta MessageViewer. Masing-masing komponen aplikasi pengiriman pesan teks ber-markup diimplementasi menjadi sebuah kelas (lihat Tabel V-1 Implementasi Kelas). Pada saat implementasi, terdapat beberapa kelas tambahan untuk mendukung implementasi kelas-kelas yang telah dirancang sebelumnya. Kelas-kelas tambahan tersebut merupakan kelas-kelas turunan dari kelas-kelas pada MIDP 2.0 yang dibuat untuk membuat aplikasi lebih modular.

Tabel V-1 Implementasi Kelas

No Nama Kelas Deskripsi

1 Messenger Kelas MIDlet aplikasi pengiriman pesan teks ber-markup 2 MessageEditor Kelas yang berfungsi menyediakan tempat bagi pengguna

menulis pesan teks dengan berbagai style yang mungkin 3 MarkupCreator Kelas yang membagkitkan tag-tag yang merepresentasikan

style teks yang dimaksud oleh pengguna

4 MessageSender Kelas yang bertanggung jawab melakukan pengiriman pesan 5 MessageCompressor Kelas yang bertanggung jawab melakukan kompresi pesan 6 MessageReceiver Kelas yang bertanggung jawab melakukan penerimaan pesan 7 MessageDecompressor Kelas yang bertanggung jawab melakukan dekompresi pesan 8 MessageViewer Kelas yang bertanggung jawab membaca dan menampilkan

pesan teks sebagaimana yang dikehendaki pengirim pesan 9 DestNumberForm Kelas Form untuk melakukan input nomor tujuan pesan 10 MenuList Kelas List menu messaging yang terdiri dari write message

dan inbox

11 FaceList List bebagai tipe font yang didukung oleh aplikasi 12 StyleList List bebagai style huruf yang didukung oleh aplikasi

13 SizeList List bebagai ukuran huruf yang didukung oleh aplikasi 14 ColorList List bebagai warna huruf yang didukung oleh aplikasi

15 CharList List berbagai karakter yang tidak dapat diakses langsung dari keypad

16 MessageList List pesan yang masuk pada inbox aplikasi 17 SmileyList List smiley yang dapat ditambahkan pada pesan

(3)

No Nama Kelas Deskripsi menampilkan report ketika pengiriman pesan

19 EmptyForm Kelas Form yang bertanggung jawab menampilkan status tidak ada pesan masuk pada inbox aplikasi

5.4 Implementasi Markup

Markup yang diimplementasi pada aplikasi pengiriman pesan teks ber-markup dapat dilihat pada Tabel V-2.

Tabel V-2 Implementasi Markup

No Markup Deskripsi

1 <b </b Huruf cetak tebal 2 <u </u Huruf diberi garis bawah 3 <i </i Huruf cetak miring

4 <fc=1> Huruf dengan font proporsional 5 <fc=2> Huruf dengan font sistem 6 <fc=3> Huruf dengan font monospace 7 <co=1> Huruf berwarna hitam

8 <co=2> Huruf berwarna merah 9 <co=3> Huruf berwarna hijau 10 <co=4> Huruf berwarna biru 11 <co=5> Huruf berwarna kuning 12 <co=6> Huruf berwarna merah muda 13 <co=7> Huruf berwarna ungu 14 <co=8> Huruf berwarna coklat 15 <co=9> Huruf berwarna orange 16 <sz=1> Huruf berukuran kecil

17 <sz=2> Huruf berukuran sedang (default) 18 <sz=3> Huruf berukuran besar

15 :p Smiley

16 :) Smiley

17 :( Smiley

18 :D Smiley

19 :{ Smiley

5.5 Implementasi Arithmetic Coding

Aplikasi pengiriman pesan teks ber-markup ini menggunakan program open source yaitu Compression via Arithmetic Coding in Java version 1.1(www.colloquial.com). Pada saat implementasi, tidak semua source dari program tersebut digunakan. Source yang digunakan disesuaikan dengan pengembangan aplikasi pengiriman pesan teks ber-markup sehingga dilakukan perubahan-perubahan pada kelas tertentu. Kelas-kelas yang

(4)

digunakan dalam implementasi Arithmetic Coding pada aplikasi pengiriman pesan teks ber-markup ini dapat dilihat pada Tabel V-3.

Tabel V-3 Kelas-kelas Implementasi Arithmetic Coding

No Kelas Tanggung Jawab

1 ArithCodeModel Interface untuk model statistik yang akan digunakan untuk

melakukan encode dan decode

2 AdaptiveUnigramModel Menyediakan model adaptif berdasarkan byte yang diobservasi pada input stream

3 ArithCodeInputStream Input stream yang digunakan pada kompresi dan

dekompresi

4 ArithCodeOutputStream Output stream yang digunakan pada kompresi dan

dekompresi

5 ArithCoder Kelas general yang digunakan untuk melakukan coding 6 ArithDecoder Kelas yang bertanggung jawab melakukan decoding 7 ArithEncoder Kelas yang bertanggung jawab melakukan encoding 8 BitInput Kelas yang bertanggung jawab membaca input dari input

stream berupa sebuah bit untuk setiap satuan waktu

9 BitOutput Kelas yang bertanggung jawab menulis output dari output

stream berupa sebuah bit untuk setiap satuan waktu

10 ByteBuffer Kelas yang merupakan queue untuk menampung byte sementara

11 ByteSet Himpunan byte untuk melakukan operasi-operasi terhadap byte-byte tersebut

12 Converter Kelas yang bertanggung jawab mengubah byte menjadi

integer dan sebaliknya

Perubahan kode program dilakukan pada beberapa kelas dari program open source tersebut. Perubahan kode program dilakukan karena hal-hal berikut:

1. Adanya fungsi atau metode yang tidak dibutuhkan dalam aplikasi pengiriman pesan teks ber-markup ini.

2. Kode program tidak didukung oleh MIDP 2.0

Penggabungan kelas-kelas kompresi dengan rancangan kelas aplikasi pengiriman pesan teks ber-markup dapat dilihat pada Gambar V-1.

(5)

BitOutput _nextByte _nextBitIndex _out close() flush() writeBit() writeBitTrue() writeBitFalse() reset() MessageCompressor modelIn compressMessage() copyStream() AdaptiveUnigramModel MAX_COUNT NUM_BYTES EOF_INDEX TOTAL_INDEX interval() pointToSymbol() totalCount() escaped() exclude() increment() lowCount() highCount() rescale() MessageDecompressor modelOut decompressMessage() copyStream() ArithCodeModel EOF ESCAPE totalCount() pointToSymbol() interval() escaped() exclude() increment() ArithCodeInputStream _model _decoder available() close() mark() markSupported() read() reset() skip() decodeNextByte() BitInput _in _nextByte _nextBitIndex _endOfStream available() close() endOfStream() readBit() readAhead() ArithDecoder _in value endOfStream bufferedBits endOfStream() getCurrentSymbolCount() removeSymbolFromStream() close() bufferBit() ArithCodeOutput Stream _model _encode _interval encode() close() flush() write() ArithEncoder _out _bitsToFollow close() flush() encode() bitPlusFollowTrue() bitPlusFollowFalse() ArithCoder _low _high CODE_VALUE_BITS TOP_VALUE FIRST_QUARTER HALF THIRD_QUARTER

(6)

5.6 Implementasi Pegiriman Pesan

MIDP mendukung pengiriman pesan antar mobile phone dengan dua jenis yaitu pesan teks dan pesan biner. Pesan teks merupakan instansiasi dari kelas TextMessage pada paket javax.wireless.messaging. Sedangkan, pesan biner merupakan instansiasi dari kelas BinaryMessage pada paket yang sama. Pesan yang dikirim oleh aplikasi pengiriman pesan teks ber-markup via SMS ini dapat berupa TextMessage maupun BinaryMessage. TextMessage digunakan pada saat ukuran pesan teks yang akan dikirim tidak lebih dari 160 karakter sehingga tidak perlu dilakukan kompresi pada pesan tersebut (secara default akan membayar satu kali SMS). BinaryMessage digunakan pada saat pengiriman pesan hasil kompresi pesan yang panjang (lebih dari 160 karakter). Aplikasi ini akan mengirim pesan pada port 5000. Port ini berbeda dengan port default tempat masuknya pesan teks SMS biasa. Oleh karena itu, pesan teks yang dikirim dengan aplikasi ini tidak tersimpan dalam default inbox. Jika pada handset penerima tidak terdapat aplikasi ini, pesan yang dikirim pada handset tersebut tidak akan terbaca.

Pesan yang dikirim dengan aplikasi pengiriman pesan teks ber-markup ini dibatasi maksimal 480 karakter untuk sekali pengiriman. API Messaging dari MIDP 2.0 mendukung pengiriman pesan teks lebih dari 480 karakter, namun pada saat penerimaan pesan, aplikasi harus menggabungkan sendiri bagian-bagian pesan yang terpisah menjadi beberapa pesan. Jika pesan yang dikirim kurang dari atau sama dengan 480 karakter, API Messaging yang akan menggabungkan bagian-bagian pesan yang terpisah (menjadi 3 pesan) sehingga aplikasi tidak perlu menangani hal tersebut.

5.7 Implementasi Penyimpanan Pesan

Aplikasi pengiriman pesan teks ber-markup via SMS ini memiliki fungsionalitas untuk melakukan penyimpanan pesan yang diterima (inbox). Pesan teks yang diterima disimpan ke dalam sebuah RecordStore. RecordStore merupakan mekanisme penyimpanan data persisten yang disediakan oleh MIDP. Pada aplikasi pengiriman pesan teks ber-markup ini, untuk setiap pesan yang diterima, pesan teks dan address pengirim pesan akan disimpan dalam RecordStore. Penyimpanan pesan teks dan address pengirim pesan secara detail ditunjukkan pada Gambar V-2.

(7)

Gambar V-2 Penyimpanan Pesan pada RecordStore

5.8 Rencana Pengujian

Aplikasi pengiriman pesan teks ber-markup ini akan diuji pada handphone Nokia N6630 White sebagai handset utama yang digunakan pada pembangunan aplikasi tersebut. Pengujian yang dilakukan meliputi pengujian fungsionalitas aplikasi serta pengujian kompresi pesan teks dengan Arithmetic Coding. Berikutnya, pengujian akan dilakukan pada berbagai seri dan merek handphone yaitu Sony Ericsson K530i, Nokia N90, Nokia 5200, serta LG KG300.

5.9 Butir Uji

Pengujian terhadap aplikasi pengiriman pesan teks ber-markup dilakukan dengan butir-butir uji pada Tabel V-4 Tabel Butir Uji berikut.

Tabel V-4 Tabel Butir Uji

No Butir Uji

1 Aplikasi menampilkan menu utama

2 Aplikasi menampilkan message editor dan menu-menu untuk variasi huruf

3 Aplikasi menampilkan list jenis huruf, list ukuran huruf, list warna huruf, serta list style huruf

4 Message editor menampilkan huruf dengan jenis huruf, ukuran huruf, warna huruf, style huruf yang diinginkan pengguna

5 Message editor menampilkan smiley

(8)

No Butir Uji 7 Aplikasi melakukan kompresi pesan

8 Aplikasi melakukan pengiriman pesan teks

9 Aplikasi menerima pesan teks yang ditujukan kepadanya 10 Aplikasi melakukan dekompresi pesan

11 Aplikasi menyimpan pesan dan alamat pengirim serta menampilkan inbox 12 Aplikasi menampilkan pesan yang diterima sesuai dengan yang dikirim oleh

pengirim

13 Pengguna dapat melakukan forward pesan

5.10 Hasil Pengujian

Hasil pengujian terhadap aplikasi pengiriman pesan teks ber-markup pada handphone Nokia 6630 White berdasarkan butir-butir uji di atas adalah sebagai berikut:

1. Aplikasi dapat menampilkan menu utama yang terdiri atas write message dan inbox.

2. Aplikasi dapat menampilkan message editor beserta menu-menu di dalamnya yaitu:

• Menu Next menuju halaman untuk memasukkan nomor tujuan pengiriman pesan

• Menu Font Face menuju halaman daftar jenis huruf yang mungkin dipakai • Menu Font Color menuju halaman daftar warna huruf yang mungkin

dipakai

• Menu Font Size menuju halaman daftar ukuran huruf yang mungkin dipakai

• Menu Font Style menuju halaman daftar style huruf yang mungkin dipakai • Menu Smiley menuju halaman daftar smiley yang dapat disisipkan

• Menu Back untuk kembali ke menu utama

3. Message editor menampilkan huruf dengan ukuran, warna, style yang sesuai dengan yang dipilih pengguna. Style huruf dapat merupakan salah satu dari bold, italic, dan underlined atau gabungan dari ketiga style tersebut. Message editor hanya dapat menampilkan satu jenis huruf yaitu face system.

4. Message editor dapat menampilkan smiley yang dimasukkan pada pesan teks. 5. Aplikasi dapat menampilkan halaman form untuk memasukkan nomor tujuan.

(9)

6. Aplikasi dapat melakukan pengiriman pesan dengan berhasil.

7. Aplikasi dapat menerima pesan yang ditujukan kepadanya dengan berhasil.

8. Aplikasi dapat menyimpan pesan dan alamat pengirim pesan dengan menggunakan record store. Pengguna dapat melakukan pembacaan pesan dan penghapusan pesan yang tersimpan pada record store.

9. Aplikasi berhasil menampilkan pesan yang diterima seperti yang diharapkan pengirim.

10. Pengguna dapat melakukan forward pesan yang disimpan pada record store. 11. Pengujian terhadap performasi kompresi Arithmetic Coding dilakukan dengan

melakukan beberapa kali kompresi string. Hasil yang didapatkan dari pengujian kompresi Arithmetic Coding tersebut dapat dilihat pada Tabel V-5.

Tabel V-5 Hasil Pengujian Kompresi

No String Hasil (ukuran byte) Penurunan (%)

1 Meluasnya penggunaan SMS pada berbagai keperluan melahirkan kebutuhan modifikasi pada pesan teks yang dikirim untuk menambah keindahan atau tujuan tertentu. Modifikasi pada pesan teks tersebut dapat berupa pewarnaan huruf, format penulisan huruf, ukuran huruf, dan modifikasi lainnya. (283 karakter)

207 byte 26,85

2. Sebuah markup language harus mendefinisikan markup apa yang diizinkan, markup apa yang dibutuhkan, bagaimana markup dibedakan dengan teks biasa, dan apa makna setiap markup (155 karakter)

132 byte 14,84

3 Rich Text Format adalah sebuah metode untuk menyandikan teks dan gambar pada aplikasi atau data dan untuk melakukan transfer antar aplikasi (139 karakter)

110 byte 20,86

4 <co=4><bSMS</b adalah transmisi pesan teks dari sebuah ponsel,<i faximile</i, dan/atau alamat IP dalam jaringan GSM (<i Global System for Mobile Communication </i) (163 karakter)

135 byte 17,18

5 <i<uShort Message Service Center</u</i (SMSC) adalah pihak yang bertanggung jawab melakukan <i store and forward</i atas short message antara <b SME</b dan <i mobile station</i (176 karakter)

143 byte 18,75

6 Variasi huruf yang akan diimplementasi pada aplikasi pengiriman pesan teks

(10)

No String Hasil (ukuran byte) Penurunan (%) markup adalah variasi huruf standar pada

format teks. Style huruf ini mencakup style huruf (huruf tebal, huruf miring, serta huruf garis bawah), jenis huruf, ukuran huruf, dan warna huruf. (267 karakter)

7 Rancangan antarmuka berikut ini terbagi atas rancangan antarmuka subsistem pengirim pesan dan rancangan antarmuka subsistem penerima pesan. Rancangan antarmuka subsistem pengirim pesan meliputi rancangan antarmuka message editor serta antarmuka terkait dengan menu-menu yang terdapat pada message editor. Menu-menu yang terdapat dalam message editor meliputi menu untuk memasukkan nomor tujuan pesan dan menu untuk melakukan mengubah setting huruf. Rancangan antarmuka penerima pesan sebatas rancangan bagaimana pesan ditampilkan. (531 karakter)

344 bytes 35,21

8 Markup yang diimplementasi diharapkan dapat merepresentasikan style teks yang diinginkan pengirim pesan teks dengan notasi yang sesederhana mungkin. Dari studi perbandingan yang dilakukan terhadap format markup language, didapatkan format markup yang paling sederhana dan dapat merepresentasikan style teks yang diinginkan pengirim pesan teks adalah HTML. Namun demikian, jumlah karakter pada suatu tag HTML masih relatif banyak sehingga akan menyebabkan penambahan karakter yang cukup signifikan. Oleh karena itu, diperlukan penyusunan format markup baru yang akan diimplemetasi. Format markup yang baru ini diadaptasi dari HTML dengan penyederhanaan pada tag-tag yang digunakan. (680 karakter)

442 byte 35,00

Disamping pengujian dilakukan pada handphone Nokia 6630 White, aplikasi pengiriman pesan teks ber-markup ini juga diujikan pada beberapa handphone lain seperti disebutkan pada Tabel V-6.

(11)

No Seri Hasil Pengujian 1. Sony Ericsson K530i 1. Pada message editor terdapat beberapa fitur yang

tidak dapat berjalan yaitu fitur jenis huruf dan fitur style huruf. Aplikasi hanya dapat

menampilkan satu jenis font face serta tidak dapat menampilkan huruf dalam style bold,

italic, maupun underlined.

2. Aplikasi tidak dapat melakukan penerimaan pesan karena pesan selalu masuk pada default

inbox meskipun dikirm oleh nomor pengirim

dengan operator yang sama dengan penerima. 3. Aplikasi tidak berhasil melakukan pengiriman

pesan. Pengiriman pesan melalui aplikasi pengiriman pesan teks ber-markup ini tidak berhasil dilakukan dengan handphone vendor Sonny Ericsson.

4. Susunan keypad tidak sama dengan susunan

keypad pada Nokia 6630 sehingga ada beberapa keypad yang tidak sesuai.

2 Nokia N90 1. Pada message editor semua fitur berjalan seperti seharusnya, kecuali fitur jenis huruf. Handset tidak mendukung berbagai tipe jenis font (monospace, font system, font proportional).

Message editor hanya dapat menampilkan satu

jenis huruf yaitu face system.

2. Pada saat pertama kali instalasi, record store tidak kosong. Kondisi seharusnya adalah kosong.

3. LG KG300 1. Pada message editor semua fitur berjalan seperti seharusnya.

2. Susunan keypad tidak sama dengan susunan

keypad pada Nokia 6630 sehingga ada beberapa keypad yang tidak sesuai.

3. Aplikasi tidak dapat membuka record store. 4. Nokia N5200 1. Pada message editor semua fitur berjalan seperti

seharusnya, kecuali fitur jenis huruf. Handset tidak mendukung berbagai tipe jenis font (monospace, font system, font proportional).

Message editor hanya dapat menampilkan satu

jenis huruf yaitu face system.

2. Aplikasi tidak dapat melakukan penerimaan pesan karena pesan selalu masuk pada default

inbox meskipun dikirm oleh nomor pengirim

(12)

5.11 Analisis Hasil Pengujian

Berikut ini dipaparkan analisis hasil pengujian aplikasi pengiriman pesan teks ber-markup yang telah dilakukan.

5.11.1 Analisis Hasil Pengujian pada Berbagai Seri Handset

Dari pengujian yang telah dilakukan, didapatkan bahwa aplikasi pengiriman pesan teks ber-markup ini hanya dapat berjalan dengan baik pada Nokia 6630 White. Semua fungsionalitas aplikasi pengiriman pesan teks ber-markup ini, kecuali jenis huruf, dapat berjalan pada handset Nokia 6630. Sedangkan pada handset lain yang telah diujikan (Sony Ericsson K530i, Nokia N90, LG KG300, serta Nokia N5200) terdapat beberapa fungsionalitas yang tidak berjalan (Lihat Tabel V-6). Fungsionalitas aplikasi tidak dapat berjalan disebabkan perbedaan dukungan terhadap API J2ME yang digunakan dalam aplikasi.

Perbedaan dukungan tersebut terdapat pada: 1. Penyimpanan pesan (RecordStore) 2. Jenis, style, dan ukuran huruf 3. Pengiriman pesan pada port 5000

Oleh karena itu, agar dapat berjalan pada handset selain Nokia 6630 White, implementasi aplikasi pengiriman pesan teks ber-markup ini harus disesuaikan dengan dukungan handset terhadap API J2ME.

5.11.2 Analisis Hasil Pengujian Kompresi Arithmetic Coding

Dari pengujian yang dilakukan dengan mengkompresi berbagai string dengan panjang yang bervariasi (seperti terlihat pada Tabel V-5 ), dapat dilihat bahwa semakin panjang string yang dikompresi maka akan semakin efektif hasil kompresinya (persentase penurunan jumlah byte lebih besar).

Kompresi Arithmetic Coding ternyata belum optimal untuk menurunkan biaya SMS. Sebagai contoh, pada pengujian kompresi nomor 1 (lihat Tabel V-5) panjang string yang dikompresi 283 karakter dan dihasilkan 207 byte. Jika string tersebut dikirim dengan SMS, maka tidak akan ada perubahan biaya pengiriman pesan yaitu seharga pengiriman 2 kali SMS.

Gambar

Tabel V-1 Implementasi Kelas
Tabel V-3 Kelas-kelas Implementasi Arithmetic Coding
Gambar V-1 Implementasi Penggabungan Kelas-Kelas Kompresi
Gambar V-2 Penyimpanan Pesan pada RecordStore
+3

Referensi

Dokumen terkait

Para pekerja yang karena berakhirnya kontrak kerja diberhentikan atau kontrak kerjanya tidak dipatuhi oleh pengusaha, kecuali sebagai akibat ketidakcocokkannya untuk bekerja

Gangguan penghidu pada penyakit sinonasal seperti rinosinusitis kronik atau rinitis alergi disebabkan inflamasi dari saluran nafas yang menyebabkan berkurangnya aliran udara

Adapun upaya dalam negeri meliputi kontrol pengungsi dan pemeriksaan ketat diperbatasan, pengendalian perbatasan, mempercepat proses pemberian suaka dan mendeportasi pengungsi

Tujuan penelitian adalah untuk menjelaskan hubungan dukungan keluarga dengan keaktifan lansia dalam mengikuti posyandu lansia di dukuh krajan, desa grogol, kecamatan

Dari analisa pola komunikasi kelompok tersebut, maka kebijakan yang bisa ditempuh oleh Pemerintah Daerah untuk pemberdayaan ekonomi politik petani tembakau adalah

Untuk menggambarkan kondisi awal perilaku disiplin anak di Taman Kanak-Kanak Insan Kamil Kabupaten Halmahera Selatan, diadakan observasi pada 21 Agustus 2017 dengan cara

Teknologi GIS telah menunjukkan keupayaan dalam memproses, mengolah dan mempamerkan data-data spatial dengan berkesan bagi menerbitkan maklumat dan ilmu yang

Kegiatan yang dilakukan pada tahap ini adalah melaksanakan pembelajaran sesuai dengan RPP tentang membaca intensif dan merupakan perbaikan hasil refleksi siklus I, siklus