Anda di halaman 1dari 22

PEMROGRAMAN SHELL

RESMI

PEMROGRAMAN INPUT/OUTPUT
3
ALIFFIANTO KRISNA SAGITA
2D4TA
1210191003
AKUWAN SHALEH

03 OKTOBER 2020
21
Praktikum
Pemrograman
3 Input/Output (I/O)

A. T U J U A N

1. Menggunakan statement echo dan printf untuk menampilkan data pada


standar output (layar monitor)
2. Menggunakan statment read untuk memproses data masukkan yang
berasal dari standard input (keyboard).
3. Menggunakan konstanta ANSI untuk keluaran dengan pengaturan warna
dan kursor

B. DASAR TEORI

Proses I/O

Sebuah proses memerlukan Input dan Output.

Input Proses 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.

22
Dalam konteks Linux input/output adalah :
• Keyboard (input)
• Layar (output)
• Files
• Struktur data kernel

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. berikut contohnya:

 Output dengan echo

Perintah yang digunakan adalah : echo.


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, Contoh :
#!/bin/bash
#myinfo
#membersihkan tampilan layar
clear
#menampilkan informasi
echo -n "Waktu system :"; date
echo -n "Anda :"; whoami
echo -n "Banyak pemakai :"; who | wc –l

23
tentunya layout diatas akan disesuaikan dengan system yang digunakan
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,
misalkan :

echo -e "\abunyikan bell"

jika dijalankan akan mengeluarkan bunyi bell, informasi opsi pada statement
echo dan backslash karakter selengkapnya dapat dilihat via man di prompt
shell. $man echo

 Output dengan printf

#!/bin/bash
#pr1
url="pemula.linux.or.id";
angka=32;
printf "Hi, Pake printf ala C\n\t\a di bash\n";
printf "My url %s\n %d decimal = %o octal\n" $url
$angka $angka;
printf "%d decimal dalam float = %.2f\n" $angka
$angka

untuk menggunakan format kontrol disertakan simbol %, bash akan


mensubtitusikan format tsb dengan isi variabel yang berada di posisi kanan
sesuai dengan urutannya jika lebih dari satu variabel, \n \t \a adalah karakter
sekuen lepas newline,tab, dan bell, seperti terlihat pada tabel berikut:

Tabel 1. Format Control


Format control keterangan
%d untuk format data integer
%o octal
%f float atau decimal
%x Hexadecimal

24
pada script diatas %.2f akan mencetak 2 angka dibelakang koma, defaultnya 6
angka, informasi lebih lanjut dapat dilihat via man printf

 Output dengan Konstanta ANSI

1. Pengaturan Warna

Untuk pewarnaan tampilan dilayar dapat menggunakan konstanta ANSI (salah


satu badan nasional amerika yang mengurus standarisasi).

syntaxnya: \033[warnam

Dimana:
m menandakan setting color
contohnya:

$echo -e "\033[31m HELLO\033[0m"


HELLO
konstanta 31m adalah warna merah, 0m untuk kembali ke warna normal
(none), untuk mengatur tampilan prompt shell, contohnya:
$PS1="\033[34m"

Daftar warna yang digunakan :


foreground
None 0m
Black 0;30 Dark Gray 1;30
Red 0;31 Light Red 1;31
Green 0;32 Light Green 1;32
Brown 0;33 Yellow 1;33
Blue 0;34 Light Blue 1;34
Purple 0;35 Light Purple 1;35
Cyan 0;36 Light Cyan 1;36
Light Gray 0;37 White 1;37
background
dimulai dengan 40 untuk BLACK,41 RED,dst

25
lain-lain
4 underscore,5 blink, 7 inverse

2. Pengaturan posisi kursor

Sedangkan untuk penempatan posisi kursor, dapat digunakan salah satu cara
dibawah.

 Menentukan posisi baris dan kolom kursor: \033[baris;kolomH


 Pindahkan kursor keatas N baris: \033[NA
 Pindahkan kursor kebawah N baris: \033[NB
 Pindahkan kursor kedepan N kolom: \033[NC
 Pindahkan kursor kebelakang N kolom: \033[ND

Contohnya:

#!/bin/bash

SETMYCOLOR="\033[42;1;37m"
GOTOYX="\033[6;35H"
clear
echo -e "\033[3;20H INI DIBARIS 3, KOLOM 20"
echo -e "\033[44;1;33;5m\033[5;35H HELLO\033[0m";
echo -e "$SETMYCOLOR$GOTOYX ANDA LIHAT INI\033[0m"

Menggunakan utulity tput untuk penempatan posisi kursor

Penempatan posisi kursor di layar dapat diatur dengan memanfaatkan utility


tput.

syntaxnya:

tput cup baris kolom

contohnya:

#!/bin/bash

clear
tput cup 5 10
echo "HELLO"
tput cup 6 10
echo "PAKE TPUT"

26
jika dijalankan akan didapatkan string HELLO di koordinat baris 5 kolom 10,
dan string PAKE TPUT dibaris 6 kolom 10. informasi selengkapnya tentang tput
gunakan man tput, atau info tput.

 Perintah Input

Perintah yang digunakan adalah : read


Membaca data yang dimasukkan dari input standar (keyboard)
syntaxnya :
read -opsi [nama_variabel...]
opsi
-t(TIMEOUT), -p (PROMPT), -s(SILENT), -n (NCHAR) dan -d(DELIM)
Tabel 1. Contoh Opsi untuk Read
Opsi Keterangan

-p memungkinkan kita membuat prompt sebagai informasi pengisian

-s membuat input yang dimasukkan tidak di echo ke layar (seperti


layaknya password di linux)
-n menentukan banyak karakter yang dimasukkan

-d menentukan karakter pembatas masukan

C. PROSEDUR
1. Masuk ke sistem operasi Linux.
2. Login sebagai user yang telah ditentukan.
3. Gunakan perintah-perintah input dan output pada shell : echo , printf, tput,
dan read.
4. Catatlah hasil dari setiap perintah pada prosedur no.3 sebagai laporan
sementara.
5. Kerjakan soal latihan yang telah disediakan pada modul praktikum.

D. PERCOBAAN

Percobaan 1 : Output

27
1. Menampilkan kata Hello World dengan perintah echo
$vi out.sh
#!/bin/sh
# This is a comment!
echo "Hello World"
echo "Hello World"
echo "Hello * World"
echo Hello * World
echo Hello World
echo "Hello" World
echo Hello " " World echo
"Hello \"*\" World" echo
`hello` world
echo 'hello' world
2. Menampilkan kalimat pada baris yang berbeda
$vi out1.sh
#!/bin/bash
#Ini adalah program pertama
echo “Selamat belajar program bash”
echo “Mudah dan menyenangkan… .. !”
$chmod u+x out1.sh
$./out1.sh
3. Menampilkan kalimat pada baris yang sama
$vi out2.sh
#!/bin/bash
#Ini adalah program kedua
echo -n “selamat”
echo “belajar program bash”
4. Menampilkan informasi waktu system, tentang user dan jumlah pemakai
yang sedang login di system
$vi out3.sh
#!/bin/bash
#myinfo
#membersihkan tampilan layar
clear
#menampilkan informasi
echo -n "Waktu system :"; date
echo -n "Anda :"; whoami
echo -n "Banyak pemakai :"; who | wc –l
5. Menampilkan kalimat, tipe shell dengan echo langsung dari prompt
$echo Hello World
$echo '#!/bin/bash' > my-script.sh
$echo 'echo Hello World' >> my-script.sh

28
$chmod 755 my-script.sh
$./my-script.sh
$echo $SHELL
6. Menampilkan beberapa informasi dengan perintah printf
$vi out4.sh
#!/bin/bash
#pr1
url="pemula.linux.or.id";
angka=32;
printf "Hi, Pake printf ala C\n\t\a di bash\n";
printf "My url %s\n %d decimal = %o octal\n" $url
$angka $angka;
printf "%d decimal dalam float = %.2f\n" $angka
$angka
7. Output dengan konstanta ANSI untuk pengaturan warna
$echo –e "\033[31m HELLO\033[0m"
$PS1LAMA=$PS1
$PS1="\033[34m" (ketikan sembarang perintah akan berwarna biru=34)
PS1=”\033[30m” (ketikan sembarang perintah akan berwarna hitam=30)
PS1=$PS1LAMA (kembali ke promt asal/lama)
$echo –e "\033[41;1;33m Bash and ansi color\033[0m“
8. Output dengan konstanta ANSI untuk pengaturan posisi kursor
$vi out6.sh
#!/bin/bash
SETMYCOLOR="\033[42;1;37m"
GOTOYX="\033[6;35H"
clear
echo -e "\033[3;20H INI DIBARIS 3, KOLOM 20"
echo -e "\033[44;1;33;5m\033[5;35H HELLO\033[0m";
echo -e "$SETMYCOLOR$GOTOYX ANDA LIHAT INI\033[0m“
9. Pengaturan posisi kursor dengan perintah tput
$vi out7.sh
#!/bin/bash
clear
tput cup 5 10
echo "HELLO"
tput cup 6 10
echo "PAKE TPUT“

Percobaan 2 : Input
1. Menampilkan nama yang berasal dari keyboard
$vi inp1.sh

29
#!/bin/bash
echo –n “Tuliskan nama :”
read nama
echo “Hallo ..... $nama”
$chmod 777 inp1.sh
$./inp1.sh
2. Proses pembacaan data input dengan read menggunakan opsi
$vi inp2.sh
#!/bin/bash
read -p "User Name : " user
echo -e "Password 10 karakter,\njika dalam 6 second
tidak dimasukkan pengisian password diakhiri"
read -s -n 10 -t 6 pass
echo "kesan anda selama pake linux,
_underscore=>selesai"
read -d _ kesan
echo "User = $user"
echo "Password = $pass"
echo "Kesan selama pake linux = $kesan"
3. Proses pembacaan data input dengan read dan variable reply
$vi inp3.sh
#!/bin/bash
#rd1
echo -n "Nama anda :"
read nama;
echo "Hi $nama, apa khabarmu";
echo "Pesan dan kesan :";
read
echo "kata $nama, $REPLY";

E. Latihan
1. Buatlah program bash script untuk menampilkan tulisan sebagai berikut :
what is your name ?
Andi ;(diketik lewat keyboard)
Hello Andi
I will create you a file called Andi_file
 gunakan perintah read untuk membaca input dari keyboard dan perintah
echo, printf untuk mencetak. File dengan nama Andi_file tersimpan
secara otomatis pada direktori aktif ketika eksekusi program telah
dilaksanakan.
 periksalah apakah file Andi_file sudah tersimpan pada direktori aktif

30
2. Buatlah program bash script untuk mencetak tulisan sebagai berikut :
A man, a plan, a canal, Panama.
3. Buatlah program bash script untuk menampilkan tulisan sebagai berikut :
I will guess your user name.
It is: ericfj
Keterangan : ericj adalah login name user yang tercetak secara otomatis
ketika program dijalankan.

4. Buatlah program bash script untuk menampilkan tulisan sebagai berikut :


Hmm...determining operating system...
This computer runs: Linux
Keterangan : linux adalah identitas mesin (informasi sistem kernel) yang
tercetak secara otomatis ketika program dijalankan.

31
LAPORAN SEMENTARA
PERCOBAAN 1. PERINTAH DASAR SHELL LINUX

Tanggal : 02 Oktober 2020


Nama : Aliffianto Krisna Sagita (1210191003)
Kelas : 2 D4 TA

Percobaan 1 : Output

1. Menampilkan kata Hello World dengan perintah echo


$vi out.sh
#!/bin/sh
# This is a comment!
echo "Hello World"
echo "Hello World"
echo "Hello * World"
echo Hello * World
echo Hello World
echo "Hello" World
echo Hello " " World echo
"Hello \"*\" World" echo
`hello` world
echo 'hello' world

2. Menampilkan kalimat pada baris yang berbeda


$vi out1.sh
#!/bin/bash
#Ini adalah program pertama
echo “Selamat belajar program bash”
echo “Mudah dan menyenangkan… .. !”
$chmod u+x out1.sh
$./out1.sh

32
3. Menampilkan kalimat pada baris yang sama
$vi out2.sh
#!/bin/bash
#Ini adalah program kedua
echo -n “selamat”
echo “belajar program bash”

4. Menampilkan informasi waktu system, tentang user dan jumlah pemakai


yang sedang login di system
$vi out3.sh
#!/bin/bash
#myinfo
#membersihkan tampilan layar
clear
#menampilkan informasi
echo -n "Waktu system :"; date
echo -n "Anda :"; whoami
echo -n "Banyak pemakai :"; who | wc –l

5. Menampilkan kalimat, tipe shell dengan echo langsung dari prompt


$echo Hello World
$echo '#!/bin/bash' > my-script.sh
$echo 'echo Hello World' >> my-script.sh
$chmod 755 my-script.sh
$./my-script.sh
$echo $SHELL

33
6. Menampilkan beberapa informasi dengan perintah printf
$vi out4.sh
#!/bin/bash
#pr1
url="pemula.linux.or.id";
angka=32;
printf "Hi, Pake printf ala C\n\t\a di bash\n";
printf "My url %s\n %d decimal = %o octal\n" $url
$angka $angka;
printf "%d decimal dalam float = %.2f\n" $angka
$angka

7. Output dengan konstanta ANSI untuk pengaturan warna


$echo –e "\033[31m HELLO\033[0m"
$PS1LAMA=$PS1
$PS1="\033[34m" (ketikan sembarang perintah akan berwarna biru=34)
PS1=”\033[30m” (ketikan sembarang perintah akan berwarna hitam=30)
PS1=$PS1LAMA (kembali ke promt asal/lama)
$echo –e "\033[41;1;33m Bash and ansi color\033[0m“

34
8. Output dengan konstanta ANSI untuk pengaturan posisi kursor
$vi out6.sh
#!/bin/bash
SETMYCOLOR="\033[42;1;37m"
GOTOYX="\033[6;35H"
clear
echo -e "\033[3;20H INI DIBARIS 3, KOLOM 20"
echo -e "\033[44;1;33;5m\033[5;35H HELLO\033[0m";
echo -e "$SETMYCOLOR$GOTOYX ANDA LIHAT INI\033[0m“

9. Pengaturan posisi kursor dengan perintah tput


$vi out7.sh
#!/bin/bash
clear
tput cup 5 10
echo "HELLO"
tput cup 6 10
echo "PAKE TPUT“

35
Percobaan 2 : Input
1. Menampilkan nama yang berasal dari keyboard
$vi inp1.s
#!/bin/bash
echo –n “Tuliskan nama :”
read nama
echo “Hallo ..... $nama”
$chmod 777 inp1.sh
$./inp1.sh

2. Proses pembacaan data input dengan read menggunakan opsi


$vi inp2.sh
#!/bin/bash
read -p "User Name : " user
echo -e "Password 10 karakter,\njika dalam 6 second
tidak dimasukkan pengisian password diakhiri"
read -s -n 10 -t 6 pass
echo "kesan anda selama pake linux,
_underscore=>selesai"
read -d _ kesan
echo "User = $user"
echo "Password = $pass"
echo "Kesan selama pake linux = $kesan"

3. Proses pembacaan data input dengan read dan variable reply


$vi inp3.sh
#!/bin/bash
#rd1
echo -n "Nama anda :"
read nama;
echo "Hi $nama, apa khabarmu";
echo "Pesan dan kesan :";
read
echo "kata $nama, $REPLY";

36
37
F. Latihan
1. Buatlah program bash script untuk menampilkan tulisan sebagai berikut :
what is your name ?
Andi ;(diketik lewat keyboard)
Hello Andi
I will create you a file called Andi_file
 gunakan perintah read untuk membaca input dari keyboard dan perintah
echo, printf untuk mencetak. File dengan nama Andi_file tersimpan
secara otomatis pada direktori aktif ketika eksekusi program telah
dilaksanakan.
 periksalah apakah file Andi_file sudah tersimpan pada direktori aktif

2. Buatlah program bash script untuk mencetak tulisan sebagai berikut :


A man, a plan, a canal, Panama.

38
3. Buatlah program bash script untuk menampilkan tulisan sebagai berikut :
I will guess your user name.
It is: ericfj
Keterangan : ericj adalah login name user yang tercetak secara otomatis
ketika program dijalankan.

4. Buatlah program bash script untuk menampilkan tulisan sebagai berikut :


Hmm...determining operating system...
This computer runs: Linux
Keterangan : linux adalah identitas mesin (informasi sistem kernel) yang
tercetak secara otomatis ketika program dijalankan.

39
Analisa
Pada praktikum kali ini kita melakukan percobaan pada input dan
output program Linux. Pada praktikum saat ini kita dapat mengetahui bahwa
pada program linux input dan output memiliki peranan paling penting karena
agar dapat menampilkan output atau hasil kita harus memberikan input agar
nantinya dapat diproses oleh program.
 Pada percobaan pertama kita membuat perintah untuk
menampilkan output dengan beberapa cara.
1. Pertama saya akan menampilkan kata Hello world dengan
menggunakan echo, disini akan menggunakan perintah vi
out.sh lalu menuliskan hello world dengan cara biasa dan
menggunakan tanda (“ “) dan ( * ).
2. Kedua saya akan menampilkan inputnya terlebih dahulu
dengan menggunakan chmod u+x out1.sh lalu ditampilkan
dengan ./out1.sh dan sama seperti niomer 1 kita disini
menggunakan echo.
3. Ketiga saya akan menampilkan kalimat pada baris yang
sama menggunakan echo, caranya ialah dengan
menqambahkan perintah -n setelah kata echo, walaupun
baris berbeda tetapi kata akan tetap satu baris jika
menggunakan perintah -n.
4. Keempat saya akan menampilkan informasi seputar waktu
pada system, tentang user dan jumlah pemakai yang
sedang login pada perangkat. Untuk user memakai ;whi |
wc -l, untuk menampilkan waktu pada system memakai
;date, untuk menampilkan user yg sedang login/aktif
diperangkat memakai ;whoami
5. Kelima saya akan menampilkan kita akan menampilkan
kalimat namun tidak menggunakan vi seperti sebelumnya,
disini kita langsung menggunakan echo ke terminal nya.
6. Keenam saya akan menampilkan kalimat dengan
menggunakan fungsi print, pada penulisan dibash script
menggunakan fungsi %o untuk octal, %d untuk

40
menampilkan angka, %s untuk menampilkan variable,,
sedikit informasi yaitu input yang kita buat pada bash script
bersifat read & write sehingga butuh untuk diexecute
dengan perintah chmod agar dapat ditampilkan hasilnya
pada terminal.
7. Ketujuh hanya mengatur warna apay g diinginkan pada
tampilan output dengan menggunakan format yang sudah
tersedia, seperti biru = 34, hitam =30
8. Kedelapan yaitu mengatur posisi kursor menggunakan
[3;20H disini 3 artinya baris dan 20H artinya kolom jadi
pada percobaan tersebut membuat kursor pada baris 3
kolom 20
9. Kesembilan yaitu mengatur posisi kursor menggunakan
perintah tput, tpu cup ternyata dapat digunakan untuk
mengatur baris dan kolom,, sama mudahnya seperti
percobaan kedelapan dalam mengatur posisi kursor
 Pada percobaan kedua yaitu berbeda dengan percobaan pertama,
kali ini gentian yaitu menampilkan input agar output yang keluar
sesuai keinginan,, percobaanya seperti berikut :
1. Pertama saya akan menampilkan nama, yaitu dengan
menggunakan fungsi read
2. Kedua saya akan mencoba membaca input read
menggunakan opsi,, kali ini menggunakan tanda ($) untuk
memanggil user, password, dan kesan yang ingin kita
sampaikan
3. Ketiga saya akan mencoba membaca data input dengan
read dan variable reply, kali ini menggunakan 2 fungsi yaitu
$reply dan $nama yang digunakan untuk memanggil input
read yang ada pada bash script

41
Kesimpulan
Pada praktikum kali ini dapat ditarik kesimpulan bahwa pentingnya input dan
output pada pemrograman shell ini karena dengan adanya input dan output kita
dapat berinteraksi secara bebas sesuai keinginan kita dengan computer/device
dan tentunya input maupun output tidak lepas dari berbagai jenis perintah
perintah seperti pada percobaan yang telah dilakukan pada pemrograman shell
ini.

42

Anda mungkin juga menyukai