Persona Intikalia
Tampilkan postingan dengan label script. Tampilkan semua postingan
Tampilkan postingan dengan label script. Tampilkan semua postingan

21 Des 2009

Kusebut Ini Intikali Nomor Sembilan


Secara, tadi pagi adalah hari dimana aku dan kawan-kawanku seangkatan sedang menempuh Ujian Akhir Semester untuk yang pertama kali. Pukul 7.30 tepatnya, aku mengerjakan UAS Algoritma dan Pemrograman. Kami diinstruksikan untuk mengerjakan nomor 8, 9, dan 10 saja. Kalo nambah lagi ya gapapa. Kos cuma disuruh kerjakan minimal 3 soal. Namun, saat aku mengerjakan nomor 9, aku sedikit mengacuhkannya dulu, karena lumayan rumit. Langsung aja aku kerjain yang nomor 10 duluan. Eh, ketika aku ngelanjutin yang nomor 9, waktunya kurang dikit. Akhirnya ga selesai deh.

Setelah itu, pukul 1.00 siang tepatnya, aku UAS Dasar Sistem Telekomunikasi. Wew, aku cuma bisa jawab dikit aja. Ya sisanya aku awur aja. Konon, katanya nilai DST untuk yang mengajar aku itu nilainya dirandom. Hix hix hix ... kayak main dadu aja. Hehehe .... Ganbatte !!!

Seusainya DST, aku pergi ke Mesjid, sholat, lalu pinjem laptop temanku. Mau ngapain? Ya jelas lah ... Mau balas dendam sama yang nomor 9 itu tadi. Eh kebetulan ada temanku, yang dia juga sekelas ma aku, pake bahasa Nusa juga. Eh, langsung aja aku suruh dia nunjukin karyanya, si Intikali No.9 itu pas UAS. Hehehe ... tapi yang dia kerjakan pas UAS tadi ga benar. Wekekekek ... Aku juga malah ga rampung nyelesein si Intikali No.9 itu. Eum ... Kenapa kug aku sebut si Intikali No.9? Yang jelas ga ada alasan khusus kecuali hanya ingin memberikan sebuah perhatian kepada soal yang cukup keren itu tadi.

Setelah diotak-atik akhirnya ketemu juga script-nya. Yatta ne !!! Eheheh .. Trus di rumah aku sempurnakan dikit jadi kayak yang di bawah ini.

Program i9;

float genap(float a){
  if(a < 2){
    return(0);
  }else{
    return((1/a)+(genap(a-2)));
  }
}

float ganjil(float b){
  if (b < 3){
    return(0);
  }else{
    return((1/b)+(ganjil(b-2)));
  }
}

float mod (float besar, kecil){
  if(besar < kecil){
    return(besar);
  }else{
    repeat_until(besar < kecil){
      besar:=besar-kecil;
    }
    return(besar);
  }
}

void main(){
float i, x, n;
float p, g, h;
write('masukkan sebuah nilai: ');
read(n);
x:=mod(n,2);
in_case(){
  n=0  : exit();
  x=0  : {
    g:=genap(n);
    h:=ganjil(n-1);
    }
  else : {
    h:=ganjil(n);
    g:=genap(n-1);
    }
  }
p:=1+g-h;
writeline(p);
}

Program di atas bikin hasil kayak di bawah ini.



dengan fungsi (rumus dasar) -nya seperti di bawah ini






OK lah ... thanks to Amir yang udah minjemin laptopnya buat balas dendam. Thanks juga pada Fatkhul yang turut membantu memberikan inspirasinya. Thanks juga pada yang punya warnet, kalo ga ada dia, ya ga bisa mosting ini. Hehehe ... Thanks juga pada teman-teman yang baca artikel yang ga terlalu penting ini. Tapi, artikel ini bakal jadi penting pas kita ngebutuhin buat belajar atau kerpekan pas ulangan. Heheheh ...

Mari kita gemakan semangat intikali ... Vivat Intikali ... Diete Jinde Diete Ego !!! Hehehe ...

Udah ah ... bye di postinganku yang laennya.

John Terro, Intikalis Kiri.

9 Des 2009

Membuat Pojok Blog Jadi Lebih Menarik Dengan 'Anu'

Sory, ne artikel dari copas di http://trik-tips.blogspot.com/2008/01/membuat-anu-supaya-selalu-berada-di_22.html .... benernya se ga mau copas gitu aja, tapi masalahnya ... ne aku lagi males nulis ... wkwkwk ... n beberapa temanku kasi request tentang hal ini.

Pasti pada bingung nih, apa maksudnya dan kenapa judulnya begitu, sebenarnya aku sendiri juga bingung mau ngasih judul apa untuk trik yang berikut ini. Setelah aku pikir-pikir :t eee.. nggak nemu-nemu juga judul yang cocok, ya udah deh aku asal aja kasih judul gitu. Trus apa maksudnya dari judul tersebut dan trik apa yang akan dibahas?

Segitiga Pascal dan Cari Akar-akar Persamaan Kuadrat dalam Nusaptel

Sebelumnya aku minta maaf atas keterlambatan postingan kali ini ... Heheh ... ne emang udah telat kalee ...

Langsung aja, ne aku kasih script Segitiga Pascalnya. Ne aku dapet dari Ferry.

program segi3pascal;
void main(){
integer x, y, masukan;
integer[100] angka;
angka[1]:=1;
write('masukkan n jumlah baris: ');
read(masukan);
for(x:=1; x<=masukan; x++){
  for(y:=1; y<=masukan; y++){
    write(angka[y],' ');
  }
  for(y:=x+1; y>1; y--){
    angka[y]:=angka[y]+angka[y-1];
}}}

OK, langsung aja ke script selanjutnya, yaitu cara mencari akar-akar persamaan kuadrat.

program akar2;
void main(){
float a,b,c,d,x_satu,x_dua;
writeline('masukkan persamaan kudrat (ax^2+bx+c): ');
write('nilai a: ');
read(a);
write('nilai b: ');
read(b);
write('nilai c: ');
read(c);
d:=b**2-4*a*c;
in_case(){
  d<0 : writeline('akar-akarnya imajiner');
  else : {
    x_satu:=(-b+d**(1/2))/2*a;
    x_dua:=(-b-d**(1/2))/2*a;
    writeline('akar-akarnya adalah: ',x_satu,' dan ',x_dua);
}}}

Namun, perlu diingat ... ternyata dalam Nusa, pangkat harus integer, jadi semua yang diakar 1/2 jadi dianggap pangkat 0, jadinya semua angka jadi 1. Coba aja sendiri. Selamat mencoba!!!

7 Des 2009

Puisi dalam Program

Program NTXR;
//6 Desember 2009, 23.15: dibuat oleh John Terro
//Sebuah puisi dalam programnya
/*
Intikaliku, Oh Perusak Hati !!!

Mungkinkah ini telah ditakdirkan
Walau seakan tak terasa oleh tubuhku
Sebuah virus penggugah hati
Dalam senyum penuh racun
*/
void kerennya(integer[] intikalis){
/*
Tak sama cinta dengan intikali
Namun, intikali itu cinta
Cinta tanpa terbalas
Tak ingin terbalas, tepatnya
*/
integer kiri, kanan, kambing_hitam, ntxr:=length(intikalis);
for(kiri:=1; kiri<=ntxr; kiri++){
  for(kanan:=kiri; kanan<=ntxr; kanan++){
    if(intikalis[kiri]>intikalis[kanan]){
      kambing_hitam:=intikalis[kiri]; // kambing hitam?
      intikalis[kiri]:=intikalis[kanan]; // siapa kambing hitam?
      intikalis[kanan]:=kambing_hitam; // bukan aku !!!
}}}
/*
Walau seakan aku mati
Ya ... aku memang mati
Karena intikali di hati
Pergi !!!
*/
for(kiri:=1; kiri<=ntxr; kiri++){write(intikalis[kiri],' ');}
writeline('');
}
/*
Segera kusadari ...
Aku adalah aku
Walau kamu adalah kamu
Walau kamu tak pernah jadi aku
*/
void main(){
integer[] john;
/*
John ... Ya John
Itulah namaku
Nama seorang revolusioner cinta
Cinta gila, tepatnya
*/
integer punya, lexy;
/*
Lexy?
Siapakah Lexy?
Tahukah kau?
Jangan sok tahu !!!
*/
for(punya:=1; punya<=100; punya++){
  write('masukkan angka ( 0 = keluar ): ');
  read(lexy); // inilah perusah hatiku, ketika aku mengucap "Lexy"
  john[punya]:=lexy;
/*
John punya Lexy?
Sejak kapan?
John tak 'kan punyai Lexy
Meski sampai mati !!!
*/
  in_case(){
    lexy = 0 : break(); // Lihatlah dia telah tiada
    else     : kerennya(john); // John emang keren
/*
Meski telah tiada
John masih tetap ada
Merintis asanya
'Tuk kuasai dunia !!!
*/
}}}



2 Des 2009

MOD dalam Nusa Akhirnya Ketemu Juga

Suatu hari ketika aku bangun dari tidur, ketika tak ada kokokan sang ayam. Eum ... trus ngapain? Tiba-tiba dalam otakku tersirat sebuah ide; gimana ya bikin MOD dalam Nusa pake fungsi. Awalnya, itu bukan suatu hal yang serius aku pikirkan. Tapi, entah mengapa ketika aku lihat salah satu temanku yang sedang otak-atik perograman C; yang notabene dia lagi bikin program KPK dan FPB. Eits... apa itu KPK? KPK itu Komisi Pemberantasan Korupsi ... wkwkwkwk. Kayaknya bukan itu yah ... KPK itu yang bener adalah Kelipatan Perkalian ter-Kecil (agak maksa sih)... heheheh. Langsung aja gue datengi temenku itu -- langsung aku minta file-nya. Lalu aku lihat sebelah kiriku, aku lihat ada temenku yang lainnya lagi otak-atik laptopnya. Dengan segera aku minta tolong booting pake Ubuntu, biar bisa langsung kupuasin hasratku untuk buat MOD dalam Nusa. BTW, MOD itu apa yah? MOD atau yang biasanya disebut MODULO, itu tu semacam pembagian yang hasilnya nanti adalah sisa dari pembagian itu tadi. Misalkan 6 MOD 4 = 2, juga 3 MOD 4 = 3. Yah... coba sendiri aja, kamu cari aja di Wikipedia kalo masih lum paham. Langsung aja, ne aku kasih scriptnya.

Program mod;
integer mod(integer besar, kecil){
if (besar < kecil) {return(besar);}
else{
repeat_until (besar < kecil) {
besar:=besar-kecil;
}
return(besar);
}
}
void main(){
integer big, small, proses;
read (big, small);
proses:= mod(big, small);
writeline(proses);
}

Selanjutnya .... aku kasih contoh penerapan dari penemuan MOD di Nusa, pada aplikasi mencari KPK, FPB, dan bilangan PRIMA. OK, di bawah ini!!!

Program kpk;
integer mod(integer besar, kecil){
if (besar < kecil) {return(besar);}
else{
repeat_until (besar < kecil) {
besar:=besar-kecil;
}
return(besar);
}
}
void main(){
integer bil1, bil2, big, small, i, kambing, hitam;
read(bil1, bil2);
if(bil1>=bil2){
big:=bil1;
small:=bil2;
}else{
big:=bil2;
small:=bil1;
}
i:=1;
repeat_until(kambing=0){
hitam:=big*i;
kambing:=mod(hitam,small);
i++;
}
writeline('kpk = ', hitam);
}


Gimana? Udah di-copy lum? Ni aku kasih yang FPB.


Program fpb;
integer mod(integer besar, kecil){return(besar);}
if (besar < kecil) {
else{
repeat_until (besar < kecil){
besar:=besar-kecil;
}
return(besar);
}
}
void main(){
integer bil1, bil2, big, small, kambing;
read(bil1, bil2);
if(bil1>=bil2){
big:=bil1;
small:=bil2;
}else{
big:=bil2;
small:=bil1;
}
repeat_until(kambing=0){
kambing:=mod(big,small);
big:=small;
in_case(){
kambing=0 : writeline(small);
else : small:=kambing;
}
}
}

Keren ga? Ni di bawah ada cara cari bilangan PRIMA.

Program prima;
integer mod(integer besar, kecil){
    if (besar < kecil) {return(besar);}
    else{
    repeat_until (besar < kecil) {
        besar:=besar-kecil;
    }
    return(besar);
    }
}

void main(){
integer a, bil, c, d, kambing;
write('masukkan = ');
read(bil);
for(a:=bil; a>=1; a--){c:=0;
    for(d:=a; d>=1; d--){kambing:=mod(a,d);
        if(kambing=0){c++;}
    }
    if(c=2){writeline(a);}
}
}

Tapi paham ga ma yang aku tulis di atas? Eum ... paham aja lah. Kalo masih ga paham, u coba aja langsung di Nusanya, dikompail, di-link, trus di-run. Kalo masih ga paham ... privat aja ma aku. Tapi akunya da di Surabaya, hehehe ...

Upss .. oh ya hampir lupa... ni aku bonus tenteng program cara cari faktorial, ne pake teknik rekursif. Apa itu rekursif? Cari aja di Wiki. Hehehe.

Program rekursi;
integer faktorial(integer n){
in_case(){
n < 2 : return(1);
else: return(n*faktorial(n-1));
}
}
void main(){
integer a,g;
writeline('masukkan sebuah angka!');
read(a);
g := faktorial(a);
writeline(a,'! = ',g);
}

29 Nov 2009

Sorting Pake Nusa

Eum ... pernah dengar kata 'sorting'? Sorting = sorotan ga penting? Eheheh ... aku rasa bukan itu yah ... !!!


john


Gambar di atas emang ga ada hubungannya ama materi yang kali ini kita bahas, tapi itu buat keren-kerenan. Heheheh

Sorting itu mengurutkan sesuatu dari yang terkecil maupun dari yang terbesar. Di sini aku membahas masalah bagaimana sih sorting itu dapat berjalan di Nusaptel. Sulit sih. Aku aja ngadopsi dari C++, Pascal, en sempat cari-cari di Wikipedia, apa itu sorting dan macam-macamnya dan gimana cara buatnya pake C++ en Pascal yang nantinya aku terjemahkan pake Nusa.

Kenapa harus pake Nusa? Ya itu lah masalahnya boss ... Aku; tepatnya kelas Algoritma, dan Pemrograman Komputer kuliahku ... kena Nusa, jadi ... semuanya harus pake Nusa. Itulah repotnya kalo pake Nusa, ga bisa copy paste gitu aja dari Google. Tapi harus kreatif sedikit nerjemahinnya ke Nusa dulu boss...

Di bawah ini aku akan ngasih beberapa hasil penerjemahan bahasa C++ ataupun Pascal dalam hal sorting-menyorting menggunakan bahasa Nusa.

Di bawah ini menggunakan cara Bubble Sort:

Program Bubble;
void main()
{
  integer j, smtr;
  integer[5] Angka;
  integer i:=1, count:= length(Angka);
  writeline('masukkan 5 angka');
  read(Angka);
  for(i := 1; i<= count; i++;)
  {
    for(j := i; j <= count; j++;)
    {
      if(Angka[i] > Angka[j])
      {
        smtr := Angka[i];
        Angka[i] := Angka[j];
        Angka[j] := smtr;
      }
    }
  }
  writeline('angka urut');
  for(i:=1; i<= count; i++;)
  { writeline(Angka[i]);}
}

Eum ... simpan aja program di atas pake nama "Bubble.source" (tanpa tanda petik). Compile ... lalu Link, dan jalankan.

Penjelasn singkat: Bubble Sort ini mengurutkan dengan cara membandingkan satu per satu dengan angka setelahnya, jika syarat terpenuhi, maka dia akan menukar angka itu. Gampangnya, perhatikan di bawah ini!!!

Misalkan aku punya angka: 3 4 1 2 6 5
Pengurutan dilakukan dari yang terkecil.
Pertama, angka 3 akan dibandingkan dengan angka 4, kedua angka tersebut ga akan ditukar karena 3 lebih kecil 4.
Kedua, sekarang angka 3 dibandingkan dengan angka 1, kedua angka akan ditukar karena 1 lebih kecil dari 3. Maka kedudukan angka-angka itu menjadi: 1 4 3 2 6 5.
Ketiga, ah aku malas banyak menjelaskan, dan seterusnya deh ... Wkwkwkwk :P

Program selanjutnya adalah sorting dengan cara Insertion Sort. Apa itu? Insertion, kayaknya ada yang dimasuk-masukin gitu boss. Hehehe ... langsung tancap aja ke programnya.

Program Insertion;
void main()
{
  integer[9] Q;
  integer i:=1, count:=length(Q);
  integer j, value;
  writeline('masukkan 9 angka');
  read(Q);
  for(i:=1; i<=count; i++)
  { value:=Q[i];
    j:=i-1;
    while(j>=0 AND Q[j]>value)
    { 
      Q[j+1]:=Q[j];
      j:=j-1; 
    }
    Q[j+1] := value; 
  }
  writeline('hasilnya:');
  for(i:=1; i<=count; i++)
  {
    writeline(Q[i]);
  }
}


Weheheh ... program Insertion Sort-nya ga begitu beda jauh boss. Tapi, tetep aja ada bedanya. Insertion ini menerapkan teori culik-menculik angka, tapi nantinya angka itu bakal dikembalikan kalo ada tebusannya. Hehehe ... kayak penjahat aja ni program.

Kug bisa dikatakan sebuah penculikan sih? Eum ... gini, aku terangin dulu ...

Konon, ketika zaman bahuela ... ditetapkan sekelompok angka, misalkan saja: 5 4 3 7 8 9.
Trus, tiba-tiba ada seorang 'Penyortir Bayaran' namanya "Insertion Sort". Dia akan menculik angka yang notabene angka tersebut ga urut. Hehehe ... kug malah ndongeng nih. Gapapa ya boss ... Barisan 5 4 3 7 8 9 ini dilihat oleh si Insertion. Wah ini ga urut. Harus diurutin. Dengan kejam, si Insertion ini menculik angka 4, dan memasang mata-mata palsu sejenis angka 5, tapi tiruan. Jadi barisan angka tadi berubah menjadi 5 (5) 3 7 8 9. Kemudian barisan angka itu pun menyadari bahwa ada temannya yang diculik oleh si Insertion. Si Insertion mau mengembalikan angka 4 jika angka 5 asli menjadi gantinya. Akhirnya semua sepakat kalo angka 5 menjadi gantinya. Setelah itu barisan angka tersebut menjadi 4 5 3 7 8 9. Hal itu terus berlanjut hingga akhirnya barisan angka itu menjadi 3 4 5 7 8 9, sehingga si Insertion ga punya alasan untuk menculik lagi. Dan tamat ceritanya ... !!!

Eum ... dari cerita tadi paham ga apa itu Insertion Sort? Kalo ga paham, ya pahamin aja sendiri boss ... Wkwkwkwk ...

Lanjutnya ...

Sorting pake Quick Sort. Ga jauh beda dari sorting-sorting sebelumnya. Konon, sorting ini lebih cepat dari sorting-sorting yang tadi aku jelasin. Tapi, peduli apa! Aku hanya pake beberapa angka aja, jadi ga seberapa kerasa sih.

Ga pake lama, langsung saja aku tempel di bawah ini.

Program Quick;
void main(){
integer[6] K;
integer i, j, tukar, count:=length(K);
writeline('masukkan 6 angka');
read(K);
for(i:=1;i
for(j:=count; j>1; j--){
if(K[i]>K[j]){
  tukar :=K[i] ;
  K[i]  :=K[j] ;
  K[j]  :=tukar;
}
}
}
writeline('angka telah disorting');
for(i:=1; i
writeline(K[i]);
}
}

OK ... OK ... selanjutnya pada pembahasan pamungkas kita, yaitu Merge Sort.

Merge Sort, adalah sorting dengan cara memecah belah persatuan dan kesatuan Negara Kesatuan Angka Yang Disorting. Hahaha ... Misalkan aku punya kumpulan angka: 2 3 6 4 8 9 1 5. Angka-angka tersebut akan dipecah jadi 2, menjadi: (2 3 6 4) (8 9 1 5). Dan setelah itu akan terus dipecah hingga hanya ada 2 angka pada bagian kecil kumpulan angka itu. Gampangnya, jadi kayak gini: (2 3) (6 4) (8 9) (1 5). Dan setiap bagian kecil itu akan diurutkan. Jika sudah urut, kelompok angka itu akan digabung kembali hingga jadi kumpulan angka seperti ini: 1 2 3 4 5 6 8 9. Prosesnya panjang, dan bikin programnya juga panjang. Ni aja aku ga berasil nerjemahinnya ke Nusa. Pas dikompail sih bisa, trus dilink juga bisa meskipun ada beberapa peringatan. Tapi pas dijalanin ga bisa, ga terjadi apa-apa.

Di bawah ini adalah contoh Merge Sort, tapi pake bahasa C++; nikmati aja!!! Itu aja, aku ngampbilnya dari searching di Google. Wkwkwkwk.

Merge Sort

#include
#include
#include
int a[50];
void merge(int,int,int);
void merge_sort(int low,int high)
{
 int mid;
 if(low
 {
  mid=(low+high)/2;
  merge_sort(low,mid);
  merge_sort(mid+1,high);
  merge(low,mid,high);
 }
}
void merge(int low,int mid,int high)
{
 int h,i,j,b[50],k;
 h=low;
 i=low;
 j=mid+1;


 while((h<=mid)&&(j<=high))
 {
  if(a[h]<=a[j])
  {
   b[i]=a[h];
   h++;
  }
  else
  {
   b[i]=a[j];
   j++;
  }
  i++;
 }
 if(h>mid)
 {
  for(k=j;k<=high;k++)
  {
   b[i]=a[k];
   i++;
  }
 }
 else
 {
  for(k=h;k<=mid;k++)
  {
   b[i]=a[k];
   i++;
  }
 }
 for(k=low;k<=high;k++) a[k]=b[k];
}
void main()
{
 int num,i;


cout<<"********************************************************************************"<
cout<<"                             MERGE SORT PROGRAM                                 "<


cout<<"********************************************************************************"<
 cout<<
 cout<<"Please Enter THE NUMBER OF ELEMENTS you want to sort [THEN PRESS ENTER]:"<
 cin>>num;
 cout<
 cout<<"Now, Please Enter the ( "<< num <<" ) numbers (ELEMENTS) [THEN PRESS ENTER]:"<
 for(i=1;i<=num;i++)
 {
  cin>>a[i] ;
 }
 merge_sort(1,num);
 cout<
 cout<<"So, the sorted list (using MERGE SORT) will be :"<
 cout<<


 for(i=1;i<=num;i++)
 cout<<<" ";


 cout<<<<
 getch();
}


Puuaaaaaaanjang kan? Hahahah .... aku udah nyoba terjemahin pake Nusa, di bawah ini hasil kreativitasku boss ...

Program Merger;
integer [] a;
void merge_sort(integer low, high){
integer mid;
if(low
  mid:=(low+high)/2;
  merge_sort(low,mid);
  merge_sort(mid+1,high);
  merge(low,mid,high);
  }
}


void merge(integer low, mid, high){
integer h,i,j,k;
integer[] b;
h:=low;
i:=low;
j:=mid+1;
while((h<=mid)AND(j<=high)){
  if(a[h]<=a[j]){
    b[i]=a[h];
    h++;
    }
  else{
    b[i]=a[j];
    j++;
    }
  i++;
}


if(h>mid){
  for(k=j;k<=high;k++){
    b[i]=a[k];
    i++;
    }
  }
else{
  for(k=h;k<=mid;k++){
    b[i]=a[k];
    i++;
    }
}
  for(k=low;k<=high;k++){a[k]=b[k];}
}


void main(){
integer num,i;
writeline('masukkan angka');
read(num);
writeline('sekarang tekan enter');
for(i:=1; i<=num; i++){
  read(a[i]);
}
merge_sort(1,num);
writeline('hasil: ');
for(i:=1; i<=num; i++){
  writeline(a[i]);
}
}


Simpan dengan nama "Merger.source" (tanpa tanda petik). Tapi program itu gagal. Masih ada waktu yang akan datang. Aku coba dulu lain kali, nanti kalo berhasil aku posting.

OK ... sampe di sini dulu postinganku. Terus semangat, terus berusaha, karena dunia ada di tangan kita!!! Vivat Intikali!!! Intikalis Bersatu, Dunia Takluk !!! (kata siapa?) Hehehe ...
Diete Jinde Diete Ego ...
Salam Selonis, hormatku, John Terro ze Palatere, Intikalis Kiri.