Translate

Tampilkan postingan dengan label gnumeric. Tampilkan semua postingan
Tampilkan postingan dengan label gnumeric. Tampilkan semua postingan

Sabtu, 03 Oktober 2015

Formula Terbilang bagian 2 pada Gnumeric

  • Buat terlebih dahulu pada kolom B dan C, sebuah tabel untuk proses LOOKUP angka-nya, sesuai dengan isi pada tabel di bawah ini:
BarisKolom BKolom C
10-
21satu
32dua
43tiga
54empat
65lima
76enam
87tujuh
98delapan
109sembilan

  • Lalu isi kolom A dengan semua formula yang ada pada tabel di bawah ini

SelIsiContohKeterangan
A1Sembarang angka6,876,527,518,768.56Nilai Inputan
A2=text(A1,rept("0",15)&".00")006876527518768.56Format Teks "000,000,000,000,000,000.00"
A3=left(A2,15)006876527518768Bagian 15 digit di depan koma
A4=right(left(A3,len(A3)-12),3)0063 digit triliun
A5=left(A4,1)0
A6=mid(A4,2,1)0
A7=right(A4,1)6
A8=right(left(A3,len(A3)-9),3)8763 digit milyar
A9=left(A8,1)8
A10=mid(A8,2,1)7
A11=right(A8,1)6
A12=right(left(A3,len(A3)-6),3)5273 digit juta
A13=left(A12,1)5
A14=mid(A12,2,1)2
A15=right(A12,1)7
A16=left(right(A3,6),3)5183 digit ribu
A17=left(A16,1)5
A18=mid(A16,2,1)1
A19=right(A16,1)8
A20=right(A3,3)7683 digit satuan
A21=left(A20,1)7
A22=mid(A20,2,1)6
A23=right(A20,1)8
A24=right(A2,2)56Bagian 2 digit di belakang koma
A25=left(A24,1)5
A26=right(A24,1)6
A27=substitute(if(-(-A5)>0,lookup(-(-A5),$B$1:$B$10,$C$1:$C$10)&" ratus ",""),"satu ratus","seratus")Konversi Trilyun1
A28=substitute(if(-(-A6)>1,lookup(-(-A6),$B$1:$B$10,$C$1:$C$10)&" puluh ",if(and(-(-A6)=1,-(-A7)=0),lookup(-(-A6),$B$1:$B$10,$C$1:$C$10)&" puluh ","")),"satu puluh","sepuluh")Konversi Trilyun2
A29=if(and(-(-A6)=1,-(-A7)=0),"",if(and(-(-A6)=1,-(-A7)=1)," sebelas ",if(-(-A6)=1,lookup(-(-A7),$B$1:$B$10,$C$1:$C$10)&" belas ",lookup(-(-A7),$B$1:$B$10,$C$1:$C$10))))enamKonversi Trilyun3
A30=substitute(if(-(-A9)>0,lookup(-(-A9),$B$1:$B$10,$C$1:$C$10)&" ratus ",""),"satu ratus","seratus")delapan ratus Konversi Milyar1
A31=substitute(if(-(-A10)>1,lookup(-(-A10),$B$1:$B$10,$C$1:$C$10)&" puluh ",if(and(-(-A10)=1,-(-A11)=0),lookup(-(-A10),$B$1:$B$10,$C$1:$C$10)&" puluh ","")),"satu puluh","sepuluh")tujuh puluh Konversi Milyar2
A32=if(and(-(-A10)=1,-(-A11)=0),"",if(and(-(-A10)=1,-(-A11)=1)," sebelas ",if(-(-A10)=1,lookup(-(-A11),$B$1:$B$10,$C$1:$C$10)&" belas ",lookup(-(-A11),$B$1:$B$10,$C$1:$C$10))))enamKonversi Milyar3
A33=substitute(if(-(-A13)>0,lookup(-(-A13),$B$1:$B$10,$C$1:$C$10)&" ratus ",""),"satu ratus","seratus")lima ratus Konversi Juta1
A34=substitute(if(-(-A14)>1,lookup(-(-A14),$B$1:$B$10,$C$1:$C$10)&" puluh ",if(and(-(-A14)=1,-(-A15)=0),lookup(-(-A14),$B$1:$B$10,$C$1:$C$10)&" puluh ","")),"satu puluh","sepuluh")dua puluh Konversi Juta2
A35=if(and(-(-A14)=1,-(-A15)=0),"",if(and(-(-A14)=1,-(-A15)=1)," sebelas ",if(-(-A14)=1,lookup(-(-A15),$B$1:$B$10,$C$1:$C$10)&" belas ",lookup(-(-A15),$B$1:$B$10,$C$1:$C$10))))tujuhKonversi Juta3
A36=substitute(if(-(-A17)>0,lookup(-(-A17),$B$1:$B$10,$C$1:$C$10)&" ratus ",""),"satu ratus","seratus")lima ratus Konversi Ribu1
A37=substitute(if(-(-A18)>1,lookup(-(-A18),$B$1:$B$10,$C$1:$C$10)&" puluh ",if(and(-(-A18)=1,-(-A19)=0),lookup(-(-A18),$B$1:$B$10,$C$1:$C$10)&" puluh ","")),"satu puluh","sepuluh")Konversi Ribu2
A38=if(and(-(-A18)=1,-(-A19)=0),"",if(and(-(-A18)=1,-(-A19)=1)," sebelas ",if(-(-A18)=1,lookup(-(-A19),$B$1:$B$10,$C$1:$C$10)&" belas ",lookup(-(-A19),$B$1:$B$10,$C$1:$C$10))))delapan belas Konversi Ribu3
A39=substitute(if(-(-A21)>0,lookup(-(-A21),$B$1:$B$10,$C$1:$C$10)&" ratus ",""),"satu ratus","seratus")tujuh ratus Konversi Satuan1
A40=substitute(if(-(-A22)>1,lookup(-(-A22),$B$1:$B$10,$C$1:$C$10)&" puluh ",if(and(-(-A22)=1,-(-A23)=0),lookup(-(-A22),$B$1:$B$10,$C$1:$C$10)&" puluh ","")),"satu puluh","sepuluh")enam puluh Konversi Satuan2
A41=if(and(-(-A22)=1,-(-A23)=0),"",if(and(-(-A22)=1,-(-A23)=1)," sebelas ",if(-(-A22)=1,lookup(-(-A23),$B$1:$B$10,$C$1:$C$10)&" belas ",lookup(-(-A23),$B$1:$B$10,$C$1:$C$10))))delapanKonversi Satuan3
A42=substitute(if(-(-A25)>1,lookup(-(-A25),$B$1:$B$10,$C$1:$C$10)&" puluh ",if(and(-(-A25)=1,-(-A26)=0),lookup(-(-A25),$B$1:$B$10,$C$1:$C$10)&" puluh ","")),"satu puluh","sepuluh")lima puluh Konversi Pecahan1
A43=if(and(-(-A25)=1,-(-A26)=0),"",if(and(-(-A25)=1,-(-A26)=1)," sebelas ",if(-(-A25)=1,lookup(-(-A26),$B$1:$B$10,$C$1:$C$10)&" belas ",lookup(-(-A26),$B$1:$B$10,$C$1:$C$10))))enamKonversi Pecahan2
A44=if(-(-A5)+-(-A6)+-(-A7)>0,A27&A28&A29&" triliun ","")enam triliun Konversi Trilyun
A45=if(-(-A9)+-(-A10)+-(-A11)>0,A30&A31&A32&" milyar ","")delapan ratus tujuh puluh enam milyar Konversi Milyar
A46=if(-(-A13)+-(-A14)+-(-A15)>0,A33&A34&A35&" juta ","")lima ratus dua puluh tujuh juta Konversi Juta
A47=if(-(-A16)=1," seribu ",if(-(-A17)+-(-A18)+-(-A19)>0,A36&A37&A38&" ribu ",""))lima ratus delapan belas ribu Konversi Ribu
A48=if(-(-A21)+-(-A22)+-(-A23)>0,A39&A40&A41,"")tujuh ratus enam puluh delapanKonversi Satuan
A49=substitute(if(-(-A25)+-(-A26)>0,A42&A43,""),"-","")lima puluh enamKonversi Pecahan
A50=if(-(-A2)=0,"nol",if(-(-A24)=0,substitute(substitute(A44&A45&A46&A47&A48,"-","")," "," "),if(and(-(-A3)=0,-(-A24)>0),"nol koma "&substitute(substitute(A49,"- ","")," "," "),substitute(substitute(A44&A45&A46&A47&A48,"-","")," "," ")&" koma "&A49))) enam triliun delapan ratus tujuh puluh enam milyar lima ratus dua puluh tujuh juta lima ratus delapan belas ribu tujuh ratus enam puluh delapan koma lima puluh enam Terbilang - Final
A51=if(-(-A2)=0,"nol rupiah",if(-(-A24)=0,substitute(substitute(A44&A45&A46&A47&A48,"-","")," "," ")&" rupiah",if(and(-(-A3)=0,-(-A24)>0),substitute(substitute(A49,"- ","")," "," ")&" sen",substitute(substitute(A44&A45&A46&A47&A48,"-","")," "," ")&" rupiah dan "&A49&" sen")))enam triliun delapan ratus tujuh puluh enam milyar lima ratus dua puluh tujuh juta lima ratus delapan belas ribu tujuh ratus enam puluh delapan rupiah dan lima puluh enam sen Terbilang - Rupiah

Pada saat proses penyalinan rumus / formula ke lembar kerja, biasanya diikuti dengan penambahan tanda kutip tunggal (untuk penanda teks), maka harap dibuang tanda kutip tersebut agar formula di atas dapat bekerja.

From Nothing to Nothing
10/3/2015

Formula Terbilang 1 pada Gnumeric

Untuk Nilai maksimal 999

  • Jalankan aplikasi spreadsheet Gnumeric
  • Pilih lembar kerja pada Sheet1 saja
  • Misal Nilai yang ingin disebutkan angkanya berada pada sel A1
  • Dan Hasilnya berada pada sel B1.
  • Lalu buat Names melalui menu Edit > Modify > Names
  • Klik tanda + pada bagian Sheet1 untuk menambahkan Names,


  • Lalu ganti <New Name> dengan N dengan cara double-klik
  • Dan disebelah kanan dari Name N diisi dengan (double-klik juga) :
{"Satu","Dua","Tiga","Empat","Lima","Enam","Tujuh","Delapan","Sembilan"}
  • Setelah selesai menulis isinya, tekan [Enter], lalu Close untuk menutup jendela Define Names

  • Pada sel B1, copy-paste formula berikut (buang tanda kutip tunggal di depan formula saat paste):
=if(-(-int(A1))=0,"Nol ",if(-(-(left(text(int(A1),"000"))))=1,"Seratus ",if(-(-(left(text(int(A1),"000"))))>1,index(N,1,-(-(left(text(int(A1),"000")))))&" Ratus ","")))&if(-(-(mid(text(int(A1),"000"),2,1)))=0,"",if(-(-(mid(text(int(A1),"000"),2,1)))=1,choose((-(-(right(text(int(A1),"0"))))=0)*1+((-(-(right(text(int(A1),"0"))))=1)*2)+((-(-(right(text(int(A1),"0"))))>1)*3),"Sepuluh ","Sebelas ",index(N,1,-(-(right(text(int(A1),"0")))))&"Belas "),if(-(-(mid(text(int(A1),"000"),2,1)))>1,index(N,1,-(-(mid(text(int(A1),"000"),2,1))))&" Puluh ")))&if(or(-(-(mid(text(int(A1),"000"),2,1)))=1,-(-(right(text(int(A1),"0"))))=0),"",index(N,1,-(-(right(text(int(A1),"0"))))))
Hasilnya seperti gambar berikut:


Untuk Nilai maksimal 999 Triliun

  • Sama saja dengan yang di atas namun harus kita bagi per tiga-digit dari 15 digit bilangan
  • Pastikan sudah terdapat Names N (untuk indexing) dengan isi sama seperti di atas yaitu:
{"Satu","Dua","Tiga","Empat","Lima","Enam","Tujuh","Delapan","Sembilan"}
  • Isi pada input box formula untuk tiap sel seperti yang tertera pada tabel berikut (jangan lupa buang tanda kutip tunggal saat paste):
SelFormula / NilaiFungsi
A1Isi dengan sembarang angkaNilai Masukan
B1=text(A1,rept("0",15))Mengubah isi sel A1 menjadi teks berformat "000,000,000,000,000"
C1=right(left($B1,len($B1)-12),3)3 digit trilyun (teks)
D1=right(left($B1,len($B1)-9),3)3 digit milyar (teks)
E1=right(left($B1,len($B1)-6),3)3 digit juta (teks)
F1=left(right($B1,6),3)3 digit ribu (teks)
G1=right($B1,3)3 digit satuan (teks)
H1=if(-(-int(C1))=0,"",if(-(-(left(text(int(C1),"000"))))=1,"Seratus ",if(-(-(left(text(int(C1),"000"))))>1,index(N,1,-(-(left(text(int(C1),"000")))))&" Ratus ","")))&if(-(-(mid(text(int(C1),"000"),2,1)))=0,"",if(-(-(mid(text(int(C1),"000"),2,1)))=1,choose((-(-(right(text(int(C1),"0"))))=0)*1+((-(-(right(text(int(C1),"0"))))=1)*2)+((-(-(right(text(int(C1),"0"))))>1)*3),"Sepuluh ","Sebelas ",index(N,1,-(-(right(text(int(C1),"0")))))&" Belas "),if(-(-(mid(text(int(C1),"000"),2,1)))>1,index(N,1,-(-(mid(text(int(C1),"000"),2,1))))&" Puluh ")))&if(or(-(-(mid(text(int(C1),"000"),2,1)))=1,-(-(right(text(int(C1),"0"))))=0),"",index(N,1,-(-(right(text(int(C1),"0"))))))ubah nilai trilyun ke kata
I1copy dari H1ubah nilai milyar ke kata
J1copy dari H1ubah nilai juta ke kata
K1copy dari H1ubah nilai ribu ke kata
L1copy dari H1ubah nilai satuan ke kata
M1=if(-(-int(A1))=0,"Nol",substitute(if(-(-C1)=0,"",H1&" Trilyun ")&if(-(-D1)=0,"",I1&" Milyar ")&if(-(-E1)=0,"",J1&" Juta ")&if(-(-F1)=0,"",if(-(-F1)=1," Seribu ",K1&" Ribu "))&if(-(-G1)=0,"",L1)," "," "))Hasil Konversi

Hasilnya seperti contoh berikut:


Agar dapat digunakan pada Sheet lainnya, gunakan cara copy > paste special > paste link untuk Nilai inputan dan hasilnya
  • Misal ada Sheet yang berisi satu sel, misal: D5 yang berisi angka yang akan kita ubah
  • Maka kita copy isi sel D5, lalu pindah ke Sheet yang telah kita isi dengan formula di atas
  • Klik kanan pada sel A1, Paste Special > Paste Link
  • Setelah mendapatkan hasilnya pada sel M1, isi M1 di-copy lalu pindah ke Sheet sebelumnya
  • Klik kanan pada sel untuk tempat hasilnya, misal D6, Klik kanan pada sel D6, Paste Special > Paste Link
Hasilnya adalah bila kita mengubah nilai pada sel D5, otomatis isi D6 juga ikut berubah, selama kedua sheet berada pada file yang sama.

Untuk nilai yang menggunakan sistem pecahan sen atau koma-komaan dapat dilihat pada bahasan terbilang bagian kedua.

Selasa, 23 Desember 2014

Belajar SC - Penanganan File dan Bagan (noob version)

File
Untuk bagian ini kita coba buat file contoh dengan isi sebagai berikut
                                                                    
     A      B         C         D         E         F         G     
 0                          Penjualan Thn 1999                      
 1 NoID    Jan       Feb       Mar       Apr       Mei       Jun    
 2     1    17.000    22.000    27.000    32.000    37.000    42.000
 3     2    25.000    29.000    33.000    37.000    41.000    45.000
 4     3    40.000    45.000    50.000    55.000    60.000    65.000
 5     4    10.000    16.000    22.000    28.000    34.000    40.000
 6     5    30.000    34.000    38.000    42.000    46.000    50.000
 7     6    77.000    78.000    79.000    80.000    81.000    82.000
 8     7    55.000    57.000    59.000    61.000    63.000    65.000
 9     8    40.000    43.000    46.000    49.000    52.000    55.000
10     9    22.000    27.000    32.000    37.000    42.000    47.000

Lalu kita simpan dengan perintah P dengan nama file misalnya sales.sc serta perintah W dengan nama sales.asc. Kemudian keluar dengan perintah q.
Untuk urusan ekspor file ke format lain, program SC memiliki perintah internal W dan T. Perintah W akan mengubah file lembar kerja berformat teks dengan ekstensi default asc (singkatan dari ascii mungkin). Dan perintah T yang mengubah file menjadi berformat teks dengan pemisah antar kolom (pemisahnya titik dua) dengan ekstensi default cln (colon).
Sedangkan untuk mengekspor file berformat sc ke csv, dimana seperti yang kita tahu format csv digunakan untuk transfer data antar platform, program SC tidak memiliki perintahnya baik internal maupun eksternal. Dan untuk mengekspornya menggunakan perintah eksternal bawaan program lain yaitu ssconvert dari program gnumeric. Cara penggunaannya melalui terminal sebagai contoh:
:~$ ssconvert sales.sc sales.csv
Using exporter Gnumeric_stf:stf_csv
:~$

Untuk melihat file csv hasil ssconvert bisa kita gunakan salah satu dari perintah berikut di terminal:

:~$ cat sales.csv
,,,"Penjualan Thn 1999",,,
NoID,Jan,Feb,Mar,Apr,Mei,Jun
1,17,22,27,32,37,42
2,25,29,33,37,41,45
3,40,45,50,55,60,65
4,10,16,22,28,34,40
5,30,34,38,42,46,50
6,77,78,79,80,81,82
7,55,57,59,61,63,65
8,40,43,46,49,52,55
9,22,27,32,37,42,47

:~$ sed 's/,,/, ,/g;s/,,/, ,/g' sales.csv

:~$ sed "s/,/\t/g" sales.csv | less
  "Penjualan Thn 1999"   
NoID Jan Feb Mar Apr Mei Jun
1 17 22 27 32 37 42
2 25 29 33 37 41 45
3 40 45 50 55 60 65
4 10 16 22 28 34 40
5 30 34 38 42 46 50
6 77 78 79 80 81 82
7 55 57 59 61 63 65
8 40 43 46 49 52 55
9 22 27 32 37 42 47
~
~
# Shift+q untuk keluar ke prompt
:~$

Untuk impor dari csv ke sc, program SC memiliki perintah ekternal di terminal yaitu psc dengan contoh penggunaan seperti berikut:

:~$ psc -d , sales.csv sales.sc
atau
:~$ cat sales.csv | psc -k -d, | sc

yang hasilnya konversi ulang terlihat di layar SC seperti di bawah ini:

                                               
     A   B   C           D          E   F   G     
 0               Penjualan Thn 1999            
 1  NoID Jan Feb                Mar Apr Mei Jun
 2     1  17  22                 27  32  37  42
 3     2  25  29                 33  37  41  45
 4     3  40  45                 50  55  60  65
 5     4  10  16                 22  28  34  40
 6     5  30  34                 38  42  46  50
 7     6  77  78                 79  80  81  82
 8     7  55  57                 59  61  63  65
 9     8  40  43                 46  49  52  55
10     9  22  27                 32  37  42  47

Harap diperhatikan bahwa program SC hanya dapat membuka dan membaca file dalam format sc yang dilakukan melalui perintah G, file format lain tidak akan terbaca (ERROR). Hal ini mungkin karena program SC ini hanya dapat membaca perintah baris isian ke tiap sel (seperti bahasa FORTRAN jaman dulu - cek dengan notepad atau leafpad).
Bagan
Dan yang terakhir berkenaan dengan pembuatan bagan. SC tidak punya fasilitasnya, namun dapat difasilitasi dengan menginstal program gnuplot. Cara untuk menginstal gnuplot disesuaikan  sistem operasi masing-masing. Juga cara menggunakannya dapat dilihat di manual-nya yang dapat kita unduh melalui situs web resminya http://www.gnuplot.info (lumayan klenger bro).
Pada halaman ini hanya ditampilkan hasil dari beberapa perintah gnuplot yang diambil dari berbagai sumber di internet yang disesuaikan dengan file yang telah kita buat.
Data yang dipakai gnuplot yang berasal dari file hanya bisa yang berjenis teks tanpa tanda pemisah apapun. Dan file sales.asc yang telah kita simpan sebelumnya telah memiliki syarat sebagai bahan bakunya. Namun sebelum menggunakannya, terlebih dahulu kita tambahkan tanda komentar “#" pada baris pertama dan kedua pada file tersebut (gunakan leafpad atau vi), sebab yang dipakai hanyalah data berbentuk numerik.
Lalu kita lanjut menggunakan gnuplot dengan memberikan perintah di terminal.
:~$ gnuplot
G N U P L O T
Version 4.4 patchlevel 0
last modified March 2010
System: Linux 2.6.37-slitaz
Copyright (C) 1986-1993, 1998, 2004, 2007-2010
Thomas Williams, Colin Kelley and many others
gnuplot home:     http://www.gnuplot.info
faq, bugs, etc:   type "help seeking-assistance"
immediate help:   type "help"
plot window:      hit 'h'
Terminal type set to 'wxt'
gnuplot> plot "sales.asc" using 1:2 title 'Jan' w l, \
>"sales.asc" using 1:3 title 'Feb' w l, \
>"sales.asc" using 1:4 title 'Mar' w l, \
>"sales.asc" using 1:5 title 'Apr' w l, \
>"sales.asc" using 1:6 title 'Mei' w l, \
>"sales.asc" using 1:7 title 'Jun' w l
gnuplot>

Hasil plot yang didapat seperti ini :



Namun bagi yang menyukai minimalis, gnuplot menyediakan fasilitas terminal yang berformat console.

gnuplot> set terminal dumb
Terminal type set to 'dumb'
Options are 'feed  size 79, 24'
gnuplot> plot "sales.asc" using 1:2 w boxes title 'Jan 1999 Sales'
  80 ++-----+------+------+------+------+-----+------+------+------+-----++
     +      +      +      +      +      +  ******** Jan 1999 Sales ****** +
     |                                     *      *                       |
  70 ++                                    *      *                      ++
     |                                     *      *                       |
  60 ++                                    *      *                      ++
     |                                     *      *                       |
     |                                     *      *******                 |
  50 ++                                    *      *     *                ++
     |                                     *      *     *                 |
     |                                     *      *     *                 |
  40 ++                *******             *      *     ********         ++
     |                 *     *             *      *     **     *          |
     |                 *     *             *      *     **     *          |
  30 ++                *     *      ********      *     **     *         ++
     |          ********     *      *      *      *     **     *          |
  20 ++         *     **     *      *      *      *     **     ********  ++
     |   ********     **     *      *      *      *     **     **     *   |
     +   *  +  **  +  **  +  *   +  *   +  *  +   *  +  **  +  **  +  *   +
  10 ++--**************************************************************--++
     0      1      2      3      4      5     6      7      8      9      10
gnuplot> q
:~$

Bila menginginkan bentuk ataupun format yang lain, silakan lihat merujuk manual gnuplot (manualnya lebih banyak bila dibandingkan dengan manual sc - sadis).


Sekian saja edisi Belajar SC-nya. 
Mohon koreksinya bila ada kesalahan.