Friday 14 March 2014

Pembedahan Aplikasi SimSimi dan Peter Answer

Kamu tau SimSimi kan? Iya, itu loh aplikasi buat jones ngomong ama robot
Kalo Peter Answer? Gak tau?? Hmm emang wajar sih. Itu maenan yang ngetren sebelum ada SimSimi dan udah lama banget ditinggalin orang. Tapi inti aplikasinya sama ko. Langsung aja deh kita mulai. Cekitout!

Pembedahan SimSimi dan Peter Answer


Sebenernya inti dari aplikasi SimSimi dan Peter Answer sama aja, yaitu pengoperan parameter. Bedanya kalo SimSimi parameter yang dioper adalah parameter inputan. Sedangkan pada Peter Answer parameter inputan akan dioper ke metode selection dalam program. Jadi pada Peter Answer jawaban dari semua kemungkinan pertanyaan udah disediakan oleh si pembuat aplikasi dan disimpen

Tadi saya coba ngobrol dengan si Simi pake pertanyaan sama kaya gambar di atas. Ternyata jawaban yang dikasih cukup menarik. Dia ngasih 3 jawaban yang berbeda pada pertanyaan yang sama.
Spoiler for Screenshot:

*anjrit banget lah, gw dibilang jones sama robot

Kemudian saya coba tes dengan sembarang inputan keyboard yang berbeda. Jawaban yang dikasih untuk ini ternyata beda2 dan bahkan ada yang dia belom tau dan minta diajarin!
Spoiler for Screenshot:
Kenapa hal itu bisa terjadi? Di sinilah letak triknya. Saat dia minta diajarkan, itu artinya input baru tsb belum ada di database parameter dia. Meskipun saya salut karena berhasil ngehit 3 inputan random yang udah pernah dihit orang. Langka banget loh itu! Kemungkinannya cuma 1 dari berjuta atau bahkan bermilyar kemungkinan!

Kemudian saya coba untuk mengajarkan si Simi dan langsung mengetesnya.
Spoiler for Screenshot mengajarkan:
Spoiler for Screenshot jawaban untuk kata baru:
Di situ terlihat bahwa parameter jawaban yang saya ajarkan kepadanya langsung muncul. Itu berarti selain mengeluarkan output parameter, dia juga memakai percabangan sama seperti pembuatan program toko kue kemarin.

Sekarang kebayang kan gimana bentuknya? Atau masih bingung juga? Soklah tak kasih contoh pake SimSimi versi saya nih.
Spoiler for Skenario program:
Simi versi saya akan saya beri nama SimiKW. SimiKW akan memberikan sebuah kalimat dan user akan menjawabnya, response SimiKW akan disesuaikan dengan jawaban User.

Berikut sequence yang dilakukan oleh SimiKW:
Spoiler for Sequence SimiKW:
SimiKW : haloo.. namanya siapa nih?
You : [Nama User]

>>> Setelah itu jawaban SimiKW akan disesuaikan :
Jika panjang [Nama User] lebih dari 10 huruf :
        SimiKW : panjang juga nih namanya, lebih dari 10 huruf hehe
Jika panjang [Nama User] kurang dari 10 huruf :
        SimiKW : hemm.. Pendek juga ya nama kamu..
SimiKW : anw, salam kenal ya + [Nama User]

[Nama User] : [Jawaban Terserah]
SimiKW : umurnya berapa nih?
[Nama User] : [Umur]

>>> Setelah itu jawaban SimiKW akan disesuaikan :
Jika [Umur] lebih dari sama dengan 20 :
        SimiKW : wah udah 20-an nih yee..
Jika [Umur] kurang dari 20 :
        SimiKW : hihi. masih muda nih yee

[Nama User] : [Jawaban Terserah]

SimiKW : [Nama User] ini cowok/cewek kalo boleh tau?
[Nama User] : [Jenis Kelamin]

>>> Setelah itu jawaban SimiKW akan disesuaikan :
Jika [Jenis Kelamin] adalah "cowok"
        SimiKW : oh cowok, udah punya cewek belom nih? hahaha
Jika [Jenis Kelamin] adalah "cewek"
        SimiKW : ohh i see, cowoknya mana nih, gak dibawa? ;)

[Nama User] : [Jawaban Terserah]

SimiKW : wahhh hahaha i see i see.. oke deh kalau gitu, yang semangat ya belajarnya [Nama User] biar pinter kaya SimiKW :D
[Nama User] : [Jawaban Penutup]

SimiKW : Oke deh kalo gitu SimiKW pamit dulu yaa. Udah mau hujan nih, jemuran lupa diangkat. hehe XD
SimiKW : Dadaah~

Kodingannya kira2 akan jadi seperti ini:
Spoiler for Kodingannya:
#include <stdio.h>
#include <string.h>

int main()
{
    int umur;
    char nama[50];
    char jk[9];

    printf("+===============+\n");
    printf("|SimiKW Versi KW|\n");
    printf("+===============+\n\n");

    printf("SimiKW : haloo.. namanya siapa nih?\n");
    printf("You : ");
    scanf("%[^\n]", nama);fflush(stdin);

    printf("\n");
    if(strlen(nama)>10)
    {
        printf("SimiKW : panjang juga nih namanya, lebih dari 10 huruf hehe\n");
    }
    else
    {
        printf("SimiKW : hemm.. Pendek juga ya nama kamu..\n");
    }
   
    printf("SimiKW : anw, salam kenal ya %s\n\n", nama);
   
    printf("%s : ", nama);
    getchar();
   
    printf("\nSimiKW : umurnya berapa nih?\n");
    printf("%s : ", nama);
    scanf("%d", &umur);fflush(stdin);

    if(umur>=20)
    {
        printf("SimiKW : wah udah 20-an nih yee..\n");
    }
    else
    {
        printf("SimiKW : hihi. masih muda nih yee\n");
    }
    printf("%s : ", nama);
    getchar();
   
    printf("\nSimiKW : %s ini cowok/cewek kalo boleh tau?\n", nama);
    printf("%s : ", nama);
    scanf("%s", jk);fflush(stdin);

    if(strcmp(jk, "cowok" )==0)
    {
        printf("SimiKW : oh cowok, udah punya cewek belom nih? hahaha\n");
    }
    else if(strcmp(jk, "cewek" )==0)
    {
        printf("SimiKW : ohh i see, cowoknya mana nih, gak dibawa? ;)\n");
    }
    else
    {
        printf("SimiKW : iih bencong amit2 deh ~.~\n");
    }

    printf("%s : ", nama);
    getchar();

    printf("\nSimiKW : wahhh hahaha i see i see.. oke deh kalau gitu, yang semangat ya belajarnya %s biar pinter kaya SimiKW :D\n", nama);
    printf("%s : ", nama);
    getchar();
   
    printf("\nSimiKW : Oke deh kalo gitu SimiKW pamit dulu yaa. Udah mau hujan nih, jemuran lupa diangkat. hehe XD\n");
    getchar();

    printf("SimiKW : Dadaah~");
   
    getchar();
    return 0;
}

Itulah rahasia dari aplikasi SimSimi. Untuk Peter Answer kamu coba bikin sendiri aja ya.
Tapi intinya sama ko. Mainkan logikamu dalam pembuatannya!

Sekarang kamu tau kan isi dari kedua aplikasi tsb kaya gimana? Kaku dan kerasa seperti penipuan kan? Nah, sekarang udah saatnya kamu keluar kamar dan berinteraksi dengan orang lain yang punya beragam ekspresi netral. Selain membebaskan kamu dari rasa sepi dan bosen, kamu juga bisa dapet temen nyata (bukan temen imajinasi ), atau bahkan malah dapet pacar. Ingat, segala sesuatu yang nyata lebih baik daripada yang ga nyata.

Oke deh sampai jumpa di tutorial selanjutnya!
Mission Possible 3: cobalah untuk membuat aplikasi SimSimi dan Peter Answer versimu sendiri

No comments:

Post a Comment