Selasa, 26 September 2017

OPEN CV Oh OPEN CV

Download:
https://sourceforge.net/projects/opencvlibrary/files/opencv-win/

Hasil download di extract, lalu cari file cv2.pyd dan biasanya ada di lokasi sbb: vrsi 32bit dan 64bit
C:\Users\ACER\Downloads\opencv\build\python\2.7\x64
C:\Users\ACER\Downloads\opencv\build\python\2.7\x86

Copy salah satu sesuai dengan jenis OS masing-masing lalu copas ke lib python kita
Untuk versi saya saya copas ke :
C:\Python27\Lib\site-packages




Studi Kasus Menghitung Jumlah Kendaraan:

import cv2
bgsMOG = cv2.BackgroundSubtractorMOG2()
cap = cv2.VideoCapture("hitungjumkendaraan.avi")
counter =0
flag = 0
flaga = 0
flagb = 0
flagc = 0
flagd = 0
flage = 0
flagf = 0
flagg = 0
flagh = 0
flagi = 0
flagj = 0
flagk = 0
if cap:
    while True:
        ret, frame = cap.read()
        if ret:
            fgmask = bgsMOG.apply(frame, None, 0.01)
            garis = cv2.line(frame,(750,600),(470,600),(200,200,0),2)
            contours, hierarchy = cv2.findContours(fgmask,
            cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
            try: hierarchy = hierarchy[0]
            except: hierarchy = []
            for contour, hier in zip(contours, hierarchy):
                (x,y,w,h) = cv2.boundingRect(contour)

                if w > 9 and h > 14:
                    cv2.rectangle(frame, (x,y), (x+w,y+h), (180, 1, 0), 1)
                    x1=w/2
                    y1=h/2
                    cx=x+x1
                    cy=y+y1
                    centroid=(cx,cy)
                    titik = cv2.circle(frame,(int(cx),int(cy)),4,(0,255,0),-1)

                    if cy == 130:
                        if cy==130 and flag == flaga :
                            flaga= flag +1
                            counter=counter+1
                        elif cy == 130 and flag < flaga:
                            flaga = flag
                            counter = counter + 0
                    elif cy == 129:
                        if cy==129 and flag == flagb :
                            flagb= flag +1
                            counter=counter+1
                        elif cy == 129 and flag < flagb:
                            flagb = flag
                            counter = counter + 0
                    elif cy == 127:
                        if cy==127 and flag == flagd :
                            flagd= flag +1
                            counter=counter+1
                        elif cy == 127 and flag < flagd:
                            flagd = flag
                            counter = counter + 0
                    elif cy == 126:
                        if cy==126 and flag == flage :
                            flage= flag +1
                            counter=counter+1
                        elif cy == 126 and flag < flage:
                            flage = flag
                            counter = counter + 0
                    elif cy == 124:
                        if cy==124 and flag == flagg:
                            flagg= flag +1
                            counter=counter+1
                        elif cy == 124 and flag < flagg:
                            flagg = flag
                            counter = counter + 0
                    elif cy == 123:
                        if cy==123 and flag == flagh :
                            flagh= flag +1
                            counter=counter+1
                        elif cy == 123 and flag < flagh:
                            flagh = flag
                            counter = counter + 0
                    elif cy == 121:
                        if cy==121 and flag == flagj:
                            flagj= flag +1
                            counter=counter+1
                        elif cy == 121 and flag < flagj:
                            flagj = flag
                            counter = counter + 0
                    elif cy == 120:
                        if cy==120 and flag == flagk:
                            flagk= flag +1
                            counter=counter+1
                        elif cy == 120 and flag < flagk:
                            flagk = flag
                            counter = counter + 0
                else:
                    counter=counter+0

            cv2.putText(frame, str(counter),(10,150),
            cv2.FONT_HERSHEY_SIMPLEX,2, (255, 0, 0), 1, True)
            print (cy)
            print (flaga)
            cv2.imshow('Output', frame)
            cv2.imshow('FGMASK', fgmask)

            key = cv2.waitKey(100)
            if key == ord('q'):
                break
    cap.release()
    cv2.destroyAllWindows()



Senin, 13 Maret 2017

Fingerprint + Arduino + Raspberry PI + Camera Raspi

Sebagai berikut adalah contoh dari kode untuk
mendaftarakn data fingerprint via Arduino yang kemudian di arsupkan ke Raspberry PI.

Juga kode untuk memastikan bahwa sidik jari ybs adalah finger yang mana....


Arduino.ino


#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

char kon;
uint8_t id;
uint8_t getFingerprintEnroll();
String inputString = "";         // a string to hold incoming data
boolean stringComplete = false;  // whether the string is complete

int getFingerprintIDez();
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()  {
  while (!Serial);  // For Yun/Leo/Micro/Zero/...
  delay(500);
 
  Serial.begin(9600);
 // Serial.println("Adafruit Fingerprint sensor enrollment");
  finger.begin(9600);
 
  if (finger.verifyPassword()) {
   // Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("!Did not find fingerprint sensor :(");
    while (1);
  }
  inputString.reserve(200);
}

uint8_t readnumber(void) {
  uint8_t num = 0;
  boolean validnum = false;
  while (1) {
    while (! Serial.available());
    char c = Serial.read();
    if (isdigit(c)) {
       num *= 10;
       num += c - '0';
       validnum = true;
    } else if (validnum) {
      return num;
    }
  }
}

void loop(){
   if (stringComplete) {
    Serial.println(inputString);
    inputString = "";
    stringComplete = false;
  }
}


void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    kon=inChar;
    inputString += inChar;
    if(inChar=='S'){
       Serial.println("#Please Tap");
      while (kon=='S'){
        int hrs=getFingerprintIDez();
        if(hrs==214){kon='Y';Serial.println(kon);}
        delay(50);
       }
    }
    else if(inChar=='Z'){
          kon='Z';
     int hrs=0;  
       while (hrs<=0){
        hrs=getFingerprintEnroll();
        if(hrs==101){
        kon='E';
        //Serial.println(kon);
        delay(1000);
      }
        delay(50);
       }
       
        delay(50);
    }
   else if(inChar=='D'){
     kon='D';
     int hrs=0;  
   
       while(hrs <=0 ){
       
         ////
        hrs=hapus();
        if(hrs==112){kon='R';Serial.println(kon);delay(1000);}
        delay(50);
       }
        delay(50);
    }

    else if (inChar == '@') {
      stringComplete = true;
    }
  }
}

//===================================XXXX

uint8_t getFingerprintEnroll() {
    Serial.println("#Input Enroll:");
  //Serial.println("Ready to enroll a fingerprint! Please Type in the ID # you want to save this finger as...");
  id = readnumber();
  //Serial.println(id);
 
  int p = -1;
//  Serial.print("Waiting for valid finger to enroll as"); Serial.println(id);
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      Serial.println("@Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("@wait");delay(1000);
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("!Communication error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("!Imaging error");
      break;
    default:
      Serial.println("!Unknown error");
      break;
    }
  }

  // OK success!

  p = finger.image2Tz(1);
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("@Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("!Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("!Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("!Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("!Could not find fingerprint features");
      return p;
    default:
      Serial.println("!Unknown error");
      return p;
  }
 
  //Serial.println("#Remove finger");
  delay(2000);
  p = 0;
  while (p != FINGERPRINT_NOFINGER) {
    p = finger.getImage();
  }
  //Serial.print("ID "); Serial.println(id);
  p = -1;
  Serial.println("#Place same finger again");
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      Serial.println("@Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("@wait");delay(1000);
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("!Communication error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("!Imaging error");
      break;
    default:
      Serial.println("!Unknown error");
      break;
    }
  }

  // OK success!

  p = finger.image2Tz(2);
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("@Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("!Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("!Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("!Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("!Could not find fingerprint features");
      return p;
    default:
      Serial.println("!Unknown error");
      return p;
  }
 
  // OK converted!
//  Serial.print("Creating model for #");  Serial.println(id);
 
  p = finger.createModel();
  if (p == FINGERPRINT_OK) {
    Serial.println("#MATCH");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("!Communication error");
    return p;
  } else if (p == FINGERPRINT_ENROLLMISMATCH) {
    Serial.println("#Fingerprints did not match");
    return p;
  } else {
    Serial.println("!Unknown error");
    return p;
  }  
 
//  Serial.print("ID "); Serial.println(id);
  p = finger.storeModel(id);
  if (p == FINGERPRINT_OK) {
    Serial.println("#STORED");
    return 101;
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("!Communication error");
    return p;
  } else if (p == FINGERPRINT_BADLOCATION) {
    Serial.println("!Could not store in that location");
    return p;
  } else if (p == FINGERPRINT_FLASHERR) {
    Serial.println("!Error writing to flash");
    return p;
  } else {
    Serial.println("!Unknown error");
    return p;
  }  
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
 
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.image2Tz();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK)  return 214;
 
  // found a match!
  Serial.print("#Found#"); Serial.print(finger.fingerID);
  Serial.print("#"); Serial.println(finger.confidence);
  kon='X';
  delay(3000);
  //return finger.fingerID;
  return 212;
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

int hapus(){
 
  Serial.println("#WHAT ID");

  uint8_t id = readnumber();
//  while (true) {
//    while (! Serial.available());
//    char c = Serial.read();
//    if (! isdigit(c)) break;
//    id *= 10;
//    id += c - '0';
//  }
 
  //Serial.print("#Deleting#");Serial.println(id);
 
 return deleteFingerprint(id);
}

uint8_t deleteFingerprint(uint8_t id) {
  uint8_t p = -1;
 
  p = finger.deleteModel(id);

  if (p == FINGERPRINT_OK) {
    //Serial.println("Deleted!");
    return 112;
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("!Communication error");
    return p;
  } else if (p == FINGERPRINT_BADLOCATION) {
    Serial.println("!Could not delete in that location");
    return p;
  } else if (p == FINGERPRINT_FLASHERR) {
    Serial.println("!Error writing to flash");
    return p;
  } else {
    Serial.print("!Unknown error: 0x"); Serial.println(p, HEX);
    return p;
  }  
}



Python.py

import serial

import MySQLdb
from time import gmtime, strftime
from random import randint
from picamera import PiCamera
from time import sleep

#camera = PiCamera()
#camera.rotation = 180

db = MySQLdb.connect("localhost","root","","db_project")
cursor = db.cursor()

db2 = MySQLdb.connect("localhost","root","","db_project")
cursor2 = db2.cursor()

id=""
ruang="A09"

read_serial0=""
#ser = serial.Serial('/dev/ttyACM0',9600)
ser = serial.Serial('COM8',9600)

def mtrim(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s

def find_str(s, char):
    index = 0

    if char in s:
        c = char[0]
        for ch in s:
            if ch == c:
                if s[index:index+len(char)] == char:
                    return index

            index += 1

    return -1

def simpanEnroll():
    tgl=strftime("%Y-%m-%d", gmtime())
    jam=strftime("%H:%M:%S", gmtime())
    stgl=strftime("%Y%m%d", gmtime())
    sjam=strftime("%H%M%S", gmtime())
    img=   stgl+sjam+".jpg";

    #camera.framerate = 15
    #camera.start_preview()

    sleep(1)
    #camera.capture('/var/www/html/project/ypathfile/'+img)
    sleep(1)
    #camera.stop_preview()
    sql='INSERT INTO `tb_enroll` (`is`, `namaSiswa`) VALUES ("%s", "%s")' % (id, namaSiswa,'-')
    try:
        cursor.execute(sql)
        db.commit()
    except:
        db.rollback()
         
    try:
        cursor2.execute(sql)
        db2.commit()
    except:
        db2.rollback()
    print("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
            ###################

           
def enroll():
    print("Proses Enroll")

    ser.write("Z")
    ser.flush()
    #sleep(1)
    print("Start")
   
    lop=0
    while lop<1:
        msg = ser.readline()
        if find_str(msg,"#Input Enroll:")>=0:
            id=str(input("Masukan ID Anda!"))
            ser.write(id)
            ser.write('\n')
            ser.flush()
            ser.flush()
            sleep(1)

        elif find_str(msg,"@Image converted")>=0:
            print(msg)
            print("Silakan Lepas Finger Anda Untuk Persiapan Tap Lagi")
            #sleep(1)
       
        elif find_str(msg,"@")>=0:
            print(msg)
           
        elif find_str(msg,"!")>=0:
            print(msg)
            #sleep(1)
            lop=1

        elif find_str(msg,"E")>=0:
            print(msg)
            #sleep(1)
            lop=1
           
        elif find_str(msg,"#Place same finger again")>=0:
            print("Silakan Tap Finger Yang Sama......")
            #sleep(1)
           
        elif find_str(msg,"#MATCH")>=0:
            print("Sidik Jari Benar.. Sesuai......")
           
        elif find_str(msg,"#STORED")>=0:
            print("Sidik Jari Tersimpan.....")
            simpanEnroll()
            #sleep(1)
            lop=1
           
        elif find_str(msg,"#Fingerprints did not match")>=0:
            print("Sidik Jari Tidak Sama.....")
            #sleep(1)
           
        else:
            print(msg)
            #sleep(1)
            lop=1  
   
def search():
    print("Proses Searching")
    ser.flush()
    ser.write("S")
    sleep(1)
   
    lop=0
    while lop<1:
        msg = ser.readline()
        if find_str(msg,"#Please Tap")>=0:
            ser.flush()
            print("Silahkan Tap your Finger")
            sleep(1)
        elif find_str(msg,"Y")>=0:
            print("Maaf Data Tak Dikenal")
            sleep(1)
            lop=1
        elif find_str(msg,"#Found#")>=0:
            ar=msg.split("#")
            print("Dikenal :",ar[2],":Approx:",ar[3])
            sleep(1)
            lop=1
        else:
            print(msg)
            lop=1
           
def remove():
    print("Proses Remove")
    ser.write("D")
    ser.flush()
    sleep(1)

    lop=0
    while lop<1:
        msg = ser.readline()
        if find_str(msg,"#WHAT ID")>=0:
            id=str(input("Masukan ID Yang Akan Dihapus!"))
            ser.write(id)
            ser.write('\n')
            ser.flush()
            ser.flush()
            sleep(1)
           
        elif find_str(msg,"@")>=0:
            print(msg)
           
        elif find_str(msg,"R")>=0:
            print("Hapus Berhasil")
            sleep(1)
            lop=1
           
        elif find_str(msg,"!")>=0:
            print(msg)
            sleep(1)
            lop=1
           
        else:
            print(msg)
            lop=1

def mulai():
   

    print("Silakan Pilih Operasi?")
    print("    1) Enroll")
    print("    2) Stand By")
    print("    3) Remove")
   
 
    pil=int(input(" Pilihan= "))
 
    if pil==1:
       enroll()
    elif pil==2:
       search()
    elif pil==3:
       remove()
    else:
        print("Tidak Ada Dalam Pilihan")

    print("Apakah Anda Ingin Melanjutkan Operasi?")
    print("    1) Lanjut")
    print("    2) Keluar")
    pil=int(input("Pilihan"))
 
    if pil==1:
        mulai()
 
    else:
        print("Terimakasih")
        try:
            ser.close();
            print("Disconnect")
        except:
            print("Terputus.....")

           
       
print("*****************************************")
print("           Aplikasi Fingerprint          ")          
print("*****************************************")
ser.flush()
ser.write("A")
sleep(4)
mulai()


Database:


CREATE TABLE IF NOT EXISTS `tb_history` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `tanggal` date NOT NULL,
  `jam` time NOT NULL,
  `ruang` varchar(3) NOT NULL,
  `ksj` varchar(5) NOT NULL,
  `image` varchar(30) NOT NULL,
  `note` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;



INSERT INTO `tb_history` (`id`, `tanggal`, `jam`, `ruang`, `ksj`, `image`, `note`) VALUES
(1, '2017-01-12', '16:13:02', '7', '1', 'Chrysanthemum.jpg', '-'),
(2, '2017-01-25', '16:13:32', '', '', 'avatar.jpg', ''),
(3, '2017-01-26', '07:07:42', 'A', '49', '20170126070742.jpg', '-'),
(4, '2017-01-26', '07:08:38', 'A', '87', '20170126070838.jpg', '-'),
(5, '2017-01-26', '07:08:43', 'A', '97', '20170126070843.jpg', '-'),
(6, '2017-01-26', '07:09:56', 'A', '49', '20170126070956.jpg', '-'),
(7, '2017-01-26', '07:10:08', 'A', '87', '20170126071008.jpg', '-'),
(8, '2017-01-26', '07:10:21', 'A', '97', '20170126071021.jpg', '-'),
(9, '2017-01-26', '07:18:51', 'A', '49', '20170126071851.jpg', '1'),
(10, '2017-01-26', '07:19:03', 'A', '87', '20170126071903.jpg', '1'),
(11, '2017-01-26', '07:19:17', 'A', '97', '20170126071917.jpg', '1'),
(12, '2017-01-26', '07:19:26', 'A', '279', '20170126071926.jpg', '1'),
(13, '2017-01-26', '07:21:21', 'A', '49', '20170126072121.jpg', '1'),
(14, '2017-01-26', '08:12:16', 'A', '49', '20170126081216.jpg', '-');

-- --------------------------------------------------------

--
-- Table structure for table `tb_siswa`
--

CREATE TABLE IF NOT EXISTS `tb_siswa` (
  `nis` varchar(10) NOT NULL,
  `nama` varchar(25) NOT NULL,
  `jenis_kelamin` varchar(15) NOT NULL,
  `kelas` varchar(15) NOT NULL,
  `ksj` varchar(5) NOT NULL,
  `username` varchar(25) NOT NULL,
  `password` varchar(25) NOT NULL,
  `hp` varchar(15) NOT NULL,
  PRIMARY KEY (`nis`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



INSERT INTO `tb_siswa` (`nis`, `nama`, `jenis_kelamin`, `kelas`, `ksj`, `username`, `password`, `hp`) VALUES
('SIS001', 'Ali', 'Laki-Laki', '1', '1', 'Ali', 'ali', '08568452535'),
('SIS002', 'Wati', 'Laki-Laki', '1', '2', 'Wati', 'wati', '08568619797');








Arduino + Modem + Raspberry PI

Aplikasi Arduino

Code sebagai berikut adalah contoh dari aplikasi yang akan melakukan pengiriman sms melalui modem jika ada perubahan I/O pada input Arduino.
Juga Proses Akuisisi Data terhadap Raspberry PI 


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);

#include <SoftwareSerial.h>
SoftwareSerial wavecom(2,3);
char incoming_char=0;

const int sensorIn = A0;
int mVperAmp = 185;
double Voltage = 0;
double VRMS = 0;
double AmpsRMS = 0;
char L1='0';
char L2='0';
char L3='0';
char L4='0';


const int tombol_1 = 12;     // the number of the pushbutton pin
const int tombol_2 = 11;
const int tombol_3 = 10;     // the number of the pushbutton pin
const int tombol_4 = 9;

const int lampu_1 =  4;      // the number of the LED pin
const int lampu_2 =  5;
const int lampu_3 =  6;
const int lampu_4 =  7;


int Tombol_1 = 1;         // variable for reading the pushbutton status
int Tombol_2 = 1;
int Tombol_3 = 1;
int Tombol_4 = 1;

int K1=0;
int K2=0;
int K3=0;
int K4=0;
String inputString = "";  

void setup()   {

  lcd.init();                      // initialize the lcd
  lcd.backlight();

  pinMode(lampu_1, OUTPUT);
  pinMode(lampu_2, OUTPUT);
  pinMode(lampu_3, OUTPUT);
  pinMode(lampu_4, OUTPUT);

 digitalWrite(lampu_1, HIGH);     //relay diseting  high,   relay jenis aktif low,  low = hidup , high = mati;
 digitalWrite(lampu_2, HIGH);
 digitalWrite(lampu_3, HIGH);
 digitalWrite(lampu_4, HIGH);

  pinMode(tombol_1, INPUT);
  pinMode(tombol_2, INPUT);
  pinMode(tombol_3, INPUT);
  pinMode(tombol_4, INPUT);

 digitalWrite(tombol_1, HIGH);
 digitalWrite(tombol_2, HIGH);
 digitalWrite(tombol_3, HIGH);
 digitalWrite(tombol_4, HIGH);

Serial.begin(9600);
   //Serial.print("kirim sms");
       wavecom.begin(9600);
       wavecom.flush();
       wavecom.print("AT+CMGS=");             //kirim sms
       wavecom.print("081219590150");
       wavecom.write(13);
       wavecom.println("SMS OK");
       wavecom.write(26);
      delay(2000);

// wavecom.begin(9600);
   wavecom.print("AT+CMGF=1\r");  // set SMS mode to text
   delay(100);
   wavecom.println("AT+CNMI=2,2,0,0,0\r");
   wavecom.print("AT+CLIP=1\r"); // turn on caller ID notification
   delay(100);
   Serial.println("AT+CMGD=1,4");  //Delete all SMS in box

  inputString.reserve(200);
}

void loop()   {

  terima_sms ();

 Voltage = getVPP();                        //RUMUS PERHITUNGAN SENSOR
 VRMS = (Voltage/2.0) *0.707;
 AmpsRMS = (VRMS * 1000)/mVperAmp;
 if ( AmpsRMS < 0.09 ) {
    //AmpsRMS = 0;
  }
 float daya = 220 *  AmpsRMS;              //PERHITUNGAN DAYA

// Serial.print("ARUS PEMAKAIAN: ");        //SERIAL PEMBACAAA SERIAL MONITOR
// Serial.print(AmpsRMS);
// Serial.println(" Amper");
// Serial.print("DAYA PEMAKAIAN: ");
// Serial.print(daya);
// Serial.println(" watt");
// Serial.println();

 Serial.print(AmpsRMS);
 Serial.print("#");
 Serial.print(Voltage);
 Serial.print("#");
 Serial.print(daya);
 Serial.print("#");
 Serial.print(L1);
 Serial.print("#");
 Serial.print(L2);
 Serial.print("#");
 Serial.print(L3);
 Serial.print("#");
 Serial.print(L4);
 Serial.print("#");
 Serial.println("");

 lcd.setCursor(0,0);
 lcd.print("Arus: ");
 lcd.setCursor(6,0);
 lcd.print(AmpsRMS);
 lcd.print(" A  ");
 lcd.setCursor(0,1);
 lcd.print("Daya: ");
 lcd.setCursor(6,1);
 lcd.print(daya);
 lcd.print(" W  ");

  Tombol_1 = digitalRead(tombol_1);
  Tombol_2 = digitalRead(tombol_2);
  Tombol_3 = digitalRead(tombol_3);
  Tombol_4 = digitalRead(tombol_4);


 if (Tombol_1== LOW) {          
        if(K1 == 0) {
          sms_lampu_1_hidup ();
            K1=1; }
  else {
          sms_lampu_1_mati ();
             K1=0; }
            delay (200) ; }
     
  if (Tombol_2== LOW) {
      if(K2 == 0) {
       sms_lampu_2_hidup ();
        K2=1; }
    else {  
      sms_lampu_2_mati ();
        K2=0; }
        delay (200) ; }
     
  if (Tombol_3== LOW) {
      if(K3 == 0) {
       sms_lampu_3_hidup();
        K3=1; }
    else {  
       sms_lampu_3_mati();
        K3=0; }
        delay (200) ; }

  if (Tombol_4 == LOW) {
      if(K4 == 0) {
       sms_lampu_4_hidup();
        K4=1; }
    else {  
       sms_lampu_4_mati();
        K4=0; }
        delay (200) ; }

delay(1000);
//lcd.setCursor(6,0);
//lcd.print("        ");
//lcd.setCursor(6,1);
//lcd.print("        ");
}  //loop

float getVPP()   {
  float result;
  int readValue;             //value read from the sensor
  int maxValue = 0;          // store max value here
  int minValue = 1024;          // store min value here
 
   uint32_t start_time = millis();
   while((millis()-start_time) < 100)   {
       readValue = analogRead(sensorIn);
   if (readValue > maxValue)        {
          maxValue = readValue;    }
   if (readValue < minValue) {
          minValue = readValue; }   }
      result = ((maxValue - minValue) * 5.0)/1024.0;
      return result;
 }

void terima_sms () {
  //Serial.println("sms aktif");
      if(wavecom.available() >0)   {
            incoming_char=wavecom.read();
     if (incoming_char=='#')  {
            delay(10);
   
           incoming_char=wavecom.read();
     if (incoming_char=='A')    {    
         L1='1';  
         //Serial.print("lampu 1 hidup");
            sms_lampu_1_hidup();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10);}
       
        //    incoming_char=wavecom.read();
   else if (incoming_char=='a')    {    
             //Serial.print("lampu 1 mati");
             L1='0';
             sms_lampu_1_mati();
             Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
             delay(10); }
 
     // incoming_char=wavecom.read();
    else if (incoming_char=='B')    {    
            //Serial.print("lampu 2 hidup");
            L2='1';
            sms_lampu_2_hidup();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
             delay(10);}
   
          //  incoming_char=wavecom.read();
    else if (incoming_char=='b')    {    
            //Serial.print("lampu 2 mati");
            L2='0';
            sms_lampu_2_mati();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10); }
           
         //   incoming_char=wavecom.read();
    else if (incoming_char=='C')    {    
            //Serial.print("lampu 3 hidup");
            L3='1';
            sms_lampu_3_hidup();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10);}
 
         //   incoming_char=wavecom.read();
     else if (incoming_char=='c')    {    
             //Serial.print("lampu 3 mati");
              L3='0';
              sms_lampu_3_mati();
             Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
             delay(10); }
         
          //   incoming_char=wavecom.read();
      else if (incoming_char=='D')    {    
            //Serial.print("lampu 4 hidup");
            L4='1';
            sms_lampu_4_hidup();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10);}
       
          //  incoming_char=wavecom.read();
       else if (incoming_char=='d')    {    
            //Serial.print("lampu 4 mati");
            L4='0';
            sms_lampu_4_mati();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10); }
           
       else if (incoming_char=='E')    {    
            //Serial.print("lampu 4 hidup");
            L1='1';
            L2='1';
            L3='1';
            L4='1';
            sms_lampu_1_hidup();
            sms_lampu_2_hidup();
            sms_lampu_3_hidup();
            sms_lampu_4_hidup();
           Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10);}
       
          //
       
       else if (incoming_char=='e')    {    
            //Serial.print("lampu 4 mati");
            L1='0';
            L2='0';
            L3='0';
            L4='0';
            sms_lampu_1_mati();
            sms_lampu_2_mati();
            sms_lampu_3_mati();
            sms_lampu_4_mati();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10); }
           
           
    }
    }
  }




void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
  if (inChar=='A')    {    
         L1='1';  
            sms_lampu_1_hidup();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10);}
       
   else if (inChar=='a')    {    
             L1='0';
             sms_lampu_1_mati();
             Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
             delay(10); }
 
    else if (inChar=='B')    {    
            //Serial.print("lampu 2 hidup");
            L2='1';
            sms_lampu_2_hidup();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
             delay(10);}
   
    else if (inChar=='b')    {    
            L2='0';
            sms_lampu_2_mati();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10); }
           
    else if (inChar=='C')    {    
            //Serial.print("lampu 3 hidup");
            L3='1';
            sms_lampu_3_hidup();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10);}
 
     else if (inChar=='c')    {    
             //Serial.print("lampu 3 mati");
              L3='0';
              sms_lampu_3_mati();
             Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
             delay(10); }
         
      else if (inChar=='D')    {    
            //Serial.print("lampu 4 hidup");
            L4='1';
            sms_lampu_4_hidup();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10);}
       
       else if (inChar=='d')    {    
            //Serial.print("lampu 4 mati");
            L4='0';
            sms_lampu_4_mati();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10); }
           
       else if (inChar=='E')    {    
            L1='1';
            L2='1';
            L3='1';
            L4='1';
            sms_lampu_1_hidup();
            sms_lampu_2_hidup();
            sms_lampu_3_hidup();
            sms_lampu_4_hidup();
           Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10);}

       
       else if (inChar=='e')    {    
            L1='0';
            L2='0';
            L3='0';
            L4='0';
            sms_lampu_1_mati();
            sms_lampu_2_mati();
            sms_lampu_3_mati();
            sms_lampu_4_mati();
            Serial.println("AT+CMGD=1,4");  //Delete all SMS in box
            delay(10); }
  }
}



 void sms_lampu_1_hidup () {
       L1='1';
       digitalWrite(lampu_1,LOW);
       //Serial.print("kirim sms");
       no_penerima ();
       wavecom.println("lampu 1 hidup");
       sms_daya (); }

 void sms_lampu_1_mati () {
   L1='0';
       digitalWrite(lampu_1,HIGH);
       //Serial.print("kirim sms");
       no_penerima ();
       wavecom.println("lampu 1 mati");
       sms_daya (); }  

  void sms_lampu_2_hidup () {
    L2='1';
       digitalWrite(lampu_2,LOW);
       //Serial.print("kirim sms");
       no_penerima ();
       wavecom.println("lampu 2 hidup");
       sms_daya (); }

 void sms_lampu_2_mati () {
   L2='0';
       digitalWrite(lampu_2,HIGH);
        //Serial.print("kirim sms");
        no_penerima ();
       wavecom.println("lampu 2 mati");
       sms_daya (); }

 void sms_lampu_3_hidup () {
   L3='1';
       digitalWrite(lampu_3,LOW);
       //Serial.print("kirim sms");
       no_penerima ();
       wavecom.println("lampu 3 hidup");
       sms_daya (); }

 void sms_lampu_3_mati () {
   L3='0';
       digitalWrite(lampu_3,HIGH);
       //Serial.print("kirim sms");
       no_penerima ();
       wavecom.println("lampu 3 mati");
        sms_daya (); }  
           
 void sms_lampu_4_hidup () {
   L4='1';
       digitalWrite(lampu_4,LOW);
       //Serial.print("kirim sms");
        no_penerima ();
       wavecom.println("lampu 4 hidup");
       sms_daya (); }

 void sms_lampu_4_mati () {
   L4='0';
      digitalWrite(lampu_4,HIGH);
      //Serial.print("kirim sms");
       no_penerima ();
       wavecom.println("lampu 4 mati");
       sms_daya (); }
     
void no_penerima () {
      wavecom.flush();
       wavecom.print("AT+CMGS=");             //kirim sms
       wavecom.print("081219590150");
       wavecom.write(13); }  

void sms_daya () {
     Voltage = getVPP();                        //RUMUS PERHITUNGAN SENSOR
     VRMS = (Voltage/2.0) *0.707;
     AmpsRMS = (VRMS * 1000)/mVperAmp;
     if ( AmpsRMS < 0.08 ) {
          AmpsRMS = 0;}
     float daya = 220 *  AmpsRMS;
       wavecom.print("Arus Pemakaian: ");
       wavecom.print(AmpsRMS);
       wavecom.println(" A");
       wavecom.print("Beban Total: ");
       wavecom.print(daya);
       wavecom.print(" W");
       wavecom.write(26);
       delay(4000); }    


============
Python.py

import serial

import mysql.connector as mdb
from time import gmtime, strftime
from random import randint


db = mdb.connect(host='127.0.0.1',user='root',password='',database='wm10maret')

cursor = db.cursor()

def mtrim(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s


#/dev/ttyACM0
read_serial0=""
ser = serial.Serial('COM1',9600)
s = [0,1]
while True:
 read_serial=ser.readline()
 print read_serial
 read_serial=mtrim(read_serial)

###########
 cursor.execute("SELECT id,lampu,onoff FROM tb_remote where status='0'")
 for row in cursor.fetchall():
     idx=row[0]
     lampu=row[1]
     onoff=row[2]
     print lampu
     print onoff
     print idx
     print "@@@@@@@@@@@@@@@"
     if lampu=="1" and onoff=="1":
         ser.flush()
         ser.write("A")
     elif lampu=="1" and onoff=="0":
         ser.flush()
         ser.write("a")
     elif lampu=="2" and onoff=="1":
         ser.flush()
         ser.write("B")
     elif lampu=="2" and onoff=="0":
         ser.flush()
         ser.write("b")
     elif lampu=="3" and onoff=="1":
         ser.flush()
         ser.write("C")
     elif lampu=="3" and onoff=="0":
         ser.flush()
         ser.write("c")
     elif lampu=="4" and onoff=="1":
         ser.flush()
         ser.write("D")
     elif lampu=="4" and onoff=="0":
         ser.flush()
         ser.write("d")
     elif lampu=="E":
         ser.flush()
         ser.write("E")
     elif lampu=="e":
         ser.flush()
         ser.write("e")
       


   
     sql = "UPDATE `tb_remote`  set status='1' where id='%s'" % (idx)
     try:
         cursor.execute(sql)
         db.commit()
     except:
         db.rollback()
             
 #db.close()
###########

 if len(read_serial) >6:
     if read_serial!=read_serial0:
         c=read_serial.split("#")
         if len(c)>=6:
             read_serial0=read_serial
             I=c[0]
             V=c[1]
             W=c[2]
             P=c[3]
             Q=c[4]
             R=c[5]
             S=c[6]
           
             print "I=",I
             print "V=",V
             print "P=",W
             print "1=",P
             print "2=",Q
             print "3=",R
             print "4=",S

             tgl=strftime("%Y-%m-%d", gmtime())
             jam=strftime("%H:%M:%S", gmtime())

             sql = 'INSERT INTO `tb_history` ( `tanggal`, `jam`, `arus`, `tegangan`, `daya`,`L1`,`L2`,`L3`,`L4`) VALUES ("%s", "%s", "%s","%s","%s", "%s", "%s", "%s", "%s")' % (tgl, jam, I,V,W,P,Q,R,S)
             try:
               cursor.execute(sql)
               db.commit()
             except:
               db.rollback()
             
       
             print"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

#$sudo -i
#cd /home/pi/Desktop/py
#python Help.py
#ls /dev/tty*


CREATE TABLE IF NOT EXISTS `tb_history` (
  `id` int(30) NOT NULL AUTO_INCREMENT,
  `tanggal` date NOT NULL,
  `jam` time NOT NULL,
  `arus` varchar(30) NOT NULL,
  `tegangan` varchar(30) NOT NULL,
  `daya` varchar(30) NOT NULL,
  `keterangan` varchar(30) NOT NULL,
  `L1` char(1) NOT NULL,
  `L2` char(1) NOT NULL,
  `L3` char(1) NOT NULL,
  `L4` char(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=218 ;

INSERT INTO `tb_history` (`id`, `tanggal`, `jam`, `arus`, `tegangan`, `daya`, `keterangan`, `L1`, `L2`, `L3`, `L4`) VALUES
(6, '2017-01-18', '10:00:00', '12', '220', '300', '-', '1', '1', '0', '0'),
(7, '2017-01-18', '10:00:00', '15', '220', '324', '-', '1', '1', '0', '0'),

CREATE TABLE IF NOT EXISTS `tb_remote` (
  `id` int(15) NOT NULL AUTO_INCREMENT,
  `tanggal` date NOT NULL,
  `jam` time NOT NULL,
  `lampu` varchar(1) NOT NULL,
  `onoff` varchar(1) NOT NULL,
  `status` varchar(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;


INSERT INTO `tb_remote` (`id`, `tanggal`, `jam`, `lampu`, `onoff`, `status`) VALUES
(2, '2017-03-10', '20:27:17', '4', '1', '1'),
(3, '2017-03-10', '20:28:27', '4', '0', '1');




Sabtu, 04 Februari 2017

Koleksi Program2

import time
import serial

recipient = "+628568452535"
message = "Hello, World!"

phone = serial.Serial("com5",  460800, timeout=5)
try:
    time.sleep(0.5)
    phone.write(b'ATZ\r')
    time.sleep(0.5)
    phone.write(b'AT+CMGF=1\r')
    time.sleep(0.5)
    phone.write(b'AT+CMGS="' + recipient.encode() + b'"\r')
    time.sleep(0.5)
    phone.write(message.encode() + b"\r")
    time.sleep(0.5)
    phone.write(bytes([26]))
    time.sleep(0.5)
finally:
    phone.close()



serial con
import serial

import MySQLdb
from time import gmtime, strftime
from random import randint
from picamera import PiCamera
from time import sleep

camera = PiCamera()
camera.rotation = 180

db = MySQLdb.connect("localhost","root","password","db_project1")
cursor = db.cursor()

def mtrim(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s


read_serial0=""
ser = serial.Serial('/dev/ttyACM0',9600)
#ser = serial.Serial('COM3',9600)

s = [0,1]
while True:
 read_serial=ser.readline()
 read_serial=mtrim(read_serial)
 c=read_serial.split("#")
 print (read_serial)
 print (str(len(c)))
 sleep(5)
 
 if len(c) >2:
     if read_serial!=read_serial0:
         
         read_serial0=read_serial
         idx=c[0]
         ruang=c[1]
         
         print ("idx=",idx)
         print ("ruang=",ruang)
         
         tgl=strftime("%Y-%m-%d", gmtime())
         jam=strftime("%H:%M:%S", gmtime())

         stgl=strftime("%Y%m%d", gmtime())
         sjam=strftime("%H%M%S", gmtime())

         img=   stgl+sjam+".jpg";

         ###########################################


         
         camera.start_preview()

         sleep(1)
         camera.capture('/var/www/html/project/ypathfile/'+img)
         sleep(1)
         camera.stop_preview()

         ###########################################
         sql='INSERT INTO `tb_history` (`tanggal`, `jam`, `ruang`, `ksj`, `image`, `note`) VALUES ("%s", "%s", "%s", "%s", "%s", "%s")' % (tgl, jam, ruang, idx, img,'-')
         try:
           cursor.execute(sql)
           db.commit()
         except:
           db.rollback()
          
     
         print("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")


#$sudo -i
#cd /home/pi/Desktop/py
#python Help.py
#ls /dev/tty*


import RPi.GPIO as GPIO
import time

# Variable for the GPIO pin number
buzzer = 26

# Tell the Pi we are using the breakout board pin numbering
GPIO.setmode(GPIO.BCM)

# Set up the GPIO pin for output
GPIO.setup(buzzer, GPIO.OUT)

# Loop to blink our led
while True:
    GPIO.output(buzzer, GPIO.HIGH)
    print("On")
    time.sleep(1)
    GPIO.output(buzzer, GPIO.LOW)
    print("Off")
    time.sleep(1)



camera:
from picamera import PiCamera
from time import sleep

camera = PiCamera()

camera.start_preview()
sleep(5)
camera.capture('/home/pi/Desktop/image.jpg')
camera.stop_preview()



gabFinish
import serial

import MySQLdb
from time import gmtime, strftime
from random import randint
from picamera import PiCamera
from time import sleep

camera = PiCamera()
camera.rotation = 180

db = MySQLdb.connect("localhost","root","123456","db_project")
cursor = db.cursor()

db2 = MySQLdb.connect("192.168.1.38","root","","db_project")
cursor2 = db2.cursor()

def mtrim(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s


read_serial0=""
ser = serial.Serial('/dev/ttyACM0',9600)
#ser = serial.Serial('COM3',9600)

s = [0,1]
while True:
 read_serial=ser.readline()
 read_serial=mtrim(read_serial)
 c=read_serial.split("#")
 print (read_serial)
 print (str(len(c)))
 sleep(5)
 
 if len(c) >2:
     if read_serial!=read_serial0:
         
         read_serial0=read_serial
         idx=c[1]
         ruang=c[2]
         
         print ("idx=",idx)
         print ("ruang=",ruang)
         
         tgl=strftime("%Y-%m-%d", gmtime())
         jam=strftime("%H:%M:%S", gmtime())

         stgl=strftime("%Y%m%d", gmtime())
         sjam=strftime("%H%M%S", gmtime())

         img=   stgl+sjam+".jpg";

         ###########################################


         
         camera.framerate = 15
         camera.start_preview()

         sleep(1)
         camera.capture('/var/www/html/project/ypathfile/'+img)
         sleep(1)
         camera.stop_preview()

         ###########################################
         sql='INSERT INTO `tb_history` (`tanggal`, `jam`, `ruang`, `ksj`, `image`, `note`) VALUES ("%s", "%s", "%s", "%s", "%s", "%s")' % (tgl, jam, ruang, idx, img,'-')
         try:
           cursor.execute(sql)
           db.commit()
         except:
           db.rollback()
          
         try:
           cursor2.execute(sql)
           db2.commit()
         except:
           db2.rollback()
         
         print("++++++++++++++++++++++++++++++++++++++++++++++++++")


#$sudo -i
#cd /home/pi/Desktop/py
#python Help.py
#ls /dev/tty*


Split
import serial

import MySQLdb
from time import gmtime, strftime
from random import randint


db = MySQLdb.connect("localhost","root","123456","monitoring" )
cursor = db.cursor()

def mtrim(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s



read_serial0=""
ser = serial.Serial('/dev/ttyACM0',9600)
s = [0,1]
while True:
 read_serial=ser.readline()
 print read_serial
 read_serial=mtrim(read_serial)
 
 if len(read_serial) >6:
     if read_serial!=read_serial0:
         c=read_serial.split("#")
         read_serial0=read_serial
         I=c[0]
         V=c[1]
         W=c[2]
         P=c[3]
         Q=c[4]
         R=c[5]
         S=c[6]
         
         print "I=",I
         print "V=",V
         print "P=",W
         print "1=",P
         print "2=",Q
         print "3=",R
         print "4=",S

         tgl=strftime("%Y-%m-%d", gmtime())
         jam=strftime("%H:%M:%S", gmtime())

         sql = 'INSERT INTO `tb_history` ( `tanggal`, `jam`, `arus`, `tegangan`, `daya`,`L1`,`L2`,`L3`,`L4`) VALUES ("%s", "%s", "%s","%s","%s", "%s", "%s", "%s", "%s")' % (tgl, jam, I,V,W,P,Q,R,S)
         try:
           cursor.execute(sql)
           db.commit()
         except:
           db.rollback()
          
     
         print"++++++++++++++++++++++++++++++++++++++++++++++++++++"


Rabu, 25 Januari 2017

Latihan Fungsi 2

def cetak(kalimat,h, ops):
    print( "proses", ops, " kalimat ", kalimat, " adalah :",h)
   
def uppercase(kalimat,ops):
    str=kalimat.upper();
    cetak(kalimat,str,ops)

def lowercase(kalimat,ops):
    str=kalimat.lower();
    cetak(kalimat,str,ops)

def last(kalimat,ops):
    p=len(kalimat)
    str=kalimat[p-1];
    cetak(kalimat,str,ops)
   
def first(kalimat,ops):
    str=kalimat[0];
    cetak(kalimat,str,ops)

def replace(kalimat,ops):
    y=input("masukan huruf")
    z=input("masukan huruf")
    str=kalimat.replace(y,z);
    cetak(kalimat,str,ops)
   
def reverse(kalimat,ops):
    balikan = kalimat[::-1]
    cetak(kalimat,balikan,ops)

def indexof(kalimat,ops):
    str=kalimat.find('a');
    cetak(kalimat,str,ops)

def gabung(kalimat,ops):
    y=input("masukan kalimat")
    str= kalimat + ' ' + y;
    cetak(kalimat,str,ops)

def mulai():
    kalimat=str(input("masukan kalimat:"))
   

    print("Silakan pilih ops?")
    print("    1) uppercase")
    print("    2) lowercase")
    print("    3) last")
    print("    4) first")
    print("    5) replace")
    print("    6) reverse")
    print("    7) indexof")
    print("    8) gabung" )

    pil=int(input("masukan pilihan anda"))
    if pil==1:
       uppercase(kalimat,"uppercase")
    elif pil==2:
       lowercase(kalimat,"lowercase")
    elif pil==3:
       last(kalimat,"last")
    elif pil==4:
       first(kalimat,"first")
    elif pil==5:
       replace(kalimat,"replace")
    elif pil==6:
       reverse(kalimat,"reverse")
    elif pil==7:
       indexof(kalimat,"indexof")
    elif pil==8:
       gabung(kalimat, "gabung")
     
    else:
        print("tidak ada dalam opearasi")

    print("apakah anda ingin melanjutkan operasi?")
    print("    1) lanjut")
    print("    2) keluar")
    pil=int(input("Pilihan"))
   
    if pil==1:
        mulai()
 
    else:
        print("terimakasih")


print("*****************************************")
print("           Latihan Python 2              ")          
print("*****************************************")
mulai()

Latihan Fungsi 1



def penjumlahan(b1,b2, ops):
    h=b1 + b2
    cetak(b1,b2,h,ops)

def pengurangan(b1,b2, ops):
    h=b1 - b2
    cetak(b1,b2,h,ops)

def perkalian(b1,b2, ops):
    h=b1 * b2
    cetak(b1,b2,h,ops)
   
def pembagian(b1,b2, ops):
    h=b1 / b2
    cetak(b1,b2,h,ops)

def modus(b1,b2, ops):
    h=b1 % b2
    cetak(b1,b2,h,ops)

def kuadrat(b1,b2, ops):
    h=b1**b2
    cetak(b1,b2,h,ops)

def cetak(b1,b2,h, ops):
    print( "proses", ops, "bilangan", b1, "dengan", b2, "adalah", h)
   

def mulai():
    b1=int(input("masukan nilai1:"))
    b2=int(input("masukan nilai2:"))

    print("Silakan pilih ops?")
    print("    1) penjumlahan")
    print("    2) pengurangan")
    print("    3) perkalian")
    print("    4) pembagian")
    print("    5) modus")
    print("    6) kuadrat")
   
    pil=int(input(" Pilihan= "))
   
    if pil==1:
       penjumlahan(b1,b2,"penjumlahan")
    elif pil==2:
       pengurangan(b1,b2,"pengurangan")
    elif pil==3:
       perkalian(b1,b2,"perkalian")
    elif pil==4:
       pembagian(b1,b2,"pembagian")
    elif pil==5:
       modus(b1,b2,"modus")
    elif pil==6:
       kuadrat(b1,b2,"kuadrat")  
    else:
        print("tidak ada dalam opearasi")

    print("apakah anda ingin melanjutkan operasi?")
    print("    1) lanjut")
    print("    2) keluar")
    pil=int(input("Pilihan"))
   
    if pil==1:
        mulai()
 
    else:
        print("terimakasih")


print("*****************************************")
print("           Latihan Python 1              ")          
print("*****************************************")
mulai()


Rabu, 18 Januari 2017

Python in Range

0
1
2
3
4
------------------------
3
4
5
------------------------
4
6
8
------------------------
0
-2
-4
-6
-8
------------------------
>>>

Dengan code sbb:

for i in range(5):
    print(i)
print("------------------------")

for i in range(3, 6):
    print(i)
print("------------------------")

for i in range(4, 10, 2):
    print(i)
print("------------------------")

for i in range(0, -10, -2):
    print(i)
print("------------------------")




MEmbangun Array Python



import random

def loop(start, stop, step):
    i = start
    while i < stop:
        yield i
        i += step

def cetakm(nama,M):
    print("Array ",nama)
    b=len(M)
    c=len(M[0])
    for i in  loop(0,b,1):
        gab=""
        for j in  loop(0,c,1):
            gab+=str(M[i][j])+"\t"
        print(gab)
    print("++++++++++++++++++++++++++++")  

def penjumlahan(M1,M2,ops):
    print ("Operasi Penjumlahan")
    b=len(M)
    c=len(M[0])
    H=[]
    for i in  loop(0,b,1):
        T=[]
        for j in  loop(0,c,1):
            tmp=M1[i][j]+M2[i][j]
            T.append(tmp)
        H.append(T)
       
    cetakm("HasilM",H)


##################################################  
print("+++++++++++++++++++++++++++++++")  
print("+++ BELAJAR MATRIK LP2MARAY +++")  
print("+++++++++++++++++++++++++++++++")  

   
M=[]
N=[]



b=6
c=5

for i in loop(0,b,1):
    T1=[]
    T2=[]
    for j in loop(0,c,1):
        T1.append(random.randint(0,9))
        T2.append(random.randint(0,9))
    M.append(T1)
    N.append(T2)


b=len(M)
c=len(M[0])
print("b:",b)
print("c:",c)
   
cetakm("Matrix 1 ",M)
cetakm("Matrix 2 ",N)

H=M+N

penjumlahan(M,N,"Penjumlahan")