• Tidak ada hasil yang ditemukan

DAFTAR ISI - PEMROGRAMAN DELPHI

N/A
N/A
Protected

Academic year: 2019

Membagikan "DAFTAR ISI - PEMROGRAMAN DELPHI"

Copied!
138
0
0

Teks penuh

(1)

DAFTAR ISI

KATA PENGANTAR

i

Curriculum Vitae Penulis

ii

Ucapan Terima Kasih

iii

DAFTAR ISI

iv

BAB 1 PENGANTAR DELPHI

1.1. MENGENAL DELPHI 01

1.2. PRODUK DARI DELPHI 02

1.3. KEBUTUHAN INSTALASI DELPHI 03

BAB 2 LINGKUNGAN KERJA DELPHI

2.1. MENGENAL IDE DELPHI 04

2.2. MENU DAN TOOLBAR 05

2.3. COMPONENT PALETTE, FORM DESIGNER, DAN OBJECT INSPECTOR 05

2.4. OBJECT TREEVIEW 08

2.5. CODE EDITOR 08

2.6. OBJECT REPOSITORY 10

2.7. DELPHI HELP 11

2.8. FILE‐ FILE SOURCE PENTING DELPHI 12

BAB 3 DASAR PEMROGRAMAN DELPHI

3.1. DELPHI PASCAL 13

3.2. DELPHI OBJECT PASCAL 45

3.3. EXCEPTION 55

3.4. DEBUGGING DAN EXCEPTION 58

3.5. CLASS REFERENCE 58

BAB 4 LATIHAN PEMROGRAMAN DELPHI

4.1. LATIHAN 01 : APLIKASI SEDERHANA 60

4.2. LATIHAN 02 : MENGGUNAKAN KONDISIONAL 62

4.3. LATIHAN 03 : MENGGUNAKAN ITERASI 64

BAB 5 DATABASE DELPHI

5.1. TIPE DATABASE MANAGEMENT SYSTEM 69

5.2. TIPE DATABASE DELPHI 73

5.3. MEKANISME DATA AKSES 74

5.4. ARSITEKTUR DATABASE DELPHI 75

BAB 6 DATABASE LOKAL

6.1. APLIKASI MYBASE 74

(2)

6.3. MENGAKSES FIELD DATASET 77

6.4. NAVIGASI DATASET 77

6.5. MEMBUAT FILE DATA PACKET 79

6.6. DATA CONTROL 81

6.7. FIELD 84

6.8. MODIFIKASI DATA 86

6.9. VALIDASI DATA 91

6.10. INDEKS 91

6.11. FILTER DAN RANGE 93

6.12. PENCARIAN DATA 96

6.13. AGGREGATE 98

BAB 7 DATABASE RELASIONAL

7.1. APLIKASI DATABASE 100

7.2. AKSESORIS UMUM APLIKASI DATABASE 110

BAB 8 RAVE REPORT

8.1. MENGGUNAKAN RAVE REPORT 115

BAB 9 SQL

9.1. SEKILAS MENGENAI SQL 129

9.2. METODE SQL 129

9.3. IMPLEMENTASI SQL DALAM BAHASA PEMROGRAMAN DELPHI 131

(3)

Teknologi informasi pada zaman modern ini berkembang sangat pesat. Tidak hanya pada satu bidang, tetapi juga semua bidang. Merambah dunia usaha, industri, hingga instansi pemerintah. Teknologi informasi terkait erat dengan istilah perangkat lunak (software). Perangkat lunak (software) merupakan jembatan penghubung antarauserdengan perangkat keras (hardware) komputer. Tanpa perangkat lunak (software), perangkat keras (hardware) dari suatu komputer tak lebih dari suatu benda mati yang tidak dapat dimanfaatkan olehuser.

Ada banyak perangkat lunak (software) yang digunakan dalam kehidupan sehari‐ hari, seperti Microsoft Word, Adobe Reader, Corel DRAW, dan lain‐ lain. Perangkat lunak (software) tersebut merupakan beberapa contoh dari perangkat lunak aplikasi (application software). Perangkat lunak aplikasi (application software) adalah perangkat lunak (software) yang secara khusus digunakan untuk kebutuhan pengolahan data tertentu sehingga peran dari penggunanya adalah murni sebagai seorang user. Ada pula perangkat lunak (software) yang dapat digunakan sebagai sarana untuk membuat perangkat lunak (software) lainnya atau aplikasi. Perangkat lunak (software) seperti ini dinamakan perangkat lunak bahasa pemrograman (programming language software). Dengan perangkat lunak bahasa pemrograman (programming language software) ini, Software Engineer dapat membuat, merancang, dan mengatur sendiri interface beserta fasilitas perangkat lunak (software) yang akan dibuat. Perangkat lunak (software) yang dapat ditangani oleh perangkat lunak bahasa pemrograman (programming language software) meliputi banyak bidang misalnya aplikasi perkantoran, aplikasi perbankan, aplikasi desain grafis, aplikasi desktop, dan lain‐ lain. Dalam buku ini, perangkat lunak bahasa pemrograman (programming language software) yang dikupas adalah bahasa pemrograman Delphi.

1.1. Mengenal Delphi

Salah satu perangkat lunak bahasa pemrograman (programming language software) yang menduduki peringkat 50 (lima puluh) besar dunia adalah Borland Delphi. Borland Delphi menggunakan bahasa pemrograman Pascal. Bahasa pemrograman ini dipakai pertama kali pada perangkat lunak bahasa pemrograman (programming language software) yang bernama Turbo Pascal. Pascal juga merupakan salah satu produk legendaries dari Borland. Sekitar tahun 90‐ an, Pascal pernah menjadi perangkat lunak bahasa pemrograman (programming language software) popular yang menjadi pilihan dari Software Engineer. Hal ini karena bahasa Pascal mudah dipelajari.

Banyak jenis aplikasi yang dapat dibuat oleh bahasa Pascal. Seiring dengan perkembangan dunia Teknologi Informasi, bahasa pemrograman juga turut berkembang. Yang semula masih menggunakan text mode kemudian berkembang menjadi bahasa pemrograman dengan GUI yang sangat menarik. Perkembangan tersebut tidak lepas dari pengaruh perkembangan sistem operasi (operating system). Dahulu Turbo Pascal digunakan untuk sistem operasi (operating system) yang masih menggunakan DOS (Disk Operating System). Karena Microsoft mulai banyak mengeluarkan varian sistem operasi yang mendukung GUI, seperti Windows 95, Windows 98, sampai dengan Windows Vista, mau tidak mau Borland pun harus menyesuaikan dengan perkembangan tersebut. Pada akhirnya muncullah perangkat lunak bahasa pemrograman (programming language software) yang bernama Borland Delphi hingga Turbo Delphi. Versi terbaru adalah Delphi 2009. Meski ada banyak versi Delphi, teknikal pemrograman yang dibahas dalam buku ini adalah Delphi 7. Versi ini dipilih karena mempunyai fitur dan fasilitas yang mencukupi, kinerja yang bagus pada spesifikasi perangkat keras (hardware) minimum, di samping itu cukup popular dan banyak digunakan olehSoftware Engineer.

(4)

bahasa pemrograman ini relative mudah dipelajari dan digunakan. Delphi mendukung berbagai fasilitas yang tidak dimiliki oleh bahasa pemrograman lain, misalnya fasilitas source completion, tool database desktop, xml converter, Microsoft Office Component Connector, Corba, BDE, dan masih banyak lagi. Delphi adalah salah satu aplikasi pemrograman yang menarik. Delphi bukan hanya digunakan untuk perancangan aplikasi desktop ataupun console, tetapi juga web development. Oleh karena fungsinya sangat beragam, Borland Delphi dikenal sebagai bahasa pemrograman Rapid Application Development (RAD).

Salah satu fasilitas bahasa pemrograman Delphi yang paling banyak digunakan dan paling banyak membantu dalam proses pembuatan program adalah fasilitas source completion. Source completion adalah fasilitas yang disediakan oleh Delphi yang mampu digunakan untuk melengkapi kode yang dituliskan pada kode editor secara otomatis. Dengan fasilitas ini penulisan listing program akan menjadi lebih cepat. Tentu saja hal ini akan semakin menghemat waktu, biaya, dan tenaga.

Anda membutuhkandatabase? Delphi juga dapat menangani kebutuhandatabaseAnda secara langsung, dengan dukungandatabase desktop. Pembuatanreportjuga dapat ditangani secara langsung oleh Delphi. Dalam hal pembuatanreport, Delphi telah menyediakan aplikasi tambahan yang dinamakan Quick Report dan Rave Report. Quick Report dan Rave Report adalah tool yang dirancang khusus untuk menangani report.Toolini sudah ada dalam paket Delphi. Jadi, Delphi merupakan paket bahasa pemrograman yang lengkap dan patut dijadikan pilihan oleh Anda.

1.2. Produk dari Delphi

Sebagai bahasa pemrograman yang bersifat Rapid Application Development (RAD), Delphi telah menghasilkan beberapa aplikasi sebagai berikut ini :

Accounting: Intuit Lacerte, Spryka Desktop Budget .

Business : Atlantis Word Processor, SME:Service Management Enterprise Service management software.

CodeGear Products: CodeGear Delphi, CodeGear C++ Builder, Borland JBuilder versions 1 and 2.  Communication : Globestar Systems Connexall (Event Notification and Presence Management

Platform).

Database Management/Development : MySQL Tools (Administrator, Query Browser), TOAD, SQL Maestro

Email Marketing: Spryka Epostmailer

Engineering Software : Altium Designer/Protel (electronics design), OrcaFlex (offshore structural analysis).

Image Viewers: FastStone Image Viewer, FuturixImager, Photofiltre, BioniX Wallpaper Changer.  Internet Messaging: Skype (VoIP and IM), QIP (IM), The Bat! (e‐ mail client), PopTray (e‐ mail checker),

FeedDemon (feed viewer), XanaNews, Xnews (newsgroup reader).  Music Production: FL Studio.

Point of Sale and Retail Management: Infinity RMS by Triquestra International .

Software Development: Dev‐ C++ (IDE), DUnit (unit testing), Help & Manual (help system authoring), Inno Setup (installer engine), Game Maker .

Web Authoring : Macromedia HomeSite (HTML editor), TopStyle Pro (CSS editor), Macromedia Captivate (screencast) .

(5)

Utilities: Spybot ‐ Search & Destroy, Ad‐ Aware (anti‐ spyware), jv16 PowerTools, Total Commander (file manager), Copernic Desktop Search, PowerArchiver, Beyond Compare(file comparison), WordWeb (dictionary/thesaurus).

1.3. Kebutuhan Instalasi Delphi

Untuk melakukan instalasi dari Delphi, sistem operasi Window Anda harus telah didukung beberapa aplikasi eksternal Window. Beberapa syarat aplikasi eksternal yang harus dipenuhi sebagai berikut :  Microsoft .NET Framework 2.0.

 Microsoft Direct Access Object 2.8.  Microsoft Internet Explorer v6.0 SP1.

 Microsoft XML Core Services (MSXML) v4.0 SP2.  Microsoft Visual J# .NET v2.0 Redistributable.

Jika pada sistem operasi Windows yang Anda gunakan ternyata belum memenuhi syarat aplikasi yang disebutkan, maka installer Delphi akan meng‐ instalasi‐ nya secara otomatis. Selain itu, instalasi Delphi juga membutuhkan spesifikasi tertentu pada komputer yang Anda gunakan, sesuai dengan kebutuhan minimum Delphi.

Ketentuan sistem minimum komputer yang harus dipenuhi adalah sebagai berikut :

 Intel Pentium atau kompatibel, kecepatan prosesor minimal 1.4 GHz (disarankan 2 GHz).  1 GB RAM (direkomendasikan 2 GB).

 3 GB ruang kosong pada hard disk untuk Delphi.

 750 MB ruang kosong pada hard disk untuk persyaratan.  DVD‐ RW/ROM Drive.

 Monitor 1024 x 768 piksel atau monitor dengan resolusi lebih tinggi. Berikut ini adalah daftar jenis sistem operasi Windows yang mendukung Delphi :  Microsoft Windows 2000 (SP4 atau yang lebih tinggi).

 Microsoft Windows XP Home atau Professional (SP3 atau yang lebih tinggi).  Microsoft Windows Vista SP1 (memerlukan administrator policy).

 Microsoft Windows Server 2003 (SP1).  Microsoft Windows Server 2008.

(6)

Integrated Development Environment atau IDE adalah sebuah lingkungan terintegrasi yang digunakan pada proses pengembangan perangkat lunak (software). Delphi menyediakan IDE untuk digunakan oleh Software Engineerdalam proses pengembangan dari aplikasi secara cepat dan mudah.

2.1. Mengenal IDE Delphi

IDE adalah bagian dari Delphi yang digunakan untuk menciptakan aplikasi. Dengan IDE secara visual, para Software Engineer dapat merancang tampilan untuk para user interface (antarmuka pengguna) dan melakukan penulisanskrip program(kode program).

Gambar 2‐ 1.IDE Delphi

(7)

2.2. Menu dan Toolbar

Window utama Delphi terdiri atasmenu,toolbar, danComponent Palette. Menu yang ada dalam Delphi berisi sejumlah besar perintah yang sebagian diantaranya mempunyai shortcut key yang dapat dipergunakan untuk akses cepat menggunakankeyboard.

Gambar 2‐ 2. Menu dan Toolbar

Toolbar yang ada dalam bahasa pemrograman Delphi berupa sekumpulan tombol untuk fungsi‐ fungsi yang sering dipergunakan oleh Software Engineer. Toolbar tersebut dikelompokkan dalam beberapa kelompok, yaituStandard Toolbar,View Toolbar,Desktop Toolbar,Debug Toolbar, sertaInternet Toolbar. Di bawah ini daftarshortcutyang sering digunakan dalam bahasa pemrograman Delphi.

Shortcut Keterangan

F1 Bila Anda membutuhkan bantuan dalam membuat aplikasi, tombol ini akan menghubungkan Anda denganHelpDelphi.

F12 Shortcutini berguna untuk pindah dariformke editor kode dengan cepat.

Shift + F12 Shortcutini berguna untuk menampilkan form yang sedang Anda kerjakan dalam aplikasi.

Ctrl + F12 Menampilkan semuaunityang ada pada suatu proyek. F11 Berguna untuk mengaktifkanObject Inspector.

Ctrl + F11 Membukafileproyek dengan cepat. Shift + Ctrl + F11 MenampilkanWindow Project Option.

F9 Mengeksekusi program yang sedang Anda kerjakan.

2.3. Component Palette, Form Designer, dan Object Inspector

Component Palette, Form Designer, dan Object Inspector secara bersama‐ sama digunakan untuk membuat tampilan program.

2.3.1. Component Palette

Component palette berisi komponen‐ komponen Delphi (Visual/Non Visual VCL dan CLX) yang dapat digunakan untuk mendesain tampilan program dalam suatuForm. Komponen yang ada dalam komponen palette disusun dan dikelompokkan dalam page sesuai fungsinya. Misalnya tab standard hanya berisi komponen standar yang biasa digunakan dalam pemrograman.

Contoh daritab standardadalah komponenButton,Edit,Label,RadioButton, dan masih banyak lagi.

(8)

2.3.2. Form Designer

Bahasa pemrograman Delphi adalah sebuah IDE yang bertujuan untuk pembuatan aplikasi visual. Aplikasi visual adalah aplikasi yang memerlukan interaksi dariusermelalui penglihatan visual mereka. Bayangkan apa yang terjadi apabila bentuk form yang dirancang terkesan acak‐ acakan. Oleh sebab itu, bahasa pemrograman Delphi menyediakan fasilitas yang berfungsi untuk memudahkan Software Engineer dalam merancangform secarauser‐ friendly dan tentu saja harus mudah dimengerti olehuser. Adapun fasilitas yang disediakan oleh Delphi dikenal dengan istilahForm Designer.

Form designer adalah form tempat untuk mengatur komponen sesuai dengan kebutuhan tampilan program yang akan dibuat. Cara meletakkan komponen ke dalamformada beberapa macam, yaitu :  Clickkomponen padacomponent palette, kemudianclickataudragpadaForm.

Double click komponen pada component palette, maka komponen tersebut akan terletak pada tengah form.

Shift click pada component palette, kemudian click pada form beberapa kali untuk meletakkan beberapa komponen. Untuk menormalkan kembalistatus click, tekan tombol panah pada bagian kiri component palette.

Gambar 2‐ 4. Form Designer

(9)

2.3.3. Object Inspector

Object Inspectordipergunakan untuk mengubah nilaipropertydari objek yang terseleksi yang ada dalam Form Designer.Object Inspectorterdiri atas 2 (dua)page.

Pagepertama adalahProperties, berguna untuk mengaturpropertykomponen yang sedang aktif.

Gambar 2‐ 5. Object Inspector page Properties

Dan page kedua adalah Events yang berfungsi sebagai trigger/pemicu komponen yang bersangkutan untuk menjalankan perintah tertentu.

(10)

2.4. Object Treeview

Object Treeview secara default berada di sisi kiri desktop. Object Treeview menampilkan hubungan parent‐ childantar komponen dalam bentuk hirarki.Object Treeview, Form Designer,danObject Inspector saling tersinkronisasi, sehingga bila fokus kita ubah dalam Form Designer maka fokus dalam Object TreeviewdanObject Inspectorjuga akan berpindah.

Gambar 2‐ 7. Object Treeview

2.5. Code Editor

Ketika kita menyusun komponen dalam suatu form, Delphi akan membangkitkan kode program dalam bahasa Object Pascal. Kita dapat meng‐ edit kode program dengan menggunakan code editor yang merupakan suatu editor teks yang mempunyai banyak fitur.

(11)

Salah satu fungsi yang sangat membantu kita dalam menyusun program adalah adanya syntax highlighting yaitu adanya perbedaan style dan warna font untuk kata kunci, identifier, konstanta, dan lain‐ lain. Pada bagian kiri terdapat Code Explorer, yang berisi daftar variabel, procedure, uses list, dan lain‐ lain yang ditampilkan dalam bentuktree. Pada bagian kanan adalahCode Editor. Dengancode editor, kita dapat membuka lebih dari satu file text, yang masing‐ masing dapat di pilih dengan page selector. Pada bagian bawah code editor terdapatstatus baryang berisi informasi tentang posisi kursor (baris dan kolom), status modifikasi file, serta status Insert/Overwrite dari code editor. Di sebelah kanannya terdapat code/diagram selector yang dapat digunakan untuk mengganti tampilan kode menjadi diagram dan sebaliknya.

Fitur‐ fitur lain yang tersedia dalamcode editorsebagai berikut ini.

2.5.1. Code Insight

Code Insight tool digunakan untuk menampilkan window popup sesuai konteks. Fitur‐ fitur dalam code editoryang masuk kelompok ini sebagai berikut :

Code Completion, digunakan untuk mempermudahSoftware Engineer dalam menentukanproperty, method, ataupuneventdari objek tertentu yang telah diketikkan.

Code Parameter, digunakan untuk mengetahui parameter apa saja yang dipunyai oleh suatu procedure/functiontertentu.

Tooltip Expression Evaluation. Pada saat program sedang berhenti ketika terjadi proses debugging, gerakkan mouse pointerke suatu ekspresi tertentu, diamkan beberapa lama, maka akan muncul nilai dari ekspresi tersebut.

Tooltip Symbol Insight. Pada saat kita sedang mengetikkan kode program, gerakkan mousedi atas suatuidentifiertertentu, maka akan muncul deklarasi dariidentifiertersebut.

2.5.2. Code Template

Code Template adalah kerangka struktur program yang mempersingkat Software Engineer dalam mengetikkan kode program. Tekan Ctrl‐ J untuk menampilkan daftar Code Template. Kita dapat mendefinisikan beberapatemplatelain melaluiEditor Options.

2.5.3. Class Completion

Class Completion digunakan untuk melengkapi kelas tertentu dan untuk meng‐generatesuatu kerangka kode di bagian implementasi. Untuk melakukannya ketikkan tombolCtrl‐ Shift‐ C. Sebagai contoh, jika kita mendefinisikanproperty test : Integer, maka setelahCtrl‐ Shift‐ Cditekan maka akan di‐generate writedan read spicifier pada bagian private, serta kerangka kode pada bagian implementasi. Fungsi ini sangat membantu bila kita banyak bekerja denganObject Oriented Programming.

2.5.4. Code Browsing

(12)

browserdalam internet di mana pada saat kita tahan tombol controlmakaidentifier yang ada di bawah mouse pointer sepertiweb link, sedangkan tombolbrowse back danbrowse forwardmirip tombolback danforwarddalamweb browser.

Untuk memindahkan kursor dari deklarasi procedure/functionmenuju implementasiprocedure/function tersebut, gunakanCtrl‐ UpdanCtrl‐ Down.

2.5.5. Code Explorer

Dalam code explorer, daftar isi code editor ditampilkan dalam bentuk diagram pohon (tree diagram). Dengan code explorer navigasi terhadap kode program akan menjadi sangat mudah. Double click item dalamcode explorer, maka kita akan langsung menuju tempatitemtersebut dalamcode editor.

2.6. Object Repository

Object Repository dalam Delphi berisi kumpulan objek (Form, Dialog, Wizzard, Template, dll) yang dapat memudahkan dalam haldevelopment. Dengan Object Repository, modul‐ modul program ataupun proyek yang pernah dibuat dapat dipergunakan kembali (reusable).

Gambar 2‐ 9. Object Repository

Untuk memasukkan proyek kita ke dalam object repository, kita gunakan menu Project ‐ Add to Repository. Bila yang ingin kita tambahkan adalahformataudata module, kita dapat menambahkannya ke object repositorydengan clickkanan dan pilih menuAdd to Repository. Untuk mengakses item dalam object repository, kita gunakan menuFile – New – Other. Di layar monitor akan muncul objek‐ objek yang dapat dipergunakan kembali.

(13)

2.6.1. Copy

Pilih copy, bila menginginkan proses copy terhadap suatu objek untuk ditempatkan dalam projek. Perubahan apa pun terhadap object repository tidak berpengaruh pada objek dalam proyek, demikian juga sebaliknya, perubahan objek tersebut dalam proyek tidak akan berpengaruh terhadap objek dalam object repository.

2.6.2. Inherit

Pilih inherit, bila menginginkan proses pembuatan turunan dari objek yang ada dalamobject repository. Bila terjadi proses compile, perubahan yang terjadi dalamobject repository akan berpengaruh terhadap objek dalam proyek. Tetapi perubahan objek dalam proyek tidak akan terpengaruh pada object repository.

2.6.3. Use

Pilih use, bila menginginkan objek dalam object repository menjadi bagian dalam aplikasi. Perubahan terhadap objek dalam proyek akan berpengaruh terhadap objek yang ada dalam object repositorykarena objek dalam proyek maupun dalam object repository adalah sama. Penggunaan metode ini harus dilakukan dengan terencana dan hati‐ hati.

2.7. Delphi Help

Bahasa pemrograman Delphi menyediakan context sensitive help, yaitu helpyang bekerja berdasarkan konteks. Dengan menekan tombolF1, akan diperolehhelptergantung objek/Windowyang aktif.

(14)

2.8. File‐ file Source Penting Delphi

Dalam setiap bahasa pemrograman, sangat penting untuk mengetahui dengan pasti jenis‐ jenis file sumber (source) yang dibutuhkan untuk membuat aplikasi. Untuk Delphi, ada tiga jenisfilesumber utama yang tidak boleh hilang/terhapus, yaitu :

File Project, mempunyai ekstensi *.dpr,File Unit, mempunyai ekstensi *.pas,File Form, mempunyai ekstensi *.dfm.

(15)

Bahasa pemrograman yang digunakan dalam Delphi adalah suatu variant dari bahasa Pascal, yang oleh Delphi disebut sebagaiObjectPascal karena variant ini meng‐ implementasiObject Oriented Programming (OOP). Pada bab ini, Delphi ObjectPascal akan dibahas dalam dua sub bab, yaitu sub bab dengan judul Delphi Pascal yang membahas elemen bahasa Delphi yang tidak terkait dengan OOP, dan Delphi Object Pascal yang mempunyai elemen terkait dengan OOP.

3.1. Delphi Pascal

3.1.1. Komentar pada Kode

Komentar adalah tulisan pada kode yang digunakan untuk kepentingan dokumentasi.Compilertidak akan menerjemahkan komentar. Pada bahasa pemrograman Delphi, komentar ditandai dengan Kurung kurawal { } dan kurung biasa dan tanda bintang (* *) untuk komentar yang bisa lebih dari satu baris, serta garis miring ganda // untuk komentar yang hanya satu baris.

{ Ini adalah Komentar } {

MyProg ver 1.0

Program ini dibuat untuk uji coba saja }

(* Coba-coba *)

// Trik ini adalah trik yang sederhana

3.1.2. Identifier

Identifier adalah nama untuk meng‐ identifikasi konstanta, tipe data, variabel, procedure, function, unit, program, danfieldpadarecord.

Pendefinisianidentifierharus memenuhi ketentuan sebagai berikut :

 Panjang nama suatuidentifiermaksimum 63 (enam puluh tiga) karakter. Selebihnya akan diabaikan olehCompiler.

Identifierharus diawali dengan abjad, atau karakter garis bawah (_).  Karakter berikutnya bisa abjad, karakter garis bawah, atau angka.

Identifiertidak dapat mengandung karakter spasi ataupun symbol‐ simbol seperti $, #, &, %, dan lain‐ lain.

 Namaidentifiertidak boleh sama dengan kata kunci (reserved word). 3.1.3. Kata Kunci(reserved word)danDirective

(16)

Kata Kunci Peran dalam Delphi Pascal

and OperasiBooleanAND.

array Untuk mendefinisikanarray.

as Untuk melakukan typecast.

asm Awal dari definisiAssembly.

begin Awal blok.

case Pencabangan dengan banyak alternative.

class Definisi kelas.

const Definisi konstanta.

constructor Metode khusus untuk membentuk kelas.

destructor Metode khusus untuk menghancurkan kelas.

dispinterface Bentuk khusus interface, yaitu Dispatch Interface

(berkaitan dengan COMautomation).

div Pembagian bilangan bulat.

do Awal dari statement yang akan dijalankan (untuk

for, while, with, try…except).

downto Untuk for dengan arah pengulangan terbalik.

else Pilihan lainnya dalam suatu pencabangan (untuk if

dancase).

end Akhir dari blok.

except Awal dariexception block(untuktry…except).

exports Digunakan untuk meng‐ export procedure, function

atau varibel (dalam DLL).

file Untuk mendefinisikan variable dengan tipefile.

finalization Awal dari perintah yang harus dijalankan pada saat

unit ditutup (pasangan dariinitialization).

finally Kata kunci untuk melindungiresource(try…finally).

for Pengulangan dengan banyaknya pengulangan yang

sudah diketahui.

function Pendefinisian darifunction.

goto Perintah untuk loncat ke label tertentu.

If Pencabangan dengan 2 (dua) alternative.

implementation Kata kunci yang mengawali bagian implementation.

initialization Awal dari sekumpulan perintah yang harus

dijalankan ketika suatu unit mulai diakses.

inline Untuk meng‐ akses perintahassembly.

interface Awal dari bagianinterfacedalam unit.

Kata kunci untuk mendefinisikaninterface.

Is Untuk mengecek tipe kelas.

label Label yang menandai tempat untuk perintahgoto.

library Kata kunci untuk menandai sebuah proyek akan

menghasilkanlibrary(DLL).

mod Pembagian sisa.

nil Pointerkosong.

(17)

of Kata kunci yang menjadi pelengkap kata kunci lain tertentu (file, case, array, set, dll).

or OperatorBooleanuntukatau (OR).

out Definisi parameter untuk procedure/function yang

hanya digunakan sebagaioutputsaja.

packed Untuk mendefinisikan tipe record atau array yang

tidak di‐alignmenjadiwordataudouble‐ word.

procedure Pendefinisikanprocedure.

program Pendefinisikanprojectyang merupakan program.

property Atribut dari objek yang dapat memiliki metode

untuk mengaksesnya (SetterdanGetter).

raise Untuk membangkitkanexception.

record Untuk mendefinisikan tiperecord.

repeat Kata kunci untuk pengulangan di mana syarat

berhentinya pengulangan diperiksa di akhir blok.

resourcestring Untuk mendefinisikanresource.

set Untuk mendefinisikan himpunan.

shl Operasibitwiseuntukshift left.

shr Operasibitwiseuntukshift right.

string Untuk mendefinisikan tipe string.

then Untuk mendefinisikan alternative utama dalamif.

threadvar Untuk mendefinisikan variabel local darithread.

to Untuk mendefinisikan pengulangan denganfor

try Untuk melindungi resource (try…finally) atau untuk

menangkanexception (try…except).

type Untuk mendefinisikan tipeidentifier.

unit Untuk mendefinisikan unit.

until Untuk mendefinisikan pengecekan dalam

pengulanganrepeat.

uses Untuk mengakses unit lain.

var Untuk mendefinisikan variabel.

while Untuk mendefinisikan pengulangan di mana

pengecekan berhentinya pengulangan dilakukan di awal.

with Untuk menyingkat akses terhadap field dari record

ataufield, property, ataupunmethoddari objek.

(18)

Berikut ini beberapadirectiveyang ditampilkan dalam urutan alphabet.

NamaDirective PeranDirectivedalam Delphi Pascal

at Untuk mendefinisikan dalam metode mana

perintahraiseakan dilakukan.

automated Level akses yang sama dengan public, tetapi

memiliki informasi berkaitan dengan Automation Server.

message Untuk mendefinisikan sebuah metode yang

akan me‐ respon Windows Message tertentu.

on Untuk memeriksa exception apa yang akan

ditangkap.

private Untuk mendefinisikan level akses private

bagi metode ataupropertydari objek.

protected Untuk mendefinisikan level aksesprotected

bagi metode ataupropertydari objek.

published Untuk mendefinisikan level aksespublished

bagi metode ataupropertydari objek.

public Untuk mendefinisikan level akses public

ataupropertydari objek.

Compiler Directive

Compiler directive adalah informasi yang diberikan kepada compiler tentang bagaimana compiler akan meng‐compile program. Compiler directive berbentuk sintaks khusus pada blok komentar yang diawali dengan karakter $.

Compiler directivedapat dikelompokkan menjadi 3 (tiga) kelompok, yaitu :

Switch directive, yaitu directive yang digunakan untuk menghidupkan atau mematikan fitur khusus yang dimiliki olehcompiler. Untuk setiapdirectiveyang digunakan, biasanya menggunakan tanda“+” atau “on” untuk menghidupkan fitur tersebut, dan menggunakan tanda “‐ “ atau “off” untuk mematikannya. Beberapa directivejenis ini dapat dipanggil dalam satu perintah dengan dibatasi oleh tanda koma. Contohnya sebagai berikut :

{ $O } {* $O- *} { $B+, R-, S- }

Parameter directive, yaitu directive yang menentukan parameter tertentu yang berpengaruh terhadap prosescompile. Contohnya adalah :

{ $I TYPES.INC }

(19)

{ $DEFINE DEBUG}

{ $IFDEF DEBUG}

Writeln (‘Debug is on.’) ; // baris ini di-compile { $ELSE}

Writeln(‘Debugis off.’) ; // baris ini tidak di-compile { $ENDIF}

{ $UNDEF DEBUG}

{ $IFNDEF DEBUG}

Writeln(‘Debugis off.’) ; // baris ini di-compile

{ $ENDIF}

Compiler directive dapat dikirimkan melaluicommand line parameter jika Anda menggunakancommand line parameter untuk melakukan compile, bisa juga diletakkan dalam configuration file (file dengan ekstension * .cfg). Semuacompiler directiveyang diletakkan dalam program akan meng‐override compiler directivedari file berekstensi *. cfg maupuncommand line.

3.1.4. Unit

Delphi Pascal merupakan bahasa modular sehingga memungkinkan modul program dapat di‐compile secara terpisah‐ pisah. Modul ini disebut sebagai unit. Penggunaanunitakan membuat program menjadi terstruktur dan memungkinkan reusability kode program dalam projek yang berbeda. Kita dapat membuat sebuah unit yang berdiri sendiri dan dapat dipergunakan oleh proyek apa pun. Ketika program di‐ compile, di‐run atau sedang dilakukan syntax checking, Delphi akan membentuk sebuah file biner dengan nama yang sama dan berakhirandcu.

Struktur Unit

(20)

Definisi Unit unitNama_Unit; interface

Bagian usesUnit1, Unit2, …, Unit N; interface functionTesting: Integer;

implementation

Uses List varNilai : Integer;

usesUnit A, Unit B, …, Unit Z;

functionTesting : Interger;

begin

result := 0;

end; Bagian initialization

implemen‐ Nilai := 100; tation finalization

end.

Uses

Kata kunci uses digunakan untuk mendaftarkan unit‐ unit lain yang identifier‐ nya akan digunakan dalam unit yang bersangkutan. Uses bersifat optional dan jika dipergunakan harus berada pada bagian awal interface atau bagian awal implementation. Unit yang disebut terakhir memiliki prioritas paling tinggi untuk digunakan. Perhatikan kode berikut :

usesSysUtils, Windows;

procedureHapusFile (NamaFile:string); begin

DeleteFile(NamaFile); end;

Function DeleteFile ada di unit SysUtils dan unit Windows. Dalam contoh di atas, delete File yang akan dipanggil adalah delete file yang ada diunit Windowskarenaunitini disebut belakangan dalamuses. Bila yang kita inginkan adalah function DeleteFile yang ada dalam SysUtils, kita dapat menambahkan nama unitSysUtils di depanfunctionDeleteFile sehingga kode tersebut menjadi seperti di bawah ini.

usesSysUtils, Windows;

(21)

InitializationdanFinalization

Initialization adalah bagian yang dijalankan ketika aplikasi atau library (DLL) dipanggil ke memory oleh Windows. Delphi menggunakan metode depth‐ first traversaluntuk menjalankan kodeinitialization, yaitu sebelum blok initialization suatu unit dijalankan, blok initialization setiap unit yang di‐uses akan dijalankan terlebih dahulu. Blok initialization setiap unit hanya dijalankan sekali. Bila ada unit lain yang melakukanusesterhadap unit tersebut, kode initializationtidak akan dijalankan lagi.

Finalizationadalah bagian yang akan dijalankan ketika keluar dari aplikasi atau ketikalibrarydibuang dari memory. Urutan pemanggilan blok finalization adalah kebalikan dari urutan pemanggilan blok initialization. Sebagai catatan sebuah unit harus memiliki blok initialization untuk dapat memiliki blok finalization. Meskipun demikian bagian blokinitializationbisa saja kosong.

Berikut ini contoh yang menggambarkaninitializationdanfinalization.

Kita memiliki 3 (tiga) buah unit dengan nama Unit1, Unit2, dan Unit3.  Panggil menuFile‐New‐Other.

 PadaPage New, pilihConsole Applicationdan tekan tombolOK.

 Kemudian Pilih menuFile‐New‐Unitsebanyak 3 (tiga) kali, sehingga kita mempunyai sebuah program utama dan 3 (tiga) buah unit. Untuk masing‐ masing unit ketikkan kode sebagai berikut ini :

programProject2;

{$APPTYPE CONSOLE} uses

Unit1in‘Unit1.pas’, Unit2in‘Unit2.pas’, Unit3inUnit3.pas’;

begin

Writeln(‘MainProgram’); end.

Writeln(‘Initialization Unit1’); finalization

Writeln(‘Finalization Unit1’); end.

unitUnit2;

(22)

initialization

Writeln(‘Initialization Unit2’); finalization

Writeln(‘Initialization Unit3’); finalization

Writeln(‘FinalizationUnit3’);

end.

Compile program tersebut (Ctrl‐ F9). Untuk menjalankannya masuk ke DOS Windows, dan jalankan program tersebut dari DOS Windows, sehingga tampilan program bisa terlihat seluruhnya. Cara lainnya adalah menjalankanfileRunProject.bat yang ada pada direktoricodeuntuk latihan ini.

Hasilnya sebagai berikut ini.

Initialization Unit3

Perhatikan bagian uses list dari kode yang tercantum dalam Project2.dpr. Terlihat bahwa uses di mulai dari unit1, diikuti unit2, dan terakhir unit3. Karena unit1 berada di urutan pertaman useslist, maka project2 akan meminta unit1 untuk menjalankan bagian initialization‐ nya. Tetapi sebelum unit1 menjalankaninitializationdirinya, unit1 tersebut akan memeriksa apakah adauses list. Ternyata adauses ke unit2 dan unit3 secara berurutan. Maka unit1 akan meminta unit2 untuk menjalankan initialization. Ternyata unit2 pun ada uses ke unit3, sehingga unit2 akan meminta unit3 menjalankan initialization. Karena unit3 tidak ada useske unit apa pun, maka unit3 akan menjalankan bagianinitialization‐ nya dan mengembalikan kendali kepada unit2. Unit2 akan menjalankan initialization dan mengembalikan kendali kepada unit1. Unit1 akan meminta unit3 untuk memanggilinitialization. Tetapi karena initializationunit3 sudah pernah dipanggil, maka kendali diberikan kembali kepada unit1. Selanjutnya unit1 akan menjalankan bagianinitialization‐ nya, dan mengembalikan kendali kepada project2.

3.1.5. Konstanta

(23)

diletakkan pada bagian interface, maka konstanta tersebut akan dikenal oleh unit lain. Bila diletakkan pada bagian implementation, maka konstanta tersebut hanya dikenal oleh unit tersebut. Bila diletakkan dalam suatu rutin (procedure ataufunction) maka konstanta tersebut hanya dikenali oleh rutin tersebut. Dikenalinya suatuidentifier dari suatu lokasi tertentu dalam program biasa disebut dengan istilah scope. Berikut ini contoh konstanta.

unitUnit2; interface

const

AppCaption =‘My Program ver 1.0’;

procedureHitungData;

( Kode untuk Hitung data ) end;

end.

Delphi secara otomatis akan menentukan tipe konstanta berdasarkan nilai yang didefinisikan untuk konstanta tersebut. Meskipun demikian, kita bisa mendefinisikan tipe konstanta kita secara eksplisit. Pada contoh di atas, konstanta A dalam procedure HitungData didefinisikan tipenya secara eksplisit sebagai tipereal.

Kita bisa mengisi nilai konstanta dengan ekspresi yang memenuhi syarat tertentu. Ekspresi untuk konstanta biasanya disebut sebagai constant expression. Ekspresi ini mencakup angka, karakter, True, False, atau nil, operator untuk numeric maupun string, serta bisa juga konstanta lain, asal sudah didefinisikan sebelumnya. Constant Expression tidak dapat melibatkan nilai, variabel, dan pemanggilan function terkecuali beberapa function, yaituAbs, Chr, Hi, High, Length, Lo, Low, Odd, Ord, Pred, Round, Size Of, Succ, Swap,sertaTrunc. Contohnya sebagai berikut ini.

(24)

3.1.6. Tipe Data

Bagian yang sangat penting dalam pemrograman adalah mendefinisikan tipe‐ tipe data baru sesuai dengan kebutuhan program. Untuk mendefinisikan tipe data baru, gunakan kata kunci type. Seperti halnya const, kata kunci yang menandai area pendefinisian tipe data ini dapat diletakkan di mana saja sesuai kebutuhan. Konsekuensi logis dari peletakkan kata kunci ini adalah pengaruh pada scope‐ nya. Berikut ini contoh pendefinisian tipe data.

type

TMyArray =array(0..19)ofByte; MyData = integer;

3.1.7. Variabel

Sebelum suatu variabel dapat digunakan, variabel tersebut harus didefinisikan terlebih dahulu. Untuk mendefinisikan variabel, gunakan kata kunci var yang menandai area pendefinisian variabel. Peletakkan area pendefinisian variabel ini dapat dilakukan di mana saja dalam program, dan akan berpengaruh terhadapscope‐ nya.

Setiap variabel yang didefinisikan harus mempunyai tipe. Untuk mendefinisikan tipe suatu variabel, gunakan tanda titik dua (:). Berikut ini contoh pendefinisian variabel.

var

Value : Integer; Sum : Integer; Line :string;

KarenaValuedanSumbertipe sama, penulisannya bisa dilakukan sebagai berikut.

var

Value, Sum : Integer; Line :string;

3.1.8. Expression, Operator, dan Precedence

Expression

Expression (ekspresi) adalah sebuah konstruksi dalam program Delphi yang mempunyai nilai. Berikut ini beberapa contohexpression.

Expression Keterangan

X variabel

@X alamat variabel

17 konstanta bertipeinteger

Jumlah variabel

Hitung(X, B) Pemanggilan fungsi

Char(48) valuetypecast

X=10 ekspresiboolean

notSelesai ekspresiboolean

(25)

Expression selalu bisa dibentuk dari expressionlain dengan menggunakan operator, sedangkan ekspresi pembentuknya biasa disebutoperand.

Assignment

Assignmentadalah memasukkan suatu nilai ke dalam suatu variabel.Assignmentmenggunakan operator :=, dan dengan bentuk.

variabel := ekspresi

Variabel bisa dengan tipe data apa pun ,sedangkan ekspresi harus kompatibel dengan variabel yang diberikan. ContohAssignmentsebagai berikut ini.

I := 3; I := I+1; X := Y-Z;

Selesai := (I>10)and(Y<5);

Tanda := biasanya disebut assignment operator. Perlu diberikan catatan di sini bahwa dalam bahasa pemrograman Pascal,assignmentbukanlah ekspresi(tidak menghasilkan nilai).

Operator

Operator adalah semacam fungsi yang merupakan bagian dari bahasa Pascal yang peran utamanya adalah membentuk ekspresi. Yang termasukoperatoradalah @,not, ^, “, /,div, mod, and, shl, shr, as, +, ‐ ,or, xor, =, >, <, <>, <=, >=,in, sertais.

Operator @, not, ^, adalah operator unary, artinya operator yang operand‐ nya hanya satu. Operator lainnya kecuali + dan – bersifatbinary, yaitu operator yang mempunyai 2 (dua)operand.Operator+ dan – dapat berperan sebagai operator unary atau binary tergantung kepada konteks‐ nya (sebagai media penjumlahan dan pengurangan ataukah sebagai tanda plus dan minus).

Operator unary akan berada di depan operand‐ nya (misalnya –A atau @Test), kecuali operator ^ yang berada setelah operand‐ nya (misalnya P^). Operator yang bersifat binary selalu berada di antara keduanya (misalnya A+10).

Bekerjanya operator sangat dipengaruhi olehoperand‐ nya. Sebagai contoh A + B akan menjadi operasi aritmetika penjumlahan bila A dan B adalah IntegeratauReal. Tetapi A + B akan menjadiconcatenation (penyambungan) string bila A dan B bertipe string. Bahkan A + B bisa berarti operasiunion (gabungan) bila A dan B bertipe Himpunan Set. Tetapi perlu diperhatikan juga bahwa bila A adalah Integer dan B adalahstring, maka A + B tidak dapat bekerja (menghasilkancompiler error).

Operator Precedence

(26)

Operator Precedence

@, not, ^ pertama (tertinggi, dioperasikan paling awal)

*, /, div, mod, and, shl, shr, as kedua

+, ‐ , or, xor ketiga

=, >, <, <>, <=, >=, in, is keempat (terendah, dioperasikan terakhir)

Untuk mengubahprecedence, kita bisa menggunakan tanda kurung, misalnya : (A+B)*C, makaoperator+ akan diproses terlebih dahulu.

3.9. Tipe Data dalam Delphi Pascal

Dalam Delphi Pascal ada beberapa kelompok tipe data, yaitu Boolean, Integer, Real, Character, String, Array, Record, Enumerated, Set. Tipedata String, Array, danRecordakan dibahas secara terpisah.

Boolean

Boolean adalah tipe data yang nilainya adalah True atauFalse. Dalam Delphi Pascal. Tipe data Boolean disimpan dengan lebar 1byte.

OperasiBoolean

Operasi Boolean memerlukan operand dengan tipe boolean (True atau False) dan menghasilkan nilai Booleanjuga.Operatoryang digunakan dalam operasiBooleansebagai berikut.

Operator Operasi Contoh

not negasi. not(C in MySet)

not(A>10)

and conjunction, yaitu menghasilkan

nilai True bila kedua operand bernilai True. Bila salah satu operand False maka hasilnya pastiFalse.

AandB

or disjunction, yaitu menghasilkan

nilai Truebila salah satuoperand bernilai True. Bila keduanya Falsehasilnya adalahFalse.

AorB

xor exclusive disjunction, yaitu

menghasilkan nilai True bila hanya satu operand yang True. Bila keduanya True atau keduanya False, maka hasilnya adalahFalse.

AxorB

Perhatikan ekspresibooleanberikut ini.

(A<>0)and(B<>0)

(27)

Oleh karena itu nilai dari variabel B tidak akan diperiksa oleh program (ekspresi (B<>0) tidak dievaluasi oleh program).

Perhatikan juga ekspresibooleandi bawah ini.

(A=0)or(B=0)

Bila nilai dari variabel A adalah 0, maka ekspresi di atas pasti bernilai Truetidak peduli berapa nilai dari variabel B (karena operator or akan menyebabkan nilai True, apabila salah satu operand‐ nya bernilai True). Oleh karena itu nilai dari variabel B tidak akan diperiksa oleh program (ekspresi (B=0) tidak dievaluasi oleh program).

Hal yang dijelaskan di atas terjadi karena (secara default), program Delphi hanya melakukan evaluasi ekspresi logic secara sebagian. Keuntungannya adalah program akan berjalan lebih cepat. Tetapi kita dapat memaksa agar untuk setiap ekspresi booleandengan operator and dan or kedua operand selalu diperiksa secara lengkap dengan cara mengubahcompiler option.

Operasi Aritmetik

Operasi aritmetik digunakan untuk melakukan penghitungan aritmetik. Operand dan hasil dari operasi aritmetik adalahIntegeratauReal. Operator yang digunakan dalam operasi aritmetik sebagai berikut.

Operator Operasi Tipe Operand Tipe Hasil

+ Penjumlahan Integer, Real Integer, Real

Jika salah satu operand adalah real, maka hasilnya adalahreal

‐ Pengurangan Integer, Real Integer, Real

Jika salah satu operand adalah real, maka hasilnya adalahreal

* Perkalian Integer, Real Integer, Real

Jika salah satu operand adalah real, maka hasilnya adalahreal

/ Pembagian Real Integer, Real Real

div Pembagian Integer Integer Integer

Hasil akan dibulatkan ke bawah

mod Pembagian sisa Integer Integer

+(unary) Tanda + Integer, Real Integer, Real

(28)

Integer

Integer adalah bilangan bulat. Dalam Delphi Pascal, terdapat beberapa tipe data yang merupakan Integer dan dikelompokkan sebagai GenerikdanFundamental. Sebisa mungkin gunakan tipegenerikkarena tipe generikakan dioptimasi berkaitan dengan sistem operasi dan CPU yang dipergunakan.

Tipe Generik

Tipe Data Range Format

Integer ‐ 2,147,483,648 s.d. 2,147,483,647 signed 32‐ bit

Cardinal 0 s.d. 4,294,967,295 unsigned 32‐ bit

Tipe Fundamental

Tipe Data Range Format

Shortint ‐ 128 s.d. 127 signed 8‐ bit

SmallInt ‐ 32,768 s.d. 32,767 signed 16‐ bit

Longint ‐ 2,147,483,648 s.d. 2,147,483,647 signed 32‐ bit

Int64 ‐ (2^63)..(2^63)‐ 1 signed 64‐ bit

Byte 0 s.d. 255 unsigned 8‐ bit

Word 0 s.d. 65,535 unsigned 16‐ bit

Longword 0.4294967295 unsigned 32‐ bit

Secara umum, operasi aritmetika terhadap integer akan menghasilkan tipe Integer atau cardinal (signed/unsigned 32‐ bit). Operasi akan menghasilkan Int64 hanya jika salah satu operand‐ nya adalah Int64.

Bila operasi menghasilkan nilai lebih besar dari rangeinteger, maka nilaiintegerakan berputar kembali ke nilai awal dari range.

Berikut ini kita akan bereksperimen dengan bilanganintegeruntuk memahami perilakuinteger.  Buat sebuah aplikasi console baru. (Pilih menuFile‐ New‐ Other, lalu pilihConsole Application).  Ketikkan kode dalam program sehingga program kita akan menjadi seperti berikut ini.

programProject2; {$APPTYPE CONSOLE}

uses

SysUtils;

varByte1, Byte2: Byte; ShInt1: ShortInt; Int1, Int2: Integer; Card1 : Cardinal; IntA: Int64; begin

Writeln(‘Eksperimen dengan Integer’); Writeln(‘---‘); Byte1 := 20;

Writeln(‘Byte1= ‘, Byte1);

(29)

ShInt1 := Byte1*Byte1;

Writeln(‘ShInt1 = Byte1*Byte1; ShInt = ‘, ShInt1); Writeln;

Int1 := 2000000000; Writeln(‘Int1 =‘, Int1); Int2 := Int1+Int1;

Writeln(‘Int1+Int1 = ‘,Int1+Int1); Writeln(‘Int2 = Int1+Int1; Int2 =‘,Int2); Card1 := Int1+Int1;

Writeln(‘Card1 = Int1+Int1; Card1 =‘,Card1); IntA := Int1+Int1;

Writeln(‘IntA = Int1+Int1; IntA =‘, IntA); IntA := Int64(Int1)+Int1;

Writeln(‘IntA = Int64(Int1)+Int1; IntA =‘,IntA); readln;

end.

Setelah program di‐run, hasilnya adalah :

Eksperimen dengan Integer Byte1 = 20

Byte1*Byte1 = 400

Byte2 = Byte1*Byte1; Byte2 = 144 ShInt1 = Byte1*Byte1; Shlnt1 = -112

Int1 = 2000000000 Int1+Int1 = -294967296

Int2 = Int1+Int1; Int2 = -294967296 Card1 = Int1+Int1; Card1 = 4000000000 IntA = Int1+Int1; IntA = -294967296 IntA = Int64(Int1)+Int1; IntA = 4000000000

Byte1 kita isi dengan 20. Byte1*Byte1 bernilai 400. OK, tidak ada masalah. Ketika kita isi Byte2 dengan Byte1*Byte1, ternyata hasilnya adalah 144. Apa yang terjadi ? Karena Byte2 bertipe Byte, range‐ nya adalah 0 s.d. 255. Maka 256 akan menjadi 0, 257 menjadi 1, 258 menjadi 2, dan seterusnya, sehingga 400 menjadi 144. Demikian juga, untuk ShInt1 denganrange‐ 128 s.d. 127, angka 400 akan berputar 2 kali ke minus 128, sehingga hasil akhirnya adalah ‐ 112.

Kemudian nilai Int1 kita isi dengan 2 milyar, maka 2 milyar + 2 milyar, seharusnya 4 milyar. Tetapi 4 milyar berada di luar range Integer (signed 32‐ bit), maka 4 milyar akan berputar ke nilai minimum Integer sehingga hasil akhirnya adalah ‐ 294967296. Pada saat nilai ini dimasukkan ke Cardinal(unsigned32‐ bit), maka nilai tersebut akan berada di luarrange Cardinal (negatif), sehingga terjadi perputaran kembali ke nilai maksimumCardinal, dan menyebabkan nilai akhir kembali bernilai 4 milyar.

(30)

Operasi Bitwise

Operasi Bitwise (Bitwise Operation) adalah meng‐ operasikan 2 (dua)operand dengan tipeinteger yang dipandang sebagai kumpulanbit. Perhatikan contoh berikut (A, B, dan C adalahByte).

A := 5; B := 12; C := A and B;

Berapa nilai C ? Nilai C dapat ditentukan dengan menggunakan bitwise operation, yaitu dengan memandang A dan B sebagai kumpulanBit. Karena A dan B bertipeByte, maka panjangnya adalah 8Bit.

A 5 0000 0101

B 12 0000 1100

---and

C 0000 0100 = 4

Setiapbityang bersesuaian dioperasikan dengan operasilogicand, yaitu bila keduabitbernilai satu maka nilaibithasilnya adalah 1. Selain itu, bernilai nol. Jadi, nilai C adalah 4.

Secara lengkap, operatorbitwisesebagai berikut.

Operator Keterangan Contoh

not bitwisenegasi

untuk setiap bit 0 menjadi 1 dan setiap bit 1 menjadi 0.

Bila duabitbernilai 1, makabit hasilnya bernilai 1. Jika salah satu bitbernilai 0 maka hasilnya bernilai 0.

Bila salah satu bit bernilai 1, maka bit hasilnya bernilai 1. Jika keduanya 0, maka bit hasilnya bernilai 0.

Bila salah satubitbernilai 1 danbitlainnya bernilai 0, makabithasilnya adalah 1. Bila keduanya 0 atau keduanya 1, makabithasilnya adalah 0.

(31)

shi bitwiseshift left

Menggeser semuabitke kiri darioperandpertama sebanyakoperandkedua. shr bitwiseshift right

Menggeser semua bit ke kanan dari operand pertama sebanyakoperandkedua.

A := 5;

Tipe fundamental bilanganrealdalam Delphi Pascal sebagai berikut.

Tipe Data Ukuran (byte) Range Significant Digits

real48 6 2.9 x 106^‐ 39 s.d. 1.7 x 10^38 11‐ 12

comp 8 ‐ 9,223,372,036,854,775,808 s.d.

9,223,372,036,854,775,807

19‐ 20

currency 8 ‐ 922337203685477.5808 s.d.

922337203685477.5807

19‐ 20

Tipe genericRealpada Delphi 7 didefinisikan sebagaiDouble.

Tipeextendedmenawarkan presisi lebih tinggi tetapi agak kurang portable.

TipeComp (Computational)adalahnativeIntel CPU dan direpresentasikan sebagaiInteger 64 bit.

Tipe Currency adalah fixed‐ floating point data type yang digunakan untuk meminimalkan error pembulatan. Tipe ini direpresentasikan sebagai Integer 64 bit yang berskala dan hanya mempunyai 4 (empat)digitdi belakang koma.

ChardanWide Char

(32)

Enumerated

Tipe data Enumerated adalah tipe data yang isinya terbatas pada nilai‐ nilai yang telah didefinisikan. Untuk mendefinisikan tipe dan jenis ini digunakan kurung buka sebagai awal, kurung tutup sebagai akhir, serta setiap nilai yang mungkin dibatasi dengan tanda koma.

Contohnya sebagai berikut.

type

TKartu = (Club, Diamond. Heart, Spade); TJenisKelamin = (Pria, Wanita);

Set

Tipe data set adalah kumpulan elemen data yang masing‐ masing mempunyai tipe yang sama. Set merupakan implementasi dari himpunan data. Untuk mendefinisikannya dapat dilihat pada contoh berikut ini.

type

TSetHuruf =set ofChar; var

Vokal : TSetHuruf; Konsonan : TSetHuruf; Angka : TSetHuruf; Kosong : TSetHuruf;

Untuk mengisi suatu set, dapat dilakukan secara langsung dengan menyebutkan tipe yang mungkin dan dibatasi oleh kurung kotak ([…]). Setiap elemen set dibatasi oleh koma. Setiap variabel yang didefinisikan sebagai set selalu dapat diisi dengan nilai kosong yang didefinisikan sebagai [ ]. Perhatikan contoh berikut ini.

Operasi dalam Set (himpunan) sebagai berikut.

Operator Fungsi TipeOperand Tipe Hasil

+ Gabungan. Tipe set yang kompatibel. Set

‐ Selisih. Tipe set yang kompatibel. Set

* Irisan. Tipe set yang kompatibel. Set

In Anggota dari. Operand kiri adalah

elemen yang akan

diperiksa. Operand kanan adalah set yang akan diperiksa.

(33)

Perhatikan juga contoh berikut.

type

TSetHuruf = set of Char; var

Alfabet := Vokal + Konsonan + Angka Kosong := Vokal + Konsonan; HasilBoolean :=‘A’ in Vokal;

AlfabetBukanAngka := Alfabet–Angka; end;

3.1.10. Tipe Data String

Delphi Pascal mendukung beberapa macamstring, yaituShort String,Ansi StringatauLong String,Wide String, danNull‐ terminated String. Indeksstringdimulai dari 1 (satu).

Short String

Short string adalah string dengan panjang maksimum 255 (dua ratus lima puluh lima) karakter. Pendefinisian dari Short String dapat dilakukan dengan 2 (dua) cara, yaitu dengan Short string dan dengan string [x], di mana x adalah panjang maksimum dari string. Pendefinisian dengan Short string adalahstringdengan panjang maksimum 255 karakter danmemoryyang dialokasikan sejumlah 256byte. Untuk pendefinisian dengan string [x] diterjemahkan sebagai panjang maksimum dari string adalah x sedangkanmemoryyang dialokasikan adalah x+1. Indeks ke 0 daristringakan menyimpan panjangstring. Short stringhanya digunakan untukbackward compatibility. Perhatikan contoh bawah ini.

var

S : ShortString;(panjang maks 255 karakter, 256 byte)

S1 : string[10]; (panjang maks 10 karakter, 11 byte)

Len : Integer;

(34)

Wide String

Wide String mirip dengan Ansi String hanya setiap karakternya disimpan sebagai Wide Char (16 bit karakter Unicode). Perilaku Wide String sangat mirip dengan Ansi String. Perbedaannya hanya pada ukuran setiap karakternya.

Null‐ terminated String

Null‐ terminated stringadalah kumpulan karakter bukannull (#0)yang diakhiri oleh karakternull. Karakter null pertama dalam string ini akan dianggap sebagai akhir dari string. Null‐ terminated string banyak dipakai untuk meng‐ akses Windows API. Implementasi pemrograman dengan menggunakan Null‐ terminated String adalah dengan menggunakan variabel bertipe PChar (Pointer of Char), atau menggunakan array of char. Selain itu, Anda juga bisa menggunakan typecast terhadap variabel tipe string, atau menggunakanfunction StrPCopy.

3.1.11. Pencabangan dan Pengulangan

Pencabangan adalah mengontrol program sehingga perintah yang dijalankan mengikuti alur tertentu berdasarkan suatu kondisi tertentu. Yang termasuk dalam pencabangan adalah perintahif – then – else, dan perintahcase.

Elemen program lain yang juga sangat penting adalah pengulangan atau loop.Loopadalah pengulangan perintah sesuai dengan kondisi tertentu. Dalam object Pascal terdapat 3 (tiga) macam loop, yaitu : for, while, danrepeat, yang masing‐ masing mempunyai ciri tersendiri.

If, Then, Else

Salah satu kata kunci yang mempunyai peran sangat besar dalam pemrograman adalah kelompok kata kunciIf, Then, Else. Kata kunci ini digunakan untuk melakukan suatu proses tertentu bila kondisi tertentu dipenuhi, dan menjalankan proses lain jika kondisi tidak terpenuhi.

Bentuk dasarnya adalah

if<ekspresi Boolean>then<statement> [else<statement>];

Ekspresi adalah sekumpulan perintah dalam object Pascal yang memberikan nilai tertentu. Ekspresi Booleandalamifdi atas adalah ekspresi yang hasilnya adalah tipe dataBoolean (True atau False).

Statement adalah sekumpulan perintah dalam object Pascal yang me‐ representasikan aksi tertentu dan akan dijalankan. Sekumpulanstatementyang diawali oleh begindan diakhiri olehenddisebut statement block, dan selalu dapat dianggap sebagaistatementtunggal.

Kata kuncielse <statement>,bersifatoptional,artinya boleh tidak dikutsertakan. Sebelum kata kuncielse tidak ada titik koma. Kita buat sebuah contoh berikut ini.

ifa>0thenx := 100elsex := 200;

(35)

Case

Kalau if‐ then‐ else adalah pencabangan yang mempunyai dua alternatif, makaCase adalah pencabangan yang mempunyai lebih dari dua alternatif. Bentuknya sebagai berikut ini.

case<expression>of

Expression adalah suatu ekspresi yang menghasilkan nilai ordinal, sedangkan casevalue adalah nilai konstan yang akan dibandingkan dengan nilai ekspresiordinaltersebut.

Contoh adalah :

Label1.Caption :=‘Special Character’; end;

Berikut ini adalah contoh lain yang akan menggunakancase.

Variabel Nilai adalah nilai ujian yang akan diperiksa untuk menghasilkan nilaiindex.

varNilai : Byte; begin

caseNilai of

0..34 : Label1.Caption := ‘Nilai E’; 35..54 : Label1.Caption := ‘Nilai D’; 55..74 : Label1.Caption := ‘Nilai C’; 75..84 : Label1.Caption := ‘Nilai B’; else

Label1.Caption:= ‘Nilai A’; end;

end.

For

Loop jenis ini dilakukan untuk pengulangan dengan banyaknya pengulangan yang sudah diketahui. Format dariloopjenis ini sebagai berikut.

for <nilai_awal> to <nilai_akhir>do <statement>

(36)

Untukforyang nilai akhir lebih kecil dari nilai awal, gunakan bentuk berikut ini.

for <nilai_awal> downto <nilai_akhir> do <statement>

end;

Nilai_awal dan Nilai_akhir adalah ekspresi dengan tipeInteger.

Contoh penggunaanforsebagai berikut.

var

Writeln(‘Iteration value : ‘ + IntToStr(X); Inc (X, 10);

end; end.

While

Loop jenis ini digunakan untuk melakukan pengulangan selama suatu kondisi tertentu terpenuhi. Bentuknya sebagai berikut.

while<kondisi>do begin <statement>

Writeln(‘Iterasi ke ‘ +IntToStr(I)); Dec(I);

end;

Memo1.Lines.Add(‘Selesai’); end;

Repeat

(37)

repeat

Memo1.Lines.Add(‘Iterasi ke‘ +IntToStr(I)); Dec(I);

untilI = -1;

Memo1.Lines.Add(‘Selesai’); end;

3.1.12. Array

Arrayadalah kumpulan data yang bertipe sama dengan banyaknya elemen tetap. Secara internal, seluruh elemen array tersimpan dalam memori yang contiguous, di mana setiap elemen akan langsung diikuti oleh elemen berikutnya. Untuk meng‐ akses array, dipergunakan indeks yang berada dalam kurung kotak([]), misalnya A[0], A[100], dst.

Keuntungan terbesar ketika kita menggunakan array adalah akses elemenya yang sangat cepat. Secara internal, alamat elemen ke n dari array dapat dihitung dengan n dan ukuran dari array tersebut, oleh karena itu O(A[n]) = 1. Kerugiannya adalah bila kita ingin menyisipkan data ke dalam array atau ingin menghapus elemen array, maka kita harus menggeser semua elemennya. Delphi menyediakan beberapa tipearray, yaitustatic array, dynamic arraysertaopen array.

Array Statis (Static Array)

Array statisadalaharrayyang banyaknya elemen tetap selama program berjalan karena ditentukan pada saat deklarasi. Indeks dari array statis bisa berupaInteger, Char, atau tipe ordinal lainnya. Memori yang dialokasikan untuk array statisadalah banyaknya elemen dikalikan ukuran elemen. Mendefinisikan array statis berukuran besar sebagai variabel lokal procedure/function tidak dianjurkan karena menyebabkan borosnya penggunaan stack.

Pendefinisian Array Statis

Bentuk umum dariarray statisadalah :

<NamaArray> =array[Tipe Indeks]of<Tipe Dasar>;

(38)

Perhatikan contoh di bawah ini.

type

ArrayChar =array[Char]ofInteger; // Array #0 s.d. #255 dari Integer ArrayByte =array[Byte]ofChar;

// Array 0 s.d. 255 dari Char

ArrayInt =array[ShortInt]of string; // Array -128 s.d. 127 dari string

Sebagai contoh lain, untuk mendefinisikan array yang terdiri atas 5 (lima) elemen integer, kita dapat melakukannya dengan cara sebagai berikut :

var

MyArray :array[0..4]ofinteger

Untuk mengaksesnya, gunakan cara sebagai berikut ini.

var

MyArray :array[0..4]ofinteger

begin

Array Dinamis (Dynamic Array)

Array dinamis adalah array yang banyaknya elemen dapat diubah pada saatruntime. Indeks dari array dinamis selalu diawali dengan 0, dan banyaknya elemen dapat ditentukan dengan menggunakan SetLength.

Mendefinisikan Array Dinamis

Pendefinisian arraydinamis mirip denganarray statis tetapi tidak menyebutkan tipe indeks‐ nya. Sintaks pendefinisianarraydinamis sebagai berikut ini.

type

<NamaTipe> =array of<Tipe Dasar>; var

(39)

Tipe dasar adalah tipe elemenarray, bisa tipe elementer sepertiInteger, Byte, Double, String,atau Recordjuga bisa tipe lain seperti TObject (dan turunannya).

type

TMyIntegerArray = array of Integer; TMyFloatArray = array of Double;

var

A :array of string; B :array ofboolean; C :array ofTComponent;

Pada awalnya variabel array dinamis berisinil, di mana banyaknya elemen dari array dinamis adalah 0 (tidak mempunyai elemen), sehingga kita perlu memanggil procedure SetLength untuk menentukan berapa ukuranarraydinamis yang diinginkan.

varX :array ofInteger; vSize : Integer;

Array Terbuka (Open Array)

Array Terbuka adalah parameter dalam procedure atau function yang dapat dilewati oleh array statis ataupun array dinamis. Array statis yang dilewatkan pun tidak tergantung dengan tipe indeknya. Batas indeks minimum array terbuka adalah 0, meskipun variabel array yang dilewatkan batas minimumnya bukan 0. Batas maksimumnya tergantung ukuranarrayyang dilewatkan.

Perhatikan contoh kode berikut ini.

functionArray2Str(vNamaArray : string; vArray : array of integer) :string; vari : Integer;

vLow : Integer; begin

result :=‘ ‘;

fori := Low(vArray) toHigh(vArray)do begin

result := result+Format(‘%s[ %d] : %d’, [ vNamaArray, i, vArray[ i]]); result := result+#13#10;

end; end;

Pada contoh di atas, parameter vArray adalah array terbuka sehingga bisa dilewati oleh array statis dengan berbagai tipe indeks.

3.1.13. Record

(40)

sebuah tipe data bentukan berjenis record, kemudian baru kita mendefinisikan variabel yang bertipe record tersebut. Awal definisi data record ditandai dengan kata kunci record dan diakhiri dengan kata kunciend. Berikut ini contoh penggunaan tipe datarecord.

type

TMyRecord =record Nama :string; Alamat :string; Kota :string; KodePos :string[ 5]; end;

var

MyRecordVar : TMyRecord;

begin

MyRecordVar.Nama := ‘Diego Maradona’;

MyRecordVar.Alamat := ‘Jalan Gunung Merapi No.99’; MyRecordVar.Kota := ‘Buenos Aires’;

MyRecordVar.KodePos := ‘56777’; end;

Kata Kunci With

Bila kita berbicara tentang record, maka mau tidak mau kita harus berbicara sebuah kata kunci, yaitu with. Meskipun demikian penggunaan kata kunci ini tidak terbatas untuk penggunaan record saja. Kata kunci ini digunakan untuk mempermudah pemrograman dengan menggunakan record. Untuk mempermudah pembahasan, kita tulis ulang contoh yang telah dibahas di atas, sebagai berikut.

MyRecordVar.Nama :=‘Diego Maradona’;

MyRecordVar.Alamat := ‘Jalan Gunung Merapi No.99’; MyRecordVar.Kota :=‘Buenos Aires’;

MyRecordVar.KodePos := ‘56777’;

Dengan menggunakan kata kunciwith, kita dapat menyederhanakan perintah di atas sebagai berikut ini.

withMyRecordVardo begin Nama := ‘Diego Maradona’;

Alamat := ‘JalanGunung MerapiNo.99’; Kota:= ‘Buenos Aires’;

KotaPos :=‘56777’; end;

3.1.14. Pointer

(41)

membangun struktur data dan dapat dimanfaatkan untuk mengelola memori secara akurat. Di sisi lain, dalam penggunaan pointer, sangat mudah terjadi salah pakai yang bisa menimbulkan error yang sulit dicari penyebabnya, yaituaccess violation.

Dasar‐ dasar penggunaan Pointer

Seperti telah dijelaskan sebelumnya,pointer adalah tipe data yang dapat menunjuk ke lokasi tertentu di memori. Untuk mendefinisikan sebuah variabel pointer, kita bisa menggunakan <tipe data> atau bisa menggunakanPointer. Perhatikan contoh berikut ini.

var p1 : ^Integer; // pointer to integer p2 : ^Real; // pointer to real number p3 : Pointer // untyped pointer

Variabel p1 adalah variabel dengan tipepointer to integer, artinya nilai yang ditunjuk oleh p1 adalah nilai bertipe integer. Variabel p2 adalah pointer to real, artinya nilai yang ditunjuk oleh variabel ini adalah bilangan real. Sementara variabel px adalah untyped pointer, artinya tipe yang ditunjuk oleh variabel pointer ini tidak ditentukan. Variabel bertipe untyped pointer akan kompatibel dengan variabel pointer bertipe apa pun. Menggunakanuntyped pointerpada umumnya lebih fleksibel tetapi kurang aman.

3.1.15. Function dan Procedure

FunctiondanProcedureadalah suatu blok program yang dapat dipanggil oleh bagian lain dalam program. Setelah dipanggil, function akan mengembalikan nilai, sedangkanprocedure tidak. Karena menghasilkan nilai, function bisa menjadi bagian dari suatu ekspresi, dan bisa juga nilainya di‐assign‐ kan ke suatu variabel tertentu. Procedure tidak menghasilkan nilai, sehingga tidak dapat menjadi bagian dari suatu ekspresi. Demikian juga, proceduretidak dapat di‐assign‐ kan ke variabel. Berikut ini contoh pemanggilan functiondanprocedure.

X := (MyFunction(Y)+A)*B; MyFunction(P);

MyProcedure(X);

Functionbisa dipanggil sepertiprocedure(tanpa perlu dipergunakan nilainya), seperti contoh di atas. Pendeklarasian Function

Deklarasi untukfunctionsebagai berikut ini.

function<NamaFunction>(<Parameter>) : <Tipe Hasil>; <directives>;

<localDeclarations>; begin

<Pernyataan–pernyataan> end;

Nama Function mengacu pada ketentuan identifier. Parameter berbentuk daftar nama parameter dan tipenya akan dibahas secara khusus. Tipe hasil adalah semua tipe data yang mungkin. Directives mencakupcalling conventions, forward declaration, sertaoverloading.

(42)

Contoh pendeklarasian darifunctionsebagai berikut ini.

functionMyFx : Integer; begin

Result := 17 end;

Result adalah variabel yang sudah terdefinisi secara internal untuk menyimpan hasil keluaranfunction. Tipe variabelresultsama dengan deklarasi tipe hasilfunction.

Kita juga dapat menggunakan namafunctionuntuk mengembalikan hasil, seperti terlihat pada contoh di bawah ini.

functionMyFx : Integer; begin

MyFx := 17; end;

Pendeklarasian Procedure

Seperti telah disebutkan di atas, perbedaan antara function dan proceduresangatlah tipis. Deklarasinya pun sangat mirip seperti terlihat di bawah ini.

function<NamaProcedure>(<Parameter>); <directives>; <localDeclarations>;

begin

<Pernyataan–pernyataan> end;

Nama Procedure mengacu pada ketentuan identifier. Parameter berbentuk daftar nama parameter dan tipenya akan dibahas secara khusus. Directivesmencakupcalling conventions,forward declaration, serta overloading.

Local declarationadalah deklarasiconstant, tipe data, variabellocal, ataupunfunctiondanprocedure.

Contoh dariproceduresebagai berikut ini.

Referensi

Dokumen terkait

Jika anda perhatikan dengan baik misalnya akan dapat kita lihat bahwa para ilmuwan barat yang berhasil dalam bidang ilmu humaniora bahkan dalam bidang filsafat mereka selalu

Unit kompetensi ini mencakup pengetahuan, keterampilan dan sikap perilaku yang diperlukan dalam melakukan pengendalian mutu material dan hasil pekerjaansesuai

Bagaimana dosen yang tersebar di 37 Unit Program Belajar Jarak jauh UT (UPBJJ UT) dan Pusat dapat memperoleh layanan pustaka secara lengkap tentang konten buku yang dikoleksi

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,

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,

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,