32
Nama : Raka Dian Pratama Kelas : 2D3 Telekomunikasi B PROJECT AKHIR SHELL PROGRAMMING “CONVERTING BILANGAN”

Project Akhir SHELL Programming (Print)

Embed Size (px)

DESCRIPTION

abc

Citation preview

Page 1: Project Akhir SHELL Programming (Print)

Nama : Raka Dian PratamaKelas : 2D3 Telekomunikasi

BNRP 7211030055

PROJECT AKHIR SHELL PROGRAMMING “CONVERTING BILANGAN”

i. JUDUL

Page 2: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Converting Bilangan.

ii. TUJUAN

Program ini dibuat untuk mempermudah dalam mengkonversi bilangan. Dengan

adanya program ini diharapkan dapat mempermudah dalam mengkonversikan bilangan

dalam bentuk Biner, Desimal, Hexadesimal maupun Oktal.

iii. TEORI

Input/Output

Sebuah proses memerlukan Input dan Output.

Instruksi (command) yang diberikan pada Linux melalui Shell disebut sebagai eksekusi program yang selanjutnya disebut proses. Setiap kali instruksi diberikan, maka Linux kernel akan menciptakan sebuah proses dengan memberikan nomor PID (Process Identity). Proses dalam Linux selalu membutuhkan Input dan menghasilkan suatu Output.

Simple I/O

I/O merupakan hal yang mendasar dari kerja komputer karena kapasitas inilah yang membuat komputer begitu berdayaguna. I/O yang dimaksud adalah device yang menangani masukan dan keluaran, baik itu berupa keyboard, floppy, layar monitor,dan sebagainya. Penggunaan proses I/O ini pada contoh sebelumnya seperti statement echo yang digunakan untuk menampilkan teks atau informasi ke layar, atau operasi redirect ke file. selain echo, bash menyediakan perintah builtin printf untuk mengalihkan keluaran ke output standard, baik ke layar ataupun ke file dengan format tertentu, mirip statement printf kepunyaan bahasa C atau perl.

1. Output dengan echo

Perintah yang digunakan adalah : echo.

Syntak :

echo “teks yang ingin ditampilkan”

Kalimat yang mengikuti echo akan ditampilkan di layar, kemudian kursor pindah baris berikutnya tanda (opsi) –n antara echo dengan kalimat digunakan agar kursor tidak pindah ke baris berikutnya.

Statement echo dengan opsi -n akan membuat posisi kursor untuk tidak berpindah ke baris baru karena secara default statement echo akan mengakhiri proses pencetakan ke standar output dengan karakter baris baru (newline), dapat juga dicoba tanpa menggunakan opsi -n, dan lihat perbedaannya. opsi lain yang dapat digunakan adalah -e (enable), memungkinkan penggunaan backslash karakter atau karakter sekuen seperti pada bahasa C atau perl.

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

INPUT PROSES OUTPUT

Page 3: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Pemakaian Variabel

Variabel

Secara sederhana variabel adalah pengenal (identifier) berupa satuan dasar penyimpanan yang isi atau nilainya sewaktu-waktu dapat berubah baik oleh eksekusi program (runtime program) ataupun proses lain yang dilakukan sistem operasi. Variabel dibagi menjadi 3 kategori:

Environment Variabel

Environment Variabel atau variabel lingkungan adalah variabel yang digunakan khusus oleh shell atau system linux untuk proses kerja system seperti variabel PS1, PS2, HOME, PATH, USER, SHELL, dan sebagainya. Jika variabel ini digunakan akan berdampak pada system, misalkan variabel PS1 yang digunakan untuk mengeset prompt shell pertama yaitu prompt tempat anda mengetikkan perintah - perintah shell (defaultnya "\s-\v\$"), PS2 untuk prompt pelengkap perintah, prompt ini akan ditampilkan jika perintah yang dimasukkan dianggap belum lengkap oleh shell (defaultnya ">").

Jika ingin mengkonfigurasi prompt shell, bash telah menyediakan beberapa backslash karakter diantaranya adalah:

\a ASCII bell character (07)

\d date dengan format "Weekday Month Date" (misalnya "Tue May 26")

\e ASCII escape character (033)

\H hostname (namahost)

\n newline (karakter baru)

\w Direktory aktif

\t time dalam 24 jam dengan format HH:MM:SS

dll man bash:-)

Positional Parameter

Positional Parameter / parameter posisi yaitu variabel yang digunakan shell untuk menampung argumen yang diberikan terhadap shell baik berupa argumen waktu sebuah file dijalankan atau argumen yang dikirim ke subrutin. variabel yang dimaksud adalah 1,2,3,dan seterusnya. Variabel spesial lain yang dapat digunakan yaitu 0, #, dan *.

User Defined Variable

User Defined Variable atau variabel yang didefinisikan sendiri oleh pembuat script sesuai dengan kebutuhannya, beberapa hal yang perlu diperhatikan dalam mendefenisikan variabel adalah:

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 4: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

dimulai dengan huruf atau underscore

hindari pemakaian spesial karakter seperti *,$,#,dan lain-lain.

bash bersifat case sensitive, maksudnya membedakan huruf besar dan kecil, a berbeda dengan A, nama berbeda dengan Nama, NaMa, dan sebagainya.

untuk mengeset nilai variabel dengan menggunakan operator assignment (pemberi nilai) "=".

Ada 3 tanda kutip yang digunakan untuk memberikan nilai string ke

suatu variabel, adapun perbedaannya adalah:

dengan kutip ganda (double-quoted), bash mengizinkan kita untuk

menyisipkan variabel di dalamnya.

dengan kutip tunggal (single-quoted), akan ditampilkan apa adanya.

dengan kutip terbalik, bash menerjemahkan sebagai perintah yang akan dieksekusi.

Expresi dan Test

Ekspresi

Ekspresi pada bahasa-bahasa tingkat tinggi terbagi atas dua macam yaitu ekspresi kondisi dan ekspresi aritmatika. Kedua macam ekspresi ini menggunakan operator.

Operator Kondisi :

|| atau (OR)

&& dan (AND)

! tidak(NOT)

Konstanta kondisi ada dua: 0 untuk kondisi salah (FALSE) dan 1 untuk kondisi benar (TRUE). Sedangkan untuk operator relasi yang menghasilkan TRUE atau FALSE sebagai berikut:

Operator relasi :

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 5: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Operator yang berhubungan dengan matematika :

Test

Test adalah utility sh shell yang berguna untuk memeriksa informasi tentang suatu file dan berguna untuk melakukan perbandingan suatu nilai baik string ataupun numerik

Syntak :

Proses kerja test yaitu dengan mengembalikan sebuah informasi status yang dapat bernilai 0 (benar) atau 1 (salah) dimana nilai status ini dapat dibaca pada variabel spesial $?.

1. Operator untuk integer

Operator Keterangan

bil1 -eq bil2

Mengembalikan Benar jika bil1 sama dengan bil2

bil1 -ne Benar jika bil1 tidak sama dengan bil2

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

== sama dengan

!= tidak sama dengan

=~ sama dengan untuk string

!~ tidak sama dengan untuk string

<= lebih kecil atau sama dengan

>= lebih besar atau sama dengan

> lebih besar

< lebih kecil

Perkalian *

Pembagian /

Penjumlahan +

Pengurangan -

Modulo (sisa hasil bagi) %

test ekspresi atau [ expression ]

Page 6: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

bil2

bil1 -lt bil2 Benar jika bil1 lebih kecil dari bil2

bil1 -le bil2 Benar jika bil1 lebih kecil atau sama dengan bil2

bil1 -gt bil2 Benar jika bil1 lebih besar dari bil2

bil1 -ge bil2

Benar jika bil1 lebih besar atau sama dengan bil2

2. Operasi string

Operator Keterangan

-z STRING Mengembalikan Benar jika panjang STRING adalah zero

-n STRING Mengembalikan Benar jika panjang STRING adalah non zero

STRING1 == STRING2

Benar jika STRING1 sama dengan STRING2

3. Operator file

Operator

Keterangan

-f FILE Mengembalikan Benar jika FILE ada dan merupakan file biasa

-d FILE Benar jika FILE ada dan merupakan direktory

4. Operator logika

ekspr1 -o ekspr2

Benar jika jika salah satu ekspresi benar (or,||)

ekspr1 -a ekspr2

Benar jika ekspresi1 dan ekspresi2 benar (and,&&)

! ekspresi Mengembalikan Benar jika ekspresi tidak benar (not!)

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 7: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

PENGKONDISIAN

KONSTRUKSI if

Statement builtin if berfungsi untuk melakukan seleksi berdasarkan suatu kondisi tertentu. Secara umum ada dua bentuk umum sintak perintah if , seperti ditunjukkan dibawah ini

Syntak :

1. if [ kondisi ] then

statementsfi

2. if [ kondisi ]then

statementselse

statements fi

Perbedaan antara kedua bentuk adalah bentuk pertama mempunyai perintah tunggal jika ekspresi/kondisi yang diuji benar, sedangkan bentuk kedua mempunyai banyak perintah yang akan dijalankan jika ekspresi yang diuji benar.

Kalau diperhatikan, perintah if ini hampir sama dengan perintah if pada bahasa-bahasa tingkat tinggi, seperti Pascal, C, dan juga hampir sama dengan perintah if pada batch file-nya DOS. Pada bentuk pertama maupun bentuk kedua dari sintak diatas adalah statement dalam blok if...fi akan dieksekusi apabila kondisi if terpenuhi. Dari kedua bentuk diatas dapat pula ditambahkan perintah untuk pengecekan kondisi dengan elif (else if), contoh sintaknya adalah sebagai berikut:

3. if [ kondisi ];then

perintah1;elif [ kondisi2 ];

thenperintah2;

elsealternatif_perintah;

fi

klausa else akan dieksekusi jika if tidak terpenuhi, sebaliknya jika if terpenuhi maka else tidak akan dieksekusi.

KONSTRUKSI case

Case digunakan untuk menyederhanakan pemakaian if yang berantai, sehingga dengan case, kondisi dapat dikelompokkan secara logis dengan lebih jelas dan mudah untuk ditulis.

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 8: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Statement case juga digunakan untuk menyeleksi kondisi majemuk, dibanding if, pemakaian case lebih efisien.

Syntak :

case string inpilihan)

commands;;

pilihan)commands;;

*)default commands;;

esac

Case diakhiri dengan esac dan pada setiap kelompok instruksi diakhiri dengan ;;. Pada akhir pilihan yaitu *) yang berarti adalah “default”, bila kondisi tidak memenuhi pola sebelumnya.

Subrutin atau Fungsi

Merupakan bagian script atau program yang berisi kumpulan beberapa statement yang melaksanakan tugas tertentu. Dengan subrutin kode script tentunya akan lebih sederhana dan terstruktur, karena sekali fungsi telah dibuat dan berhasil maka akan dapat digunakan kapan saja bila diinginkan. Beberapa hal mengenai fungsi ini adalah:

Memungkinkan penyusunan kode script ke dalam bentuk modul-modul kecil yang lebih efisien dengan tugasnya masing-masing.

Mencegah penulisan kode yang berulang - ulang.

Di dalam shell fungsi juga bisa didefinisikan interaktif maupun secara script program, dan meskipun didefinisikan secara interaktif, sebuah fungsi juga bisa dipanggil melalui script yang dibuat dalam sebuah file dengan catatan fungsi tersebut sudah di export. Setelah melalui mekanisme export ini sub-shell juga bisa memanggil fungsi tersebut. Jadi fungsi adalah program yang dapat dipanggil oleh program lainnya dengan menggunakan notasi NamaFungsi(). Fungsi memberikan exit status ($?) yang dinyatakan dengan return nr, atau nilai 0 sebagai default. Untuk membuat subrutin shell telah menyediakan keyword function seperti pada bahasa C, akan tetapi ini bersifat optional (artinya boleh digunakan boleh tidak). Bentuk umum dalam mendefinisikan fungsi dalam bash shell adalah sebagai berikut:

Syntak :

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 9: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Nama_fungsi () { command; command; }

Function nama_fungsi { command; command; }

Function nama_fungsi () { command; command; }

nama_fungsi adalah pengenal (identifier) yang aturan penamaannya sama seperti pemberian nama variabel, setelah fungsi dideklarasikan atau dibuat dapat dipanggil dengan menyebutkan nama fungsinya.

Mengirim argumen sebagai parameter ke fungsi

Tentunya suatu fungsi lebih berdaya guna apabila dapat menerima argumen yang dikirim oleh pemanggilnya dan memproses argumen tersebut didalam fungsinya, fungsi yang telah dibuat pada bash shell tentunya harus dapat melakukan hal tersebut, apabila pada pemanggilan fungsi disertakan argumen untuk diproses fungsi tersebut, maka bash akan menyimpan argumen - argumen tersebut pada parameter posisi 1,2,3,dan seterusnya..., dengan memanfaatkan parameter posisi tersebut tentunya dapat diambil nilai yang telah dikirim.

Cakupan Variabel

Secara default variabel - variabel yang digunakan dalam script adalah variabel bersifat global, maksud global adalah bahwa variabel tersebut dikenal dan dapat diakses oleh semua fungsi dalam script, tetapi bash menyediakan keyword local yang berfungsi membatasi cakupan (scope) suatu variabel agar dikenal hanya oleh fungsi yang mendeklarasikannya. Jadi variabel dapat didefinisikan dalam fungsi sebagai variable local atau global. Hal yang perlu diperhatikan, nama variable yang digunakan dalam sebuah fungsi, jangan sampai bentrok dengan nama variable yang sama di luar fungsi, sehingga tidak terjadi isi variable berubah.

Pemrograman Filter(awk)

Filter File Teks awk

Awk adalah sebuah perograman filter untuk teks, seperti halnya perintah "grep". Awk dapat digunakan untuk mencari bentuk/model dalam sebuah file teks. Awk juga dapat mengganti bentuk satu teks ke dalam bentuk teks lain. Awk dapat juga digunakan untuk melakukan proses aritmatika seperti yang dilakukan oleh perintah "expr". Awk adalah sebuah pemrograman seperti pada shell atau C yang memiliki karakteristik yaitu sebagai tool yang cocok untuk jobs juga sebagai pelengkap (complicated) untuk filter standard. Jika kecepatan merupakan hal yang pokok, awk adalah sesuatu produk bahasa yang sangat sesuai. Tetapi hanya untuk even jobs dimana kecepatan menjadi sesuatu hal yang esensial/pokok atau utama, maka awk dapat digunakan sebagai bentuk prototipe-nya. Meskipun awk dan shell keduanya adalah bahasa pemrograman, keduanya adalah spesialis untuk aplikasi yang berbeda. Awk sangat baik untuk manipulasi file teks, sedangkan shell sangat baik untuk pelaksana perintah UNIX.

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 10: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Awk sangat cocok untuk menyelesaikan tugas sederhana, seperti halnya penyuntingan sebuah kata untuk dicetak oleh perintah date atau tugas komplek lainnya seperti pelayanan pengolahan sebuah data base sederhana atau paket statistik. Adapun contoh awk untuk aplikasi sederhana yaitu sebuah program untuk menampilkan hari dan bulan.

Simple Script

Sebuah awk script terdiri dari 2 bagian; yaitu "pattern dan action". Pattern adalah serupa dengan regular expressions, dan action sama seperti bahasa C yaitu aksi dari hasil sebuah perintah. Pattern dengan regular ekspresi diperlihatkan pada tabel dibawah ini.

Tabel 1. Pattern awk

Metacharacter

Meaning

. (Dot) Match any character

* Match zero or more character

^ Match beginning of line

$ Match end of line

\ Escape character following

[ ] List

{ } Match range of instance

+ Match one more preceding

? Match zero or one preceding

| Separate choices to match

Sedangkan sintak umum dari script awk adalah sebagai berikut:

Syntak :

awk -f {awk program file} filename

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 11: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Pernyataan didalam program awk:

Pattern {                   action 1                   action 2                   action N            }

Didalam program awk, pattern diikuti oleh action, dengan tanda kurung kurawal { } yang mengelilingi setiap action. Sebuah action adalah pelaksana jika pattern sesuai dengan sesuatu yang ada didalam baris input. Jika bagian pattern tidak ada, action akan melakukan aksi untuk tiap-tiap baris dalam file. Jika action absen/tidak ada, maka default action yaitu mencetak baris dilaksanakan.

GRAPHICAL USER INTERFACE (GUI)

Zenity

Zenity mempunyai peran sebagai pembuat GUI pada shell programing atau yang disebut Grafik User Interface dimana mempunyai fungsi mempermudah user untuk mengoperasikan programnya melalui grafis secara interaktif. Zenity mempunyai banyak opsi seperti:

Dengan opsi seperti diatas zenity dapat digunakan untuk membuat sebuah question dialog box. Disamping itu zenity juga dapat digunakan untuk aplikasi yang lain seperti calendar, entry, error, info, file selection, list, notification, progress, warning, scale dan text info. Pada bab ini akan di ilustrasikan bagaimana membuat aplikasi zenity dialog.

Contoh sintak zenity :

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

--entry : meminta input dari keyboard--info : menampilkan text yang dimana berfungsi

sebagai sebuah info--list : membuat list berdasarkan column dan row secara

tertabel dan lain-lain.

Page 12: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Kalender Dialog

Dengan menggunakan option –-calendar dapat dibuat sebuah kalender dialog. Pada kalender dialog ini user diijinkan untuk memilih inisial yang khusus pada perintah date yaitu dengan menggunakan option :

--text=text

Spesikasi “text” digunakan untuk menampilkan teks pada kalender dialog.

--day=day

Spesifikasi “day” digunakan untuk memilih tanggal di dalam kalender dialog. Day harus diberi nilai angka untuk tanggal dari 1 sampai 31.

--month=month

Spesifikasi “month” digunakan untuk memilih bulan di dalam kalender dialog. Month harus diberi nilai untuk bulan dari 1 sampai 12.

--year=year

Spesifikasi “year” digunakan untuk memilih tahun di dalam kalender dialog.

--date-format=format

Menentukan kembali format dari dialog kalender setelah seleksi tanggal (date). Format standar tergantung pada system lokal dan format yang dapat diterima oleh fungsi strftime misalnya %A %d/%m/%y.

File Selection Dialog

Untuk membuat file selection dialog digunakan opsi --file-selection. Zenity akan melakukan seleksi file atau direktori ke output standard. Mode default file selection dialog adalah buka file. File selection dialog memiliki beberapa opsi:

--filename=filename

Menentukan file atau direktori yang dipilih pada dialog pemilihan file ketika dialog yang pertama ditampilkan.

--multiple

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 13: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Menentukan pemilihan beberapa nama file dalam dialog pemilihan file.

--directory

Menentukan pilihan direktori pada dialog pemilihan file.

--save

Set dialog pemilihan file ke mode save.

--separator=separator

Menentukan string yang digunakan untuk membagi kembali daftar nama file.

List Dialog

Menggunakan opsi --list Untuk membuat list dialog. Zenity akan mengembalikan entry dalam kolom pertama baris teks yang dipilih ke output standar. Data untuk dialog kolom harus ditentukan meurut kolom, baris demi baris. Data dapat disediakan untuk dialog melalui input standar. Setiap entri harus dipisahkan oleh karakter baris baru. Jika menggunakan opsi --checklist atau --radiolist, setiap baris harus dimulai dengan ’TRUE’ atau’FALSE’. List dialog memiliki opsi berikut:

--column=column

Menentukan header kolom yang ditampilkan dalam list dialog. Harus ditentukan opsi –colomn untuk setiap kolom yang ingin ditampilkan dalam dialog.

--checklist

Menentukan bahwa kolom pertama pada list dialog berisi kotak cek.

--radiolist

Menentukan bahwa kolom pertama pada list dialog berisi kotak radio.

--editable

Memungkinkan ditampilkan item yang akan diedit.

--separator=separator

Menentukan string apa yang digunakan ketika dialog mengembalikan daftar entry yang dipilih.

--print-column=column

Menentukan apakah kolom harus dicetak pada seleksi. Default kolom adalah '1 '. ‘ALL’ yang dapat digunakan untuk encetak semua kolom dalam list.

Untuk melihat penjelasan lebih detail tentang penggunaan zenity, dapat dilihat di terminal dengan mengetik man zenity, maka akan muncul petunjuk penggunaan zenity.

iv. PROGRAM

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 14: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Script :

#!/bin/bashload(){( echo "10"; sleep 1 echo "#Loading. ."; echo "60"; sleep 1 echo "#Loading. ."; echo "100"; sleep 1 echo "#Finish. ."; sleep 1) | zenity --progress \ --title="Progress" \ --text="Loading . ." \ --percentage=10 --timeout=3}

input2(){desimal=$(zenity --title "Desimal-Biner" --entry --text "Masukkan angka Desimal ") load;biner=`echo "obase=2; $desimal" | bc` ;zenity --info --text "angka biner dari $desimal adalah $biner" }

input1(){biner=$(zenity --title "Biner-Desimal" --entry --text "Masukkan angka Biner ") load;desimal=`echo "ibase=2; $biner" | bc` ;zenity --info --text "angka desimal dari $biner adalah $desimal" }

input3(){hexa=$(zenity --title "Hexa-Desimal" --entry --text "Masukkan angka Hexa ") load;desimal=`echo "ibase=16; $hexa" | bc` ;zenity --info --text "angka desimal dari $hexa adalah $desimal" }

input4(){dexa=$(zenity --title "Desimal-Hexa" --entry --text "Masukkan angka Desimal ") load;hexa=`echo "obase=16; $dexa" | bc` ;zenity --info --text "angka hexa dari $dexa adalah $hexa" }

input5(){bixa=$(zenity --title "Biner-Hexa" --entry --text "Masukkan angka Biner ") load;hexa=`echo "ibase=2;obase=16; $bixa" | bc` ;zenity --info --text "angka hexa dari $bixa adalah $hexa" }

input6(){hebi=$(zenity --title "Hexa-Biner" --entry --text "Masukkan angka Hexa ")

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 15: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

load;hexa=`echo "ibase=16;obase=2; $hebi" | bc` ;zenity --info --text "angka biner dari $hebi adalah $hexa" }

input7(){okt=$(zenity --title "Desimal-Oktal" --entry --text "Masukkan angka Desimal ") load;exa=`echo "obase=8; $okt" | bc` ;zenity --info --text "angka desimal dari $okt adalah $exa" }

input8(){okd=$(zenity --title "Oktal-Desimal" --entry --text "Masukkan angka Oktal ") load;he=`echo "ibase=8; $okd" | bc` ;zenity --info --text "angka oktal dari $okd adalah $he" }

input9(){bio=$(zenity --title "Biner-Oktal" --entry --text "Masukkan angka Biner ") load;xa=`echo "ibase=2;obase=8; $bio" | bc` ;zenity --info --text "angka hexa dari $bio adalah $xa" }

input10(){obi=$(zenity --title "Oktal-Biner" --entry --text "Masukkan angka Oktal ") load;ex=`echo "ibase=8;obase=2; $obi" | bc` ;zenity --info --text "angka oktal dari $obi adalah $ex" }

input11(){ho=$(zenity --title "Hexa-Oktal" --entry --text "Masukkan angka Hexa ") load;xaa=`echo "ibase=16;obase=8; $ho" | bc` ;zenity --info --text "angka oktal dari $ho adalah $xaa" }

input12(){oh=$(zenity --title "Oktal-Hexa" --entry --text "Masukkan angka Oktal ") load;exe=`echo "ibase=8;obase=16; $oh" | bc` ;zenity --info --text "angka hexa dari $oh adalah $exe" }

satu(){zenity --info --text "Konversi Bilangan Desimal, Biner, Oktal dan Heksadesimal

Pada momen yang berbahagia ini, saya ingin coba menjabarkan tahap2 sederhana proses konversi bilangan desimal, biner, oktal dan heksadesimal.

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 16: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Bilangan desimal adalah bilangan yang menggunakan 10 angka mulai 0 sampai 9 berturut2. Setelah angka 9, maka angka berikutnya adalah 10, 11, 12 dan seterusnya. Bilangan desimal disebut juga bilangan berbasis 10. Contoh penulisan bilangan desimal : 1710. Ingat, desimal berbasis 10, maka angka 10-lah yang menjadi subscript pada penulisan bilangan desimal.

Bilangan biner adalah bilangan yang hanya menggunakan 2 angka, yaitu 0 dan 1. Bilangan biner juga disebut bilangan berbasis 2. Setiap bilangan pada bilangan biner disebut bit, dimana 1 byte = 8 bit. Contoh penulisan : 1101112.

Bilangan oktal adalah bilangan berbasis 8, yang menggunakan angka 0 sampai 7. Contoh penulisan : 17,8.

Bilangan heksadesimal, atau bilangan heksa, atau bilangan basis 16, menggunakan 16 buah simbol, mulai dari 0 sampai 9, kemudian dilanjut dari A sampai F. Jadi, angka A sampai F merupakan simbol untuk 10 sampai 15. Contoh penulisan : C5,16."}

dua(){b=$(zenity --title "CONVERTING" --entry --text "MENU :---------------- .:: Menu ::. ------------------ 1. Konversi Biner ke Desimal 2. Konversi Desimal ke Biner 3. Konversi Hexa ke Desimal 4. Konversi Desimal ke Hexa 5. Konversi Biner ke Hexa 6. Konversi Hexa ke Biner 7. Konversi Desimal ke Oktal 8. Konversi Oktal ke Desimal 9. Konversi Biner ke Oktal 10. Konversi Oktal ke Biner 11. Konversi Hexa ke Oktal 12. Konversi Oktal ke Hexa------------------------------------------pilihan anda :")

if [ "$b" == "1" ]; then input1;elif [ "$b" == "2" ]; theninput2;elif [ "$b" == "3" ]; theninput3;elif [ "$b" == "4" ]; theninput4;elif [ "$b" == "5" ]; theninput5;elif [ "$b" == "6" ]; theninput6;elif [ "$b" == "7" ]; theninput7;elif [ "$b" == "8" ]; theninput8;elif [ "$b" == "9" ]; theninput9;elif [ "$b" == "10" ]; theninput10;elif [ "$b" == "11" ]; theninput11;elif [ "$b" == "12" ]; theninput12;elseexit 0

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 17: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

fi}awal(){loop=ywhile [ $loop != n ]docleara=$(zenity --title "Konverting Bilanagan" --width 600 --entry --text "menu :\n 1. Sekilas tentang pengkonversian bilangan 2. Konverting Bilangan \nMasukkan pilihan anda : ")case $a in1) satu ; ;;2) dua ; ;;*) bb=$(zenity --title "pilihan" --entry --text "Masukkan salahcoba lagi? y / n?")if [ $bb == y ]; thenawal;elif [ $bb == n ]; thenzenity --info --text "THANKS"exit 0;fi;;esacloop=$(zenity --title "what else" --entry --text "lanjut ke pilihan lain (y/n)")donezenity --title "END" --info --text "Terima kasih, GOODLUCK"}awal;

Output :

Apabila diklik cancel akan tampil pilihan dan pilih “n” maka akan tampil :

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 18: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Apabila diinputkan pilihan ke “1” akan tampil :

Saat dipilih “OK” maka akan tampil pilihan what else , dimana saat kondisi memilih “n” maka akan keluar dari program dengan tampilan :

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 19: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Kemudian langsung keluar program saat di klik “OK”. Jika saat kondisi what else tadi dipilih “y” maka akan kembali ke tampilan awal.Pada tampilan awal ketika pilihan 2 diplih maka akan tampil menu konverting :

Pada tapilan menu converting terdapat beberapa piliha pengkonversian bilangan, misalnya apabila memilih pilihan 1 adalah “Konversi Biner ke Desimal” :

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 20: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Pada plihan 4 adalah “Konversi Desimal ke Hexadesimal” :

Pada plihan 7 adalah “Konversi Desimal ke Oktal” :

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 21: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Pada plihan 12 adalah “Konversi Okta ke Hexa” :

Ketika diklik “OK” maka akan tampil piliha what else , apabila dipilih “y” maka akan kembali ke tampilan awal dan apabila diplih “n” maka akan tampil :

Dan akan keluar dari program.

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 22: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

v. ANALISA Pada proyek workshop shell programming dengan judul “CONVERTING BILANGAN”

secara garis besar program didalamnya adalah perintah - perintah dasar dari shell yang dipadukan dengan GUI. Perintah dasar shell yang dipakai adalah "obase=2; $desimal" digunakan untuk merubah angka desimal menjadi biner secara langsung karena "obase" merupakan fungsi yang sudah di sediakan oleh fungsi "bc". sedangkan "ibase" digunakan untuk merubah angka biner menjadi desimal secara langsung. Perintah obase sendiri terdiri dari beberapa macan perintah, antara lain untuk decimal, biner, hexadecimal dan octal. Dalam program tersebut dipadukan agar dapat mengkonversi bilangan dari biner ke decimal , decimal ke octal , hexa ke biner dan sebagainya.

Pada program menu utamanya adalah sebagai berikut :awal(){loop=ywhile [ $loop != n ]docleara=$(zenity --title "Konverting Bilanagan" --width 600 --entry --text "menu :\n 1. Pengertian tentang pengkonvertan bilangan 2. Konverting Bilangan \nMasukkan pilihan anda : ")case $a in1) satu ; ;;2) dua ; ;;

terdapat beberapa fungsi dan perintah, variabel loop=y digunakan untuk menyatakan kondisi jika pilihan adalah “y” maka akan tampil tampilan awal dari program. Case didalam program digunakkan untuk membuat beberapa kondisi keadaan dimana ada kondisi satu dan kondisi dua , saat pilihan satu dipilh maka akan muncul tampilan satu :

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 23: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

satu(){zenity --info --text "Konversi Bilangan Desimal, Biner, Oktal dan Heksadesimal . . . dan seterusnya

akan masuk dalam case pilihan satu. Apabila dienter maka akan tampil pilihan kondisi “y” dan “n” dimana saat dipilah “n” maka akan keluar dari program dengan adanya tampilan :

Tapi jika kondisi “y” dipilih maka akan kembali melooping ke awal program atau tampilan awal.

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 24: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Pada tampilan awal ini apabila case satu dan dua tidak terpenuhi atau bukan pilihan 1 dan 2 maka jalannya program akan masuk pada kondisi :bb=$(zenity --title "pilihan" --entry --text "Masukkan salahcoba lagi? y / n?")if [ $bb == y ]; thenawal;elif [ $bb == n ]; thenzenity --info --text "THANKS"exit 0;fi;;esacloop=$(zenity --title "what else" --entry --text "lanjut ke pilihan lain (y/n)")donezenity --title "END" --info --text "Terima kasih, GOODLUCK"}awal;

dimana fungsi kondisi if elif yang menyatakn jika diinputkan “y” maka akan kembali ke awal program dan jika tidak maka akan masuk pada kondisi “n” dan akan tampil prompt GUI “masukan salah” dan menyatakan kondisi coba lagi “y” dan “n”, jika “n” maka keluar dari program dan tampil :

Jika “y” maka akan kembali ke tampilan awal tampilan. Dan saat pilihan case dua terpenuhi maka akan tampil menu “converting bilangan” :

dua(){b=$(zenity --title "CONVERTING" --entry --text "MENU :-----------------------------Menu------------------------------ 1. Konversi Biner ke Desimal 2. Konversi Desimal ke Biner 3. Konversi Hexa ke Desimal 4. Konversi Desimal ke Hexa 5. Konversi Biner ke Hexa 6. Konversi Hexa ke Biner 7. Konversi Desimal ke Oktal 8. Konversi Oktal ke Desimal 9. Konversi Biner ke Oktal 10. Konversi Oktal ke Biner 11. Konversi Hexa ke Oktal 12. Konversi Oktal ke Hexa------------------------------------------------------------------pilihan anda :")

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 25: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

Dengan berbagai pilihan konversi bilangan. Program untuk mengkonversi bilamhan sebagai berikut :

input2(){desimal=$(zenity --title "Desimal-Biner" --entry --text "Masukkan angka Desimal ") load;biner=`echo "obase=2; $desimal" | bc` ;zenity --info --text "angka biner dari $desimal adalah $biner" }

input1(){biner=$(zenity --title "Biner-Desimal" --entry --text "Masukkan angka Biner ") load;desimal=`echo "ibase=2; $biner" | bc` ;zenity --info --text "angka desimal dari $biner adalah $desimal" }

input3(){hexa=$(zenity --title "Hexa-Desimal" --entry --text "Masukkan angka Hexa ") load;desimal=`echo "ibase=16; $hexa" | bc` ;zenity --info --text "angka desimal dari $hexa adalah $desimal" }. . . .dstinput12(){oh=$(zenity --title "Oktal-Hexa" --entry --text "Masukkan angka Oktal ") load;exe=`echo "ibase=8;obase=16; $oh" | bc` ;zenity --info --text "angka hexa dari $oh adalah $exe" }

Didalam program terdapat berbagai macam kondisi printah-printah dasar pengkonversian bilangan dari printah dasar shell dimana telah diatur supaya memenuhi printah konversi yang diinginkan. Missalnya dalam mengkonversi octal ke hexa maka printah yang digunakan adalah :

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a

Page 26: Project Akhir SHELL Programming (Print)

Raka DP 2D3 Telekomunikasi B 7211030055 Converting Bilangan

exe=`echo "ibase=8;obase=16; $oh" | bc` ;

dimana "ibase=8;obase=16; adalah printah untuk mengubah bilangan dari octal ke hexa , oh adalah nilai yang diinputkan keyboard dan $exe adalah hasil dari konversi.Program untuk tampilan GUI proses dituliskan sebagai berikut :#!/bin/bashload(){( echo "10"; sleep 1 echo "#Loading. ."; echo "60"; sleep 1 echo "#Loading. ."; echo "100"; sleep 1 echo "#Finish. ."; sleep 1) | zenity --progress \ --title="Progress" \ --text="Loading . ." \ --percentage=10 --timeout=3}

Program ini dibuat untuk memunculkan zenity proses dengan lama tampil selama tiga detik. echo "10"; sleep 1 … adalah untuk perintah tampilan dengan sleep 1 menyatakan printah timing text 1 detik sampai finish dan menampilkan GUI opsi --progess, --text menampilkan teks loading selama tiga detik selesai.

vi. KESIMPULAN

Dari program “CORVERTING BILANGAN” dapat disimpulkan bahwa : Printah-printah dasar shell dapat dimanfaatkan untuk mempermudah pengkonversian

bilangan. GUI menggunakan zenity dapat digunakan untuk menampilkan kotak dialog yang dapat

mempermudah kita dalam menjalankan program, tampilan interface dari GUI juga membuat program lebih interaktif.

EEPIS

E l e c t r o n i c E n g i n e e r i n g P o l y t e c h n i c I n s t i t u t e o f S u r a b a y a