Saturday, 6 October 2018

Mengirim Email Dengan PHP

pada postingan kali ini saya akan sharing cara mengirim email dengan PHPMailer di php, sebelumnya download dulu PHPMailer DISINI, setelah itu masuk folder htdoc di xampp, kemudian buat folder baru dengan nama email, dan tambahkan 2 buah file yaitu index.php dan sendEmail.php

disini kita akan menggunakan account email gmail, pastikan sobat sudah account email gmail dan setting gmail kalian DISINI aktifkan jadi ON agar diberikan akses mengirim email oleh google :D

untuk index.php seperti berikut :

<!DOCTYPE html>
<html>
<head>
<title>Kirim Email - PHP</title>
</head>
<body>
<h1>Kirim Email - PHP</h1>
<div>
<form action="sendEmail.php" method="POST">
<table>
<tr>
<td>To</td><td>:</td>
<td><input type="text" name="toEmail"> </td>
</tr>
<tr>
<td>Isi Email</td><td>:</td>
<td><textarea name="isiemail" cols="100" rows="10"></textarea> </td>
</tr>
</table>
<input type="submit" value="Send">
</form>
</div>
</body>
</html>


Lalu pada sendEmail.php

<?php
require 'PHPMailer/PHPMailerAutoload.php';

$toemail = $_POST['toEmail']; //email penerima
$pesan   = $_POST['isiemail']; //isi email

$email = 'emailkalian@gmail.com'; //email pengirim, silahkan diganti dengan email sendiri
$password = 'passwordemailkalaian'; //password gmail

$to_id = $toemail;
$message = $pesan;
$subject = 'Admin Email';
$mail = new PHPMailer;
$mail->FromName = "Admin Email";
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = $email;
$mail->Password = $password;
$mail->addAddress($to_id);
$mail->Subject = $subject;
$mail->msgHTML($message);
if (!$mail->send()) {
$error = "Mailer Error: " . $mail->ErrorInfo;
echo $error; 
}
else {
echo "<script>
alert('Email Terkirim');
</script>";
}


dan coba jalankan localhost, apakah sudah bisa kirim email apa belum








Belajar Database SQL Server Untuk Pemula Part1

Pada postingan kali ini, saya akan sharing tentang database SQL Server untuk pemula, yaitu mulai dari bagaimana cara membuat database, membuat table, mengupdate table, menghapus table, menyimpan, mengupdate, dan menghapus isi table, membuat stored procedure, membuat function dan lain-lain :D

ok langsung saja kita buka SQL Server

Create Database
untuk membuat database di SQL Server bisa dengan query atau dengan GUI, membuat database dengan GUI dengan cara seperti berikut :


klik kanan pada databases dan pilih new database lalu isikan nama databasenya seperti dibawah ini dan klik OK


jika sudah maka akan muncul database baru di object explorer seperti gambar berikut 


kita sudah berhasil membuat database dengan GUI, berikut cara membuat database dengan query SQL :



tinggal kita menuliskan source code seperti diatas dan klik execute, 


Create Table
selanjutnya kita akan membuat table, untuk membuat table kita bisa menggunakan source code berikut :

CREATE TABLE TB_SISWA(
NIS VARCHAR(10) PRIMARY KEY,
NAMA VARCHAR(50) NULL,
ALAMAT VARCHAR(100) NULL,
TG_LAHIR DATE NULL,
J_KELAMIN VARCHAR(1) NULL
)

TB_SISWA merupakan nama table bisa diganti sesuai keinginan lalu klik execute, di dalam table TB_SISWA field NIS menjadi primary key, primary key ini bisa menjadi attribut field kunci dari table TB_SISWA

mengupdate type data column / field pada table, disini kita akan coba mengganti type data field J_KELAMIN dari VARCHAR(1) menjadi VARCHAR(10), query-nya seperti berikut :

ALTER TABLE TB_SISWA ALTER COLUMN J_KELAMIN VARCHAR(10)

setelah menjalankan query diatas coba refresh table TB_SISWA pasti field j_kelamin akan berubah menjadi varchar(10).

Insert, Update, Delete, Select
setelah membuat table dan merubah type data field pada table kita akan lanjutkan dengan mengisikan, mengupdate, menghapus dan menampilkan data table TB_SISWA

untuk insert data bisa menggunakan query berikut :

INSERT INTO TB_SISWA(NIS,NAMA,ALAMAT,TG_LAHIR,J_KELAMIN)
VALUES('10001','BEJO','SURABAYA','2010-10-06','PRIA');

INSERT INTO TB_SISWA(NIS,NAMA,ALAMAT,TG_LAHIR,J_KELAMIN)
VALUES('10002','ANI','MALANG','2010-10-06','WANITA');


untuk melihat hasilnya kita bisa menggunakan query select seperti berikut :

SELECT * FROM TB_SISWA

query diatas akan menampilkan semua data yang ada didalam table dan hasilnya seperti berikut :




jika kita hanya ingin menampilkan data siswa yang NIS nya 10001 maka querynya akan seprti berikut :

SELECT * FROM TB_SISWA WHERE NIS = '10001'

dalam select ada banyak parameter yang bisa kita gunakan untuk menampilkan data dan kita bisa menggunakan lebih dari satu parameter adapun parameter yang bisa kita pakai antara lain sebagai berikut :

LIKE : like ini bisa kita gunakan untuk mencari karakter yang mirip dalam sebuah paramter
contohnya kita ingin menampilkan data siswa yang alamatnya mengandung karakter 'SU'

SELECT * FROM TB_SISWA WHERE ALAMAT LIKE 'SU%'

BETWEEN : between ini biasanya digunakan untuk menfilter berdasarkan tanggal, misalnya kita mau menampilkan data siswa yang tanggal lahirnya antara tanggal 09-10-2010 sampai 10-10-2010

SELECT * FROM TB_SISWA WHERE TG_LAHIR BETWEEN '09-10-2010' AND '10-10-2010'


selanjutnya kita akan mengupdate data, misalnya kita akan meng-update nama siswa yang NIS nya 10001

UPDATE TB_SISWA SET NAMA = 'BEJO SUTEDJO' WHERE NIS = '10001'

jika ingin menghapus data siswa, kita bisa langsung menghapus semua atau siswa tertentu, untuk menghapus data tertentu contoh query-nya seperti berikut, misal kita mau menghapus siswa dengan NIS 10002


DELETE TB_SISWA WHERE NIS = '10002'

kalau kita mau menghapus semua kita tidak perlu menggunakan parameter atau WHERE nya dihapus saja.



OK untuk part1 cukup sampai disini, untuk selanjutnya saya akan sharing tentang view dan join table. Terimakasih semoga bermanfaat

Friday, 14 September 2018

Firebase SAPUI5 - Simple Real Time Application

Halo...
pada postingan ini saya akan sharing membuat aplikasi real time sederhana dengan sapui5 dan firebase. sebelum mulai, bagi teman-teman yang belum tau apa itu firebase mungkin bisa dibaca-baca dulu diblog2 yang membahas firebase dan bagaimana cara mendaftar akun firebase dan cara membuat database firebase karena di postingan ini saya tidak menjelaskan itu dan hanya fokus pada pembuatan aplikasi real time sederhana sapui5 dan firebase.

ok langsung saja kita mulai, pertama kita masuk dulu ke firebase console dan kita buat project baru, dan kebetulan saya sudah membuat project dengan nama EXAM setelah itu masuk ke project EXAM dan atur rules dengan mengikuti step-step seperti berikut :




rubah menjadi true write and read


setelah itu klik bagian yang ditandai kotak merah diatas kemudian copy source berikut dan kita masukkan kedalam project ui5.



kemudian kita buka eclipse dan buat project baru sapui5, jika belum tau cara membuat project baru di sapui5 bisa dilihat DISINI , kita buat project baru dengan nama ui5FIrebase untuk default view kita buat dengan nama index, kemuadian buka file index.html lalu rubah source code nya menjadi seperti berikut :


buat folder baru dengan nama asset didalam WebContent dangan tambahkan file baru dengan nama frbs.js dan tambahkan source code berikut :


kemudian buka file index.view.js dan tambahkan source code berikut :

var label1 = new sap.m.Label({
text : 'Name'
})
var label2 = new sap.m.Label({
text : 'Email'
})
var label3 = new sap.m.Label({
text : 'Address'
})
var txtNama = new sap.m.Input({
id:'txtName',
showValueHelp:true
})
var txtEmail = new sap.m.Input({
id:'txtEmail'
})
var txtUrl = new sap.m.Input({
id:'txtImgURl'
})
var btnSave = new sap.m.Button({
text:'Save',
icon:'sap-icon://save',
press:function(){
if(action == "Add"){
oController.onAddData();
}else if(action == "Edit"){
press:oController.onEditData();
}
}
})
var btnEdit = new sap.m.Button({
text:'Edit',
icon:'sap-icon://edit',
press:function(){
action = 'Edit';
oController.onOpenDialog(action);
}
})
var btnHapus = new sap.m.Button({
text:'Delete',
icon:'sap-icon://delete',
press:oController.onDeleteData
})
var btnDialog = new sap.m.Button({
text:'Add',
icon:'sap-icon://add-document',
press:function(){
action = 'Add';
oController.onOpenDialog(action);
}
})
var btnCloseDialog = new sap.m.Button({
text:'Cancel',
icon:'sap-icon://close',
press:function(){
oController.onCloseDialog();
}
})
var oTableUI = new sap.ui.table.Table("uiTable",{
selectionMode : sap.ui.table.SelectionMode.Single,
navigationMode: sap.ui.table.NavigationMode.Scrollbar,
selectionBehavior: sap.ui.table.SelectionBehavior.Row,
alternateRowColors:true,
enableColumnReordering:true,
enableCellFilter:true,
visibleRowCount:8
})

oTableUI.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "User ID"}),
    template: new sap.ui.commons.TextField().bindProperty("value", "userid") 
  }));
oTableUI.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "Name"}),
    template: new sap.ui.commons.TextField().bindProperty("value", "username") 
  }));

oTableUI.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "Email"}),
    template: new sap.ui.commons.TextField().bindProperty("value", "email")
  }));

oTableUI.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "Address"}),
    template: new sap.ui.commons.TextField().bindProperty("value", "address")
  })); 
oTableUI.attachRowSelectionChange(function(oEvent) { 
oController.onTableKlik(oEvent);
})
var oDialog = new sap.ui.commons.Dialog("oDialog",{
title: "Add New Data",
width: "500px",
height: "400px",  
resizable: true,
modal:true,
showCloseButton:false
});
var oPanel = new sap.m.Panel("oPanel",{
content:[label1,txtNama,label2,txtEmail,label3,txtUrl,btnSave,btnCloseDialog]
})
  return new sap.m.Page({
title: "CRUD SAPUI5 Firebase",
content: [btnDialog, btnEdit, btnHapus, oTableUI
]
});

dan tambahkan source berikut didalam index.controller.js

onInit: function() {
var oModel = new sap.ui.model.json.JSONModel();
var oTable = sap.ui.getCore().byId("uiTable");
database.ref('users').on('value', function(snapshot) {
dtJS = [];
oModel.refresh();
snapshot.forEach(function(childSnapshot) {
  items = {};
  items.userid   = childSnapshot.key;
  items.username = childSnapshot.val().username;
      items.email    = childSnapshot.val().email;
      items.address  = childSnapshot.val().address;
      dtJS.push(items);
      console.log(childSnapshot.key);
    });
oModel.setData(dtJS)
oTable.setModel(oModel);
    oTable.bindRows("/");
});
},
onAddData: function(){
if(key == 0){
key = 1;
}
var name = sap.ui.getCore().byId("txtName");
var email = sap.ui.getCore().byId("txtEmail");
var pic = sap.ui.getCore().byId("txtImgURl");
var dialog = sap.ui.getCore().byId("oDialog");
database.ref('users/' + key).set({
username: name.getValue(),
email   : email.getValue(),
address : pic.getValue()
});
name.setValue("");
email.setValue("");
pic.setValue("");
dialog.close();
},
onEditData: function(){
if(selectedKey == null){
alert("No Data Selected");
}else{
var name = sap.ui.getCore().byId("txtName");
var email = sap.ui.getCore().byId("txtEmail");
var pic = sap.ui.getCore().byId("txtImgURl");
var dialog = sap.ui.getCore().byId("oDialog");
database.ref('users/' + selectedKey).update({
username: name.getValue(),
email   : email.getValue(),
address : pic.getValue()
});
dialog.close();
}
selectedKey = null;
name.setValue("");
email.setValue("");
pic.setValue("");
},
onDeleteData: function(){
if(selectedKey == null){
alert("No Data Selected");
}else{
database.ref('users/' + selectedKey).remove();
}
var name = sap.ui.getCore().byId("txtName");
var email = sap.ui.getCore().byId("txtEmail");
var pic = sap.ui.getCore().byId("txtImgURl");
name.setValue("");
email.setValue("");
pic.setValue("");
selectedKey = null;
},
onTableKlik: function(oEvent){
var oTable = sap.ui.getCore().byId("uiTable");
var idx = oTable.getSelectedIndex()
if (oTable.isIndexSelected(idx)) {
var cxt = oTable.getContextByIndex(idx);
        var path = cxt.sPath;
        var obj = oTable.getModel().getProperty(path);
        
        selectedKey = obj.userid;
        
        var name = sap.ui.getCore().byId("txtName");
var email = sap.ui.getCore().byId("txtEmail");
var pic = sap.ui.getCore().byId("txtImgURl");
name.setValue(obj.username);
email.setValue(obj.email);
pic.setValue(obj.address);
}
},
onOpenDialog: function(action){
var dialog = sap.ui.getCore().byId("oDialog");
var panel = sap.ui.getCore().byId("oPanel");
var name = sap.ui.getCore().byId("txtName");
var email = sap.ui.getCore().byId("txtEmail");
var pic = sap.ui.getCore().byId("txtImgURl");
if(action == "Add"){
dialog.addContent(panel);
dialog.open();
}else if(action == "Edit"){
if(selectedKey == null){
alert("No Data Selected");
}else{
var oTable = sap.ui.getCore().byId("uiTable");
var idx = oTable.getSelectedIndex()
if (oTable.isIndexSelected(idx)) {
var cxt = oTable.getContextByIndex(idx);
        var path = cxt.sPath;
        var obj = oTable.getModel().getProperty(path);
        
        selectedKey = obj.userid;
       
name.setValue(obj.username);
email.setValue(obj.email);
pic.setValue(obj.address);
dialog.addContent(panel);
dialog.open();
}
}
}
},
onCloseDialog: function(){
var dialog = sap.ui.getCore().byId("oDialog");
dialog.close();
selectedKey = null;
}

sekarang coba jalankan aplikasi dan semoga bermanfaat
terimakasih :D

ABAP CDS View Part 10 : Authorization & DCL untuk ABAP CDS

Authorization & DCL di ABAP CDS | Panduan Lengkap (PFCG, @AccessControl, DCL) Authorization & DCL untuk ABAP CDS — Pandua...