• Tidak ada hasil yang ditemukan

2 LOGICAL DAN || (SHELL LEVEL)

N/A
N/A
Protected

Academic year: 2018

Membagikan "2 LOGICAL DAN || (SHELL LEVEL)"

Copied!
20
0
0

Teks penuh

(1)

66

P

raktikum

6-B

P

emrograman

S

hell

POKOK BAHASAN:

ü Pemrograman Shell

TUJUAN BELAJAR:

Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: ü Menggunakan struktur case – esac.

ü Loop dengan while, for, do while.

ü Membuat fungsi dan mengetahui cara memanggil fungsi tersebut.

DASAR TEORI:

1

INSTRUKSI TEST

Instruksi test digunakan untuk memeriksa kondisi dari sebuah ekspresi.

Ekspresi terdiri dari factor dan operator yang dipisahkan oleh spasi. Hasil test akan memberikan nilai berupa status exit, yaitu 0 bila ekspresi sesuai, bila tidak maka hasil adalah ≠ 0.

• Operator untuk test

Operator 0 atau TRUE, jika

string1 = string2 string1 != string2 -n string

-z string

(2)

String is null

• Test untuk files dan directory

Test dapat dilakukan untuk memeriksa apakah file ada (Exist), dapat dibaca, dapat ditulis, kosong dan lainnya.

Operator 0 atau TRUE, jika

-f namafile -d namafile -r namafile -w namafile -x namafile -s namafile -w namafile

File ada, file biasa

File ada, file adalah direktori File dapat dibaca

File dapat ditulis

File adalah executable File ada dan tidak kosong File dapat ditulis

Untuk memudahkan pembacaan (readability), test dapat ditulis dengan

[ ekspresi ]

[ sebenarnya adalah nama lain dari test, bedanya [ akan mencari kurung penutup ] pada akhir ekspresi yang harus dipisahkan oleh spasi.

2

LOGICAL && DAN || (SHELL LEVEL)

Notasi && dan || digunakan untuk menggabungkan instruksi shell sebagai alternatif untuk if then else. Notasi && dan || sering ditemukan dalah shell script system administrator untuk menjalankan routine dari system operasi.

• instruksi1 && instruksi2

shell akan mengeksekusiinstruksi1, dan bila exit status instruksi1 adalah FALSE, maka hasil dari AND tersebut sudah pasti sama dengan FALSE, sehingga

instruksi2 tidak mempunyai pengaruh lagi. Oleh karena itu, instruksi2

tidak dijalankan. Sebaliknya bila hasil instruksi1 adalah TRUE(0), maka

instruksi2 dijalankan

• instruksi1 || instruksi2

(3)

instruksi2. Oleh karena itu instruksi2 tidak perlu dijalankan. Bila hasil

instruksi1adalah FALSE, maka instruksi2akan dijalankan.

3

OPERATOR B ILANGAN BULAT UNTUK TEST

Untuk membandingkan 2 buah bilangan, test memerlukan operator yang berbeda dengan string.

Operator 0 atau TRUE, jika

i1 –eq i2 i1 –ge i2 i1 –gt i2 i1 –le i2 i1 –lt i2 i1 –ne i2

Bilangan sama

Lebih besar atau sama dengan Lebih besar

Lebih kecil atau sama dengan Lebih kecil

Bilangan tidak sama

4

OPERATOR LOGICAL (TEST LEVEL)

Logical operator terdiri dari AND, OR dan NOT. Operator ini menggabungkan hasil ekspresi sebagai berikut :

NOT : symbol !

!

True False False True

AND : symbol -a

V1 V2 V1 –a V2

False False False

False True False

(4)

True True True

OR : symbol -o

V1 V2 V1 –o V2

False False False

False True True True False True

True True True

5

KONSTRUKSI IF THEN ELSE IF

Bila status exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi setelah else akan dijalankan.

6

HITUNGAN ARITMETIKA

Tipe dari variable SHELL hanya satu yaitu STRING. Tidak ada tipe lain seperti Numerik, Floating, Boolean atau lainnya. Akibatnya variable ini tidak dapat

membuat perhitungan aritmetika, misalnya :

A=5

B=$A +1 ## error

if instruksi1

then

instruksi1.1 instruksi1.2 ………

elif instruksi2

then

instruksi2.1 instruksi2.2 ………

else

instruksi3.1 instruksi3.2 ………

(5)

UNIX menyediakan utilitas yang bernama expr yaitu suatu utilitas yang

melakukan aritmetika sederhana.

7

INSTRUKSI EXIT

Program dapat dihentikan (terminated/selesai) dengan instruksi exit. Sebagai nilai default program tersebut akan memberikan status exit 0.

8

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.

Case diakhiri denan esac dan pada setiap kelompok instruksi diakhiri dengan ;;. Pada

akhir pilihan yaitu *) yang berarti adalah “default”, bila kondisi tidak memenuhi pola sebelumnya

case variable in match1)

instruksi1.1 instruksi1.2 ………

;; match2)

instruksi2.1 instruksi2.2 ………

;; *)

instruksi3.1 instruksi3.2 ………

(6)

9

KONSTRUKSI FOR

For digunakan untuk pengulangan dengan menggunakan var yang pada

setiap pengulangan akan diganti dengan nilai yang berada pada daftar (list).

10

KONSTRUKSI WHILE

While digunakan untuk pengulangan instruksi, yang umumnya dibatasi dengan

suatu kondisi. Selama kondisi tersebut TRUE, maka pengulangan terus dilakukan. Loop akan berhenti, bila kondisi FALSSE, atau program keluar dari blok while melalui exit atau break.

11

INSTRUKSI DUMMY

Instruksi dummy adalah instruksi yang tidak melakukan apa -apa, namun

instruksi ini memberikan status exit 0 (TRUE). Oleh karena itu, instruksi dummy dapat digunakan sebagai kondisi forever pada loop (misalnya while).

Simbol instruksi dummy adalah ⇒ :

12

FUNGSI

for var in str1 str2 …..strn

do

instruksi1 instruksi2 ……… done

while kondisi

do

(7)

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.

Membuat fungsi diawali dengan nama fungsi, parameter, kemudian blok

program yang dinyatakan dalam { … }. Contoh :

F1( ) {

……..

…….. return 1 }

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 sam adi luar fungsi, sehingga tidak terjadi isi variable berubah.

TUGAS PENDAHULUAN :

Sebagai tugas pendahuluan, bacalah dasar teori diatas

kemudian buatlah program Shell untuk Latihan 1 sampai dengan 5.

Percobaan 8 : Instruksi Test

1. Menggunakan instruksi test, perhatikan spasi antara

$ NAMA=amir

$ test $NAMA = amir

$ echo $?

$ test $NAMA = boris

(8)

2. Aplikasi test dengan konstruksi if

$ vi prog06.sh

#!/bin/sh # prog06.sh

echo –n “NAMA = “ read NAMA

if test “$NAMA” = amir then

echo “Selamat Datang $NAMA”

else

echo “Anda bukan amir, sorry!”

fi

3. Jalankan program prog06.sh dengan memasukkan NAMA = amir dan NAMA = <CR> perhatikan hasil tampilannya

$ . prog06.sh [NAMA = amir]

$ . prog06.sh [NAMA = <CR>] (Terdapat pesan error) 4. Modifikasi prog06.sh dengan menggunakan notasi untuk test

$ vi prog06.sh

#!/bin/sh # prog06.sh

echo –n “NAMA = “ read NAMA

if [ “$NAMA” = amir ]

then

echo “Selamat Datang $NAMA” else

echo “Anda bukan amir, sorry!” fi

5. Jalankan program prog06.sh dengan memasukkan NAMA = amir

(9)

Percobaan 9 : Notasi && dan ||

Percobaan 10 : Operator bilangan bulat untuk test

1. Bila file prog01.sh ada (TRUE), maka jalankan program berikutnya. File

prog01.sh ada, karena itu exit status adalah TRUE, hasil operasi AND masih tergantung pada hasil eksekusi instruksi ke 2, dan dengan demikian instruksi echo akan dijalankan.

$ [ -f prog01.sh ] && echo “Prog01.sh ada”

2. File prog99.sh tidak ada, karena itu exit status adalah FALSE dan instruksi echo tidak dijalankan

$ [ -f prog99.sh ] && echo “Prog99.sh ada”

3. Bila prog01.sh ada maka jalankan shell script tersebut

$ [ -f prog01.sh ] && . prog01.sh

4. Bila prog01.sh ada maka jalankan program berikutnya. File prog01.sh

memang ada, karena itu exit status adalah TRUE, dan karena sudah TRUE

maka instruksi echo tidak lagi dijalankan

$ [ -f prog01.sh ] || echo “Dieksekusi tidak ?”

5. File prog99.sh tidak ada, karena itu exit status adalah FALSE, hasil masih tergantung atas exit status instruksi ke dua, karena itu instruksi echo dijalankan

$ [ -f prog99.sh ] || echo “Dieksekusi tidak ?”

6. File prog99.sh tidak ada, maka tampilkan pesan error

$ [ -f prog99.sh ] || echo “Sorry, prog99.sh tidak ada”

1. Menggunakan operator dengan notasi test

$ i=5

$ test “$i” –eq 5

$ echo $?

2. Menggunakan operator dengan notasi [ ] (penganti notasi test)

$ [ “$i” –eq 5 ]

(10)

Percobaan 11 : Operator Logical dan konstruksi elif

Percobaan 12 : Hitungan aritmetika

1. Buatlah file prog07.sh

$ vi prog07.sh

#!/bin/sh # prog07.sh

echo –n “INCOME = “ read INCOME

if [ $INCOME –ge 0 –a $INCOME –le 10000 ]

2. Jalankan file prog07.sh dan masukkan untuk INCOME=5000, 20000, 28000

$ . prog07.sh [INCOME=5000]

$ . prog07.sh [INCOME=20000]

$ . prog07.sh [INCOME=28000]

1. Menggunakan utilitas expr

$ expr 5 + 1

2. Substitusi isi variable dengan hasil utilitas expr

$ A=5

$ B=`expr $A + 1`

(11)

Percobaan 13 : Instruksi exit

Percobaan 14 : Konstruksi case - esac

1. Buat shell script prog08.sh

2. Jalankan script prog08.sh dan periksa status exit

$ . prog08.sh

$ echo $?

1. Buatlah file prog09.sh dengan editor vi

$ vi prog09.sh

#!/bin/sh

# Prog: prog09.sh

echo “1. Siapa yang aktif” echo “2. Tanggal hari ini” echo “3. Kalender bulan ini” echo –n “ Pilihan : “ read PILIH

(12)

2. Jalankan program prog09.sh, cobalah beberapa kali dengan inputan yang berbeda

$ . prog09.sh

3. Buatlah file prog10.sh yang merupakan bentuk lain dari case

$ vi prog10.sh

#!/bin/sh

# Prog: prog10.sh

echo –n “Jawab (Y/T) : “ read JWB

case $JWB in

y | Y | ya |Ya |YA ) JWB=y ;;

t | T | tidak | Tidak | TIDAK ) JWB=t ;; esac

4. Jalankan program prog10.sh, cobalah beberapa kali dengan inputan yang berbeda

$ . prog10.sh

5. Modifikasi file prog10.sh yang merupakan bentuk lain dari case

$ vi prog10.sh

#!/bin/sh

# Prog: prog10.sh

echo –n “Jawab (Y/T) : \c“ read JWB

case $JWB in

[yY] | [yY][aA] ) JWB=y ;; [tT] | [tT]idak ) JWB=t ;;

*) JWB=? ;;

esac

6. Jalankan program prog10.sh, cobalah beberapa kali dengan inputan yang berbeda

(13)

Percobaan 15 : Konstruksi for-do-done

1. Buatlah file prog11.sh

$ vi prog11.sh

#!/bin/sh

# Prog: prog11.sh

for NAMA in bambang harry kadir amir do

echo “Nama adalah : $NAMA” done

2. Jalankan program prog11.sh

$ . prog11.sh

3. Buatlah file prog12.sh yang berisi konstruksi for dan wildcard, program ini akan menampilkan nama file yang berada di current direktori

$ vi prog12.sh

#!/bin/sh

# Prog: prog12.sh

for F in * do

echo $F done

4. Jalankan program prog12.sh

$ . prog12.sh

5. Modifikasi file prog12.sh, program ini akan menampilkan long list dari file yang mempunyai ekstensi lst

$ vi prog12.sh

#!/bin/sh

# Prog: prog12.sh

for F in *.lst do

ls –l $F done

6. Jalankan program prog12.sh

(14)

Percobaan 16 : Konstruksi while-do-done

Percobaan 17 : Instruksi dummy

1. Buatlah fileprog13.sh

$ vi prog13.sh

#!/bin/sh

# Prog: prog13.sh

PILIH=1

while [ $PILIH –ne 4 ] do

echo “1. Siapa yang aktif” echo “2. Tanggal hari ini” echo “3. Kalender bulan ini” echo “4. Keluar”

echo “ Pilihan : \c” read PILIH

if [ $PILIH –eq 4 ] then

break fi

clear done

echo “Program berlanjut di sini setelah break”

2. Jalankan program prog13.sh

$ . prog13.sh

1. Modifikasi fileprog13.sh

$ vi prog13.sh

#!/bin/sh

(15)

PILIH=1 while : do

echo “1. Siapa yang aktif” echo “2. Tanggal hari ini” echo “3. Kalender bulan ini” echo “4. Keluar”

echo “ Pilihan : \c” read PILIH

if [ $PILIH –eq 4 ] then

break fi

clear done

echo “Program berlanjut di sini setelah break”

2. Jalankan program prog13.sh

$ . prog13.sh

3. Buatlah fileprog14.sh yang berisi instruksi dummy untuk konstruksi if

$ vi prog14.sh

#!/bin/sh

# Prog: prog14.sh

echo –n “Masukkan nilai : “ read A

if [ $A –gt 100 ] then

:

else

echo “OK !”

fi

4. Jalankan program prog14.sh beberapa kali dengan input yang berbeda

(16)

Percobaan 18 : Fungsi

1. Buatlah file fungsi.sh

$ vi fungsi.sh

#!/bin/sh

# Prog: fungsi.sh

F1( ) {

echo “Fungsi F1”

return 1

}

echo “Menggunakan Fungsi” F1

F1 echo $?

2. Jalankan program fungsi.sh

$ . fungsi.sh

3. Menggunakan variable pada fungsi dengan memodifikasi filefungsi.sh

$ vi fungsi.sh

#!/bin/sh

# Prog: fungsi.sh

F1( ) {

Honor=10000

echo “Fungsi F1”

return 1

}

echo “Menggunakan Fungsi” F1

F1

echo “Nilai balik adalah $?” echo “Honor = $Honor”

4. Jalankan program fungsi.sh

(17)

LATIHAN:

1. Buatlah program salin.sh yang menyalin file (copy ) sebagai berikut :

salin.sh file-asal file-tujuan

Dengan ketentuan :

• Bila file asal tidak ada, berikan pesan, salin gagal.

• Bila file tujuan ada dan file tersebut adalah directory, beri pesan bahwa file tida k bisa disalin ke direktori

• Bila file tujuan ada dan file biasa, beri pesan apakan file tersebut akan dihapus, bila dijawab dengan “Y”, maka copy file tersebut

• Bila file tujuan belum ada, lakukan copy

Untuk mengambil nama file, gunakan parameter $1 dan $2. Bila jumlah parameter

tidak sama ($#) dengan 2, maka beri pesan exit = -1

#!/bin/sh

# file: salin.sh

# Usage: salin.sh fasal ftujuan if [ $# -ne 2]

then

echo “Error, usage: salin.sh file-asal file-tujuan”

5. Menggunakan variable pada fungsi dengan memodifikasi file fungsi.sh

$ vi fungsi.sh

#!/bin/sh

# Prog: fungsi.sh F1( )

echo “Menggunakan Fungsi” F1

F1

echo “Nilai balik adalah $?” echo “Honor = $Honor”

(18)

fi

fasal=$1 ftujuan=$2

echo “salin.sh $fasal $ftujuan” ……

……

2. Buat program yang memeriksa nama direktori, jika parameter tersebut adalah

direktori, maka jalankan instruksi ls – ld pada direktori tersebut. Namakan program tersebut checkdir.sh. Gunakan notasi [ -d NamaDirektori ] dan pilih logic al && atau || pada level shell.

#!/bin/sh

# file: checkdir.sh

# Usage: checkdir.sh DirectoryName #

if [ $# -ne 1] then

echo “Error, usage: checkdir.sh DirectoryName” exit 1

fi

[ … ] && …

3. Dengan shell script pph.sh, hitung PPH per tahun dengan ketentuan sebagai berikut:

- 10 juta pertama PPH 15%

- 25 juta berikutnya (sisa) PPH 25%

- Bila masih ada sisa, maka sisa tersebut PPH 35%

Contoh :

Debugging : untuk melakukan tracing (debug) gunakan opsi –x pada eksekusi

shell.

$ sh –x pph.sh

(19)

+ pkp=10000

+ ‘[‘ 20000 –le 10000 ‘]’ ++ expr 20000 – 10000 + gaji=10000

+ pph=1500

+ echo ‘Pajak Penghasilan = 4000’ Pajak Penghasilan = 4000

4. Buatlah program myprog.sh yang memproses parameter $1, nilai parameter harus berupa string :

start stop status restart reload

Bila buka dari string tersebut, maka berikan pesan error. Sempurnakan program di

bawah ini untuk keperluan tersebut

#!/bin/sh

# See how we were called case “$1” in

start)

echo “Ini adalah start” ;;

stop)

echo “Ini adalah stop” ;;

*)

echo $”Usage:$0 {start|stop|restart|reload|status}” ;;

esac return

5. Buat sebuah fungsi pada script confirm.sh yang memberikan konfirmasi jawaban Yes,

No atau Continue. Jika jawaban Yes, maka beri nilai balik 0, No = 1 dan Continue = 2.

Modifikasi kerangka program berikut untuk memenuhi permintaan tersebut.

#!/bin/sh

# Confirm whether we really want to run this service confirm() {

(20)

do

Test fungsi diatas dengan program berikut :

$ vi testp.sh

. confirm.sh confirm

echo “Jawaban CONTINUE” fi

Perhatikan baris pertama, adalah loading dari fungsi confirm yang terdapat di script

confirm.sh. Setelah eksekusi script tersebut, maka fungsi confirm dapat digunakan.

LAPORAN RESMI:

1. Analisa hasil percobaan yang Anda lakukan.

Referensi

Dokumen terkait

perpustakaan.uns.ac.iddigilib.uns.ac.idcommit to user86.Sawi Monumen Sawi monumen tubuhnya amat tegak dan berdaun kompak. Penampilan sawi jenis ini sekilas mirip dengan petsai. Tangkai daun berwarna putih berukuran agak lebar dengan tulang daun yang juga berwarna putih. Daunnya sendiri berwarna hijau segar. Jenis sawi ini tegolong terbesar dan terberat di antara jenis sawi lainnya. D.Syarat Tumbuh Tanaman Sawi Syarat tumbuh tanaman sawi dalam budidaya tanaman sawi adalah sebagai berikut : 1.Iklim Tanaman sawi tidak cocok dengan hawa panas, yang dikehendaki ialah hawa yang dingin dengan suhu antara 150 C - 200 C. Pada suhu di bawah 150 C cepat berbunga, sedangkan pada suhu di atas 200 C tidak akan berbunga. 2.Ketinggian Tempat Di daerah pegunungan yang tingginya lebih dari 1000 m dpl tanaman sawi bisa bertelur, tetapi di daerah rendah tak bisa bertelur. 3.Tanah Tanaman sawi tumbuh dengan baik pada tanah lempung yang subur dan cukup menahan air. (AAK, 1992). Syarat-syarat penting untuk bertanam sawi ialah tanahnya gembur, banyak mengandung humus (subur), dan keadaan pembuangan airnya (drainase) baik. Derajat keasaman tanah (pH) antara 6–7 (Sunaryono dan Rismunandar, 1984). perpustakaan.uns.ac.iddigilib.uns.ac.idcommit to user9E.Teknik Budidaya Tanaman Sawi 1.Pengadaan benih Benih merupakan salah satu faktor penentu keberhasilan usaha tani. Kebutuhan benih sawi untuk setiap hektar lahan tanam sebesar 750 gram. Benih sawi berbentuk bulat, kecil-kecil. Permukaannya licin mengkilap dan agak keras. Warna kulit benih coklat kehitaman. Benih yang akan kita gunakan harus mempunyai kualitas yang baik, seandainya beli harus kita perhatikan lama penyimpanan, varietas, kadar air, suhu dan tempat menyimpannya. Selain itu juga harus memperhatikan kemasan benih harus utuh. kemasan yang baik adalah dengan alumunium foil. Apabila benih yang kita gunakan dari hasil pananaman kita harus memperhatikan kualitas benih itu, misalnya tanaman yang akan diambil sebagai benih harus berumur lebih dari 70 hari. Penanaman sawi memperhatikan proses yang akan dilakukan misalnya dengan dianginkan, disimpan di tempat penyimpanan dan diharapkan lama penyimpanan benih tidak lebih dari 3 tahun.( Eko Margiyanto, 2007) Pengadaan benih dapat dilakukan dengan cara membuat sendiri atau membeli benih yang telah siap tanam. Pengadaan benih dengan cara membeli akan lebih praktis, petani tinggal menggunakan tanpa jerih payah. Sedangkan pengadaan benih dengan cara membuat sendiri cukup rumit. Di samping itu, mutunya belum tentu terjamin baik (Cahyono, 2003). Sawi diperbanyak dengan benih. Benih yang akan diusahakan harus dipilih yang berdaya tumbuh baik. Benih sawi sudah banyak dijual di toko-toko pertanian. Sebelum ditanam di lapang, sebaiknya benih sawi disemaikan terlebih dahulu. Persemaian dapat dilakukan di bedengan atau di kotak persemaian (Anonim, 2007). 2.Pengolahan tanah Sebelum menanam sawi hendaknya tanah digarap lebih dahulu, supaya tanah-tanah yang padat bisa menjadi longgar, sehingga pertukaran perpustakaan.uns.ac.iddigilib.uns.ac.idcommit to user10udara di dalam tanah menjadi baik, gas-gas oksigen dapat masuk ke dalam tanah, gas-gas yang meracuni akar tanaman dapat teroksidasi, dan asam-asam dapat keluar dari tanah. Selain itu, dengan longgarnya tanah maka akar tanaman dapat bergerak dengan bebas meyerap zat-zat makanan di dalamnya (AAK, 1992). Untuk tanaman sayuran dibutuhkan tanah yang mempunyai syarat-syarat di bawah ini : a.Tanah harus gembur sampai cukup dalam. b.Di dalam tanah tidak boleh banyak batu. c.Air dalam tanah mudah meresap ke bawah. Ini berarti tanah tersebut tidak boleh mudah menjadi padat. d.Dalam musim hujan, air harus mudah meresap ke dalam tanah. Ini berarti pembuangan air harus cukup baik. Tujuan pembuatan bedengan dalam budidaya tanaman sayuran adalah : a.Memudahkan pembuangan air hujan, melalui selokan. b.Memudahkan meresapnya air hujan maupun air penyiraman ke dalam tanah. c.Memudahkan pemeliharaan, karena kita dapat berjalan antar bedengan dengan bedengan. d.Menghindarkan terinjak-injaknya tanah antara tanaman hingga menjadi padat. ( Rismunandar, 1983 ). 3.Penanaman Pada penanaman yang benihnya langsung disebarkan di tempat penanaman, yang perlu dijalankan adalah : a.Supaya keadaan tanah tetap lembab dan untuk mempercepat berkecambahnya benih, sehari sebelum tanam, tanah harus diairi terlebih dahulu. perpustakaan.uns.ac.iddigilib.uns.ac.idcommit to user11b.Tanah diaduk (dihaluskan), rumput-rumput dihilangkan, kemudian benih disebarkan menurut deretan secara merata. c.Setelah disebarkan, benih tersebut ditutup dengan tanah, pasir, atau pupuk kandang yang halus. d.Kemudian disiram sampai merata, dan waktu yang baik dalam meyebarkan benih adalah pagi atau sore hari. (AAK, 1992). Penanaman dapat dilakukan setelah tanaman sawi berumur 3 - 4 Minggu sejak benih disemaikan. Jarak tanam yang digunakan umumnya 20 x 20 cm. Kegiatan penanaman ini sebaiknya dilakukan pada sore hari agar air siraman tidak menguap dan tanah menjadi lembab (Anonim, 2007). Waktu bertanam yang baik adalah pada akhir musim hujan (Maret). Walaupun demikian dapat pula ditanam pada musim kemarau, asalkan diberi air secukupnya (Sunaryono dan Rismunandar, 1984). 4.Pemeliharaan tanaman Pemeliharaan dalam budidaya tanaman sawi meliputi tahapan penjarangan tanaman, penyiangan dan pembumbunan, serta pemupukan susulan. a.Penjarangan tanaman Penanaman sawi tanpa melalui tahap pembibitan biasanya tumbuh kurang teratur. Di sana-sini sering terlihat tanaman-tanaman yang terlalu pendek/dekat. Jika hal ini dibiarkan akan menyebabkan pertumbuhan tanaman tersebut kurang begitu baik. Jarak yang terlalu rapat menyebabkan adanya persaingan dalam menyerap unsur-unsur hara di dalam tanah. Dalam hal ini penjarangan dilakukan untuk mendapatkan kualitas hasil yang baik. Penjarangan umumnya dilakukan 2 minggu setelah penanaman. Caranya dengan mencabut tanaman yang tumbuh terlalu rapat. Sisakan tanaman yang tumbuh baik dengan jarak antar tanaman yang teratur (Haryanto et al., 1995). perpustakaan.uns.ac.iddigilib.uns.ac.idcommit to user12b.Penyiangan dan pembumbunan Biasanya setelah turun hujan, tanah di sekitar tanaman menjadi padat sehingga perlu digemburkan. Sambil menggemburkan tanah, kita juga dapat melakukan pencabutan rumput-rumput liar yang tumbuh. Penggemburan tanah ini jangan sampai merusak perakaran tanaman. Kegiatan ini biasanya dilakukan 2 minggu sekali (Anonim, 2007). Untuk membersihkan tanaman liar berupa rerumputan seperti alang-alang hampir sama dengan tanaman perdu, mula-mula rumput dicabut kemudian tanah dikorek dengan gancu. Akar-akar yang terangkat diambil, dikumpulkan, lalu dikeringkan di bawah sinar matahari, setelah kering, rumput kemudian dibakar (Duljapar dan Khoirudin, 2000). Ketika tanaman berumur satu bulan perlu dilakukan penyiangan dan pembumbunan. Tujuannya agar tanaman tidak terganggu oleh gulma dan menjaga agar akar tanaman tidak terkena sinar matahari secara langsung (Tim Penulis PS, 1995 ). c.Pemupukan Setelah tanaman tumbuh baik, kira-kira 10 hari setelah tanam, pemupukan perlu dilakukan. Oleh karena yang akan dikonsumsi adalah daunnya yang tentunya diinginkan penampilan daun yang baik, maka pupuk yang diberikan sebaiknya mengandung Nitrogen (Anonim, 2007). Pemberian Urea sebagai pupuk tambahan bisa dilakukan dengan cara penaburan dalam larikan yang lantas ditutupi tanah kembali. Dapat juga dengan melarutkan dalam air, lalu disiramkan pada bedeng penanaman. Satu sendok urea, sekitar 25 g, dilarutkan dalam 25 l air dapat disiramkan untuk 5 m bedengan. Pada saat penyiraman, tanah dalam bedengan sebaiknya tidak dalam keadaan kering. Waktu penyiraman pupuk tambahan dapat dilakukan pagi atau sore hari (Haryanto et al., 1995). perpustakaan.uns.ac.iddigilib.uns.ac.idcommit to user13Jenis-jenis unsur yag diperlukan tanaman sudah kita ketahui bersama. Kini kita beralih membicarakan pupuk atau rabuk, yang merupakan kunci dari kesuburan tanah kita. Karena pupuk tak lain dari zat yang berisisi satu unsur atau lebih yang dimaksudkan untuk menggantikan unsur yang habis diserap tanaman dari tanah. Jadi kalau kita memupuk berarti menambah unsur hara bagi tanah (pupuk akar) dan tanaman (pupuk daun). Sama dengan unsur hara tanah yang mengenal unsur hara makro dan mikro, pupuk juga demikian. Jadi meskipun jumlah pupuk belakangan cenderung makin beragam dengan merek yang bermacam-macam, kita tidak akan terkecoh. Sebab pupuk apapun namanya, entah itu buatan manca negara, dari segi unsur yang dikandungnya ia tak lain dari pupuk makro atau pupuk mikro. Jadi patokan kita dalam membeli pupuk adalah unsur yang dikandungnya (Lingga, 1997). Pemupukan membantu tanaman memperoleh hara yang dibutuhkanya. Unsur hara yang pokok dibutuhkan tanaman adalah unsur Nitrogen (N), Fosfor (P), dan Kalium (K). Itulah sebabnya ketiga unsur ini (NPK) merupakan pupuk utama yang dibutuhkan oleh tanaman. Pupuk organik juga dibutuhkan oleh tanaman, memang kandungan haranya jauh dibawah pupuk kimia, tetapi pupuk organik memiliki kelebihan membantu menggemburkan tanah dan menyatu secara alami menambah unsur hara dan memperbaiki struktur tanah (Nazarudin, 1998). 5.Pengendalian hama dan penyakit Hama yang sering menyerang tanaman sawi adalah ulat daun. Apabila tanaman telah diserangnya, maka tanaman perlu disemprot dengan insektisida. Yang perlu diperhatikan adalah waktu penyemprotannya. Untuk tanaman sayur-sayuran, penyemprotan dilakukan minimal 20 hari sebelum dipanen agar keracunan pada konsumen dapat terhindar (Anonim, 2007). perpustakaan.uns.ac.iddigilib.uns.ac.idcommit to user14OPT yang menyerang pada tanaman sawi yaitu kumbang daun (Phyllotreta vitata), ulat daun (Plutella xylostella), ulat titik tumbuh (Crocidolomia binotalis), dan lalat pengerek daun (Lyriomiza sp.). Berdasarkan tingkat populasi dan kerusakan tanaman yang ditimbulkan, maka peringkat OPT yang menyerang tanaman sawi berturut-turut adalah P. vitata, Lyriomiza sp., P. xylostella, dan C. binotalis. Hama P. vitatamerupakan hama utama, dan hama P. xylostella serta Lyriomiza sp. merupakan hama potensial pada tanaman sawi, sedangkan hamaC. binotalis perlu diwaspadai keberadaanya (Mukasan et al., 2005). Beberapa jenis penyakit yang diketahui menyerang tanaman sawi antara lain: penyakit akar pekuk/akar gada, bercak daun altermaria, busuk basah, embun tepung, rebah semai, busuk daun, busuk Rhizoctonia, bercak daun, dan virus mosaik (Haryanto et al., 1995). 6.Pemanenan Tanaman sawi dapat dipetik hasilnya setelah berumur 2 bulan. Banyak cara yang dilakukan untuk memanen sawi, yaitu: ada yang mencabut seluruh tanaman, ada yang memotong bagian batangnya tepat di atas permukaan tanah, dan ada juga yang memetik daunnya satu per satu. Cara yang terakhir ini dimaksudkan agar tanaman bisa tahan lama (Edy margiyanto,