5 BAB II LANDASAN TEORI 2.1 Sistem Kontrol Sistem kontrol adalah proses pengaturan ataupun pengendalian terhadap satu atau beberapa besaran (variabel, parameter) sehingga berada pada suatu harga atau dalam suatu rangkuman harga (range) tertentu. Di dalam dunia industri, dituntut suatu proses kerja yang aman dan berefisiensi tinggi untuk menghasilkan produk dengan kualitas dan kuantitas yang baik serta dengan waktu yang telah ditentukan. Otomatisasi sangat membantu dalam hal kelancaran operasional, keamanan (investasi, lingkungan), ekonomi (biaya produksi), mutu produk, dll. Ada banyak proses yang harus dilakukan untuk menghasilkan suatu produk sesuai standar, sehingga terdapat parameter yang harus dikontrol atau di kendalikan antara lain tekanan (pressure), aliran (flow), suhu (temperature), ketinggian (level), kerapatan (intensity), dll. Gabungan kerja dari berbagai alatalat kontrol dalam proses produksi dinamakan sistem pengontrolan proses (process control system). Sedangkan semua peralatan yang membentuk siste m pengontrolan disebut pengontrolan instrumentasi proses (process control instrumentation). Dalam istilah ilmu kendali, kedua hal tersebut berhubungan erat, namun keduanya sangat berbeda hakikatnya. Pembahasan disiplin ilmu Process Control Instrumentation lebih kepada pemahaman tentang kerja alat instrumentasi, sedangkan disiplin ilmu Process Control System mengenai sistem kerja suatu proses produksi. 6 2.1.1. Prinsip Pengontrolan Proses Ada 3 parameter yang harus diperhatikan sebagai tinjauan pada suatu sistem kontrol proses yaitu : o cara kerja sistem kontrol. o keterbatasan pengetahuan operator dalam pengontrolan proses. o peran instrumentasi dalam membantu operator pada pengontrolan proses. Empat langkah yang harus dikerjakan operator yaitu mengukur, membandingkan, menghitung, mengkoreksi. Pada waktu operator mengamati ketinggian level, yang dikerjakan sebenarnya adalah mengukur process variable (besaran parameter proses yang dikendalikan). Contohnya proses pengontrolan temperatur line fuel gas secara manual, proses variabel-nya adalah suhu. Lalu operator membandingkan apakah hasil pengukuran tersebut sesuai dengan apa yang diinginkan. Besar proses variabel yang diinginkan tadi disebut desired set point. Perbedaan antara process variabel dan desired set point disebut error. Dalam sistem kontrol suhu di atas dapat dirumuskan secara matematis: Error = Set Point – Process Variabel Process variabel bisa lebih besar atau bisa juga lebih kecil daripada desired set point. Oleh karena itu error bisa diartikan negatif dan juga bisa positif. 2.1.2. Sistem Kontrol Otomatis Suatu sistem kontrol otomatis dalam suatu proses kerja berfungsi mengendalikan proses tanpa adanya campur tangan manusia (otomatis). Ada dua sistem kontrol pada sistem kendali/kontrol otomatis yaitu : 7 a. Open Loop (Loop Terbuka) Suatu sistem kontrol yang keluarannya tidak berpengaruh terhadap aksi pengontrolan. Dengan demikian pada sistem kontrol ini, nilai keluaran tidak di umpan-balikkan ke parameter pengendalian. Gambar 2.1 Diagram Blok Sistem Pengendalian Loop Terbuka b. Close Loop (Loop Tertutup) Suatu sistem kontrol yang sinyal keluarannya memiliki pengaruh langsung terhadap aksi pengendalian yang dilakukan. Sinyal error yang merupakan selisih dari sinyal masukan dan sinyal umpan balik (feedback), lalu diumpankan pada komponen pengendalian (controller) untuk memperkecil kesalahan sehingga nilai keluaran sistem semakin mendekati harga yang diinginkan. Keuntungan sistem loop tertutup adalah adanya pemanfaatan nilai umpan balik yang dapat membuat respon sistem kurang peka terhadap gangguan eksternal dan perubahan internal pada parameter sistem. Kerugiannya adalah tidak dapat mengambil aksi perbaikan terhadap suatu gangguan sebelum gangguan tersebut mempengaruhi nilai prosesnya. Gambar 2.2 Diagram Blok Sistem Kontrol Tertutup 8 2.1.3. Aksi Kontroler a. Kontroler On – Off (Two Position Controller) Karakteristik kontroler on – off ini hanya bekerja pada 2 posisi, yaitu on dan off. Kerja kontroler on – off banyak digunakan pada aksi pengontrolan yang sederhana karena harganya murah. Karena sistem kerja yang digunakan adalah on – off saja, hasil output dari sistem pengendalian ini akan menyebabkan proses variabel tidak akan pernah konstan. Besar kecilnya fluktuasi process variabel ditentukan oleh titik dimana kontroller dalam keadaaan on dan off. Pengendalian dengan aksi kontrol ini juga menggunakan feedback. Gambar 2.3 Aksi Kendali On – Off b. Kontroler Aksi Proporsional Aksi kontrol proporsional memiliki karakteristik dimana besar output unit control P selalu sebanding dengan besarnya input. Bentuk transfer function dari aksi pengendalian proporsional sbb : Output = Gain * Input 9 Gambar 2.4 Aksi Kendali Proporsional Gain control proporsional dapat berupa bilangan bulat, bilangan pecahan, positif atau juga negatif. Dengan syarat besarnya tetap, linier di semua daerah kerja dan tidak bergantung pada fungsi waktu. Pengertian gain disini dapat berbentuk bilangan pecahan bahkan negatif, sehingga nilai output dapat lebih kecil dari input bahkan negatif. Oleh karena itu, istilah gain jarang dipakai dan yang lazim dipakai adalah istilah proporsional band. Fungsi transfer dari proporsional band (Pb) adalah sbb : ............. (1) c. Kontroler Aksi Integral Berfungsi untuk menghilangkan offset sebagai hasil dari reset yang dapat menghasilkan output walaupun tidak terdapat input, sehingga dibutuhkan suatu pengendali yang dapat menghasilkan output lebih besar atau lebih kecil pada saat error = 0. d. Kontroler Aksi Derivatif Memiliki karakteristik cenderung untuk mendahului atau bisa disebut anti pasif controlling. Oleh karena itu aksi kontrol ini sering diterapkan pada sistem yang memiliki inersia tinggi yang bersifat lagging. e. Kontroler Aksi Proporsional + Integral 10 Pada pengontrolan proporsional dapat menimbulkan offset pada keluaran pengendali. Untuk proses-proses dimana offset tidak dapat ditolerir maka perlu ditambahkan aksi pengontrolan integral. Aksi kontrol integral dapat menghilangkan perbedaan pengukuran dan titik acuan yang dapat mengakibatkan keluaran pengendali berubah sampai dengan perubahan tersebut berharga nol. f. Kontroler Aksi Proporsional + Integral + Derivatif Sistem pengontrolan derivatif merupakan pengontrolan dengan proses umpan balik yang berlawanan dengan cara pengendalian integral. Penambahan aksi derivatif pada pengendalian proporsional + integral bertujuan untuk meningkatkan kestabilan pengontrolan dan mempercepat tanggapan dari sistem, peningkatan kestabilan sistem kontrol diperoleh dari penurunan overshoot. Jika terjadi perubahan sinyal pengukuran maka keluaran pengontrol dengan proporsional bellow tidak terhubung langsung tetapi katup yang akan memperkecil aliran ke arah proporsional bellow. 2.2 Raspberry Pi Raspberry Pi adalah komputer berukuran kartu kredit yang dikembangkan di Inggris oleh Yayasan Raspberry Pi dengan tujuan untuk mempromosikan pengajaran ilmu pengetahuan dasar komputer di sekolah. Raspberry Pi diproduksi melalui lisensi manufaktur yang berkaitan dengan elemen 14/Premier Farnell dan RS komponen. Perusahaan ini menjual Raspberry Pi online. 11 Raspberry Pi memiliki sistem Broadcom BCM2835 chip (SoC), yang mencakup ARM1176JZF-S 700 MHz processor (firmware termasuk sejumlah mode "Turbo" sehingga pengguna dapat mencoba overclocking, hingga 1 GHz, tanpa mempengaruhi garansi), VideoCore IV GPU, dan awalnya dibuat dengan 256 megabyte RAM, kemudian upgrade ke 512MB.Termasuk built- in hard disk atau solid-state drive, akan tetapi menggunakan SD Card untuk booting dan penyimpanan jangka panjang. Yayasan ini bertujuan untuk menawarkan dua versi, dengan harga US$ 25 dan US$ 35. Yayasan ini memberikan Debian dan Arch Linux ARM untuk didownload. Juga mendukung Python sebagai bahasa pemrograman utama, dengan dukungan untuk BBC BASIC,(melalui gambar RISC OS atau clone "Brendybasic" untuk Linux), C, dan Perl. Pada 17 Desember 2012 Yayasan Raspberry Pi, bekerjasama dengan IndieCity dan Velocix, membuka "Store Pi", sebagai "one-stop shop untuk semua kebutuhan Raspberry Pi (perangkat lunak)". Dengan menggunakan aplikasi termasuk dalam Raspbian, pengguna dapat menelusuri beberapa kategori dan men-download apa yang mereka inginkan. Perangkat lunak juga dapat di-upload untuk moderasi dan rilis. Spesifikasi : Tabel 2.1 Spesifikasi Raspberry Pi Type SoC Model A Model B Broadcom BCM2835(CPU, GPU, DSP,SDRAM dan single USB port) CPU 700 MHz ARM1176JZF-S core (ARM11 family) GPU Broadcom VideoCore IV 12 OpenGL ES 2.0 (24 GFLOPS) MPEG-2 and VC-1 (dengan license), 1080p30 h.264/MPEG-4 AVC High-profile decoder and encoder Memory (SDRAM) USB 2.0 ports 256 MB (shared with GPU) 512 MB (share with GPU) 1 (direct from BCM2835 2 (via the built in integrated chip) 3-port USB hub) Composite RCA (PAL and NTSC), HDMI (rev 1.3 & 1.4), Video outputs raw LCD panels via DSI 14 HDMI dengan resolusi mulai dari 640x350 sampai 1920x1200 plus various PAL dan NTSC standar. Audio outputs Onboard storage 3.5 mm jack, HDMI, and as of revision 2 boards, I2S audio (also potentially for audio input) SD / MMC / SDIO card slot (3,3 V card power support only) 10/100 Ethernet (8P8C) Onboard network None USB adapter on the third port of the USB hub Low-level peripherals 8 x GPIO, UART, I2C bus, SPI bus with two chip selects, I2S audio +3.3 V, +5V, ground Power ratings 300 mA (1.5 W) Power source 5 volt via microUSB or GPIO header Size Weight 700 mA (3.5 W) 85.60 mm x 53.98 mm (3.370 in x 2.125 in) 45 g (1.6 oz) Debian GNU/Linux, Raspbian OS, Fendora, Arch Linux Operating systems ARM, RISC OS, FreeBSD, Plan 9 Keterangan : 1. Model A dan Model B adalah model asli Inggris pendidikan BBC mikro komputer, dikembangkan oleh Acorn komputer, yang awalnya dikembangkan 13 ARM prosesor (arsitektur Raspberry Pi) dan sistem operasi RISC OS, yang juga akan dapat dijalankan pada Raspberry Pi (versi 5.17). 2. Pada board beta model B, 128 MB ini dialokasikan secara default untuk GPU, meninggalkan 128 MB untuk CPU. Pada saat rilis 256 MB pertama (model B dan Model A), tiga perbedaan perpecahan yang memungkinkan. Default perpecahan itu yaitu 192 MB (CPU RAM), yang harus cukup untuk standalone 1080p decoding video, atau untuk 3D sederhana, tapi mungkin tidak untuk keduanya secara bersama-sama. 224 MB hanya untuk Linux, dengan hanya framebuffer 1080p, dan cenderung terjadi kegagalan untuk setiap video 3D. 128 MB adalah heavy3D, mungkin juga dengan video decoding (misalnya XBMC). Relatif Nokia 701 menggunakan 128 MB untuk Broadcom VideoCore IV. Untuk model baru B dengan 512MB RAM awalnya ada memori standar baru file split dirilis (arm256_start.elf, arm384_s tart.elf, arm496_start.elf) untuk 256MB, 384MB dan 496MB CPU RAM (dan 256MB, 128MB dan 16MB video RAM). Tapi kemudian RPF merilis versi baru dari start.elf yang bisa membaca entri baru dalam config.txt (gpu_mem = xx) dan secara dinamis dapat menetapkan jumlah RAM (dari 16 hingga 256MB dalam langkah 8MB) untuk GPU, jadi metode yang lebih tua dari pembagian memori menjadi absolut, dan start.elf tunggal bekerja sama untuk 256 dan 512 MB Pis. 3. Tingkat 2 Cache adalah 128 kB, digunakan terutama oleh GPU, tidak CPU. 4. ARM11 didasarkan pada versi 6 dari arsitektur ARM (ARMv6), yang karena umurnya tidak lagi didukung oleh beberapa versi Linux yang populer, termasuk Ubuntu yang menjatuhkan dukungan untuk prosesor di bawah ARMv7 pada tahun 2009. 14 5. Raspberry Pi (model B) juga mengandung 15-pin MIPI kamera antarmuka (CSI) konektor, yang pada saat ini belum mendukung, tetapi Yayasan berencana untuk melepaskan modul kamera untuk itu, dalam waktu dekat 6. Dukungan untuk LCD panel tersedia di hardware melalui konektor DSI tersedia dari Aliansi Mobile industri prosesor interface (MIPI). Software pendukungan yang direncanakan. 7. Didukung resolusi video digital adalah: 640 × 350 EGA; VGA 640 × 480; SVGA 800 × 600; XGA 1024 × 768; 1280 × 720 720 p HDTV; Varian WXGA 1280 × 768; Varian WXGA 1280 × 800; SXGA 1280 × 1024; Varian 1366 × 768 WXGA; 1400 × 1050 SXGA +; UXGA 1600 × 1200; 1680 × 1050 WXGA +; HDTV 1080p 1920 × 1080; 1920 × 1200 WUXGA.[78] Untuk didukung adalah generasi 576i dan 480i sinyal video komposit untuk PALBGHID, PAL-M, PAL-N, NTSC dan NTSC-J 8. Awalnya port USB on-board dirancang untuk perangkat USB yang menggunakan salah satu "unit load" (100 mA) saat ini. Perangkat menggunakan lebih dari 100 mA yang bertentangan dengan Raspberry Pi, dan untuk itu self-powered USB hub diperlukan. Namun, karena umpan balik pengguna, RPF, pada akhir Agustus 2012, memutuskan untuk menghapus polyfuses USB yang sebagian besar disebabkan perilaku ini. Namun, arus maksimum yang dapat dikirimkan ke port USB pada board diubah sebatas kemampuan catu daya yang digunakan, dan main A 1.1.poly fuse terjadi kerugian dari cara memodifikasi dilakukan, bahwa tidak mungkin untuk hotplug perangkat USB langsung ke PI, ketika hotplugging diperlukan dapat dilakukan di pusat. 15 9. Versi firmware berisi lima pilihan presets overclock ("turbo") yang bila diaktifkan mencoba untuk mendapatkan kinerja yang paling baik dari SoC tanpa merusak masa Pi. Hal ini dilakukan oleh pemantauan suhu inti chip, dan beban CPU, dan secara dinamis menyesuaikan kecepatan clock dan tegangan inti. Jadi ketika ada permintaan yang rendah pada CPU, atau sudah terlalu panas, kinerja menjadi terhambat, tetapi jika CPU memiliki banyak yang harus dilakukan, dan memungkinkan chip's temperatur, kinerja sementara meningkat, dengan jam kecepatan hingga 1 GHz, tergantung pada setiap board individu, dan di mana pengaturan "turbo" digunakan. Lima pengaturan : a. "None"; 700 MHz ARM, 250 MHz core, 400 MHz SDRAM, 0 overvolt, b. "Modest"; 800 MHz ARM, 250 MHz core, 400 MHz SDRAM, 0 overvolt, c. "Medium"; 900 MHz ARM, 250 MHz core, 450 MHz SDRAM, 2 overvolt, d. "High"; 950 MHz ARM, 250 MHz core, 450 MHz SDRAM, 6 overvolt, e. "Turbo"; 1000 MHz ARM, 500 MHz core, 600 MHz SDRAM, 6 overvolt 2.2.1. Arsitektur Raspberry Pi Raspberry Pi menggunakan sistem operasi berbasis kernel Linux.Raspbian merupakan Sistem operasi berbasis Debian yang dapat bebas dioptimalkan untuk perangkat keras Raspberry Pi, yang dirilis pada bulan Juli 2012. 16 Gambar 2.5 Diagram blok arsitektur Raspberry Pi GPU hardware diakses melalui gambar firmware yang di- load ke GPU saat boot dari SD-card. Gambar firmware dikenal sebagai kumpulan biner, sementara driver Linux yang terkait adalah sumber tertutup (closed source). Aplikasi perangkat lunak menggunakan panggilan ke sumber tertutup run-time library yang pada gilirannya menjadi panggilan open source driver dalam Linux kernel. API driver kernel spesifik untuk perpustakaan tersebut bersifat tertutup. Aplikasi video menggunakan OpenMAX, aplikasi 3D menggunakan OpenGL ES dan 2D aplikasi menggunakan OpenVG yang pada nantinya menggunakan EGL. OpenMAX dan EGL menggunakan open source kernel driver. Pada 19 Februari 2012, Yayasan Raspberry Pi merilis bukti konsep kartu SD image yang dapat dimuat ke SD Card untuk menghasilkan sebuah sistem operasi yang pertama. Image didasarkan pada Debian 6.0 dengan LXDE desktop dan Midori browser, ditambah berbagai alat pemrograman. image tersebut 17 berjalan pada QEMU yang memungkinkan Raspberry Pi akan ditiru pada berbaga i platform lainnya. 2.2.2. Software system Raspberry Pi Pada 8 Maret 2012 Yayasan Pi Raspberry merilis Raspberry Pi Fedora Remix direkomendasikan sebagai distribusi Linux, yang dikembangkan di Seneca College di Kanada. Yayasan ini berniat untuk membuat situs Web App Store bagi orang untuk program pertukaran. Slackware ARM (secara resmi ARMedslack) versi 13.37 dan kemudian berjalan pada Raspberry Pi tanpa modifikasi. 128–496 MB dari memori yang tersedia di Raspberry Pi adalah dua kali minimum 64 MB yang diperlukan untuk menjalankan Slackware Linux pada sistem ARM atau i386. (Sementara Slackware dapat memuat dan menjalankan GUI, yang dirancang untuk dijalankan dari shell). Fluxbox window manager berjalan di bawah X Window System memerlukan tambahan 48 MB RAM. Selain itu, pekerjaan yang sedang dilakukan pada distribusi Linux seperti IPFire,OpenELEC, Raspbmc dan XBMC membuka sumber digital media center. Eben Upton secara terbuka mendekati RISC OS pada bulan Juli 2011 untuk menanyakan tentang bantuan dengan port potensial. Adrian Lees di Broadcom sejak itu bekerja pada port, dengan karyanya yang disebutkan dalam sebuah diskusi tentang driver grafis. Pada 24 Oktober 2012 Yayasan Raspberry Pi mengumumkan bahwa "semua kode driver VideoCore yang berjalan pada ARM" telah dirilis sebagai perangkat lunak bebas di bawah lisensi BSD-style, membuat "multi media pertama berbasis ARM multimedia SoC dengan banyak- fungsional, vendor 18 menyediakan (sebagai lawan dari parsial, reverse rekayasa) sepenuhnya opensource driver", meskipun klaim ini tidak diterima secara universal. 2.2.3. Sistem Operasi Raspberry Pi Ini adalah daftar sistem operasi yang berjalan pada Raspberry Pi : 1. Full OS : AROS Haiku Linux : o Android : Android 4.0 (Ice Cream Sandwich) o Arch Linux ARM o R_Pi Bodhi Linux o Debian Squeeze o Firefox OS o Gentoo Linux o Google Chrome OS : Chromium OS o PiBang Linux o Raspberry Pi Fedora Remix o Raspbian (Debian Wheezy port with faster floating point support) o Slackware ARM (formerly ARMslack) o QtonPi a cross-platform application framework based Linux distribution based on the Qt framework o WebOS : Open webOS Plan 9 from Bell Labs 19 RISC OS Unix : o FreeBSD o NETBSD 2. Multi-purpose light distributions : Moebius, ARMHF distribusi berdasarkan Debian. Menggunakan repositori Raspbian, cocok di kartu 1 GB microSD. Ini memiliki layanan hanya minimal dan penggunaan memori yang dioptimalkan untuk menjaga footprint kecil. Squeezed Arm Puppy, versi Puppy Linux (Puppi) untuk ARMv6 (sap6) khusus untuk Raspberry Pi. 3. Single-purpose light distributions : Ipfire OpenELEC Raspbmc XBMaC Xbian 4. User Applications Aplikasi berikut dapat dengan mudah diinstal pada Raspbian melalui aptget: Asterisk (PBX), Open source PBX dapat digunakan melalui IP phones atau WI-FI softphones BOINC Client; Namun sangat sedikit proyek BOINC memberikan ARM compatible Client paket software 20 Minidlna, DLNA kompatibel home LAN multimedia server Firefly Media Server (new RPiForked-Daapd), server iTunes kompatibel Open source audio Membangun dari sumber-sumber : Firefly Media Server (original mt-daapd), an iTunes kompatibel Open source audio server 2.2.4. Komponen Raspberry Pi model B rev2 Berikut adalah bentuk fisik dari Raspberry Pi model B rev2 Gambar 2.6 Raspberry Pi model B rev2 Penjelasan : Broadcom BCM2835 ARM11 700Mhz Merupakan otak dari Raspberry Pi HDMI out HDMI 1.3a-compliant mendukung sinyal HDMI dan DVI-D 21 CSI connector camera Camera serial interface dengan 15 pin flat flex kabel headeruntuk CSI-2 interface MIPIAliansi.Standar antarmuka CSI mendefinisikan standar antarmuka serial searah untuk perangkat kamera CSI-compliant. Ethernet Out (hanya dalam model 256 Mb) Mendukung fungsi Wakeon-LAN dan TCP / UDP USB 2.0 Fungsi USB disediakan oleh SMSC LAN9512 pada kedua Model A dan Model B. LAN9512 adalah paket menarik dan cara yang sangat baik untuk menghemat ruang PCB. Port USB pada Pi adalah USB 2.0 dengan maksimum menarik arus yang disarankan 100 mA. Status LED Memiliki 4 Led sebagai indicator status dari setiap fungsi pada Raspberry Pi. D5 menyala hijau menjelaskan system/ akses terkoneksi dengan SD card, D6 menyala merah menjelaskan power terkoneksi, 3.3V. D7 menyala hijau sebagai full duplex, half duplex jika LED padam. D8 menyala hijau menjelaskan Link activitas untuk LAN. AUDIO OUPUT Sebagai stereo audio output. JTAG Header JTAG interface digunakan untuk memprogram chip SoC dan chip SMSC didalam board. Pabrikan juga menggunakan JTAG untuk menguji hardware pada saat pembuatannya. RCA Video output 22 Sebagai video output cadangan pada Raspberry Pi apabila fungsi HDMI tidak digunakan. GPIO Header Terdiri dari 26 pin yang berfungsi untuk pengontrolan suatu perangkat yang dikontrol oleh suatu perangat lunak baik dikonfigurasi sebagai pin input maupun sebagai pin output. Fitur-fitur pada GPIO diantaranya : pin I2C, pin RX TX, pin PWM, pin PPM dan disediakan pin dengan tegangan 5V dan 3.3V. semua pin pada GPIO memiliki tingkat logika 3.3V. DSI Display connector Display Serial Interface dengan 15 pin flat flex yang tampak persis dengan dega CSI-2 interface , biasanya digunakan untuk display LCD seperti LCD pada ponsel. DSI juga dapat digunakan sebagai I2C. SD card slot Sebagai slot untuk SD card atau slot mikro SD, yang berisikan OS untuk di akses oleh pengguna Raspberry Pi. Micro USB power Dengan power input 5V 1A DC untuk memenuhi kebutuhan tegangan dan arus pada Raspberry Pi. 2.2.5. Komunikasi GPIO Raspberry Pi GPIO merupakan sederet pin yang terdiri dari 26 pin dengan berbagai fungsi diantaranya: 23 Gambar 2.7 Pin-pin GPIO Sumber tegangan : 3.3V General purpose digital inputs/outputs – 8 pin I2C - 2 pin , 5V dan 0V Digunakan ke berbagai antarmuka I2C diantaranya : o Digital to analogue converter o Analogue to digital converter o Oscillators o Output expander o input expander input expander Digunakan untuk antarmuka ke berbagai IC o Flash memory o Output expander o Input expander 24 o Digital to analogue converter o Analogue to digital converter o Oscillators UART - 2 pin Digunakan untuk data serial input dan output dan komunikasi untuk ke peripheral external seperti RS232 atau modbus. Tidak digunakan (DNC) - 6 pin Jangan pernah menghubungkan apa-apa ke pin yang ditandai tidak digunakan. Pin tersebut disediakan untuk fungsi internal BCM2836 hardware. Apabila menghubungkan hal apapun untuk pin ini akan mengakibatkan kerusakan pada Raspberry Pi. Dengan batas arus maximum 100 mA di pin 5V dan batas arus maximum 50 mA di pin 3,3V, pada setiap pin digital baik input/output memiliki logika high 3,3V dan logika low 0V. Apabila tegangan > 3,3V pada setiap pin mana pun maka dapat mengakibatkan kerusakan. Gambar 2.8 Header GPIO pada Raspberry Pi 25 Kerusakan permanen pada Raspberry Pi dapat disebabkan oleh beberapa indikator diantaranya adalah terhubungnya pasokan tegangan 5v ke pin apapun, terjadinya konstelting pasokan tegangan 3.3v atau 5v ke setiap pin, perangkat lain seperti arduino (5V) terhubung dengan Raspberry Pi (3.3V). Tabel 2.2 Fungsi Pin GPIO Pin number Primary function Alternate function P1-01 3.3V I2C SDA P1-02 5V P1-03 GPIO 0 P1-04 NC P1-05 GPIO 1 P1-06 GND P1-07 GPIO 4 P1-08 GPIO 14 P1-09 NC P1-10 GPIO 15 P1-11 GPIO17 ALT3=UART0_RTS P1-12 GPIO 18 ALT4=SPI1_CEO_N P1-13 GPIO 21 P1-14 NC P1-15 GPIO 22 ALT3=SD1_CLK P1-16 GPIO 23 ALT3=SD1_CMD P1-17 NC I2C SCL Alternate 1 function GPCLK0 GPCLK0 UART0_TXD ALT5=UART1_TDX UART0_RDX ALRT5=UART1_RXD PCM_DIN ALT5=GPCLK1 26 P1-18 GPIO 24 ALT3=SD1_DATA0 P1-19 GPIO 10 P1-20 NC P1-21 GPIO 9 P1-22 GPIO 25 P1-23 GPIO 11 SPI0_SCLK P1-24 GPIO 8 SPI0_CEO_N SPI0_MOSI SPI0_MISO ALM4=ARM_TCK Pada setiap pin digital dapat di set input maupun output, pada saat pin tersebut dikofigurasi sebagai output maka akan mengeluarkan tegangan 3.3V sebagai high yang dapat memerintahkan ke sebuah perangkat untuk menyala sebagai contoh perangkat LED. Berikut program kedip led : Program led python blink.py : Import RPi.GPIO as GPIO //setting alias GPIO From time import sleep //setting timer GPIO.setmode(GPIO.BOARD) //setting setmode (board atau BCM) GPIO.setup(11, GPIO.OUT) // setting pin yang digunakan While true: // perulangan nyala dan padam pada led GPIO.output(11, true) // led menyala Sleep(2) // delay selama 2 detik GPIO.output(11,false) // led padam Sleep(2) 27 Konfigurasi pin sebagai input biasanya digunakan sebagai saklar pada pin yang dikonfigurasi. Pin lain akan dikonfigurasi sebagai output sebagai contoh program saklar untuk menyalakan 3 buah led secara bergantian. Import RPi.GPIO as GPIO From time import sleep GPIO.cleanup() GPIO.setmode(GPIO.BCM) //setting setmode BCM LedPins = [17,27,22] // inisialisasi pin sebagai output buttonPin = 23//inisialisasi pin sebagai input for a in ledpins: GPIO.setmode(a, GPIO.OUT) GPIO.setup(buttonPin, GPIO.IN) currentLed = 0 // set mula-mula 0 pada kondisi led padam while True: pin = ledPins[currentLed] GPIO.output(pin, True) buttonIn = not GPIO.input(buttonPin) if buttonIn == true: GPIO.output(pin, false) If currentLed == 2: currentLed = 0 else: currentLed = currentLed + i sleep(0.1) 28 komunikasi GPIO bekerja dengan mengeluarkan tegangan pin input maupun output sebesar 3.3V sebagai high untuk kondisi “on” dan 0V untuk kondisi “off”. 2.3 Motor DC Motor DC merupakan jenis motor yang menggunakan tegangan searah sebagai sumber tenaganya. Dengan memberikan beda tegangan pada kedua terminal tersebut, motor akan berputar pada satu arah, dan bila polaritas dari tegangan tersebut dibalik maka arah putaran motor akan terbalik pula seperti pada gambar 2.1. Polaritas dari tegangan yang diberikan pada dua terminal menentukan arah putaran motor sedangkan besar dari beda tegangan pada kedua terminal menentukan kecepatan motor. Gambar 2.9 Kontruksi motor DC Konstruksi motor DC pada gambar 2.14 memiliki 2 bagian dasar,yaitu : 29 1. Bagian yang tetap/stasioner yang disebut stator. Stator ini menghasilkan medan magnet, baik yang dibangkitkan dari sebuah koil (elektro magnet) ataupun magnet permanen. 2. Bagian yang berputar disebut rotor. Rotor ini berupa sebuah koil dimana arus listrik mengalir. Gaya elektromagnet pada motor DC timbul saat ada arus yang mengalir pada penghantar yang berada dalam medan magnet. Medan magnet itu sendiri ditimbulkan oleh megnet permanen. Garis- garis gaya magnet mengalir diantara dua kutub magnet dari kutub utara ke kutub selatan. Menurut hukum gaya Lourentz, arus yang mengalir pada penghantar yang terletak dalam medan magnet akan menimbulkan gaya. Gaya F, timbul tergantung pada arah arus I, dan arah medan magnet B. 2.4 Driver Motor DC dengan IC L293D Pada dasarnya beberapa aplikasi yang menggunakan motor DC harus dapat mengatur kecepatan dan arah putar dari motor DC itu sendiri. Untuk dapat melakukan pengaturan kecepatan motor DC dapat menggunakan metode PWM (Pulse Width Modulation) sedangkan untuk mengatur arah putarannya dapat menggunakan rangkaian H-bridge yang tersusun dari 4 buah transistor. Tetapi dipasaran telah disediakan IC L293D sebagai driver motor DC yang dapat mengatur arah putar dan disediakan pin untuk input yang berasal dari PWM untuk mengatur kecepatan motor DC. Untuk lebih memahami tentang membangkitkan sinyal PWM menggunakan fitur Timer pada mikrokontroler AVR dapat membacanya pada postingan tutorial AVR tentang PWM. Sebelum membahas 30 tentang IC L293D, alangkah baiknya jika kita membahas driver motor DC menggunakan rangkaian analog terlebih dahulu. Jika diinginkan sebuah motor DC yang dapat diatur kecepatannya tanpa dapat mengatur arah putarnya, maka kita dapat menggunakan sebuah transistor sebagai driver. Untuk mengatur kecepatan putar motor DC digunakan PWM yang dibangkitkan melalui fitur Timer pada mikrokontroler. Sebagian besar power supply untuk motor DC adalah sebesar 12 V, sedangkan output PWM dari mikrokontroler maksimal sebesar 5 V. Oleh karena itu digunakan transistor sebagai penguat tegangan. Dibawah ini adalah gambar driver motor DC menggunakan transistor. Salah satu jenis motor yang sering digunakan dalam bidang kontrol yaitu Motor DC. Motor DC akan berputar jika dialiri tegangan dan arus DC. Berikut gambar 2.10 adalah motor DC dan jembatan H yang digunakan pada rancangan alat ini: Gambar 2.10 Motor DC dan Jembatan H Sistem pengaturan motor DC yang sering digunakan pada sistem kontrol seperti pada gambar 2.2 yaitu dengan H-Bridge yang pada pada dasarnya adalah 4 buah transistor yang difungsikan sebagai saklar. Pengaturan motor DC yaitu meliputi kecepatan dan arah. Pengaturan arah yaitu dengan cara membalik tegangan logika masukan H-bridge. Sedangkan sistem pengendalian kecepatan 31 motor DC digunakan prinsip PWM (Pulse Width Modulator) yaitu suatu metode pengaturan kecepatan putaran motor DC dengan mengatur lamanya waktu pensaklaran aktif (Duty Cycle). Motor DC merupakan sebuah komponen yang memerlukan arus yang cukup besar untuk menggerakannya. Oleh karena itu motor DC biasanya memiliki penggerak tersendiri. Pada tugas akhir ini motor DC akan digerakkan dengan menggunakan PWM yang telah terintegrasi dengan rangkaian HBridge. Dengan rangkaian H-Bridge yang memiliki input PWM ini, maka selain arah kita juga bisa mengendalikan kecepatan putar motor DC tersebut. 2.5 Modulasi Lebar Pulsa (PWM) Modulasi adalah suatu proses dimana parameter gelombang pembawa (carrier signal) frekuensi tinggi diubah sesuai dengan salah satu parameter sinyal informasi/pesan. Dalam hal ini sinyal pesan disebut juga sinyal pemodulasi. Proses modulasi dilakukan pada bagian pemancar. Proses kebalikannya yang disebut demodulasi dilakukan pada bagian penerima. Dalam demodulasi, sinyal pesan dipisahkan dari sinyal pembawa frekuensi tinggi. Dengan modulasi pulsa, sinyal informasi diubah menjadi pulsa-pulsa persegi dengan frekuensi dan amplitude tetap tapi dengaan lebar pulsa sebanding dengan amplitude sinyal informasi. Salah satu teknik modulasi pulsa yang digunakan adalah teknik modulasi durasi atau lebar waktu tunda positif ataupun tunda negative pulsa-pulsa persegi tersebut. Rancangan alat ini menggunakan modulasi lebar pusa,atu sering disebut Pulse With Modulation (PWM). Modulasi lebar pulsa digunakan untuk mentransfer data pada telekomunikasi ataupun mengatur tegangan sumber yang konstan untuk mendapatkan tegangan rata-rata yang berbeda. 32 Rangkaian osilator dapat berperilaku sebagai modulator lebar pulsa apabila salah satu resistor (LDR) dikondisikan dapat berubah karena adanya pengaruh dari besaran fisis lainnya. Light Dependent Resistor (LDR) merupakan resistor yang besar resistansi- nya bergantung terhadap intensitas cahaya yang menyelimuti permukaannya. LDR, dikenal dengan banyak nama: foto-resistor, foto-konduktor, sel foto-konduktif, atau hanya foto-sel. Dan yang sering digunakan dalam literatur adalah foto-resistor atau foto-sel. Pada gambar.1 diatas digunakan juga kapasitor. Dengan penambahan kapasitor, nilai VLDR tidak akan berubah secara signifikan. Tetapi respon terhadap perubahan intensitas memang sedikit lebih lambat. Namun, dengan kapasitor tersebut, tegangan VLDR akan lebih stabil. Untuk membangkitkan sinyal PWM, digunakan komparator untuk membandingkan dua buah masukan yaitu generator sinyal dan sinyal referensi. Hasil keluaran dari gambar 2.5 adalah sinyal PWM yang berupa pulsa-pulsa persegi yang berulangulang. Durasi atau lebar pulsa dapat dimodulasi dengan cara mengubah sinyal referensi. Gambar 2.11 Modulasi lebar pulsa Seperti pada gambar 2.16 adalah metode PWM digunakan untuk mengatur kecepatan motor, informasi yang dibawa oleh pulsa-pulsa persegi merupakan 33 tegangan rata-rata. Semakin lebar durasi waktu tunda positif pulsa dari sinyal PWM yang dihasilkan, maka perputaran motor akan semakin cepat, demikian juga sebaliknya. 2.6 Wifi (Wireless Fidelity) Komunikasi nirkabel atau tanpa kabel telah menjadi kebutuhan dasar atau gaya hidup baru masyarakat umum. LAN nirkabel yang lebih dikenal dengan wifi menjadi teknologi alternatif untuk diimplementasikan diruang lingkup yang kecil. Instalasi perangkat jaringan wifi lebih flexibel karena tidak membutuhkan penghubung kabel antar PC. Gambar 2.12 Hirarki konektivitas antar jaringan nirkabel Penjelasan singkat kategori jaringan wireless berdasarkan jangkauan area yaitu : a. WPAN (Wireless Personal Area Network) Hanya menjangkau area yang sangat dekat seperti didalam sebuah ruangan umumnya jaukauan sekitar 10 - 16 meter.Dengan performansi cukup baik, dikecepatan data mencapai 2MBps. Sebagai standarisasi untuk Bluetooth, IEEE 802.15, IrDa. WPAN biasa digunakan untuk bertukar sebagai contoh: data antara PDA ke Laptop, koneksi ke printer, wireless headset dan lainlain 34 Gambar 2.13 Komunikasi WPAN b. WLAN (Wireless Local Area Network) Biasa digunakan dalam satu gedung perkantoran, kampus, rumah, dan lain lain. Dengan performansi berada pada kecepatan transfer data bisa mencapai 54 Mbps. Sebagai standarisasiuntuk Wi- fi IEEE 802.11, HiperLAN. Penggunaan WLAN sama seperti pada jaringan kabel LAN, WLAN bisa digunakan untuk bertukar data, akses suatu aplikasi di komputer lain dalam suatu kantor atau public hotspot. Gambar 2.14 Komunikasi WLAN c. WMAN (Wireless Metropolitan Area Network) Mencakup area dalam satu kota, maksimal mencapai 50 kilometer. Dengan 35 kecepatan data transfer bisa mencapai 70 MBps. Standarisasi untuk wimax 802.16. biasa digunakan sebagai koneksi antar gedung dalam sebuah kota Gambar 2.15 Komunikas WMAN d. WWAN (Wireless Wide Area Network) Mencakup area yang sangat luas, seperti koneksi antar negara atau benua. Dengan performansi kecepatan data hanya mencapai 170 Kbps, da biasanya hanya 56 Kbps, hampir sama dengan koneksi dial up telepon atau modem. Sebagai standarisasi CDPD, cellular 2G, 3G. Gambar 2.16 Komunikasi WWAN 36 2.6.1. Teknologi jaringan Wifi Teknologi jaringan wifi adalah suatu jaringan komputer dengan udara sebagai media transmisinya.Berbeda dengan jaringan LAN konvensional yang menggunakan sinyal dengan media transmisi kabel.Pemanfaatan jaringan wireless LAN sudah banyak dijumpai diberbagai tempat, sebagai fasilitas penunjang untuk kenyamanan akses setiap pengunjung atau konsumen. Jaringan wifi juga memiliki konfigurasi seperti Ethernet LAN, diantaranya : a. Jaringan peer to peer / ad Hoc Wifi Jaringan ad hoc wifi adalah mode jaringan wifi yang memungkinkan dua atau lebih device(komputer atau router) untuk saling berkomunikasi satu sama lain secara langsung (dikenal dengan istilah peer to peer) tanpa melalui central wireless router atau access point (AP). Setiap komputer terhubung berdasarkan SSID (service set identifier). SSID adalah nama identitas dari setiap komputer yang memiliki komponen nirkabel. Gambar 2.17 Ad hoc wifi b. Jaringan server base / wireless Infrastructure Jaringan wifi yang menggunakan sebuah acces point router untuk menghubungkan antara semua Client dengan sumberdaya jaringan lainnya. 37 Gambar 2.18 Access point Pada implementasinya, sebagian besar produk wifi bekerja pada frekuensi 2.400 MHz sampai 2.483,50 MHz. Dengan begitu mengijinkan operasi berjalan dalam 11 channel (masing- masing 5 MHz), berpusat di frekuensi berikut : 1. Channel 1 – 2,412 MHz 2. Channel 2 – 2,417 MHz 3. Channel 3 – 2,422 MHz 4. Channel 4 – 2,427 MHz 5. Channel 5 – 2,432 MHz 6. Channel 6 – 2,437 MHz 7. Channel 7 – 2,442 MHz 8. Channel 8 – 2,447 MHz 9. Channel 9 – 2,452 MHz 10. Channel 10 – 2,457 MHz 11. Channel 11– 2,462 MHz Ke 11 kanal yang tersedia diatas telah sesuai dengan regulasi yang ditetapkan oleh federation Communication Commission (FCC). 38 2.6.2. Keunggulan Jaringan Wifi Keunggulan jaringan wifi diantaranya : Wifi dikembangkan tanpa kabel dan menggunakan gelombang radio dengan frekuensi 2,4 GHz. Selain itu Wifi dapat mengirim dan menerima sampai 54 Mbps. Wifi menggunakan jalur akses jaringan/hotspot yang dapat berkomunikas i ke semua komputer dan laptop. Wireless Client : PCMACIA / PC Card. Gateway server, modem, router dan proxy. Memungkinkan LAN untuk digunakan tanpa kabel,biasanya mengurangi biaya penyebaran jaringan dan ekspansi. Ruang di mana kabel tidak dapat dijalankan, seperti area outdoor Harga Wifi turus menurun, membuat wifi merupakan pilihan yang sangat ekonomis. Wifi jaringan dukungan roaming, dimana sebuah stasiun Client mobile seperti laptop dapat berpindah dari satu jalur akses ke jalur akses yang lainnya. Wifi mudah dan cepat digunakan dalam membangun suatu jaringan wireless Protocol baru untuk kualitas layanan Wi- fi multimedia (WMM) dan mekanisme power saving (WMM Power Save) membuat wifi lebih sesuai untuk aplikasi yang latency-sensitif (seperti suara dan video). 39 2.6.3. Kekurangan jaringan wifi Adapun Kekurangan jaringan wifi diantaranya: Adanya kelemahan yang terletak pada konfigurasi dan jenis enkripsi. Kelemahan tersebut diakibatkan karena terlalu mudahnya membangun sebuah jaringan wireless. Wired Equivalent Privacy (WEP) yang menjadi standard keamanan wireless sebelumnya dapat mudah dipecahkan dengan berbagai tools yang tersedia gratis di internet. Penyaluran gelombang dan keterbatasan operasional yang tidak konsisten di seluruh dunia. Konsumsi power yang cukup tinggi jika dibandingkan dengan beberapa standar lainnya, membuat masa pakai baterai berkurang dan panas. Jaringan wifi memiliki rentang yang terbatas. Wifi menggunakan spectrum 2,4GHz tanpa izin, yang menyebabkan tabrakan dengan perangkat lain seperti Bluetooth, oven microwave, telepon tanpa kabel atau perangkat pengirim video dan lain- lain. Hal- hal tersebut dapat menyebabkan penurunan kinerja wifi. Intervensi pada jalur akses tertutup atau dienkripsi dengan jalur akses terbuka yang lainnya pada saluran yang sama atau dekat dapat mencegah akses ke jalur akses terbuka oleh orang lain di daerah tersebut. Ini menimbulkan masalah di daerah dengan kepadatan tinggi seperti blok apartemen besar yang memiliki banyak penduduk mengoperasikan access poin wifi. 40 2.7 Client/server Client/server biasa digunakan pada suatu jaringan dimana komputer Client bertugas melakukan permintaan data dan server bertugas melayani permintaan tersebut. a. Client User akan membuat permintaan melalui software Client. Aplikasi ini berfungsi: Membuat interface bagi user untuk melakukan jobs. Form request data ke bentuk yang dapat dimengerti oleh server. Menampilkan hasil yang diminta pada layar. Komputer Client menerima instruksi dari user melalui interface yang disediakan, merubah format instruksi ke bentuk yang dapat dimengerti oleh database server, dan mengirimkannya melalui jaringan ke server yang dituju. Server kemudian akan mengeloh request, memilih informasi yang sesuai dan mengirimkan kembali data hasil pengolahan ke Client. Client kemudian mengolah data yang diterima untuk ditampilkan sebagai informasi yang berguna melalui interface yang tersedia. b. Server Pada jaringan Client/server, server khusus digunakan untuk pemrosesan, penyimpanan dan manajemen data.Server bertugas menerima request dari Client, mengolahnya dan mengirimkan kembali hasilnya ke Client. Untuk itu, server membutuhkan komputer khusus dengan spesifikasi hardware yang jauh lebih baik dan bertenaga dibandingkan hardware 41 untuk Client karena komputer harus mampu melayani request secara simultan dalam jumlah besar, aktivitas manajemen jaringan dan menjamin keamanan pada resource jaringan. 2.8 Bahasa Pemrograman Python 2.8.1 Konsep Dasar Pyton Pada awalnya, motivasi pembuatan bahasa pemrograman ini adalah untuk bahasa skrip tingkat tinggi pada sistem operasi terdistribusi Amoeba. Bahasa pemrograman ini menjadi umum digunakan untuk kalangan engineer seluruh dunia dalam pembuatan perangkat lunaknya, bahkan beberpa perusahaan menggunakan python sebagai pembuat perangkat lunak komersial. Python merupakan bahasa pemrograman yang freeware atau perangkat bebas dalam arti sebenarnya, tidak ada batasan dalam penyalinannya atau mendistribusikannya. Lengkap dengan interface -nya, debugger dan profiler, antarmuka yang terkandung di dalamnya untuk pelayanan antarmuka, fungsi sistem, GUI (antarmuka pengguna grafis), dan basis datanya 2.8.2 Sejarah Phyton Python dikembangkan oleh Guido van Rossum pada tahun 1990 di CWI, Amsterdam sebagai kelanjutan dari bahasa pemrograman ABC. Versi terakhir yang dikeluarkan CWI adalah 1.2. Tahun 1995, Guido pindah ke CNRI sambil terus melanjutkan pengembangan Python. Versi terakhir yang dikeluarkan adalah 1.6. Tahun 2000, Guido dan para pengembang inti Python pindah ke BeOpen.com yang merupakan sebuah perusahaan komersial dan membentuk BeOpen PythonLabs. Python 2.0 dikeluarkan oleh BeOpen. Setelah mengeluarkan Python 2.0, Guido dan beberapa anggota tim PythonLabs pindah ke DigitalCreations. Saat 42 ini pengembangan Python terus dilakukan oleh sekumpulan pemrogram yang dikoordinir Guido dan Python Software Foundation. Python Software Foundation adalah sebuah organisasi non-profit yang dibentuk sebagai pemegang hak cipta intelektual Python sejak versi 2.1 dan dengan demikian mencegah Python dimiliki oleh perusahaan komersial. Saat ini distribusi Python sudah mencapai versi 2.6.1 dan versi 3.0. Nama Python dipilih oleh Guido sebaga i nama bahasa ciptaannya karena kecintaan guido pada acara televisi Monty Python s Flying Circus. Oleh karena itu seringkali ungkapan-ungkapan khas dari acara tersebut seringkali muncul dalam korespondensi antar pengguna Python. Aplikasi bahasa phyton Perangkat bantu shell. Tugas-tugas sistem administrator, program baris perintah. Kerja bahasa ekstensi. Antarmuka untuk pustaka C/C++. Beberapa fitur yang dimiliki Python adalah: a. memiliki kepustakaan yang luas; dalam distribusi Python telah disediakan modul-modul 'siap pakai' untuk berbagai keperluan. b. memiliki tata bahasa yang jernih dan mudah dipelajari. c. memiliki aturan layout kode sumber yang memudahkan pengecekan pembacaan kembali dan penulisan ulang kode sumber. d. berorientasi obyek. e. memiliki sistem pengelolaan memori otomatis (garbage collection, seperti java ) modular, mudah dikembangkan dengan menciptakan modul- modul baru; modul- modul tersebut dapat dibangun dengan bahasa Python maupun C/C++. f. memiliki fasilitas pengumpulan sampah otomatis, seperti halnya pada bahasa pemrograman Java , python memiliki fasilitas pengaturan 43 penggunaan ingatan komputer sehingga para pemrogram tidak perlu melakukan pengaturan ingatan komputer secara langsung. 2.8.3 Element Dasar Pemrograman Bahasa Python Pada pemrograman bahasa python terdapat beberapa elemen penting yaitu: a. INPUT Input berarti membaca sesuatu dari I/O unit, misalkan keyboard. Pada bahasa Python untuk menerima masukan dari pengguna (user), kita dapat menggunakan metode input() dan raw_input(). b. DATA Data dapat berupa konstanta, variabel, dan struktur yang berisi bilangan, kalimat, ataupun alamat memori. Penjelasan tentang tipe data ada pada numerik, string, list, tuple, dan dictionary. c. OPERATION Operation akan mengubah suatu nilai menjadi nilai lain, mengkombinasikan nilai, dan membandingkan nilai. Yang termasuk operator diantaranya adalah operator Aritmatika dan Assignment. d. OUTPUT Output berarti menuliskan informasi ke layar, ke disk, atau ke salah satu I/O unit. Untuk menuliskan output program, Python 2.x menggunakan print, sedangkan pada Python 3.x menggunakan fungsi print(). 44 e. CONDITIONAL EXECUTION Conditional Execution berhubungan dengan sejumlah perintah yang akan dijalankan jika kondisi tertentu dipenuhi. Python menggunakan pernyataan if...elif...else. f. LOOP Loop berhubungan dengan sejumlah perintah yang akan dikerjakan beberapa kali, selama beberapa kondisi dipenuhi atau sampai suatu kondisi terpenuhi. Python menggunakan pernyataan for dan while untuk melakukan loop (pengulangan). g. SUBROUTINE Subroutine adalah sekumpulan perintah yang bisa dijalankan dari setiap tempat dalam program dengan cara memanggil namanya. Python menyebutnya fungsi atau metode. Tata cara penulisan fungsi atau metode di Python yaitu dengan menggunakan pernyataan def nama_fungsi().