Friday, April 18, 2008

terbilang

#!/bin/bash
#shell script dengan menggunakan file data (CSV) untuk menyebutkan angka antara 1-999
#file CSV dan script diletakkan di satu direktori yg sama


display(){
cat << end

Menyebutkan angka yg di tulis
=============================

$output

$hasil

end
}

clear
output=`echo "masukkan bilangan ?"`
display
read bilangan
total=`echo $bilangan|wc -m`
total=`expr $total - 1`
#echo "$total digitit"

if [ $total -gt 0 ];then
digit=`expr $total - 2`
if [ $digit -lt 1 ];then digit=1;fi
tiga_digit=`echo $bilangan|cut -c$digit-$total`
hasil[4]="`grep -m 1 $tiga_digit angka.csv|cut -f2 -d'|'|uniq`"
let "digit -= 1"
total=$digit
fi

if [ $total -gt 0 ];then
digit=`expr $total - 2`
if [ $digit -lt 1 ];then
digit=1
fi
if [ $digit = $total ];then
tiga_digit=`echo $bilangan|cut -c$digit`
else
tiga_digit=`echo $bilangan|cut -c$digit-$total`
fi
if [ `grep -m 1 $tiga_digit angka.csv|cut -f2 -d'|'|uniq` 2>/dev/null = "Satu" ];then
hasil[3]="Seribu"
fi

hasil[3]="`grep -m 1 $tiga_digit angka.csv|cut -f2 -d'|'|uniq` Ribu"
let "digit -= 1"
total=$digit
fi

if [ $total -gt 0 ];then
digit=`expr $total - 2`
if [ $digit -lt 1 ];then digit=1;fi
if [ $digit = $total ];then tiga_digit=`echo $bilangan|cut -c$digit`
else
tiga_digit=`echo $bilangan|cut -c$digit-$total`
fi
hasil[2]="`grep -m 1 $tiga_digit angka.csv|cut -f2 -d'|'|uniq` Juta"
let "digit -= 1"
total=$digit
fi

if [ $total -gt 0 ];then
digitit=`expr $total - 2`
if [ $digit -lt 1 ];then digit=1;fi
if [ $digit = $total ];then tiga_digit=`echo $bilangan|cut -c$digit`
else
tiga_digit=`echo $bilangan|cut -c$digit-$total`
fi
hasil[1]="`grep -m 1 $tiga_digit angka.csv|cut -f2 -d'|'|uniq` Milyar"
let "digit -= 1"
total=$digit
fi

clear
output="$bilangan"
hasil=`echo ${hasil[@]}`
display
exit 0



kaya gini csv filenya (angka.csv):
1 |Satu
2 |Dua
3 |Tiga
4 |Empat
5 |Lima
6 |Enam
7 |Tujuh
8 |Delapan
9 |Sembilan
10 |Sepuluh
11 |Sebelas
12 |Dua belas
13 |Tiga belas
14 |Empat belas
15 |Lima belas
16 |Enam belas
17 |Tujuh belas
....
....
....
994 |Sembilan Ratus Sembilan Puluh Empat
995 |Sembilan Ratus Sembilan Puluh Lima
996 |Sembilan Ratus Sembilan Puluh Enam
997 |Sembilan Ratus Sembilan Puluh Tujuh
998 |Sembilan Ratus Sembilan Puluh Delapan
999 |Sembilan Ratus Sembilan Puluh Sembilan

0 Comment :