Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Algoritma Symboolon

331 views

Published on

this article describes about XYZ (Symboolon)-Algorithm for 11's Number Math Model

Published in: Education
  • Be the first to comment

  • Be the first to like this

Algoritma Symboolon

  1. 1. 1 Teknik Pencacah untuk Memodelkan Deret Bilangan berbasis 11 Menggunakan Algoritma-XYZ S.N.M.P. Simamora, ST., MT. Program studi Teknik Komputer-Politeknik TELKOM Bandung Jl. Telekomunikasi No. 1 Ters. Buah Batu Bandung 40257 Email : snmpsimamora@telkom.net ABSTRAK Salah satu bilangan yang dikelompokkan sebagai bilangan istimewa adalah 11. Bilangan 11 adalah tergolong sebagai Bilangan Prima yang hanya memiliki dua faktorisasinya saja yakni 1 dan 11. Bilangan 11 juga bisa digunakan untuk permainan trik atau sulap dalam kategori permainan trik matematika. Disebabkan menyangkut persoalan deret bilangan, maka penggunaan larik mutlak dibutuhkan untuk mencacah setiap bilangan menggunakan proses berurutan secara indeks. Pada persoalan kali ini, akan dibentuk sebuah formula tetap sampai deret bilangan ke-i sebagai maksimal hasil pencacah yang didapatkan. Kata kunci: deret, 11, algoritma, larik. I. Pendahuluan Bilangan 11 banyak digunakan untuk permainan matematika, salah satunya adalah sebagai berikut: Misalkan: 57 * 11 Bila dilakukan menggunakan cara konvensional (usual mechanism) sebagai berikut:
  2. 2. 2 Namun dengan menggunakan Algoritma XYZ – A, dapat dilakukan sebagai berikut: i. Tentukan bilangan antara 10 sampai dengan 20 ii. Pisahkan digit ke-1 dan digit ke-2 ke sebuah template dengan panjang 3 digit; dimana digit ke-1 ke template posisi ke-1, dan digit ke-2 ke template posisi-3. Dengan demikian template pada posisi-2 kosong. iii. Tambahkan isi template posisi-1 ke isi template posisi-3, katakana hasilnya adalah S. iv. Jika S 10≥ , maka: a) S1 ← 10 – S S1 isikan ke template posisi-2, dan isi template posisi-1 tambahkan dengan 1. Tampilkan hasil: isi template. b) Jika tidak, maka: S isikan ke template posisi-2. Tampilkan hasil: isi template Misalkan: Untuk pra-kondisi iv.a) Untuk pra-kondisi iv.b)
  3. 3. 3 Contoh lain dapat disebutkan sebagai berikut: ?? ⇐ 212 x 11 Dengan menggunakan Algoritma XYZ – B, dapat dilakukan sebagai berikut: i. Ambil sembarang bilangan, Z, misalkan abcde; Z←abcde ii. Tambahkan bilangan 0 didepan bilangan tersebut, sehingga didapatkan: 0abcde iii. Selanjutnya, asumsikan indeks dimulai dari kanan ke kiri, maka: Z[]={0,a.b,c,d,e} iv. Jika hasil komputasi: abcde X Z disimpankan ke Z1, maka: Z1[0]=Z[0] Z1[1]=Z[0]+Z[1] Z1[2]=Z[1]+Z[2] Z1[3]=Z[2]+Z[3] Z1[4]=Z[3]+Z[4] Z1[5]=Z[4]+Z[5] v. Maka, didapatkan Z1={(0+a),(a+b),(b+c),(c+d),(d+e),(e)}
  4. 4. 4 Simulasi: Misalkan: Z = 2332, maka Z1 = 2332 X 11 i. Z[]={2,3,3,2} ii. Tambahkan bilangan 0 ke larik terakhir, maka didapatkan: Z[]={0,2,3,3,2} iii. Uraikan setiap elemen larik Z1[] sebagai berikut: Z1[0]=2 Z1[1]=Z[0]+Z[1]= 2 + 3 = 5 Z1[2]=Z[1]+Z[2]= 3 + 3 = 6 Z1[3]=Z[2]+Z[3]= 3 + 2 = 5 Z1[4]=Z[3]+Z[4]= 2 + 0 = 2 iv. Maka didapatkan Z1 = 25652 Contoh lain: Misalkan: Z = 521412, maka Z1 = 521412 X 11 v. Z[]={5,2,1,4,1,2} vi. Tambahkan bilangan 0 ke larik terakhir, maka didapatkan: Z[]={0,5,2,1,4,1,2} vii. Uraikan setiap elemen larik Z1[] sebagai berikut: Z1[0]=2 Z1[1]=Z[0]+Z[1]= 2 + 1 = 3 Z1[2]=Z[1]+Z[2]= 1 + 4 = 5 Z1[3]=Z[2]+Z[3]= 4 + 1 = 5 Z1[4]=Z[3]+Z[4]= 1 + 2 = 3 Z1[5]=Z[4]+Z[5]= 2 + 5 = 7 Z1[7]=Z[5]+Z[6]= 5 + 0 = 5 Maka didapatkan Z1 = 5735532 II. Deret Bilangan dan Larik Yang dimaksud dengan Deret Bilangan adalah sejumlah bilangan yang tersajikan menggunakan pola arithmatika sampai indeks bilangan ke-i tak berhingga. Misalkan:
  5. 5. 5 1,2,3,4,5,6,7,8,9,… adalah deret bilangan dengan menggunakan pola: 1+= nUn ; dimana n≥0 1,3,5,7,9,11,13,15,… adalah deret bilangan dengan menggunakan pola: 1.2 += nUn ; dimana n≥0 Dalam matematika aljabar, setiap deret selalu dimulai dari indeks ke-1 bukan ke-0; sehingga untuk deret: 1,2,3,4,5,6,7,8,9,… disebutkan: Suku ke-1 = 1 Suku ke-2 = 2 Suku ke-3 = 3 dst… Berbeda pada larik, indeks dimulai dari ke-0 bukan ke-1. Untuk menampilkan larik, biasanya menggunakan struktur logika program “looping” yakni: for…i Misalkan, perhatikan sintaks Bahasa Pemrograman JAVA berikut ini: deretBilangan.java public class deretBilangan { public static void main(String args[]) { int i,S[]; S=new int[10]; for(i=0;i<9;i++) { S[i]=(2*i)+1; } System.out.println("Deret Bilangan:"); for(i=0;i<9;i++) { System.out.print(" " + S[i]); }
  6. 6. 6 System.exit(0); } } Jika di-interpretasi-kan (dijalankan program tersebut), maka akan menampilkan deret bilangan: 1,3,5,7,9,11,13,15,17 Dengan demikian, larik bisa didefinisikan sebagai sejumlah data yang dikelompokkan menjadi satu group dengan tipe data yang sama, dimana indeks urutan dimulai dari 0. III. Deret Bilangan berbasis 11 berbasis Algoritma XYZ Jika A adalah suatu bilangan berbasis 11 (dibaca ‘satu-satu’), maka apabila A dikalikan dengan A dengan jumlah digit yang kembar (sama), akan terpola sebagai berikut: 1 X 1 11 X 11 = 121 111 X 111 = 12321 1111 X 1111 = 1234321 11111 X 11111 = 123454321 Sehingga jika A memiliki panjang digit lebih dari 7, bisa dibayangkan bila menggunakan operasi arithmatika konvensional, sangat memboroskan memory untuk menghitungnya. Oleh sebab itu, lebih memudahkan bila dibangun sebuah Algoritma XYZ untuk membangun blok proses sampai ke-9, untuk n≥0. Mengapa sampai ke-9? lebih jelas alasannya dapat diperhatikan berikut ini: Algoritma XYZ untuk Deret Bilangan berbasis 11, dapat disusun sebagai berikut:
  7. 7. 7 IV. Simulasi dan Analisis Terlihat bahwa saat memasuki Un, untuk n>9, pola sebelumnya dari 1 s.d 9, atau dengan kata lain, range: 1 <n < 9, tidak mengikuti lagi. Berikut dituliskan kembali agar terlihat perbedaannya: U10 ; n=10 ⇒ 1234567900987654321 U11 ; n=11 ⇒ 123456790120987654321 U12 ; n=12 ⇒ 12345679012320987654321 U13 ; n=13 ⇒ 1234567901234320987654321 U14 ; n=14 ⇒ 123456790123454320987654321 Pola yang terbentuk dapat dinyatakan sebagai berikut: Untuk n=10, pola terbentuk pada suku tersebut saja bukan rangkaian komputasi sekuensial dari suku deret sebelumnya. Untuk n>10, pola mulai terbentuk; walaupun demikian sedikit ‘terkecoh’ dengan sebaran digit pada n=11, sedangkan n>11 pola terbentuk demikian: … 012320 … … 01234320 … … 0123454320 …
  8. 8. 8 Jika dilanjutkan sampai n=18, maka ditampilkan sebagai berikut: 15 – 10 = 5 + 1 = 6 … 012345654320 … 16 – 10 = 6 + 1 = 7 … 01234567654320 … 17 – 10 = 7 + 1 = 8 … 0123456787654320 … 18 – 10 = 8 + 1 = 9 … 012345678987654320 … Namun saat n=19, bila mengikuti pola seharusnya didapatkan sebagai berikut: 19 – 10 = 9 + 1 = 20 … 012345678920987654320 … Tetapi hasil sebenarnya adalah: … 012345678900987654320 … Terlihat bahwa polanya kembali lagi ke saat n=10 di deret yang tertulis sebelumnya. Pada simulasi kali ini akan digunakan Bahasa Pemrograman JAVA, dengan alas an pemanfaatan larik menggunakan bahasa pemrograman ini sangat filosofi dengan memperhatikan kaidah- kaidah (rules) deklarasi larik serta case-sensitive. Simulasi-1, suku ke-n dideklarasikan secara default pada badan pemrograman, sebagai berikut: deretBilXYZ.java public class deretBilXYZ { public static void main(String args[]) { int x=9; int i,S[]; S=new int[100]; for(i=0;i<x;i++) {
  9. 9. 9 System.out.print(i+1); } for(i=1;i<x;i++) { System.out.print(x-i); } System.exit(0); } } Simulasi-2, suku ke-n didapatkan dari nilai masukan dari user, yakni sebagai berikut: deretBilXYZn import javax.swing.JOptionPane; public class deretBilXYZn { public static void main(String args[]) { int x,i; String X=JOptionPane.showInputDialog("Suku ke berapa?(1 s.d 9):"); x=Integer.parseInt(X); if(x<1||x>9) { System.out.print("Maaf, di luar range."); } else { for(i=0;i<x;i++) { System.out.print(i+1); } for(i=1;i<x;i++) { System.out.print(x-i); } } System.exit(0); } } Sedangkan berikut ini disimulasikan dalam sintaks Bahasa Pemrograman JAVA untuk rentang: 10 ≤ n ≤ 18. deretBilXYZv1
  10. 10. 10 public class deretBilXYZv1 { public static void main(String args[]) { int i,x; x=15; // ubah nilai x untuk Un yang lain if(x<0) { System.out.print("Maaf, di luar range"); } if(x>0&&x<9) { for(i=0;i<x;i++) { System.out.print(i+1); } for(i=1;i<x;i++) { System.out.print(x-i); } } if(x==10) { for(i=0;i<7;i++) { System.out.print(i+1); } System.out.print(x-1 + "0"); System.out.print("0"); for(i=1;i<x;i++) { System.out.print(x-i); } } if(x>10&&x<18) { for(i=0;i<7;i++) { System.out.print(i+1); } System.out.print("90"); int x1=x-10+1; for(i=1;i<=x1;i++) { System.out.print(i); } for(i=x1-1;i>0;i--) { System.out.print(i); }
  11. 11. 11 System.out.print("0"); for(i=0;i<9;i++) { System.out.print(9-i); } } System.exit(0); } } Perhatikan, bahwa untuk blok komputasi: n=10, dan 11 ≤ n ≤ 18 diatur pada blok sintaks: … if(x==10) { for(i=0;i<7;i++) { System.out.print(i+1); } System.out.print(x-1 + "0"); System.out.print("0"); for(i=1;i<x;i++) { System.out.print(x-i); } } … dan if(x>10&&x<18) { for(i=0;i<7;i++) { System.out.print(i+1); } System.out.print("90"); int x1=x-10+1; for(i=1;i<=x1;i++) { System.out.print(i); } for(i=x1-1;i>0;i--) { System.out.print(i); } System.out.print("0");
  12. 12. 12 for(i=0;i<9;i++) { System.out.print(9-i); } } V. Kesimpulan Beberapa hal yang dapat disimpulkan dari uraian di atas adalah: 1. Algoritma XYZ untuk Deret Bilangan berbasis 11 (baca: satu-satu) hanya terbatas pada rentang: 1 ≤ n ≤9 2. Untuk n = 10, dan rentang: 11 ≤ n ≤ 18, pola deret berubah, namun masih menunjukkan dasar pencacah yang sama. 3. Dalam mensimulasikan deret suatu bilangan dalam pemrograman selalu melibatkan struktur logika pemrograman “looping” yaknik: for..i VI. Daftar Pustaka 1.Simamora, S.N.M.P., “SI101 Pengantar Teknologi Informasi (2 sks)”, Departemen Sistem Informasi, Fak. Teknik, ITHB, Bandung, 2002. 2.Simamora, S.N.M.P., “SK-100 Dasar Komputer dan Pemrograman (2 sks)”, Departemen Sistem Komputer, Fak. Teknik, ITHB, Bandung, 2002. 3.Simamora, S.N.M.P., “Tuntunan Bahasa Pemrograman JAVA menggunakan JDK v1.2.2”, Jurusan Ilmu Komputer, F- MIPA, UNAI, Bandung, 2006.. 4.Strang, G., "CALCULUS", Massachusetts Institute of Technology, 1999.

×