Selasa, 09 Oktober 2018

Talend Tutorial : Oracle to CSV with Custom Query

In this section i have Oracle Table and i want to use a custom query using aggregate function and store the result in csv file.

The job :
In the TOracleInput component, i defined the Attribute as follows, and in the Query i use "Select Gender, count(GENDER) FROM CHILDSTAT GROUP BY GENDER". The result will be 2 column, GENDER and count(GENDER) so we have to define a built in schema that contains 2 column. the first one is GENDER with string type and second column for storing count(GENDER) is integer type.


After that we have to define the component for OutputDelimited, the filename, row separator, and field separator.


the result is like this, GENDER will contain M for male and F for Female and the next column is the total of Male and Female.

Talend Tutorial : Create File Delimited in Talend

First, in the Repository menu select Metadata and it will show the sub like shown below. Right click on File Delimited then select Create File Delimited.


Enter the name, Purpose, and Description and then click next :


Next in the file click browse and find the file that you want. In this example i name my file pegawai.csv and it is located in D: and in the file viewer we can see the record of our file :


And then, we have to define the field separator, in this eample i use comma as field separator and enter as row separator. And in the Preview, i checked the Set heading row as column name because i defined the column name in the first row of the file.
After that we can see our record is properly served in table format and then click finish.


Membuat Koneksi R ke SQL SERVER

Buat bikin koneksi, kita pertama harus bikin koneksi dulu di ODBC data sources bro,
Jadi, disini udah ada koneksi ODBC sebelumnya yang namanya ODBCSQLServer, uid itu user id yang dipake pas setting ODBC nya bro, pwd juga password yang dipake sama user id yang lo bikin.

conn <- odbcConnect("ODBCSqlServer", uid = "sa", pwd = "Pokemon123321")

abis itu, kita coba bikin query buat ngambil data dari tabel di SQL Server bro, query nya disimpen di variabel data.

data <- "SELECT TOP 50 [CustomerKey], [FirstName], [LastName], [BirthDate], [MaritalStatus], [Gender], [EmailAddress], [yearlyIncome], [EnglishEducation], [EnglishOccupation]
FROM [AdventureWorksDW2014].[dbo].[DimCustomer]"

Terus, buat nampilin hasilnya pake perintah sqlQuery(connection, query) connectionnya disimpen di variabel conn, terus query nya disimpen di variabel data. query.result itu nama variabel buat nyimpen hasilnya bro.
odbcClose itu buat close koneksi,
dim(query.result) buat ngambil banyaknya kolom dan baris di dalam query.result ini.

query.result <- sqlQuery(conn, data)
odbcClose(conn)
dim(query.result)
query.result

Contoh Operator logika di R

Perhatikan, di bawah ini contoh operator logika di R. Dipake buat nentuin Bilangan yang di input itu ganjil atau genap.
Buat ngitungnya pake variabel modulus yaitu angka && 2, jadi kalo terus terusan dibagi 2 hasilnya 0, berarti itu bilangan genap, tapi kalo hasilnya bukan 0, berarti itu bilangan ganjil. 

Screenshot gambar pertama angka yang di input 10, jadi hasilnya Bilangan Genap :



Kalo pas di screenshot kedua ini angka yang dimasukin 7, jadi hasilnya Bilangan Ganjil :

Sabtu, 18 Agustus 2018

SQL Server Tutorial : Soal - Soal Northwind 3

Link download database Northwind disini.

-- Get all Customer where sorting by ContactName ASC

SELECT * FROM Customers
ORDER BY ContactName ASC



Pada contoh ini kita tinggal select * untuk menampilkan semua field, lalu pakai order by ContactName ASC, untuk menampilkan record dari yang contactname nya dimulai dari A - Z karena yang dipakai adalah ascending.


-- Get Total Customer and ContactTitle where ContactTitle = Owner

SELECT count(CustomerID), ContactTitle
FROM Customers
WHERE ContactTitle = 'Owner'
Group By ContactTitle



Dari tabel Customers dimana ContactTitlenya adalah 'Owner', sudah pasti pada field ContactTitle hanya akan menghasilkan satu record yaitu Owner, kemudian count(CustomerID), akan menghitung customerID yang ContactTitle nya owner, Group by untuk menggroup berdasarkan ContactTitle nya.


-- Get Get total Customer and ContactTitle where count > 1

SELECT count(CustomerID) as Jumlah, ContactTitle 
FROM Customers
GROUP BY ContactTitle
Having Count(CustomerID) > 1


Hampir sama seperti sebelumnya, disini kita akan menghitung Jumlah Customers berdasarkan ContactTitle nya, namun disini kondisinya adalah jika Count(CustomerID) > 1, maka itu harus dalam Having karena Where tidak bisa menggunakan aggregate function.


-- Get TotalCustomer and ContactTitle where Count = 1

SELECT count(CustomerID) as Jumlah, ContactTitle 
FROM Customers
GROUP BY ContactTitle
Having Count(CustomerID) = 1



Ini sama dengan yang diatas, namun yang diambil adalah yang jumlahnya = 1.


/* Create a report that shows the number of employees and customers from each city that has employees in it */

SELECT count(distinct EmployeeID) as TotalEmployees, count(distinct CustomerID) as TotalCustomer, a.City 
From Employees a
LEFT JOIN Customers b
on a.City = b.City
Group By a.City




Jumat, 17 Agustus 2018

SQL Server Tutorial : Soal - Soal Northwind 2

Kalau ada yang mau download database nya untuk latihan, bisa lihat post berikut.


-- Get CustomerID, CompanyName, ContactName, ContactTitle, Address where Country Mexico

SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address 
FROM Customers
WHERE Country = 'Mexico'



Pada soal diatas, kita diminta menampilkan CustomerID, CompanyName, ContactName, ContactTitle, dan Address dimana Country nya adalah Mexico. Jadi untuk select nya kita tinggal select field - field yang mau ditampilkan, from Customers karena tabel yang dipakai adalah tabel Customers dan semua field itu ada di tabel Customers jadi tidak usah join joinan.
Kemudian, untuk kondisinya menggunakan where Country = 'Mexico' agar mendapatkan record yang countrynya Mexico.


-- Get CustomerID, CompanyName,ContactName, ContactTitle, Address where ContactName like 'AN%'

SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address 
FROM Customers
WHERE ContactName LIKE 'AN%'



Nah, untuk yang ini kita ingin menampilkan CustomerID, CompanyName, ContactName, ContactTitle, dan Address dimana ContactName like 'AN%'. Dalam kondisi like ini ada tanda % di belakang AN, jadi kita mau tampilkan yang ContacName nya diawali dengan AN. bisa dilihat di hasilnya CompanyName depannya AN semua.

-- Get No Fax if fax = NULL from Customers
SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, 
(CASE
WHEN Fax IS NULL THEN 'No Fax'
ELSE Fax
END) AS FaxNumber 
FROM Customers



Kalo kita select * di tabel Customers maka ada beberapa record Fax yang isinya NULL. Nah, disini kita diminta untuk mengganti NULL itu dengan 'No Fax'. Jadi caranya dengan membikin case yang akan mengisi field bernama FaxNumber.


-- Get All ContactTitle From Customers

Select distinct ContactTitle From Customers



Nah, disini kita diminta menampilkan ContactTitle tapi jangan ada yang rangkap. Kalo kita pake Select ContactTitle, maka yang muncul semua ContactTitle sebanyak record yang ada, Tapi kita disini cuma ingin tau ContactTitle apa aja yang ada, jadi bisa dilakukan dengan menggunakan Select distinct ContactTitle.


-- Get All Customer where sorting by Contact Name Desc

Select * FROM Customers
ORDER BY ContactName DESC


Nah ini kita tinggal select semuanya trus di order by ContactName desc


Rabu, 15 Agustus 2018

SQL Server Tutorial : Soal - Soal Northwind 1

Kalo ada yang mau download databasenya untuk latihan, cek post berikut.

-- Get Employee FullName

SELECT FirstName + ' ' + LastName as FullName FROM Employees 



Soal yang pertama kita diminta untuk menggabungkan nama depan dan nama belakang di dalam satu field, ini kita tinggal gabung pakai tanda + trus kasih spasi didalam tanda ' '.
-- Get Data Employee Name and Address where Title as Sales Manager

SELECT FirstName + ' ' + LastName as FullName, Address
FROM Employees
WHERE Title = 'Sales Manager'




-- Get Employee Name, Position, and Address where BirthDate = 1952-02-19 00:00:00:00

SELECT FirstName + ' ' + LastName, Title, Address  
FROM Employees
WHERE BirthDate = '1952-02-19'




-- Get All EMployees where hiredate between '1992-05-01' AND '1993-05-01'

SELECT * From Employees
WHERE HireDate BETWEEN '1992-05-01' AND '1993-05-01'




-- Find the number of sales representative in each city that contains at least 1 sales representatives.
Order by the number of employees

SELECT City, count(Title) as TotalEmployee from Employees
where Title = 'Sales Representative'
Group by City



Untuk soal yang ini kita diminta untuk menampilkan pegawai yang jabatannya 'Sales Representative' dari masing - masing kota. Untuk itu, menggunakan count(title) untuk menghitung jumlah titlenya. Kemudian setelah where ada group by city, jadi yang count(title) tadi akan di group berdasarkan masing - masing kota sehingga didapat hasil seperti diatas.

Selasa, 14 Agustus 2018

SQL Server Tutorial : Soal - Soal NorthWind

Saya akan mencoba share Database Northwind yang akan kita gunakan dalam Latihan - Latihan.
Link untuk downloadnya DISINI

Diagram Relasi dari Northwind itu seperti ini :

Silahkan di download dulu databasenya. Untuk soal-soal latihannya nanti nyusul di postingan selanjutnya ya.

Rabu, 25 Juli 2018

Python : Program Nilai Sederhana dengan Python




Hasilnya :




Terima Kasih.....

SQL Server : INSERT

Insert berguna untuk menginput data kedalam tabel.

Dalam contoh dalam gambar, kita akan menginput data kedalam tabel Pegawai :


Dalam contoh diatas, kita menginput beberapa record kedalam tabel Pegawai. Sebelum menginput recordnya, kita menyusun dulu field- fieldnya sehingga record yang diinput disusun mengikuti susunan record tersebut.

Bisa juga kita tidak mendefinisikan fieldnya terlebih dahulu dengan langsung memasukkan valuenya seperti berikut :
Dalam contoh diatas kita tidak memasukkan fieldnya terlebih dahulu. Jika seperti ini, maka susunan fieldnya mengikuti susunan didalam definisi tabelnya. Dalam contoh ini, susunannya sama seperti pada contoh sebelumnya.

Terima Kasih......

SQL Server : Alias

ALIAS digunakan untuk mengganti nama kolom yang akan ditampilkan.

Langsung saja, perhatikan contoh berikut :


Dalam contoh diatas, terdapat 2 buah field yaitu FirstName yang merupakan nama depan dan LastName yang merupakan nama belakang. Bagaimana jika kita ingin menampilkan nama lengkap dalam satu kolom yang berarti menggabungkan FirstName dan LastName? bisa dengan menggabungkan kedua field dan kita berikan alias :


Bisa kita lihat pada gambar diatas, FirstName dan LastName digabungkan dan hasilnya ditampilkan dalam kolom FullName. Namun, ALIAS juga bisa digunakan untuk mengganti field biasa. Kita hanya tinggal memberikan AS [namabaru] pada field yang akan digantikan.

SQL Server : SELECT dan WHERE

- SELECT
Statement SELECT digunakan untuk menampilkan data dari dalam tabel. Bentuknya seperti berikut :

SELECT [namakolom]
FROM [namatabel]

Untuk contohnya, saya akan memakai tabel Employees yang telah saya buat sebelumnya. Jika anda masih kurang paham dalam membuat Database dan tabel, silahkan kunjungi SQL Server : Membuat Database dan Tabel.
Jika menggunakan SELECT * maka otomatis akan mengambil seluruh data yang ada didalam tabel. Untuk menampilkan kolom kolom yang diinginkan saja, masukkan nama fieldnya antara SELECT dan FROM dengan dipisahkan tanda koma (,) seperti gambar berikut :
Bisa Dilihat, dalam contoh diatas kita hanya mengambil EmpID, DeptID, FirstName, dan LastName dari tabel Employee2.

- WHERE
WHERE digunakan sebagai kondisi saat kita akan mengambil data. WHERE ditempatkan setelah FROM :

SELECT [namakolom]
FROM [namatabel]
WHERE [kondisi]

Contoh pertama :
Dalam contoh pertama, kondisinya adalah DeptID = 1, jadi yang ditampilkan hanya yang mempunyai DeptID 1. 

Contoh Kedua :
Dalam contoh kedua, kondisinya adalah LastName nya 'Johnson'. Karena field LastName merupakan karakter, jadi kita harus memberi tanda kutip seperti gambar diatas.

Terima Kasih.......

SQL Server : Membuat Database dan Tabel

1. Membuat Database di SQL Server

Pertama, Lihat Object Exploler di samping kiri tampilan. Disitu terdapat folder Database, klik kanan folder tersebut lalu klik New Database seperti gambar diatas.
Kemudian akan muncul form tampilan seperti gambar diatas, beri nama database kamu di bagian Database name. Pada contoh gambar diatas nama databasenya adalah Latihan. Kemudian klik OK.
Setelah itu, klik tanda + disamping Folder database pada Object Exploler. Akan ada folder database yang kita buat yaitu latihan.

NOTE : Jika database yang telah dibuat belum muncul juga, klik refresh (tanda panah memutar keatas) sampai database tampil.

2. Membuat Tabel
Untuk membuat tabel, klik tanda + pada database yang dipilih ( disini database Latihan) maka akan muncul folder Table. Klik kanan pada folder table tersebut lalu pilih New kemudian klik Table.

Setelah itu, masukkan field - field yang ingin kamu buat dalam tabel tersebut berikut tipe datanya. Kolom Allow Nulls bila dicentang maka memungkinkan field tersebut untuk kosong saat pengisian data nantinya.
Dalam gambar diatas, saya memasukkan field ID, NamaDepan, NamaBelakang, Pendidikan, Posisi, dan Gaji.

TIPS : 
- Untuk membuat nama field, disarankan jangan terlalu panjang tetapi jangan juga disingkat terlalu    pendek.  
contoh: NamaDepan lebih baik daripada kita menyingkatnya menjadi NmDpn.

Untuk menset Primary Key, klik kanan di samping kolom yang akan dijadikan primary key. Dalam contoh diatas saya menset ID sebagai primary key. Dan perlu diingat, bahwa untuk primary key allow nulls nya jangan di ceklis.
Setelah itu klik tombol save yang bergambar floppy disk. Lalu namai tabel tersebut seperti gambar diatas. 
Bisa dilihat, jika di klik tanda + dalam Tables akan ada dbo.Pegawai atau tabel yang baru saja kita buat.


Terima Kasih.........