CROSSCOL

ISI CROSSCOL

SURYAONE multi solutions

Belajar berUsaha apa saja yang penting BERMANFAAT dan HALAL

SURYA bengkel komputer

Servis komputer/laptop dan Instalasi Jaringan. CP : 08572 555 2740

Mayta collection

Lapak SANDANGAN

DELAPAN solutions

Solusi desain dan cetak

berkualitas dan harga terjangkau

Bu Wiyarti Catering

Melayani pemesanan :

Nasi Tumpeng, Nasi Box, Arem-arem, Kue basah/kering, dll.

FAJAR - Furniture and Building Solutions

Melayani jasa :

Pembangunan/Renovasi Rumah, pembuatan furniture kayu, las listrik.

Monday, January 11, 2021

Load Balance (Metode PCC)



Load balance pada mikrotik adalah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi.

Selama ini banyak dari kita yang beranggapan salah, bahwa dengan menggunakan loadbalance dua jalur koneksi, maka besar bandwidth yang akan kita dapatkan menjadi dua kali lipat dari bandwidth sebelum menggunakan loadbalance (akumulasi dari kedua bandwidth tersebut). Hal ini perlu kita perjelas dahulu, bahwa loadbalance tidak akan menambah besar bandwidth yang kita peroleh, tetapi hanya bertugas untuk membagi trafik dari kedua bandwidth tersebut agar dapat terpakai secara seimbang.

Dengan artikel ini, kita akan membuktikan bahwa dalam penggunaan loadbalancing tidak seperti rumus matematika 512 + 256 = 768, akan tetapi 512 + 256 = 512 + 256, atau 512 + 256 = 256 + 256 + 256.


Pada artikel ini kami menggunakan RB433UAH dengan kondisi sebagai berikut :

  1. Ether1 dan Ether2 terhubung pada ISP yang berbeda dengan besar bandwdith yang berbeda. ISP1 sebesar 512kbps dan ISP2 sebesar 256kbps.
  2. Kita akan menggunakan web-proxy internal dan menggunakan openDNS.
  3. Mikrotik RouterOS anda menggunakan versi 4.5  karena fitur PCC mulai dikenal pada versi 3.24.

Jika pada kondisi diatas berbeda dengan kondisi jaringan ditempat anda, maka konfigurasi yang akan kita jabarkan disini harus anda sesuaikan dengan konfigurasi untuk jaringan ditempat anda.


Konfigurasi Dasar

Berikut ini adalah Topologi Jaringan dan IP address yang akan kita gunakan



/ip address

add address=192.168.101.2/30 interface=ether1

add address=192.168.102.2/30 interface=ether2

add address=10.10.10.1/24 interface=wlan2

/ip dns

set allow-remote-requests=yes primary-dns=208.67.222.222 secondary-dns=208.67.220.220


Untuk koneksi client, kita menggunakan koneksi wireless pada wlan2 dengan range IP client 10.10.10.2 s/d 10.10.10.254 netmask 255.255.255.0, dimana IP 10.10.10.1 yang dipasangkan pada wlan2 berfungsi sebagai gateway dan dns server dari client. Jika anda menggunakan DNS dari salah satu isp anda, maka akan ada tambahan mangle yang akan kami berikan tanda tebal

Setelah pengkonfigurasian IP dan DNS sudah benar, kita harus memasangkan default route ke masing-masing IP gateway ISP kita agar router meneruskan semua trafik yang tidak terhubung padanya ke gateway tersebut. Disini kita menggunakan fitur check-gateway berguna jika salah satu gateway kita putus, maka koneksi akan dibelokkan ke gateway lainnya.


/ip route

add dst-address=0.0.0.0/0 gateway=192.168.101.1 distance=1 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=192.168.102.1 distance=2 check-gateway=ping


Untuk pengaturan Access Point sehingga PC client dapat terhubung dengan wireless kita, kita menggunakan perintah


/interface wireless

set wlan2 mode=ap-bridge band=2.4ghz-b/g ssid=Mikrotik disabled=no


Agar pc client dapat melakukan koneksi ke internet, kita juga harus merubah IP privat client ke IP publik yang ada di interface publik kita yaitu ether1 dan ether2.


/ip firewall nat

add action=masquerade chain=srcnat out-interface=ether1

add action=masquerade chain=srcnat out-interface=ether2


Sampai langkah ini, router dan pc client sudah dapat melakukan koneksi internet. Lakukan ping baik dari router ataupun pc client ke internet. Jika belum berhasil, cek sekali lagi konfigurasi anda.



Webproxy Internal

Pada routerboard tertentu, seperti RB450G, RB433AH, RB433UAH, RB800 dan RB1100 mempunyai expansion slot (USB, MicroSD, CompactFlash) untuk storage tambahan. Pada contoh berikut, kita akan menggunakan usb flashdisk yang dipasangkan pada slot USB. Untuk pertama kali pemasangan, storage tambahan ini akan terbaca statusnya invalid di /system store. Agar dapat digunakan sebagai media penyimpan cache, maka storage harus diformat dahulu dan diaktifkan Nantinya kita tinggal mengaktifkan webproxy dan set cache-on-disk=yes untuk menggunakan media storage kita. Jangan lupa untuk membelokkan trafik HTTP (tcp port 80) kedalam webproxy kita.


/store disk format-drive usb1

/store

add disk=usb1 name=cache-usb type=web-proxy

activate cache-usb


/ip proxy

set cache-on-disk=yes enabled=yes max-cache-size=200000KiB port=8080


/ip firewall nat

add chain=dstnat protocol=tcp dst-port=80 in-interface=wlan2 action=redirect to-ports=8080



Pengaturan Mangle

Pada loadbalancing kali ini kita akan menggunakan fitur yang disebut PCC (Per Connection Classifier). Dengan PCC kita bisa mengelompokan trafik koneksi yang melalui atau keluar masuk router menjadi beberapa kelompok. Pengelompokan ini bisa dibedakan berdasarkan src-address, dst-address, src-port dan atau dst-port. Router akan mengingat-ingat jalur gateway yang dilewati diawal trafik koneksi, sehingga pada paket-paket selanjutnya yang masih berkaitan dengan koneksi awalnya akan dilewatkan  pada jalur gateway yang sama juga. Kelebihan dari PCC ini yang menjawab banyaknya keluhan sering putusnya koneksi pada teknik loadbalancing lainnya sebelum adanya PCC karena perpindahan gateway..

Sebelum membuat mangle loadbalance, untuk mencegah terjadinya loop routing pada trafik, maka semua trafik client yang menuju network yang terhubung langsung dengan router, harus kita bypass dari loadbalancing. Kita bisa membuat daftar IP yang masih dalam satu network router dan  memasang mangle pertama kali sebagai berikut


/ip firewall address-list

add address=192.168.101.0/30 list=lokal

add address=192.168.102.0/30 list=lokal

add address=10.10.10.0/24 list=lokal


/ip firewall mangle

add action=accept chain=prerouting dst-address-list=lokal in-interface=wlan2 comment="trafik lokal"

add action=accept chain=output dst-address-list=lokal


Pada kasus tertentu, trafik pertama bisa berasal dari Internet, seperti penggunaan remote winbox atau telnet dari internet dan sebagainya, oleh karena itu kita juga memerlukan mark-connection untuk menandai trafik tersebut agar trafik baliknya juga bisa melewati interface dimana trafik itu masuk


/ip firewall mangle

add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether1 new-connection-mark=con-from-isp1 passthrough=yes comment="trafik dari isp1"

add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether2 new-connection-mark=con-from-isp2 passthrough=yes comment="trafik dari isp2"


Umumnya, sebuah ISP akan membatasi akses DNS servernya dari IP yang hanya dikenalnya, jadi jika anda menggunakan DNS dari salah satu ISP anda, anda harus menambahkan mangle agar trafik DNS tersebut melalui gateway ISP yang bersangkutan bukan melalui gateway ISP lainnya. Disini kami berikan mangle DNS ISP1 yang melalui gateway ISP1. Jika anda menggunakan publik DNS independent, seperti opendns, anda tidak memerlukan mangle dibawah ini.

/ip firewall mangle

add action=mark-connection chain=output comment=dns dst-address=202.65.112.21 dst-port=53 new-connection-mark=dns passthrough=yes protocol=tcp comment="trafik DNS citra.net.id"

add action=mark-connection chain=output dst-address=202.65.112.21 dst-port=53 new-connection-mark=dns passthrough=yes protocol=udp

add action=mark-routing chain=output connection-mark=dns new-routing-mark=route-to-isp1 passthrough=no


Karena kita menggunakan webproxy pada router, maka trafik yang perlu kita loadbalance ada 2 jenis. Yang pertama adalah trafik dari client menuju internet (non HTTP), dan trafik dari webproxy menuju internet. Agar lebih terstruktur dan mudah dalam pembacaannya, kita akan menggunakan custom-chain sebagai berikut :

/ip firewall mangle

add action=jump chain=prerouting comment="lompat ke client-lb" connection-mark=no-mark in-interface=wlan2 jump-target=client-lb

add action=jump chain=output comment="lompat ke lb-proxy" connection-mark=no-mark out-interface=!wlan2 jump-target=lb-proxy


Pada mangle diatas, untuk trafik loadbalance client pastikan parameter in-interface adalah interface yang terhubung dengan client, dan untuk trafik loadbalance webproxy, kita menggunakan chain output dengan parameter out-interface yang bukan terhubung ke interface client. Setelah custom chain untuk loadbalancing dibuat, kita bisa membuat mangle di custom chain tersebut sebagai berikut


/ip firewall mangle

add action=mark-connection chain=client-lb dst-address-type=!local new-connection-mark=to-isp1 passthrough=yes per-connection-classifier=both-addresses:3/0 comment="awal loadbalancing klien"

add action=mark-connection chain=client-lb dst-address-type=!local new-connection-mark=to-isp1 passthrough=yes per-connection-classifier=both-addresses:3/1

add action=mark-connection chain=client-lb dst-address-type=!local new-connection-mark=to-isp2 passthrough=yes per-connection-classifier=both-addresses:3/2

add action=return chain=client-lb comment="akhir dari loadbalancing"


/ip firewall mangle

add action=mark-connection chain=lb-proxy dst-address-type=!local new-connection-mark=con-from-isp1 passthrough=yes per-connection-classifier=both-addresses:3/0 comment="awal load balancing proxy"

add action=mark-connection chain=lb-proxy dst-address-type=!local new-connection-mark=con-from-isp1 passthrough=yes per-connection-classifier=both-addresses:3/1

add action=mark-connection chain=lb-proxy dst-address-type=!local new-connection-mark=con-from-isp2 passthrough=yes per-connection-classifier=both-addresses:3/2

add action=return chain=lb-proxy comment="akhir dari loadbalancing"


Untuk contoh diatas, pada loadbalancing client dan webproxy menggunakan parameter pemisahan trafik pcc yang sama, yaitu both-address, sehingga router akan mengingat-ingat berdasarkan src-address dan dst-address dari sebuah koneksi. Karena trafik ISP kita yang berbeda (512kbps dan 256kbps), kita membagi beban trafiknya menjadi 3 bagian. 2 bagian pertama akan melewati gateway ISP1, dan 1 bagian terakhir akan melewati gateway ISP2. Jika masing-masing trafik dari client dan proxy sudah ditandai, langkah berikutnya kita tinggal membuat mangle mark-route yang akan digunakan dalam proses routing nantinya


/ip firewall mangle

add action=jump chain=prerouting comment="marking route client" connection-mark=!no-mark in-interface=wlan2 jump-target=route-client

add action=mark-routing chain=route-client connection-mark=to-isp1 new-routing-mark=route-to-isp1 passthrough=no

add action=mark-routing chain=route-client connection-mark=to-isp2 new-routing-mark=route-to-isp2 passthrough=no

add action=mark-routing chain=route-client connection-mark=con-from-isp1 new-routing-mark=route-to-isp1 passthrough=no

add action=mark-routing chain=route-client connection-mark=con-from-isp2 new-routing-mark=route-to-isp2 passthrough=no

add action=return chain=route-client disabled=no


/ip firewall mangle

add action=mark-routing chain=output comment="marking route proxy" connection-mark=con-from-isp1 new-routing-mark=route-to-isp1 out-interface=!wlan2 passthrough=no

add action=mark-routing chain=output connection-mark=con-from-isp2 new-routing-mark=route-to-isp2 out-interface=!wlan2 passthrough=no



Pengaturan Routing

Pengaturan mangle diatas tidak akan berguna jika anda belum membuat routing berdasar mark-route yang sudah kita buat. Disini kita juga akan membuat routing backup, sehingga apabila sebuah gateway terputus, maka semua koneksi akan melewati gateway yang masing terhubung

/ip route

add check-gateway=ping dst-address=0.0.0.0/0 gateway=192.168.101.1 routing-mark=route-to-isp1 distance=1

add check-gateway=ping dst-address=0.0.0.0/0 gateway=192.168.102.1 routing-mark=route-to-isp1 distance=2

add check-gateway=ping dst-address=0.0.0.0/0 gateway=192.168.102.1 routing-mark=route-to-isp2 distance=1

add check-gateway=ping dst-address=0.0.0.0/0 gateway=192.168.101.1 routing-mark=route-to-isp2 distance=2



Pengujian

Dari hasil pengujian kami, didapatkan sebagai berikut


Dari gambar terlihat, bahwa hanya dengan melakukan 1 file download (1 koneksi), kita hanya mendapatkan speed 56kBps (448kbps) karena pada saat itu melewati gateway ISP1, sedangkan jika kita mendownload file (membuka koneksi baru) lagi pada web lain, akan mendapatkan 30kBps (240kbps). Dari pengujian ini terlihat dapat disimpulkan bahwa

512kbps + 256kbps ≠ 768kbps


Catatan :

  • Loadbalancing menggunakan teknik pcc ini akan berjalan efektif dan mendekati seimbang jika semakin banyak koneksi (dari client) yang terjadi.
  • Gunakan ISP yang memiliki bandwith FIX bukan Share untuk mendapatkan hasil yang lebih optimal.
  • Load Balance menggunakan PCC ini bukan selamanya dan sepenuhnya sebuah solusi yang pasti berhasil baik di semua jenis network, karena proses penyeimbangan dari traffic adalah berdasarkan logika probabilitas.  



Source : https://citraweb.com/artikel_lihat.php?id=34

By: Pujo Dewobroto (Mikrotik.co.id)

 

Thursday, November 12, 2020

STRUKTUR KONTROL PERULANGAN



Kadang kala, saat menjalankan sebuah program, kita harus menjalankan sebuah perintah secara berulang-ulang, agar program dapat berjalan secara berkelanjutan. Struktur ini dapat menjadi pilihan yang tepat untuk membuat sebuah program menjalankan baris-baris perintah secara berulang-ulang.

Dengan menggunakan struktur dasar bahasa pemrograman ini, seorang pembuat program dapat mengatur perintah-perintah dalam programnya agar berjalan secara berulang-ulang hingga pada suatu kondisi dimana syarat untuk perulangannya sudah tidak terpenuhi kembali.
Terdapat beberapa fungsi perulangan yang dapat digunakan untuk membuat struktur program ini, seperti For, While, dan While-do pada bahasa C++. Ketiga fungsi ini dapat digunakan untuk membuat sebuah program untuk menjalankan baris-baris perintah dalam syarat tertentu.
Sebagai contoh, berikut ini contoh pemrograman menggunakan fungsi perulangan For pada bahasa C++
Dalam contoh di atas, selama kondisi i <= 255 terpenuhi, nilai i tidak melebihi 255, maka perintah printf(“%d “,i) akan dijalankan oleh program tersebut. Dan apa bila sudah tidak terpenuhi maka program akan berhenti untuk menjalankan perintah tersebut.



Sumber : https://belajar-contoh-cara.blogspot.com/2017/12/mengenal-dasar-dasar-pemrograman-dan.html

STRUKTUR KONTROL PERCABANGAN



Membuat program juga tidak akan terlepas dari membuat sebuah pilihan dalam menjalankan perintah sesuai dengan syarat tertentu. Pembuat program dapat menggunakan struktur ini untuk membuat sebuah program dengan beberapa pilihan keputusan yang disesuaikan dengan syarat atau kondisi yang dikehendaki.

Sebagai contoh, saat kita akan membuat sebuah perangkat dengan beberapa tombol yang dapat digunakan untuk menyalakan lampu tertentu sesuai dengan tombol yang dipilih menggunakan salah satu board yang banyak beredar di pasaran, maka kita dapat menggunakan struktur percabangan ini.
Dalam kondisi di atas, kita dapat menggunakan fungsi If-Else atau Switch Case dalam bahasa pemrograman C untuk board Arduino. Sebagai contoh berikut ini contoh struktur percabangan dengan menggunakan fungsi If-Else untuk kasus yang telah disebutkan
Dengan baris-baris kode di atas maka lampu 1 akan menyala saat tombol 1 ditekan, dalam kode tersebut digitalRead(tombol1) == 1, dan lampu 2 akan mati. Dan sebaliknya, jika tombol 2 ditekan, maka lampu 1 akan mati dan lampu 2 akan menyala. Akan tetapi jika kedua tombol tidak ditekan, maka kedua lampu akan mati.


Sumber : https://belajar-contoh-cara.blogspot.com/2017/12/mengenal-dasar-dasar-pemrograman-dan.html

STRUKTUR DASAR BAHASA PEMROGRAMAN

 


1. Siklus Pengolahan Data Pada Komputer

A. Origination, merupakan tahap yang berhubungan mengenai proses dari pengumpulan data yang biasanya merupakan proses pencatatan (Recording) data ke dokumen dasar.

B. Input, merupakan tahap proses memasukan data ke dalam perangkat komputer lewat alat input/ input device

C. Processing, merupakan tahap pengolahan data yang sudah dimasukkan yang dilakukan oleh alat pemrosesnya, yang bisa berupa proses menghitung, membandingkan, mengurutkan, mengklasifikasikan, mengendalikan atau mencari storage.

D. Output, merupakan tahap proses menghasilkan output dari hasil pengolahan data ke alat output/ output device, yang berupa informasi.

E. Distribution, merupakan tahap proses distribusi output kepada pihak yang membutuhkan informasi.

F. Storage, merupakan tahap proses perekaman hasil pengolahan ke simpanan luar (Storage). Hasil pengolahan yang disimpan pada storage dapat digunakan sebagai bahan input untuk proses selanjutnya.



2. Jenis-jenis Tipe Data (data type)

A. Tipe data primitive (Sederhana), merupakan tipe data yang mampu menyimpan suatu nilai tiap satu variabel, tipe data ini juga bisa disebut sebagai tipe data dasar yang sering dipakai oleh program.

Tipe data dasar dibagi menjadi beberapa bagian yakni :

  • Numerik, penyimpanan data berupa angka.
  • Enumerasi, suatu urutan list dari beberapa nilai yang berbeda.
  • Boolean, tipe data yang mempresentasikan True atau False.
  • Character, tipe data yang menyimpan rangkaian karakter.


B. Tipe data Terstruktur, merupakan tipe data campuran dari beberapa tipe data dasar.


C. Tipe data Pointer, merupakan variabel khusus yang berisi suatu address (Alamat) di lokasi lain dalam memori. 

Tipe data ponter juga memiliki du macam yaitu:

  • typed, yaitu pointer yang menunjukan pada tipe data tertentu pada variabel.
  • generic, yaitu pointer yang tidak menunjukan tipe data tertentu pada variabel.



3. Faktor Penting Dalam Bahasa Pemrograman

  1. Sintaks : merupakan aturan penulisan tata bahasa yang dimengerti komputer.
  2. Semantik : merupakan definisi arti dari program yang benar secara sintaks dalam bahasa tersebut.
  3. Kebenaran logika : merupakan sesuatu yang berhubungan dengan benar atau tidaknya urutan statement.



4. Macam-macam Tipe Bahasa Pemrograman

Selain ketiga hal di atas agan juga diwajibkan untuk mengenal tipe-tipe bahasa pemrograman, yang sangat dibutuhkan dalam membuat sebuah program. adapun tipe-tipe bahasa pemrograman tersebut akan admin bahas secara singkat diantaranya :

  • Procedural Programming (pemrograman prosedural), berupa Algoritma yang berisi urutan langkah-langkah penyelesaian masalah
  • Structured Programming (Pemrograman Terstruktur), merupakan tipe data yang dapat digunakan untuk menampung lebih dari satu data dalam variabel sehingga mudah untuk saling berhubungan dan bisa disusun dalam satu struktur.
  • Modular Programming (Pemrograman Modular), merupakan pemrograman yang besar serta cenderung sulit dan banyak bagian dengan hubungan yang rumit.
  • Function Programming (Pemrograman Fungsional), merupakan suatu bahasa yang mana setiap ekspresi disusun atas fungsi panggilan, bukan pernyataan.
  • OOP/Object Oriented Programming (Pemrograman Berorientasikan Objek), merupakan paradigma pemrograman yang popular hingga saat ini yang telah menggantikan teknik pemrograman berbasis prosedur.
  • Pemrograman Visual, merupakan pemrograman yang menggunakan ekspresi visual seperti grafik, gambar, dan ikon. Bahasa.



5. Aspek Pemrograman

Untuk suatu pembuatan program dan pengolahan data di perlukan beberapa aspek-aspek pemrograman dasar diantaranya yaitu :

  • Software : Suatu rangkaian unsur-unsur yang terdiri dari beberapa perangkat lunak program komputer yang digunakan untuk membantu pekerjaan manusia. Contohnya, aplikasi software, sistem software, dll.
  • Hardware : Suatu rangkaian unsur-unsur yang terdiri atas beberapa perangkat keras komputer yang digunakan untuk membantu pekerjaan manusia. Contohnya, CPU, Harddisk, Ram, dll.
  • Brainware : Untuk yang satu ini beda dari kedua aspek diatas, karena brainware merupakan tenaga pelaksananya yang menjalankan serta mengatasi sistem unit komputer baik hardware maupun software didalam proses pengolahan data untuk menghasilkan informasi yang tepat dan akurat. Contohnya, Programmer, Operator, dll.



6. Kriteria Bahasa Pemrograman

  • Kewajaran untuk aplikasi, yaitu bahasa pemrograman harus mempunyai struktur data, operasi-opersasi , struktur kontrol dan syntax yang tepat untuk memecahkan suatu masalah.
  • Clarity, Simplicity dan Unity, yaitu kemudahan, kesederhanaan dan kesatuan merupakan suatu kombinasi dasar yang membantu programmer mengembangkan suatu algoritma.
  • Kemudahan untuk verifikasi program, dengan verifikasi data yang mudah, maka suatu program akan dengan mudah dibangun dan juga dikembangkan.
  • Orthogonality, merupakan suatu atribut yang dapat dikombinasikan dengan berbagai fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat digunakan, portabilitas program.
  • Mendukung Abstraksi, merupakan suatu hal yang substansial bagi programmer untuk mencari suatu solusi dari masalah yang dihadapi.
  • Lingkungan pemrograman, lingkungan pemrograman dapat berarti editor yang digunakan ataupun tools lain yang dapat digunakan sebagai pihak ke tiga untuk memudahkan pekerjaan programmer.
  • Biaya penggunaan, terdiri dari : biaya kompilasi program, biaya penciptaan, testing dan penggunaan program, biaya eksekusi program, biaya pemeliharaan program



7. Tingkatan Bahasa Pemrograman

Salah satu instruksi untuk memerintah komputer atau yang lebih sering disebut Bahasa Pemrograman mempunyai tingkatan tersendiri, diantaranya yaitu :

  • Bahasa Tingkat Tinggi, Merupakan bahasa pemrograman generasi ke tiga, bahasa yang masuk tingkat ini adalah bahasa yang mendekati bahasa manusia dan sudah terstruktur dengan baik,. seperti contohnya, Visual Basic, Java, Pascal dan lainnya.
  • Bahasa Tingkat Menengah, Merupakan bahasa pemrograman generasi ke dua, dapat disebut tingkat menengah karena bahasa ini bisa masuk ke dalam bahasa tingkat tinggi ataupun rendah, . Seperti contohnya Bahasa C.
  • Bahasa Tingkat Rendah, Untuk bahasa pemrograman generasi pertama ini merupakan bahasa pemrograman yang sangat sulit dimengerti, karena perintahnya menggunakan bahasa mesin. Seperti contohnya SUB, CMP, JGE, dll.

OPERATOR ARITMATIKA DAN LOGIKA



 OPERASI LOGIKA DAN OPERASI ARITMATIKA MELALUI OPERATOR DAN FUNGSI-FUNGSI ARITMATIKA PADA ALGORITMA DAN BAHASA PEMROGRAMAN DASAR


Operasi Aritmatika adalah operasi  yang melibatkan beberapa operator aritmatika seperti misalnya penjumlahan, pengurangan, perkalian dan pembagian untuk memproses 2 buah nilai atau lebih.

Operasi Logika proses yang melibatkan beberapa operator logika seperti AND, OR, NOR, XOR dan operator logika lainnya yang menghasilkan nilai true dan false atau menghasilkan nilai benar dan salah. operasi logika ini sangat sering sekali digunakan di algoritma dan bahasa pemrograman dasar.

Sedangkan Operator Matematika adalah operator yang digunakan untuk memproses operasi aritmatika, operater matematika yang sudah kita kenal misalnya penjumlahan, pengurangan, perkalian dan pembagian.

 

Berikut adalah beberapa kategori operator aritmatika dan operator logika yang sering digunakan di dalam bahasa pemrograman dan algoritma:


1. Operator Aritmatika

  • + (jumlah) adalah operator untuk menjumlahkan dua buah angka atau lebih
  • -(kurang) adalah jenis operator untuk memproses operasi pengurangan antara dua angka atau lebih
  • * (kali) adalah operator yang digunakan untuk proses perkalian
  • / (bagi) adalah operator uang digunakan untuk mendapatkan hasil bagi dari 2 buah angka
  • MOD atau % (modular) adalah operator yang sering digunakan di dunia algoritma yang digunakan untuk mendapatkan sisa hasil bagi.

Operator baru yang tidak umum adalah MOD atau bisa disimbolkan dengan %, operator ini akan menghasilkan sisa hasil pembagian, misal 4%2=0. 5%3=2.

Operator aritmatika biasanya digunakan untuk memproses perhitungan matematika yang dilibatkan di dalam program.


2. Operator Pembanding

Operator pembanding adalah operator yang merupakan bagian dari operator logika yang digunakan untuk membandingkan 2 buah nilai atau operan, sehingga dapat menghasilkan nilai true dan false, beberapa operator pembanding yang sering digunakan adalah:

  • > lebih besar
  • < lebih kecil
  • >= lebih besar sama dengan
  • <= lebih kecil sama dengan
  • <> tidak sama dengan
  • != tidak sama dengan
  • == apakah sama dengan
  • := sama dengan

Di dalam bahasa pemrograman Operator pembanding biasanya digunakan dalam flow control IF then ELSE untuk mendapatkan hasil sesuai dengan kondisi yang diinginkan.


3. Operator Logika

Operator Logika adalah operator yang digunakan untuk melakukan operasi logika yaitu operator yang menghasilkan nilai TRUE (benar) atau FALSE (salah). Bebarapa macam operator logika antara lain:

  • and : menghasilkan nilai TRUE jika kedua operand bernilai TRUE
  • or : menghasilkan nilai TRUE jika salah satu operand bernilai TRUE
  • xor : menghasilkan nilai TRUE jika salah satu operand bernilai TRUE tetapi bukan keduaduanya bernilai TRUE
  • ! (simbol tidak): mengasilkan nilai tidak TRUE
  • && (simbol AND): menghasilkan nilai TRUE jika kedua operand bernilai TRUE
  • || (simbol OR): menghasilkan nilai TRUE jika salah satu operand bernailai TRUE

Operator logika sering digunakan di dalam flow control berkolaborasi dengan operator pembanding untuk mendapatkah hasil yang paling sesuai dengan kondisi tertentu.


4. Assignment Operator / Operator Penugasan

Assignment Operator (operator penugasan) adalah operator yang menggunakan tanda sama dengan (=) untuk mengisi sebuah nilai dalam suatu variabel.

Beberapa contoh assignmen operaor adalah sebagai berikut:

  • += contoh: x+=10; atau x=x+10 (artinya: jumlahkan nilai yang terdapat di dalam variable x dengan 10)
  • = contoh: x=y
  • *= contoh: x*=10 atau x=x*10 (artinya: kalikan nilai yang terdapat di dalam variable x dengan 10)



Contoh Jenis operasi aritmatika dan logika dalam algoritma (bahasa pemrograman dasar)


1. Operasi artimatika

Beberapa contoh proses operasi aritatika adalah sebagai berikut :

  • x+y, menjumlahkan antara nilai yang terdapat di x dan y
  • x*y, mengalikan antara nilai yang terdapat di x dan y
  • x-y, mengurangi antara nilai yang terdapat di x dan y
  • x/10, membagi antara nilai yang terdapat di x dan y misal 10/2 maka hasilnya 5.

x%y, mendapatkan hasil bagi antara x dan y misal 10/5 maka hasilnya adalah 0, karena 10/5 adalah 2 dan tidak terdapat sisa setelah pembagian. 10/7 sisa hasil pembagiannya adalah 3, artinya ketika 10 dibagi 7 maka akan mendapatkan 1 dan sisanya adalah 3.


2. Operasi Logika

A and B atau A && B, untuk operator AND, jika salah satu kondisi bernilai salah maka akan menghasilkan FALSE, sedangkan jika kedunya benar maka akan bernilai true, agar kondisi bernilai benar maka A dan B harus benar.

A or B atau A || B, untuk operator OR, jika salah satu kondisi bernilai benar baik untuk kondisi A maupun B maka akan menghasilkan TRUE (benar), jika kedua kondisi baik A maupun B bernilai salah maka hasilnya FALSE (salah), untuk menghasilkan kondisi benar maka setidaknya harus ada kondisi yang benar baik itu untuk konsisi A maupun B


Perlu anda ketahuai bahwa setiap instruksi bahasa pemrograman sangat dipengaruhi oleh instuksi standar program yang digunakan walaupun logika cara berfikirnya sama.

Sumber : http://referensisiswa.blogspot.com/2016/08/operasi-logika-dan-operasi-aritmatika.html