14
Nov

Jigsaw

Written by admin


Pada tutorial yang lalu kita pernah membuat sebuah puzzle drag n drop atau dasar dari jigsaw puzzle. Tetapi jika anda menggunakan script pada tutorial tersebut, tentunya script yang anda tulis akan menjadi panjang jika kepingan yang anda buat banyak. Oleh karena itu, ditutorial ini kami membuat versi dengan script yang lebih pendek. Bila anda tertarik untuk membuat sebuah game semacam jigsaw silahkan gunakan tutorial berikut.

1. Buatlah sebuah flash document.

2. Buatlah beberapa objek seperti gambar dibawah ini :

3. Tekan Ctrl+R dan pada panel yang muncul cari gambar yang diinginkan kemudian tekan Open.

4. Seleksi gambar yang baru dimport tadi, kemudian tekan Ctrl+B untuk membuat gambar bitmap menjadi shape.

5. Jika sudah gambarlah garis pada gambar tadi. Buatlah garis yang membuat gambar tadi menjadi berkeping-keping.

6. Pada tutorial ini, kami membagi gambarnya menjadi 4 keping dengan garis sebagai berikut :

7. Seleksi kepingan pertama (garis tidak perlu diseleksi), kemudian tekan F8. Pada panel yang muncul ketikkan Bagian1 pada kotak Name, pilih MovieClip sebagai Typenya, lalu tekan Ok.

8. Seleksi movie clip Bagian1 kemudian tekan Ctrl+F3. Pada panel properties yang muncul ketikkan Bagian1 pada kotak Instance Name.

9. Seleksi kepingan kedua (garis tidak perlu diseleksi), kemudian tekan F8. Pada panel yang muncul ketikkan Bagian2 pada kotak Name, pilih MovieClip sebagai Typenya, lalu tekan Ok.

10. Seleksi movie clip Bagian2 dan pada panel properties ketikkan Bagian2 pada kotak Instance Name.

11. Seleksi kepingan ketiga (garis tidak perlu diseleksi), kemudian tekan F8. Pada panel yang muncul ketikkan Bagian3 pada kotak Name, pilih MovieClip sebagai Typenya, lalu tekan Ok.

12. Seleksi movie clip Bagian3 dan pada panel properties ketikkan Bagian3 pada kotak Instance Name.

13. Seleksi kepingan keempat (garis tidak perlu diseleksi), kemudian tekan F8. Pada panel yang muncul ketikkan Bagian4 pada kotak Name, pilih MovieClip sebagai Typenya, lalu tekan Ok.

14. Seleksi movie clip Bagian4 dan pada panel properties ketikkan Bagian4 pada kotak Instance Name.

15. Jika semua kepingan sudah menjadi movie clip, hapus garis-garis yang digunakan untuk membuat kepingan tadi.

16. Letakkan keempat kepingan tadi seperti gambar dibawah ini :

17. Jika seandainya kotak yang dibuat pada Tutorial Nomor 2 terlalu kecil, anda dapat membesarkannya.

18. Seleksi keempat keping movie clip kemudian tekan Ctrl+C untuk mengcopynya.

19. Jika sudah tekan Ctrl+V untuk menduplikasinya. Letakkan kepingan hasil duplikasi sepeti gambar dibawah ini :

20. Pastikan anda masih menyeleksi kepingan hasil duplikasi. Lalu pada panel propeties anda ganti Color menjadi Alpha 10%.

21. Jika sudah, seleksi salah satu kepingan hasil duplikasi kemudian pada panel properties tambahkan kata Target pada kotak instance name.

22. Lakukan Tutorial Nomor 21 pada ketiga keping duplikasi lainnya.

23. Sehingga nantinya Instance Name pada masing-masing keping duplikasi menjadi menjadi TargetBagian1, TargetBagian2, TargetBagian3, TargetBagian4

24. Sekarang acak kepingan pada keping asli seperti gambar dibawah ini :

25. Buatlah sebuah dynamic text. Seleksi dynamic text tersebut kemudian pada panel properties anda ketikkan pesan di kotak Var.

26. Letakkan dynamic text tadi seperti gambar dibawah ini :

27. Klik frame 1 dan tekan F9. Pada panel actions yang muncul masukkan script berikut :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//jumlah kepingan puzzle
//sesuaikan nilai variable jumlahBagian dengan jumlah kepingan yang anda buat
jumlahBagian = 4;
for (i=1; i<=jumlahBagian; i++) {
	_root["Bagian"+i].id = i;
	//bila kepingan puzzle ditekan
	_root["Bagian"+i].onPress = function() {
		//buat posisi kepingan berada di paling atas
		this.swapDepths(_root.getNextHighestDepth());
		//kepingan dapat didrag
		startDrag(this);
	};
	//bila kepingan tidak ditekan
	_root["Bagian"+i].onRelease = _root["Bagian"+i].onReleaseOutside=function () {
		//kepingan tidak dapat ditekan
		stopDrag();
		target_mc = _root["TargetBagian"+this.id]
		//jika kepingan berada di sekitar target
		if (eval(this._droptarget) == target_mc) {
			//letakan kepingan di target
			this._x = target_mc._x;
			this._y = target_mc._y;
			//kepingan tidak bisa ditekan
			this.enabled = false;
			//kurangi variable jumlahBagian
			jumlahBagian--
			//jika variable jumlahBagian bernilai 0
			if (jumlahBagian == 0) {
				//tampilkan tulisan Puzzle Komplit pada dynamic text pesan
				pesan = "Puzzle Komplit";
			}
		}
	};
}

28. Tekan Ctrl+Enter untuk melihat hasilnya.

Letakanlah kepingan-kepingan puzzle pada tempatnya

Sourcenya dapat di download di sini

 





Apakah tutorial di atas menarik atau bermanfaat bagi anda? Bantulah Warung Flash agar tetap ada dan memberikan tutorial-tutorial yang lebih bagus dan bermanfaat lagi. Silahkan klik link berikut ini untuk lebih jelasnya : Bantu Warung Flash



Bookmark and Share

60 Responses to “Jigsaw”

  1. Herwin Says:

    mantappp pak.. kereeennn… :yeye:

  2. Elang Says:

    Gan, bagaimana cara/ tambah scriptnya bila gambarnya bisa sekalian dibolak-balik. Nuwun

  3. koodisk Says:

    mas/mb, saya mau tanya berhubungan dengan hitTest, knapa ya kok kalau pemainnya sudah menabrak musuh,fungsi yang lain atau berikutnya tidak bisa jalan, misal fungsi gotoAndStop..
    terima kasih..

  4. Christofher Says:

    gan knapa jigsaw ini klo dimasukkan di web yg dibuat dengan flash puzzlenya g hilang tetapi muncul terus ??

  5. Christofher Says:

    gan req tutorial yg gamenya keren yg lain dnk buat bljr :hope: :I: ;))

  6. TITAN Says:

    KEREN ABIESZ UM……………..!!!!!!!!!!!!!!!!!!!!!!!!

    Minta tutorial game komplit……..

  7. mas mas Says:

    bang admin minta totorial game coloring book yang klo jadi bisa lansung di print makasih ane tunggu buat sarapan terimakasih
    <:-P :respect: :respect:

  8. gray Says:

    bang admin,,yang ane qo gmbar nya gx bsa d tarik ya,,,salah nya dri mana kalau gtu…

  9. idrep Says:

    gan kalo script buat karakter bisa menembak gimana ya :-?

  10. ucit Says:

    mas admin,gmna sih caranya supaya puzzle’y ganti dgn puzzle baru setelah puzzle pertamanya komplit ?
    Mohon bantuannya :)

  11. rizki Says:

    mas admin. gmn caranya kalo kita pencet huruf “S” di keyboard pindah frame.action scriptnya kaya gmn!! :-? :-?

  12. Irhas Says:

    mas admin .. saya mau tanya gimana caranya , menggabungkan 2 game ..

    Misal game 1 dan game 2 menyatu , kalau mau ke game 1 misal di klik next ?? Tu gimana caranya ya ?? :-?

  13. jul Says:

    Hai.. warung flash..
    BISA NGGAK BUAT BENDA YANG BERGERAK KEATAS LALU BALIK KEBAWAH..

    JADI GINI, contohnya…

    ADA ALFABET YANG BERBARIS URUT DARI A-Z..
    LALU SAAT DI KLIK HURUF “A” , MAKA HURUF “A” ITU KEATAS..
    LALU SAAT HURUF “B” DI KLIK. HURUF “A” KEBAWAH DAN HURUF “B” KEATAS.. BEGITU SETERUSNYA SAMPAI SELESAI…
    saya buatnya bingung pake action_screep.. hehe …

    boleh dung dikirim ke email saya::
    bauunaga@gmail.com
    terimakasih :)

  14. Miftah Alfian Syah Says:

    Wiihh,,, kereen… 8->

  15. prabha Says:

    kk, kok ada yang error kayak gini

    **Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 3: Statement must appear within on/onClipEvent handler
    jumlahBagian = 4;

    **Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 4: Statement must appear within on/onClipEvent handler
    for (i=1; i<=jumlahBagian; i++) {

    Total ActionScript Errors: 2 Reported Errors: 2, mohon penjelasannya saya masih newbie :D

  16. bagus Says:

    bang admin tolong doank .. aku tidak bisa memotong nya ,
    untuk yg nomer 7 yang kurang ngerti /stress 8->
    7. Seleksi kepingan pertama (garis tidak perlu diseleksi), kemudian tekan F8. Pada panel yang muncul ketikkan Bagian1 pada kotak Name, pilih MovieClip sebagai Typenya, lalu tekan Ok.
    di bagian ini aku yang tidak bisa.

  17. pika Says:

    Waaah, keren !!!

    kalau saya, tulisan pas puzzle beres ga tampil bang..

  18. mukmuk Says:

    saya nyoba dan berhasil tapi untuk AS2 tombol Reset belum bisa mohon pencerahannya trimakasih

  19. Irham Says:

    wahh bagus nihh flash nya bisa interaktif

  20. tri wibowo Says:

    ane gak bisa di drag ini bang admiiiiinnnnn :(( :(( :((

  21. ronny Says:

    mas
    mau nanya nih,gmn ya buat menu yang kaya di ipad gitu…
    pke kaya touch screen gitu lahjadi memilih menu bukan statis tampil kaya biasa.

  22. neeni Says:

    mas, klo buat puzle mengurutkan angka yang digeser2 gmna mas??? mohon bantuannya.

  23. coki saputra Says:

    mas admin, mau minta tolong,
    jika puzzlenya di drag ke target, dan apabila sudah tepat pada target, biar ada notif suaranya, itu gmn caranya ?

    jadi ketika puzzlenya sudah dicocokkan maka ada keluar suaranya, mohon bantuannya dengan sangat, terima kasih

  24. Gilang PJ Says:

    gan kenapa gambar target puzzle stelah jadi ga ilang2 ? selalu ada disetiap frame kalo udah jadi? mohon infonya gan ASAP ya ane deadline bbrp hr lg… :hope:

  25. djooo Says:

    mas bro ajarin buat games monopoly donk?

  26. gamgumal Says:

    ko pesannya muncul duluan ya sebelum gamenya di mulai?
    mohon bantuannya /berkaca

  27. andreas Says:

    Mas, ada tutorial ttg gini ga?

    Misal setelah menyelesaikan puzzle pertama, dia akan lanjut ke level berikutnya.

    Trims ya

  28. Andini Says:

    hatur thank you buat semua tutorialnya ..
    sangat membantu sekali untuk tugas saya :D

  29. Irman Says:

    mntapp..

  30. hario Says:

    bg admin, mau tanya nih
    biasanya kan kalo mau menggerakan objek di flash masih menggunakan tombol keyboard up, down, left and right.
    nah, itu kalo d jalankan d layar touchscren kan g bs gerak bg admin.
    nah, pertanyaan saya bisa g kode2 script untuk menggerakan sebuah objek yg menggunakan tombol keyboard diganti dengan tombol yg dibuat sndiri di flash,?
    tolong bantuannya bg admin, berikan contohnya
    ^^

  31. Medibatam-Flash Says:

    Keren bangat tutorialnya mas, saya mau praktekin dulu ya. Saya tunggu tutorial flash lainya. Nanti saya mampir lagi ke sini. Salam kenal ya…. :peace: ;)

  32. A yusuf Says:

    Master.. saya ada program di penambahan kondisi,
    ex: saya memakai kondisi if pada skrip puzle,jumlah puzle yang sy buat ada 4 persis diatas. tpi scrip yang saya ikuti berbeda..
    xawal3 = satu._x;
    yawal3 = satu._y;
    xawal4 = dua._x;
    yawal4 = dua._y;
    xawal5 = tiga._x;
    yawal5 = tiga._y;
    xawal6 = empat._x;
    yawal6 = empat._y;
    animasi_jalan = false;
    onEnterFrame = function () {
    if (benar = 4){
    ulang._visible= true;
    }
    if (animasi_jalan) {
    _root.satu.enabled = false;
    _root.dua.enabled = false;
    _root.empat.enabled = false;
    _root.tiga.enabled = false;
    } else {
    _root.satu.enabled = true;
    _root.dua.enabled = true;
    _root.empat.enabled = true;
    _root.tiga.enabled = true;
    }
    };

    satu.onPress = function() {
    this.startDrag();
    this.swapDepths(1);
    };
    satu.onRelease = function() {
    this.stopDrag();
    if (eval(this._droptarget) == satu_target) {
    animasi_jalan = true;
    _root.buah.buah2.benar +=5;
    this.enabled = false;
    this._visible = false;
    _root.buah.buah2.buahpisang.satu_target._alpha = 100;
    animasi1 = attachMovie(“animasi1”, “animasi1″+_root.getNextHighestDepth(), _root.getNextHighestDepth(), {_x:Stage.height/1, _y:Stage.width/4});
    animasi1.onEnterFrame = function() {
    if (this._currentframe == 20) {
    removeMovieClip(this);
    animasi_jalan = false;
    }
    };
    } else {
    this._x = xawal3;
    this._y = yawal3;
    }
    };
    satu.onReleaseOutside = function() {
    this.stopDrag();
    this._x = xawal3;
    this._y = yawal3;
    };
    dua.onPress = function() {
    this.startDrag();
    this.swapDepths(1);
    };
    dua.onRelease = function() {
    this.stopDrag();
    if (eval(this._droptarget) == dua_target) {
    animasi_jalan = true;
    _root.buah.buah2.benar +=5;
    this.enabled = false;
    this._visible = false;
    _root.buah.buah2.buahpisang.dua_target._alpha = 100;
    animasi1 = attachMovie(“animasi1”, “animasi1″+_root.getNextHighestDepth(), _root.getNextHighestDepth(), {_x:Stage.height/1, _y:Stage.width/4});
    animasi1.onEnterFrame = function() {
    if (this._currentframe == 20) {
    removeMovieClip(this);
    animasi_jalan = false;
    }
    };
    } else {
    this._x = xawal4;
    this._y = yawal4;
    }
    };
    dua.onReleaseOutside = function() {
    this.stopDrag();
    this._x = xawal4;
    this._y = yawal4;
    };
    empat.onPress = function() {
    this.startDrag();
    this.swapDepths(1);
    };
    empat.onRelease = function() {
    this.stopDrag();
    if (eval(this._droptarget) == empat_target) {
    animasi_jalan = true;
    _root.buah.buah2.benar +=5;
    this.enabled = false;
    this._visible = false;
    _root.buah.buah2.buahpisang.empat_target._alpha = 100;
    animasi1 = attachMovie(“animasi1”, “animasi1″+_root.getNextHighestDepth(), _root.getNextHighestDepth(), {_x:Stage.height/1, _y:Stage.width/4});
    animasi1.onEnterFrame = function() {
    if (this._currentframe == 20) {
    removeMovieClip(this);
    animasi_jalan = false;
    }
    };
    } else {
    this._x = xawal6;
    this._y = yawal6;
    }
    };
    empat.onReleaseOutside = function() {
    this.stopDrag();
    this._x = xawal6;
    this._y = yawal6;
    };
    tiga.onPress = function() {
    this.startDrag();
    this.swapDepths(1);
    };
    tiga.onRelease = function() {
    this.stopDrag();
    if (eval(this._droptarget) == tiga_target) {
    animasi_jalan = true;
    _root.buah.buah2.benar +=5;
    this.enabled = false;
    this._visible = false;
    _root.buah.buah2.buahpisang.tiga_target._alpha = 100;
    animasi1 = attachMovie(“animasi1”, “animasi1″+_root.getNextHighestDepth(), _root.getNextHighestDepth(), {_x:Stage.height/1, _y:Stage.width/4});
    if (animasi_jalan){
    pesan=”Berhasil”;
    efek = new Sound();
    efek.attachSound(“berhasil”);
    efek.start(0,1);
    }
    animasi1.onEnterFrame = function() {
    if (this._currentframe == 20) {
    removeMovieClip(this);
    animasi_jalan = false;
    }
    };
    } else {
    this._x = xawal5;
    this._y = yawal5;
    }
    };
    tiga.onReleaseOutside = function() {
    this.stopDrag();
    this._x = xawal5;
    this._y = yawal5;
    };
    // yang ingin saya tanyakan bagaimana kita membuat pernyataan jiga puzle yang disusun menampilkan pesan berhasil, apa yang di ubah atau ditambahkan dalam kasus ini????????…thank sebelumnya. 8-> :respect:

  33. sekarrr Says:

    miminn….
    games monopoly pake flash dong… :respect:

  34. arifff Says:

    admin n agan2 mohon bantuanya, saya udah praktekin game diatas buat pelengkap cd interaktif. pas saya pindah halaman ke frame lain ko kepingan puzzlenya masih ada yah, gmana solusinya nih? :-SS

  35. admin Says:

    iya karena pengaruh swapDepth
    jika puzzle hanya akan ditampilkan sekali coba tambahkan script beikut sebelum pindah frame

    1
    2
    3
    4
    
    for (j=1; j<=jumlahBagian; j++) {
         _root["Bagian"+j].x=-200
         _root["Bagian"+j].y=-200
    }

    script diatas akan membuat seluruh kepingan berada pada posisi x -200 dan y -200

  36. fahmi Says:

    admin & agan2 mohon bantuannya, saya lgi buat multimedia interaktif untuk materi pembelajaran,
    mau tanya gimana ya masukkin flash animasi yang udah jadi ke materi multimedia yang akan saya buat… mohon bantuannya …

  37. jhon Says:

    mas klu boleh tau sebelum pindah frame dimna ya mas.? :(( :((

  38. jhon Says:

    mas admin sebelum pindah frame di buton ya?

    kok g isa ya admin,. tq sebelumnya., =DV

  39. cups Says:

    min mau tanya dong,
    cara mengulang scene gmn ya
    nuhun

  40. hera Says:

    kalo mau buat kepinganya enam bagian gimana ya?
    scriptnya sudah saya ganti tapi tetep nggak bisa

  41. vovi Says:

    mohon bantuan min,
    :hope:
    cara ngasih batas waktu pada games puzlle gimana min?
    pasnwaktunya 0 pemain tau kalah atau menangnya??
    makasih min,, :)

  42. Alsa Says:

    Min, kalau game ini mau ditambahin batas waktu, skor, dan jika skor tertentu naik level gimana ya? Level berikutnya jigsaw juga dengan gambar beda dan potongan gambarnya lebih rumit. Kalau belum sampai skor tersebut, hanya bisa mainkan lagi. Ajarin dong.. deadline min.. Please :respect:

  43. feri ozora Says:

    Gan bagaimana mengatasi puzzle yg masih muncul ke halaman ke 2?
    Utk action
    for (j=1; j<=jumlahBagian; j++) {
    _root["Bagian"+j].x=-200
    _root["Bagian"+j].y=-200
    }
    ditaruh sebelah mana apakah action frame atau dibutton?tlg dijelaskan dgn rinci…Plis gan bwt TA. Matur Nuwun :respect: :respect: :respect: :respect: :respect:

  44. fahrurozi Says:

    gan saya mau nanya, game yang saya buat sedikit error, game saya ini adalah game bertype tebak gambar, nah di saat memulai permainan game tidak mengalami eror/kesalahan, jika game over maka pada game akan tampil perintah “main lagi”, nah .. saat game memulai untuk kedua kalinya maka….. walaupun jawaban yang dimasukkan benar, tapi game akan tetap mengurangi “toleransi kesalahan”….
    jadi error ini hanya terjadi jika megalami pengulangan\”main lagi”…
    tolong share ilmunya gan :hope: , terimakasih

  45. yeni Says:

    kenapa yah… tiap di break apart objek bitmapnya hilang terus?

  46. reno Says:

    mantap info game terbaru kirim lewwat email ja :D :-? :) :((

  47. agung fajar riyadi Says:

    min ada ga game yang berbasis edukasi? pembelajaran dan mewarnai object?

  48. Wandy Says:

    gan klo puzzlenya udh nyambung semua,,coding di atas ttep gbsa :(( msh ada puzzlena di frame berikutnya :-SS help

  49. billy Says:

    Minnnn.a…hellppp itu script diatas ditaro dimana yahhhh
    Soalnya masih sama setiap pindah frame masih ada aja gambarnya

  50. budianto Says:

    hallo, kk..
    tolong bantu ane..
    ane ada lgi binggung buat provinsi dan kota.
    ane buat provinsi dan kota saling berhubungan jika kalau ane pilih provinsi maka dari kota akan muncul kota sesuai yg dipilih dari provinsi.
    tapi enggk tahju kenapa pnya ane kalau pilih sulawesi barat selalu lgsg mncl error..
    minta pencerahan, gan

    tiProvName.addEventListener(Event.CHANGE, ChangeP);
    function ChangeP(e:Event)
    {
    trace(MovieClip(parent).SCity[tiProvName.selectedItem.label]);
    tiCityName.removeAll()
    var val_ = MovieClip(parent).SCity[tiProvName.selectedItem.label].split(“,”);
    for(var k=0; k<val_.length; k++){
    tiCityName.addItem({label:val_[k], val:val_[k]});
    tiCityName.selectedIndex = 0;
    }

    }

    ini peringatan error nya
    TypeError: Error #1010: A term is undefined and has no properties.
    at login_fla::MCMenuList_2/ChangeP()[login_fla.MCMenuList_2::frame2:114]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at fl.controls::ComboBox/onListChange()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at fl.controls::SelectableList/handleCellRendererClick()[Z:\cas2.inn\TXH-afa\android\fl\controls\SelectableList.as:446]

  51. ami Says:

    Admin saya punya aplikasi file .swf ketika dibuka di browser tampilan muncul tapi tidak bisa jalan drag n dropnya, sedangkan dibuka di flash player jalan.. kenapa ya padahal file .swf yang lain jalan di browser

  52. ami Says:

    for (j=1; j<=jumlahBagian; j++) {
    _root["Bagian"+j].x=-200
    _root["Bagian"+j].y=-200
    }

    itu di tambahinnya disebelah mana gan?

  53. Fiki Says:

    admin gimana caranya supaya puzzle tersebut berhenti kalo kita pindah frame, ga ngikutin mulu?

  54. Abil Laguliga Says:

    ahhh saya bikin 9 bagian script nya bedbeda bisa di buatin gak aku gak ngerti bikin script nya 8->

  55. Marsha Says:

    Min kalo untuk macromedia flash 8 gimana ya scriptnya? soalnya ane udah coba copas tapi ga bisa running puzzlenya ga berpindah

  56. widya ovi Says:

    Gan.. Kalo buat game kayak semacam pukul kecoa gitu di flash cs6 yg adobe air gimana ya?? Tlong bantuan scriptnya donk..saya udh coba dr tutorial yg pkul tikus tp error mslh root2 gt.. Mhon bantuannya ya.. Pliss

  57. andri Says:

    tes admin…kalo masih aktif nulis, jwab komentar dong…mau nanya2

  58. zizi Says:

    koq udh dimasukin script yg sblm pindah frame tetep gAK bisa y? masih muncul kepingan puzzlenya. mmgnya taronya dmnnya sih script ini?

    for (j=1; j<=jumlahBagian; j++) {
    _root["Bagian"+j].x=-200
    _root["Bagian"+j].y=-200
    }

  59. rian Says:

    kenapa tidak bisa didownload?

  60. amri Says:

    gan kalo part bagian nya lebih dari 4 scriptnya gimana gan ?

Leave a Reply

B-) =DV <:-P ;)) ;) :yeye: :respect: :peace: :p :idea: :hope: :I: :D :-SS :-? :-/ :)) :) :(( 8-> more »

Komentar yang berisi pertanyaan atau request tutorial kemungkinan besar tidak bisa kami jawab dan penuhi. Hal ini dikarenakan kesibukan kami yang padat . Oleh karena itu kami mohon maaf dan pengertiannya.