membuat program sederhana dengan appinventor (sms broadcast)

Broadcast Hub

Oke, tutorial kali ini aga sedikit ngejelimet, lebih rumit dari sebelum nya, tapi itunganya sih masih sederhana soalnya componen yang kita pake ga banyak dan masih bisa dikerjain dengan otak yang pas pasan kaya saya. hohoho…

tutorial kali ini saya coba bikin aplikasi yang berguna saat menyontek ujian ato berbagi jawaban tugas untuk teman2 sekelas ato segeng, emang bisa?

ga usah mempertanyakan hal yang saya sudah jago nya. mencontek merupakan bakat saya, dan mencari cara aman untuk mencontek adalah permainan saya untuk mengasah kreatifitas, tapi bagian penting dari mencontek adalah kebersamaan, agar tidak ketauan. untuk itu saya akan mencoba mengajarkan kebersamaan dalam aplikasi contekan yang akan kita buat kali ini, sehingga mencontek anda akan lebih apdol

untuk itu saya akan membuat aplikasi broadcast sms, yang nanti nya bila ada orang yang sms menanyakan jawaban ke nomor tlp kita dan nomor pengirim nya sudah terdaftar dalam geng nyontek bareng sms, maka sms nya akan di forward ke seluruh geng,dan bila salah satu anggota genk ada yang sudah mendapat kan jawabanya, maka dia cukup sms jawabanya ke nomor hp kita, dan secara otomatis hp kita akan mengirimkan sms kesemuan anggota geng jawabanya.

dan apabila ada yang sms tapi nomor nya belum kedaftar maka akan dikirimkan sms untuk menawarkan join dalam sms broadcast,

cara penggunaan aplikasi nya gampang, saat mau mulai pelajaran tinggal check list enable aplikasi, biar aplikasi aktif selama pelajaran, kalo ud selesai ujian tinggal di non aktifin lg

saya mulai ya tutorial nya, biar otak nya nyampe saya bagi bagi jadi beberapa bagian biar gampang di cernanya, kaya makan ayam potong yang di potong2 perbagian, ga sekaligus satu ayam idup di makan.

tujuan tutorial ini adalah memepelajari :

  1. menyontek sambil belajar, ato belajar sambil menyontek, ato mempelajari cara mencontek yang hitech
  2. mempelajari penggunaan componen texting dalam appinventor
  3. mempelajari penggunaan variable list
  4. mempelajari fungsi dari foreach yang digunakan untuk memproses data dalam list
  5. mempelajari menggunakan prosedur
  6. mempelajari menggunakan check box

memulai

sekarang buka appinventor nya di browser kemudian buka myproject terus new projek, kemudian kasih nama deh smshub ato smsnyontek ato smsnyontekbareng ahaha terserah deh, pkok nya itu yang nanti bakalan jadi nama aplikasi nya.

mendesain tampilan dan komponen

yang kita butuhin disini adalah

tipe Component Palette Group rename menjadi fungsi dari Component
Label Basic listlabel label yang berfungsi menampilkan nomor telepeon yang sudah di rekam
Label Basic loglabel label yang berfungsi untuk merekam kegiatan yang sudah di lakukan
Texting Social sms komponen yang berfungsi untuk mengatur sms
CheckBox Basic checkbox1 untuk nanti nya di gunakaan menyalakan aplikasi dan mematikanya
TinyDB Basic TinyDB1 untuk menyimpan data agar tidak terhapus saat aplikasi ditutup

■    nah selanjut nya setting bacground screen menjadi abu abu

■    dan selanjut nya pada componen semua llabel properti nya di ganti menjadi heigh ny 200 dan width nya menjadi fill parent jadi nya nanti menyesuaikan ama lebar dari resolusi hape nya

■    terus nya untuk property text dari listlabel menjadi “listbroadcast”

■    dan untuk componen loglabel properti text nya di biarin kosong ajah biar nanti aplikasi nya yang ngisi,

nanti hasilnya kaya gini nih :

kalo udah tinggal masuk k block editor nya deh, clik edit blockeditor yang ada di pojok kanan atas

merancang behavior

kali ini nih, aktifitas dari aplikasi ini ga di picu dengan menekan tombol yang biasa kita lakukan, tapi secara otmatis ter picu dengan sms yang di terima oleh hp yang terinstal aplikasi ini (hp yang jadi server nyontek)

logika nya gini :

  1. kalo ada sms masuk kedalam hp dan belum ke daftar ke aplikasi, maka aplikasi secara otomatis mengirimkan sms balik yang berisi undangan agar ikutan gabung
  2. kalo ada sms masuk yang isi nya “gabungsms” dari nomor yang tidak di kenal maka nomor si pengirim akan di catat dalam daftar broadcast list
  3. kalo ada sms masuk yang berasal dari anggota yang sudah tercatat di dalam broadcast maka sms itu akan di forward ke seluruh anggota genk

untuk permulaan kita mulai dari saat sms masuk, kemudian sms itu akan akan di cek oleh aplikasi, bila sms nya berisi “gabungsms” maka akan ditambahkan nomor nya kedalam daftar, bila tidak maka akan di baalas berupa ajakan untuk gabung

block penting yang di butuhkan adalah

tipe block Drawer tujuan
sms.MessageReceived sms event-handler yang akan terpicu saat aplikasi / hp menerima ms
set sms.PhoneNumber to sms menset nomor telepon yang akan di kirim
value number / value messegeText My Definitions memberikan nilai dari variable number dan messegeTexxt yang sebelumnya di store oleh sms.messegeReceive
set sms.Message sms perintah yang memberikan nilai/ isi/ pesan yang akan di kirim oleh elemen sms
text Text memberikan nilai constant berupa string kepada sms.messege
sms.SendMessage sms perintah mengirimkan sms
ifelse logical argumen yang berguna mengecek value messegeText apakah sama dengan gabungsms, bila bernilai true/benar maka akan menjalankan argume yang terdpat pada then do, biltidk akaan menjalanakan aragumen yanng terdapat dlm block else do
def broadcast my definitions yang berfungsi mendeklarasikan variable broadcast secara global
call make a list list berfungsi mendefinisikan broadcast sebagai list
call add items to list list berfungsi menambahkan data kedalam list, dalam kasus ini menambahkan nomor pengirim kedalam variable broadcast

kemudian susun sehingga menjadi seperti di bawah ini :

alur kerja nya gini :

pertama sms masuk, nomor nya di simpen di variable number dan isi sms di simpen di variable messegeText, setelah itu akan di cek apakah isi sms sama dengan gabung sms atau tidak. Bila iya maka block add to list memasikan nomor tlp pengirim ke dalam daftar anggota (listbroadcast), bila tidak sama akan dikrimkan sms untuk bergabung, dan block def broadcast list berguna untuk mendeklarasikan variable global broadcastlist yang akan di gunakan dalam aplikasi

menyebarkan sms

sekarang bagaimana menyebarkan jawaban/pertanyaan ke anggota geng nyontek? hal yang dilakukan pertama kali oleh aplikasi adalah mengecek apakah sms yang di terima merupakan sms dari anggota genk, bila iya aplikasi akan menyebarkanya, bila tidak aplikasi akan melakukan logika pertama (memberikan balasan sms untuk gabung atau mencatat nya dalam grup)

ini block yang di perlukan

tipe blok Drawer tujuan
ifelse Control kondisi yang akan mengecekbapakah bernilai true atu false dan akan dilakukan tndakan yang bereda
is in list? Lists mengecek apakah variable trmasuk di dalam List
global BroadcastList My Definitions dimasukan kedalam block is in list sebagai sumber list
value number My Definitions dimasukan kedalam block is in list sebagai nomor yang akan di cek
foreach Control untuk melakukan exsekusi block program secara ber ulang setiap record yang berada dalam list broadcastlist
global BroadcastList My Definitions dimasukan kedalam foreach in list sebagai sumber data yang akan di lakukan proses tiap list nya (no tlp)
set sms.Message to sms untuk mensetting isi sms
value messageText My Definitions berisi isi sms yang di terima oleh variable text
set sms.Number to sms untuk menset nomor tlp yang akan di kirimi sms
value var My Definitions value var adalah variable yang berisi tiap record yang ada dalam broadcast list, yang kemudian akan di proses dalam foreach

cara nya sebagai berikut

masukan block if else sebelum nya keblock if else yang baru sehingga menjadi seperti ini

kemudian dalam block if else cek kondisi, apakah nomor tlp sudah terdaftar dalam listbroadcast (daftar nomor tlp anggota genk) menggunakan block is in the list untuk mengecek nya, lalu pasang block is in the list dengan susunan block seperti ini :

jika kondisi di atas terpenuhi atau bernilai true maka akan menjalankan block sms.Messege yang berfungsi menset isi sms yang akan dikirim selanjutnya, untuk itu tempatkan block sms.messege kedalam block if else sehingga menjadi seperti ini :

agar dapat mengirimkan sms kepada setiap anggota yang sudah terdaftar di dalam genk nyontek maka di perlukan block foreach yang berfungsi memproses tiap record yang berada dalam listbroadcast (nomor tlp) ,dan susun block nya seperti gambar di bawah

karena global listbroadcast adalah variable yang menyimpan semua nomor anggota geng dan di gunakan sebagai sumber list nomor tlp genk yang akan di proses. Maka masukan global list broadcast sebagai sumber yang akan di proses foreach, lakukan seperti dibawah ini

proses selanjut nya bagaimana megirimkan sms kepada semua nomor tlp yang sudah terdaftar, cara nya adalah di dalam block foreach kita set sms.Phonenumber yang berfungsi menset nomor tlp yang akan dikirim dan di pasangkan dengan block var yang notabene merupakan variable nomor tlp yang sedang di proses foreach. selanjut nya exekusi mengirimkan sms, dengan bantuan block sms.sendmessege, tampilanya sbagai berikut

cara kerja block program nya

logika block di atas pertama setelah mendapatak sms masuk kondisi ifelse akan mengecek apakah nomor si pengirim sudah terdaftar di dalam anggota genk nyontek atau blm, bila belum akan mengeksekusi logika pertama, apabila sudah maka sms yang di terima akan dikirimkan kembali kesetiap nomor yang terdaftar di dalam.List broadcast, menggunakan fungsi block program foreach.

melog atau mencatat sms yang di sebarkan

pas aplikasi nerima sms dan di kirimin ke semua anggota genk nyontek, nanti aplikasi nyatet nomor siapa yang mengirimkan sms,

untuk itu kita memerlukan beberapa block seperti di bawah ini

tipe block Drawer tujuan
set LogLabel.Text to LogLabel Label yang berfungsi untuk menampilkan log
make text Text Block yang berfungsi membuat/menggabungkan text dari beberapa block
text (“dari:”) Text Memberikan nilai text “dari:”
value number My Definitions Nomor pengirim
text (“terkirim\n”) Text Memberikan nilai text dengan format nomor tlp terkirim dan garis baru
LogLabel.Text LogLabel Menambahkan loglabel sebelumnya

Susun block nya menjadi seperti ini :

Carakerja block program

Cara kerja nya gini, pas sms di terima dari anggota genk, block set loglabel.text memanggil fungsi make a text yang kemudian menggabungkan text dari beberpa block yang ingin kita tampilkan dalam log, fungsi dar block nya mencatat nomor tlp sumber yang menyebarkan sms, contoh dari hasil loglabel.text nya akan menjadi seperti ini :

dari: 309484998 terkirim
dari : 305809849 terkirim

menyimpan daftar nomor tlp yang sudah terdaftar dalam database

aplikasi pas dibuka akan menyimpan nomor tlp yang daftar namun saat aplikasi di tutup akan hilang semua daftar nomor tlp tersebut, karena nomor tersebut hanya di simpan di dalam variable aplikasi,

untuk mengatasi hal ini kita perlu namanya menyimpan nomort tlp tersebut kedalam database, di dalam aplikasi android / appinventor database di simpan dengan menggunakan bantuan component tinyDB, dengan cara ini walaupun aplikasi di tutup, aplikasi akan menyimpan data walupun aplikasi di tutup,

untuk menggunakan tinyDB dalam aplikasi ini kita membutuhkan beberapa block seperti di bawah ini:

tipe block Drawer tujuan
Call tinydb1.storevalue Tinydb1 Block yang digunakan untuk menyimpaan data dalam database
Text (dblistbroadcast) Text Di masukan kedalam tinydb tag sebagai tanda pengenal, nama variable,ato lebih seperti nama field di dalam data base
Global listbroadcast My definition Dimasukan kedalam tinydb1 valuestore sebagai sumber data yang akan di masukan kedalam database

Kemudian sususn block menjadi seperti ini :

Carakerja block program

Tinydb1.storevalue menyimpan data yang berasal dari variable global listbroadcast kedalam database tinydb1 dengan label dblistbroadcast

Saat pertamakali aplikasi dibuka, secara otomatis aplikasi akan membaca database kemudian memasukanya kedalam aplikasi, untuk itu kita membutuhkan screen1.initialize yang merupakan block program yang akan pertamakali di exekusi saat program di jalankan, kemudian kita masukan block set global dblistbroadcast di dalamnya dan tambahkan tinydb1.getvalue yang berfungsi memanggil data yang tersimpan dalam database, dan berikan block text dblistbroadcast untuk memanggil database dengan label dblistbroadcast.

Jangan lupa, karena dblistbroadcast merupakan variable yang belum kita definisikan, maka sebelum nya kita buat definisi variable dblistbroadcast dengan jenis variable kita beri nilai ? yang berarti belum di tentukan jenins variable nya, tergantung saat nanti kita masukan data kedalam variable nya

Setelah memasukan data kedalam variable dblistbroadcast, kita mengecek apakah data tersebut kosong atau tidak, dengan cara tambahkan block if dengan kondisi length dari dblistbroadcast kita hitung, apakah bernilai lebih dari nol, bila iya maka block program akan mengisi variable global listbroadcast menjadi dblistbroadcast

yang kemudiana akan di gunakan dalam aplikasi nanti nya,Fungsi dari length adalah menghitung panjang karakter yang terkadung dalam sebuah variable, dalam kasus ini maka berfungsi menghitung berapa panjang karakter yang terdapat dalam variable dblistbroadcast dan hasil nya akan seperti gambar di bawah ini :

Menampilkan setiap nomor tlp yang ada di listbroadcast dengan menggunakan prosedure

Nah sekarang bagaimana cara nya menampilkan nomor anggota genk yang sudah terdaftar di dalam aplikasi, sebetulnya ada cara yang gampang, namun kali ini menggunakan prosdur sekalian belajar bagaimana cara nya memanfaatkan block procedure, biar agal pinteran dikit.. hwhwhwhw

tipe block Drawer tujuan
procedure (“tampilkanbroadcast”) Definitions Membuat prosedure
set ListLabel.Text to ListLabel Menset yang akan di tampilkan listlabel
text (“\n”) Text Baris baru
foreach Control Memproses tiap record / nomor tlp yang ada
name nomortlp di foreach Berfungsi memberikan nama variable dari tiap nomor tlp yang terkandung di listbroadcast
listbroadcast My Definitions Di dalam for each di fungsikan sebagai sumber data list
Set ListLabel.Text to ListLabel d dlm foreaceh Menset kembali list label yang ada
make text Text Membuat text dari beberapa text / block
text (“\n”) Text newline character so that next number is on next line
value nomortlp My Definitions Variable Nomortlp yang sedang di proses di foreach

Tampilan procedure nya akan menjadi seperti ini

Dan masukan block prosedur tampilkanbroadcast kedalam screen1.initialize, hasilnya akan menjadi seperti di bawah ini :

Cara kerja nya seperti ini

Saat screen satu di proses dan kondisi if terpenuhi, maka procedure tampilkanbroadcast akan di aktifkan, dan saat itu argument/block yang berada di dalam procedure tampilkanbroadcast ,akan di exekusi dan menampilkan daftar nomor tlp yang sudah tercatat

checkbox

Nah sekarang tinggal coba gimana cara nya biar aplikasi nya bias kita setting untuk jalan atau engga, kali ini kita gunakan component check box, untuk block nya kita gunakan checkbox1.change yang akan bereaksi saat nilai dari checkbox berubah, dan di dalam nya kita masukan block ifelse dengan menggunakan checkbox1.value sebagai kondisi nya,bila checkbox bernilai true ato bendar, maka akan di lakukan set sms.receivingenable to true, yang berfungsi menset menerima sms menjadi aktif ato berfungsi, dan jika kondisi if bernilai false maka akan menjalan kan block set sms.receivingenable to false yang berefungsi mendisable penerimaan sms, susunan block nya seperti di bawah ini

Cara kerja nya saat aplikasi menerima sms dia akan secara otomatis mengirimkan sms nya ke nomor pengirim sms, namun bila kita ingin menstop response sms yang masuk cukup menekan tombol checkbox nya agar aplikasi tidak bereaksi atas sms yang masuk lagi.

Hasil akhir block editor nya seperti ini

nah sekarang udah jadi tinggal di tes, coba klik bagian pojok kanan atas pada block editor, kemudian klik connect to the phone untuk menjalankan nya pada handphone, kemudian coba kirim sms ke nomor tlp anda, dan lihat apa yang terjadi…

Pas saya coba saya ketik tes, saya langsung mendapat sms beruntun ga abis abis, dan pulsa sekarat gara2 sms nya terkirim secara otomatis berkali kali, hwhwhwhw,,,,

Untuk mengatasi hal ini coba di unchek untuk menghentikan aplikasi, dan sms akan bernti pula mengirimkan aplikasi nya

Saran saya jangan sekali kali mencoba mengirimkan sms k nomor sendiri dengan kondisi aplikasi aktif, kecuali anda punya pulsa banyak, soalnya akan terjadi looping tak hingga, saat anda mengirimkan sms, maka aplikasi otomatis akan meresponse nya dengan cara mengirim ke nomor pengirim dan berhubung nomor pengirim nya adalah kita sendiri maka kita akan menerima reply otomatis dari aplikasi dan aplikasi membaca kembali ada sms masuk dan akhirnya terjadi looping  tak hingga, sehingga bakalan ngabisin pulas kita, tapi klo pulsa nya banyak juga lebih baik jangan di buang gitu aja, ada baik nya transfer ke saya, itung2 ganttiin pulsa saya yang abis bwt ngetes aplikasi ini .. huhuhu…

Kesimpulan nya

  • Ternyata kalo mw nyontek itu ga gampang
  • Aplikasi ini mengajarkan anda untuk mencontek cerdas, tukang nyontek ga harus bodoh, tapi juga pintar
  • Tinydb bisa di gunakan untuk menyimpan variable/data yang tidak akan terhapus walaupun aplikasi dimatikan
  • tinydb tidak bisa di akses aplikasi lain
  • prosedure merupakan pengemasan sebuah logika program menjadi sebuah block baru untuk menjalankan perintah tertentu
  • untuk mengetes aplikasi ini sebaiknya menggunakan bantuan dari nomor / handphone yang berbeda

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

NUJABES – IMAJINARY

%d bloggers like this: