Form Login
Public Class FrmLogin
Dim db As New DataBaseOperation
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK.Click If TxtUsername.Text = "" Then
MessageBox.Show("Harap username diisi terlebih dahulu..!!", "Warning!!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TxtUsername.Focus()
ElseIf TxtPassword.Text = "" Then
MessageBox.Show("Harap password diisi terlebih dahulu..!!", "Warning!!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TxtPassword.Focus() Else Try Try db.data.Tables("user").Clear() Catch End Try
BscLogin.DataSource = db.openTable("select * from MSUser where username = '" & TxtUsername.Text.Trim.Replace$("'", "''") & "'", "user").Tables("user") If TxtPassword.Text = db.data.Tables("user").Rows(0).Item(1) Then If db.data.Tables("user").Rows(0).Item(2) = "admin" Then Try username = TxtUsername.Text db.openDb()
db.rubahData("update MSUser set LastLogin = getdate() where username = '" & username & "'")
db.closeDB() FrmUtama.Show() Me.Close()
MsgBox("Selamat Datang " & username & vbCr & "Status = Admin", MsgBoxStyle.Information, "Login Succces")
Catch
MessageBox.Show("Terdapat kesalahan
teknis..!!", "Warning!!", MessageBoxButtons.OK, MessageBoxIcon.Warning) End Try ElseIf db.data.Tables("user").Rows(0).Item(2) = "user" Then Try username = TxtUsername.Text db.openDb()
db.rubahData("update MSUser set LastLogin = getdate() where username = '" & username & "'")
db.closeDB() FrmUtama.Show()
FrmUtama.DTSToolStripMenuItem.Enabled =
False
Me.Close()
MsgBox("Selamat Datang " & username & vbCr & "Status = user", MsgBoxStyle.Information, "Login Succces")
Catch ex As Exception
MessageBox.Show("Terdapat kesalahan
teknis..!!", "Warning!!", MessageBoxButtons.OK, MessageBoxIcon.Warning) End Try
End If
Else
MsgBox("Password atau username salah!!", MsgBoxStyle.Critical, "Login Gagal")
End If
Catch
MsgBox("Username atau password salah", MsgBoxStyle.Critical, "Login Gagal")
TxtUsername.Focus() End Try
End If
End Sub
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel.Click Me.Close()
End Sub
Private Sub FrmLogin_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load db.openDb()
BscLogin.DataSource = db.openTable("select * from MSUser", "User").Tables("User")
db.closeDB() End Sub
End Class
Form Utama
Public Class FrmUtama
Dim db As New DataBaseOperation
Private Sub FrmUtama_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load Me.Text = "User : " & username End Sub
Private Sub ExitToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ExitToolStripMenuItem.Click Try
db.openDb()
db.rubahData("update MSUser set LastLogout = getdate() where username = '" & username & "'")
db.closeDB()
Application.Exit() Catch ex As Exception
MessageBox.Show("Terdapat kesalahan teknis..!!", "Warning!!", MessageBoxButtons.OK, MessageBoxIcon.Warning) End Try
End Sub
Private Sub LogOutToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
LogOutToolStripMenuItem.Click Try
db.openDb()
db.rubahData("update MSUser set LastLogout = getdate() where username = '" & username & "'")
db.closeDB() Me.Hide() username = "" FrmLogin.Show() Me.Close() Catch ex As Exception
MessageBox.Show("Terdapat kesalahan teknis..!!", "Warning!!", MessageBoxButtons.OK, MessageBoxIcon.Warning) End Try
End Sub
Private Sub UbahPasswordToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
UbahPasswordToolStripMenuItem.Click FrmUbahPassword.MdiParent = Me
FrmUbahPassword.Show()
FrmUbahPassword.BringToFront() End Sub
Private Sub DTSToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
DTSToolStripMenuItem.Click FrmDTS.MdiParent = Me
FrmDTS.Show()
FrmDTS.BringToFront() End Sub
Private Sub FactMaterialUsedToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
FactMaterialUsedToolStripMenuItem.Click FrmMaterialUsed.MdiParent = Me
FrmMaterialUsed.Show()
FrmMaterialUsed.BringToFront() End Sub
Private Sub FactProductionToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
FactProductionToolStripMenuItem.Click FrmFactProduction.MdiParent = Me
FrmFactProduction.Show()
FrmFactProduction.BringToFront() End Sub
Private Sub FactPembelianMaterialToolStripMenuItem_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
FactPembelianMaterialToolStripMenuItem.Click FrmFactPembelianMaterial.MdiParent = Me
FrmFactPembelianMaterial.BringToFront() End Sub
Private Sub FactMaterialQualityControlToolStripMenuItem_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
FactMaterialQualityControlToolStripMenuItem.Click FrmFactMaterialQualityControl.MdiParent = Me
FrmFactMaterialQualityControl.Show()
FrmFactMaterialQualityControl.BringToFront() End Sub
Private Sub FactPenjualanToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
FactPenjualanToolStripMenuItem.Click FrmFactPenjualan.MdiParent = Me
FrmFactPenjualan.Show()
FrmFactPenjualan.BringToFront() End Sub
Private Sub FactPenjualanToolStripMenuItem1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
FactPenjualanToolStripMenuItem1.Click
FrmschemaFactPenjualan.MdiParent = Me
FrmschemaFactPenjualan.Show()
FrmschemaFactPenjualan.BringToFront() End Sub
Private Sub FactPembelianMaterialToolStripMenuItem1_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
FactPembelianMaterialToolStripMenuItem1.Click FrmSchemaFactPembelianMaterial.MdiParent = Me FrmSchemaFactPembelianMaterial.Show() FrmSchemaFactPembelianMaterial.BringToFront() End Sub Private Sub
FactMaterialQualityControlToolStripMenuItem1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
FactMaterialQualityControlToolStripMenuItem1.Click
FrmSchemaFactMaterialQualityControl.MdiParent = Me
FrmSchemaFactMaterialQualityControl.Show()
FrmSchemaFactMaterialQualityControl.BringToFront() End Sub
Private Sub FactProductionToolStripMenuItem1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
FactProductionToolStripMenuItem1.Click
FrmSchemaFactProduction.MdiParent = Me
FrmSchemaFactProduction.Show()
FrmSchemaFactProduction.BringToFront() End Sub
Private Sub FactMaterialUsedToolStripMenuItem1_Click(ByVal sender
As System.Object, ByVal e As System.EventArgs) Handles
FactMaterialUsedToolStripMenuItem1.Click
frmSchemaFactMaterialUsed.MdiParent = Me
frmSchemaFactMaterialUsed.BringToFront() End Sub
Private Sub PrintReportToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
PrintReportToolStripMenuItem.Click FrmReport.MdiParent = Me
FrmReport.Show()
FrmReport.BringToFront() End Sub
Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles
MenuStrip1.ItemClicked End Sub
End Class
Form Material Quality Control
Public Class FrmFactMaterialQualityControl
Private Sub PivotGridControl1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PivotGridControl1.Click End Sub
Private Sub FrmFactMaterialQualityControl_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub
End Class
Form Material Used
Public Class FrmMaterialUsed
Private Sub PivotGridControl1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PivotGridControl1.Click End Sub
End Class
Form Pembelian Material
Public Class FrmFactPembelianMaterial
Private Sub PivotGridControl1_Click(ByVal sender As System.Object,
End Sub End Class
Form Penjualan
Public Class FrmFactPenjualan
Private Sub PivotGridControl1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PivotGridControl1.Click End Sub
End Class
Form Produksi
Public Class FrmFactProduction
Private Sub PivotGridControl1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PivotGridControl1.Click End Sub
End Class
Form Report
Public Class FrmReport
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As
System.Object, ByVal e As
System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles
WebBrowser1.DocumentCompleted End Sub
End Class
Form Schema Material Quality Control
Public Class FrmSchemaFactMaterialQualityControl
Private Sub FrmSchemaFactMaterialQualityControl_Load(ByVal sender
As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub
From Schema Production
Public Class FrmSchemaFactProduction
Private Sub FrmSchemaFactProduction_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub
End Class
From Schema Material Used
Public Class frmSchemaFactMaterialUsed
Private Sub frmSchemaFactMaterialUsed_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub
End Class
From Schema Pembelian Material
Public Class FrmSchemaFactPembelianMaterial
Private Sub FrmSchemaFactPembelianMaterial_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub
End Class
From Schema Penjualan
Public Class FrmschemaFactPenjualan
Private Sub FrmschemaFactPenjualan_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub
End Class
From DTS
Public Class FrmDTS
Private Sub FrmDTS_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load ComboBox1.SelectedIndex = 0 ComboBox3.SelectedIndex = 0 ComboBox4.SelectedIndex = 0 db.openDb()
db.openTable("select * from DimMaterial", "dgvDimMaterial") db.openTable("select * from DimProduct", "dgvDimProduct") db.openTable("select * from DimBuyer", "dgvDimBuyer") db.openTable("select * from DimSuplier", "dgvDimSuplier")
db.openTable("select * from FactPenjualan", "dgvFactPenjualan") db.openTable("select * from FactPembelianMaterial",
"dgvFactPembelianMaterial")
db.openTable("select * from FactProduction", "dgvFactProduction")
db.openTable("select * from FactMaterialQualityControl", "dgvFactMaterialQualityControl")
db.openTable("select * from FactMaterialUsed", "dgvFactMaterialUsed")
db.closeDB() End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick ProgressBar1.Increment(10)
If ProgressBar1.Value = 100 Then
If ComboBox1.SelectedItem = "DimMaterial" Then
db.openDb()
db.data.Tables("dgvDimMaterial").Clear()
db.openTable("select * from " & ComboBox1.SelectedItem & "", "dgvDimMaterial")
db.closeDB()
dgvD.DataSource = db.data.Tables("dgvDimMaterial") TextBox1.Text = dgvD.RowCount()
ElseIf ComboBox1.SelectedItem = "DimProduct" Then
db.openDb()
db.data.Tables("dgvDimProduct").Clear()
db.openTable("select * from " & ComboBox1.SelectedItem & "", "dgvDimProduct")
db.closeDB()
dgvD.DataSource = db.data.Tables("dgvDimProduct") TextBox1.Text = dgvD.RowCount()
ElseIf ComboBox1.SelectedItem = "DimBuyer" Then
db.openDb()
db.data.Tables("dgvDimBuyer").Clear()
db.openTable("select * from " & ComboBox1.SelectedItem & "", "dgvDimBuyer")
db.closeDB()
dgvD.DataSource = db.data.Tables("dgvDimBuyer") TextBox1.Text = dgvD.RowCount()
ElseIf ComboBox1.SelectedItem = "DimSuplier" Then
db.openDb()
db.openTable("select * from " & ComboBox1.SelectedItem & "", "dgvDimSuplier")
db.closeDB()
dgvD.DataSource = db.data.Tables("dgvDimSuplier") TextBox1.Text = dgvD.RowCount()
ElseIf ComboBox1.SelectedItem = "FactPenjualan" Then
db.openDb()
db.data.Tables("dgvFactPenjualan").Clear()
db.openTable("select * from " & ComboBox1.SelectedItem & "", "dgvFactPenjualan")
db.closeDB()
dgvD.DataSource = db.data.Tables("dgvFactPenjualan") TextBox1.Text = dgvD.RowCount()
ElseIf ComboBox1.SelectedItem = "FactPembelianMaterial"
Then
db.openDb()
db.data.Tables("dgvFactPembelianMaterial").Clear() db.openTable("select * from " & ComboBox1.SelectedItem & "", "dgvFactPembelianMaterial")
db.closeDB() dgvD.DataSource =
db.data.Tables("dgvFactPembelianMaterial") TextBox1.Text = dgvD.RowCount()
ElseIf ComboBox1.SelectedItem = "FactProduction" Then
db.openDb()
db.data.Tables("dgvFactProduction").Clear()
db.openTable("select * from " & ComboBox1.SelectedItem & "", "dgvFactProduction") db.closeDB() dgvD.DataSource = db.data.Tables("dgvFactProduction") TextBox1.Text = dgvD.RowCount() ElseIf ComboBox1.SelectedItem = "FactMaterialQualityControl" Then db.openDb() db.data.Tables("dgvFactMaterialQualityControl").Clear() db.openTable("select * from " & ComboBox1.SelectedItem & "", "dgvFactMaterialQualityControl")
db.closeDB() dgvD.DataSource =
db.data.Tables("dgvFactMaterialQualityControl") TextBox1.Text = dgvD.RowCount()
ElseIf ComboBox1.SelectedItem = "FactMaterialUsed" Then
db.openDb()
db.data.Tables("dgvFactMaterialUsed").Clear()
db.openTable("select * from " & ComboBox1.SelectedItem & "", "dgvFactMaterialUsed") db.closeDB() dgvD.DataSource = db.data.Tables("dgvFactMaterialUsed") TextBox1.Text = dgvD.RowCount() End If lblTabel.Text = ComboBox1.SelectedItem
TextBox2.Text = "Proses Etl Selesai, data sebanyak " & TextBox1.Text & " record telah masuk ke table " &
ComboBox1.SelectedItem Timer1.Stop() End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim a As String = Strings.Right(Label11.Text, 4) If Label11.Text = "??" Then
MessageBox.Show("Harap pilih DataSource terlebih
dahulu..!!", "Warning!!", MessageBoxButtons.OK, MessageBoxIcon.Warning) ElseIf ComboBox3.SelectedIndex = 0 Then
MessageBox.Show("Harap Nama server data warehouse dipilih terlebih dahulu..!!", "Warning!!", MessageBoxButtons.OK,
MessageBoxIcon.Warning)
ComboBox3.Focus()
ElseIf ComboBox4.SelectedIndex = 0 Then
MessageBox.Show("Harap Nama database data warehouse dipilih terlebih dahulu..!!", "Warning!!", MessageBoxButtons.OK,
MessageBoxIcon.Warning)
ComboBox4.Focus()
ElseIf ComboBox1.SelectedIndex = 0 Then
MessageBox.Show("Harap Nama table pada database dipilih terlebih dahulu..!!", "Warning!!", MessageBoxButtons.OK,
MessageBoxIcon.Warning)
ComboBox4.Focus()
ElseIf a <> ".xls" And a <> "xlsx" Then
MessageBox.Show("file tersebut bukan file excel, harap pilih file excel yang sesuai", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning) Else ProgressBar1.Value = 0 Timer1.Start() End If End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click OFDExcel.ShowDialog()
Dim x As String
x = OFDExcel.FileName.ToString() Label11.Text = x
End Sub
Private Sub GroupBox3_Enter(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles GroupBox3.Enter End Sub
From Ubah Password
Public Class FrmUbahPassword
Dim db As New DataBaseOperation Dim password As String
Private Sub FrmUbahPassword_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load db.openDb()
GroupBox2.Enabled = False
Label3.Text = username
bsc_password.DataSource = db.openTable("select * from MSUser where username='" & username & "'", "user").Tables("user")
db.closeDB() End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click db.openDb()
db.data.Tables("user").Clear()
bsc_password.DataSource = db.openTable("select * from MSUser where username='" & username & "'", "user").Tables("user")
db.closeDB()
If txtpw.Text = db.data.Tables("user").Rows(0).Item(1) Then
password = txtpw.Text GroupBox2.Enabled = True
GroupBox1.Enabled = False
ElseIf txtpw.Text = "" Then
MessageBox.Show("Password harus diisi harus diisi terlebih dahulu", "Warning!!")
Else
MessageBox.Show("Password Salah", "Warning!!") End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click txtpw.Text = ""
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click If TextBox1.Text = "" Then
MessageBox.Show("Password Baru harus diisi terlebih dahulu!!", "Warning!!")
ElseIf TextBox1.Text.Length < 5 Then
MessageBox.Show("Password baru tidak boleh kurang dari 5 karakter!!", "Warning!!")
ElseIf TextBox2.Text = "" Then
MessageBox.Show("Harap re-type password baru anda!!", "Warning!!")
ElseIf TextBox1.Text <> TextBox2.Text Then
MessageBox.Show("Harap masukan password baru anda dengan benar!!", "Warning!!")
Else
db.rubahData("update MSUser set password='" &
TextBox1.Text.Trim.Replace("'", "''") & "' where username='" & username & "'")
MessageBox.Show("Password anda telah terganti!!", "Succes") txtpw.Text = "" TextBox1.Text = "" TextBox2.Text = "" db.data.Tables("user").Clear() db.closeDB() GroupBox2.Enabled = False GroupBox1.Enabled = True End If End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click GroupBox2.Enabled = False
GroupBox1.Enabled = True
txtpw.Text = "" End Sub
End Class
Data Base Operation
Public Class DataBaseOperation
Dim con As New SqlClient.SqlConnection() Dim cmd As New SqlClient.SqlCommand() Dim da As New SqlClient.SqlDataAdapter() Dim ds As New DataSet
Dim koneksi As String
Public Sub openDb()
If Not con.State Then
koneksi = My.Settings.Koneksi.ToString con = New SqlClient.SqlConnection(koneksi) con.Open()
cmd.Connection = con End If
End Sub
Public Function openTable(ByVal query As String, ByVal a As String)
As DataSet cmd.CommandType = CommandType.Text cmd.CommandText = query da.SelectCommand = cmd da.Fill(ds, a) ds.AcceptChanges() openTable = ds End Function
Public Function data() As DataSet data = ds
End Function
If con.State Then
con.Close() End If
End Sub
Public Sub rubahData(ByVal q As String) cmd.CommandType = CommandType.Text cmd.CommandText = q da.UpdateCommand = cmd da.UpdateCommand.ExecuteNonQuery() End Sub End Class
Nasa Data Warehouse
use master
go
create database NasaDW
go
use NasaDW
CREATE TABLE [dbo].[MSUser](
[Username] [varchar](20) Primary Key,
[Password] [varchar](20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Role] [varchar](5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_MSUser_Role] DEFAULT ('user'),
[Kelamin] [char](1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Jabatan] [varchar](40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Agama] [varchar](20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Alamat] [varchar](150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[NoTelp] [varchar](30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[LastLogin] [datetime] NULL,
[LastLogout] [datetime] NULL,
[DateCreated] [datetime] NULL
)
create table DimProduct
(
IDProduct char(5) Primary Key,
Categories varchar(20) ,
NamaProduk varchar(70) ,
Ukuran varchar(2)
)
(
IDBuyer Char(4) Primary Key,
NamaBuyer varchar(50) , Location varchar(30) , Alamat varchar(30) , NoTelp Varchar(30) , Email Varchar(30) )
CREATE TABLE DimTime
(
[IDTime] [int] IDENTITY(1,1) NOT NULL Primary Key,
[date] [datetime] NULL,
[CalendarYear] [nvarchar](50) NULL,
[CalendarSemester] [int] NULL,
[CalendarQuarter] [int] NULL,
[EnglishMonthName] [varchar](50) NULL
)
create table dimSuplier
(
IDSuplier char(4) primary key,
SuplierName varchar(50) ,
Country varchar(30)
)
create table DimMaterial
(
IDMaterial char(7) Primary Key,
Materialname varchar(70) ,
MatCategory varchar(30)
)
Create table FactPenjualan
ID int identity Primary Key, IDPenjualan char(7) , IDProduct char(5) , IDTime int , IDBuyer Char(4) , OrderQty int , TotalHarga bigint ,
constraint FK_FactPenjualan_IDProduct foreign key (IDProduct) References DimProduct(IDProduct) on delete no action on update no action,
constraint FK_FactPenjualan_IDTime foreign key (IDTime) References DimTime(IDTime) on delete no action on update no action,
constraint FK_FactPenjualan_IDBuyer foreign key (IDBuyer) References DimBuyer(IDBuyer) on delete no action on update no action
)
create table FactPembelianMaterial
ID int identity Primary Key, IDPembelian char(7) , IDSuplier char(4) , IDMaterial char(7) , IDTime int , BuyQty int , TotalPrice bigint ,
constraint FK_FactPenmbelianMaterial_IDMaterial foreign key (IDMaterial) References DimMaterial(IDMaterial) on delete no action on update no action,
constraint FK_FactPenmbelianMaterial_IDTime foreign key (IDTime) References DimTime(IDTime) on delete no action on update no action,
constraint FK_FactPenmbelianMaterial_IDSuplier foreign key (IDSuplier) References DimSuplier(IDSuplier) on delete no action on update no action
)
create table FactProduction
ID int identity Primary Key,
IDProduction char(8) , IDProduct char(5) , IDTime int , JumlahProduksi int , JumlahGagalProduksi int , JumlahsuksesProduksi int ,
constraint FactProduction_IDProduct foreign key (IDProduct) References DimProduct(IDProduct) on delete no action on update no action,
constraint FactProduction_IDTime foreign key (IDTime) References DimTime(IDTime) on delete no action on update no action
)
create table FactMaterialUsed
(
ID int
identity Primary Key,
IDMaterial char(7) ,
IDTime int ,
Jumlahterpakai int ,
constraint FactMaterialUsed_IDMaterial foreign key (IDMaterial) References DimMaterial(IDMaterial) on delete no action on update no action,
constraint FactMaterialUsed_IDTime foreign key (IDTime) References DimTime(IDTime) on delete no action on update no action
)
create table FactMaterialQualityControl
(
ID int
identity Primary Key,
IDQualityControl char(7) ,
IDSuplier char(4) ,
IDMaterial char(7) ,
IDTime int ,
Jumlahretur int ,
jumlahKerugian int ,
constraint FactMaterialQualityControl_IDMaterial foreign key (IDMaterial) References DimMaterial(IDMaterial) on delete no action on update no action,
constraint FactMaterialQualityControl_IDTime foreign key (IDTime) References DimTime(IDTime) on delete no action on update no action,
constraint FactMaterialQualityControl_IDSuplier foreign key (IDSuplier) References DimSuplier(IDSuplier) on delete no action on update no action
)
--insert DimProduct
insert into DimProduct values('P0001','sport','Sepatu Bola Totti S42','42')
insert into DimProduct values('P0002','sport','Sepatu Volley Totti S42','42')
insert into DimProduct values('P0003','sport','Sepatu Bola Beckham S42','42')
insert into DimProduct values('P0004','sport','Sepatu Bola Beckham S41','41')
insert into DimProduct values('P0005','sport','Sepatu Bola Beckham S39','39')
insert into DimProduct values('P0007','casual','Giorgio Armani S42','42')
insert into DimProduct values('P0008','casual','Giorgio Armani S40','40')
insert into DimProduct values('P0009','casual','Giorgio Armani S38','38')
insert into DimProduct values('P0010','casual','Van Toffel S42','42')
insert into DimProduct values('P0011','casual','Van Toffel S37','37')
insert into DimProduct values('P0012','Sneaker','Adiddas Trofeo S37','37')
insert into DimProduct values('P0013','Sneaker','Nike total90 S41','41')
--insert DimBuyer
insert into DimBuyer values('B001','Adidas','German','jln ZZZZZ','982482911','adidas@ymail.com')
insert into DimBuyer values('B002','Nike','America','jln ZZZZZ','982482911','adidas@ymail.com')
insert into DimBuyer values('B003','Van Toffel','Holland','jln ZZZZZ','982482911','adidas@ymail.com')
insert into DimBuyer values('B004','Dolce Gabana','Italy','jln ZZZZZ','982482911','adidas@ymail.com')
insert into DimBuyer values('B005','Armani','Italy','jln ZZZZZ','982482911','adidas@ymail.com')
insert into DimBuyer values('B006','Vans','Holland','jln ZZZZZ','982482911','adidas@ymail.com')
insert into DimBuyer values('B007','Kappa','Italy','jln ZZZZZ','982482911','adidas@ymail.com')
insert into DimBuyer values('B008','Diadorra','Italy','jln ZZZZZ','982482911','adidas@ymail.com')
insert into DimBuyer values('B009','Pierro','Thailand','jln ZZZZZ','982482911','adidas@ymail.com')
insert into DimBuyer values('B010','Umbro','England','jln ZZZZZ','982482911','adidas@ymail.com')
--insert DimSuplier
insert into dimSuplier values('S001','Nelson sorrow Inc','Holland')
insert into dimSuplier values('S002','Multi Arrow Inc','Holland')
insert into dimSuplier values('S003','Black Dart Inc','America')
insert into dimSuplier values('S004','Black Mansion Inc','America')
insert into dimSuplier values('S006','el Pasienza Inc','Italy')
insert into dimSuplier values('S007','franc sombrero Inc','Italy')
insert into dimSuplier values('S008','De Boer Inc','German')
insert into dimSuplier values('S009','Mr Taksin Inc','Thailand')
insert into dimSuplier values('S010','Mandella Inc','South Africa')
--insert DimMaterial
insert into DimMaterial values('M000001','Tali Sepatu bola','Aksesoris')
insert into DimMaterial values('M000002','Tali Sepatu Sneaker','Aksesoris')
insert into DimMaterial values('M000003','Flasher','Aksesoris')
insert into DimMaterial values('M000004','Shining particle','Aksesoris')
insert into DimMaterial values('M000005','Tali Sepatu Wrap Up','Aksesoris')
insert into DimMaterial values('M000006','Tali Sepatu Fashion','Aksesoris')
insert into DimMaterial values('M000007','Snake Skin red','Room Material')
insert into DimMaterial values('M000008','Silk Skin white','Room Material')
insert into DimMaterial values('M000009','Silk Skin BLack','Room Material')
insert into DimMaterial values('M000011','Solid skin Grey','Room Material')
insert into DimMaterial values('M000012','Sol sepatu olahraga','semikal')
insert into DimMaterial values('M000013','Sol sepatu Casual','semikal')
insert into DimMaterial values('M000014','Sol Sepatu Sneaker','semikal')
--insert FactPenjualan insert into FactPenjualan(idPenjualan,IDProduct,IDTime,IDBuyer,OrderQty,TotalHarga) values('T000001','P0001',3,'B001',3000, 600000000) insert into FactPenjualan(idPenjualan,IDProduct,IDTime,IDBuyer,OrderQty,TotalHarga) values('T000001','P0002',3,'B001',3000, 600000000) insert into FactPenjualan(idPenjualan,IDProduct,IDTime,IDBuyer,OrderQty,TotalHarga) values('T000001','P0003',3,'B001',3000, 600000000) insert into FactPenjualan(idPenjualan,IDProduct,IDTime,IDBuyer,OrderQty,TotalHarga) values('T000002','P0004',423,'B002',2500, 500000000)
insert into FactPenjualan(idPenjualan,IDProduct,IDTime,IDBuyer,OrderQty,TotalHarga) values('T000002','P0005',423,'B002',2500, 500000000) insert into FactPenjualan(idPenjualan,IDProduct,IDTime,IDBuyer,OrderQty,TotalHarga) values('T000002','P0006',423,'B002',2500, 500000000) --insert FactPembelianMaterial insert into FactPembelianMaterial(IDPembelian,IDMaterial,IDTime,IDSuplier,BuyQty,TotalPrice) values('P000001','M000001',2,'S001',6000,30000000) insert into FactPembelianMaterial(IDPembelian,IDMaterial,IDTime,IDSuplier,BuyQty,TotalPrice) values('P000001','M000002',2,'S001',5000,26000000) insert into FactPembelianMaterial(IDPembelian,IDMaterial,IDTime,IDSuplier,BuyQty,TotalPrice) values('P000001','M000003',2,'S001',4000,22000000) insert into FactPembelianMaterial(IDPembelian,IDMaterial,IDTime,IDSuplier,BuyQty,TotalPrice) values('P000002','M000004',563,'S001',6000,30000000)
insert into FactPembelianMaterial(IDPembelian,IDMaterial,IDTime,IDSuplier,BuyQty,TotalPrice) values('P000002','M000005',563,'S001',5000,26000000) insert into FactPembelianMaterial(IDPembelian,IDMaterial,IDTime,IDSuplier,BuyQty,TotalPrice) values('P000002','M000006',563,'S001',4000,22000000) insert into FactPembelianMaterial(IDPembelian,IDMaterial,IDTime,IDSuplier,BuyQty,TotalPrice) values('P000003','M000007',861,'S003',6000,30000000) insert into FactPembelianMaterial(IDPembelian,IDMaterial,IDTime,IDSuplier,BuyQty,TotalPrice) values('P000003','M000008',861,'S003',5000,26000000) insert into FactPembelianMaterial(IDPembelian,IDMaterial,IDTime,IDSuplier,BuyQty,TotalPrice) values('P000003','M000009',861,'S003',4000,22000000) --insert FactProduksi insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000001','P0001',41,6000,800,5200)
insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000001','P0002',41,6000,800,5200) insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000001','P0003',41,6000,800,5200) insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000001','P0004',41,6000,800,5200) insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000002','P0001',541,7000,800,6200) insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000002','P0002',541,5000,500,4500) insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000003','P0003',841,6000,800,5200) insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000003','P0005',841,6000,800,5200)
insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000003','P0006',841,6000,800,5200) insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000003','P0007',841,6000,800,5200) insert into FactProduction(IDProduction,IDProduct,IDTime,JumlahProduksi,JumlahGagalProduksi ,JumlahsuksesProduksi) values('PR000003','P0008',841,6000,800,5200) --insert FactMaterialUsed
insert into FactMaterialUsed(IDTrMaterial,IDMaterial,IDTime,Jumlahterpakai) values('MU000001','M000001',67,6000)
insert into FactMaterialUsed(IDTrMaterial,IDMaterial,IDTime,Jumlahterpakai) values('MU000002','M000011',67,6000)
insert into FactMaterialUsed(IDTrMaterial,IDMaterial,IDTime,Jumlahterpakai) values('MU000003','M000013',67,6000)
insert into FactMaterialUsed(IDTrMaterial,IDMaterial,IDTime,Jumlahterpakai) values('MU000004','M000003',567,4000)
insert into FactMaterialUsed(IDTrMaterial,IDMaterial,IDTime,Jumlahterpakai) values('MU000005','M000009',567,4000)
insert into FactMaterialUsed(IDTrMaterial,IDMaterial,IDTime,Jumlahterpakai) values('MU000006','M000012',567,4000) --insert FactMterialQualityControl insert into FactMaterialQualityControl(IDQualityControl,IDSuplier,IDMaterial,IDTime,JumlahMa terialRusak,Jumlahretur,jumlahKerugian) values('QC00001','S001','M000001',103,200,200,0) insert into FactMaterialQualityControl(IDQualityControl,IDSuplier,IDMaterial,IDTime,JumlahMa terialRusak,Jumlahretur,jumlahKerugian) values('QC00001','S001','M000008',103,200,100,800000) insert into FactMaterialQualityControl(IDQualityControl,IDSuplier,IDMaterial,IDTime,JumlahMa terialRusak,Jumlahretur,jumlahKerugian) values('QC00001','S001','M000013',103,180,100,1200000) insert into FactMaterialQualityControl(IDQualityControl,IDSuplier,IDMaterial,IDTime,JumlahMa
terialRusak,Jumlahretur,jumlahKerugian) values('QC00002','S002','M000002',503,300,200,1000000) insert into FactMaterialQualityControl(IDQualityControl,IDSuplier,IDMaterial,IDTime,JumlahMa terialRusak,Jumlahretur,jumlahKerugian) values('QC00002','S002','M000012',503,250,150,2000000) insert into FactMaterialQualityControl(IDQualityControl,IDSuplier,IDMaterial,IDTime,JumlahMa terialRusak,Jumlahretur,jumlahKerugian) values('QC00003','S003','M000006',1103,250,150,1000000) insert into FactMaterialQualityControl(IDQualityControl,IDSuplier,IDMaterial,IDTime,JumlahMa terialRusak,Jumlahretur,jumlahKerugian) values('QC00003','S003','M000007',1103,250,150,4000000)
WAWANCARA PERUSAHAAN
1. Jelaskan sejarah singkat, visi & misi, struktur organisasi ! Jawab :
Sejarah singkat :
PT. NAGASAKTI PARAMASHOES INDUSTRY (NASA) merupakan salah satu perusahaan yang bergerak dibidang manufaktur, khususnya dalam pembuatan sepatu olahraga dengan merk NIKE. Logo NIKE berupa Swoosh yang berarti cepat, dengan maksud bahwa NIKE cepat mengikuti perkembangan jaman. PT NASA ini didirikan pada tanggal 12 Agustus 1988 dengan akte pendirian perseroan terbatas No. 58 diharapkan notaries Kartini Mulnyad, SH dan surat Pemberitahuan Ketua BKPM tentang persetujuan Presiden No. 71 / I / PMA / 1988, dengan tujuan berproduksi berdasarkan adanya pesanan (make to order). Dan dari pihak ini yang paling banyak melakukan pesanan adalah pihak NIKE selaku buyer. PT. NASA berlokasi di JL. Agarindo desa Sukamantri kecamatan Pasarkamis Tanggerang Jawa Barat dan didirikan di atas lahan 74.144 m2 dengan bangunan seluas 56000 m2.
Visi & Misi :
• Visi Perusahaan
1. Cepat respon kepada pelanggan.
2. Penelitian terus dilakukan dalam proses dan perbaikan mesin untuk kualitas yang lebih baik dan efisiensi.
3. Perusahaan terbaik untuk bekerja untuk (tujuan jangka stabil, inovatif, panjang, tempat Anda dapat tumbuh ke dalam, rekan-rekan yang baik, mendukung, pengakuan dan kompensasi yang adil, menantang).
• Misi Perusahaan
Untuk menjadi model peran global dalam olahraga dan manufaktur pakaian kasual dengan memberikan nilai terbaik bagi pelanggan kami mutlak.
Struktur Organisasi :
2. Apa spesifikasi software & hardware yg digunakan sampai saat ini ? Jawab :
Perangkat Keras (Hardware)
Perangkat keras (hardware) yang digunakan pada PT. NASA adalah sebagai berikut :
1. Satu buah komputer server dengan prosesor Pentium IV 3.06 GHz, memori 1 GB, dan harddisk 80 GB.
2. Lima belas komputer client dengan prosesor Pentium IV 1.8 GHz sampai 2.26 GHz, memori 256 GB, dan harddisk 40 GB.
3. Tujuh buah printer dot matric, dengan tipe LQ2180 sebanyak 3 buah dan LX-300 sebanyak 4 buah.
Perangkat Lunak (Software)
Piranti lunak yang digunakan untuk mendukung fungsi binis pada PT. NASA adalah sebagai berikut :
1. Sistem operasi Microsoft Windows XP ubtuk server dan client. 2. Microsoft Office 2000
3. Microsoft FoxPro
4. Microsoft SQL Server 2000 5. Microsoft Outlook Express
3. Bagaimana proses bisnis yg terjadi pada sistem penjualan, pembelian, Produksi ?
Jawab :
Sistem Penjualan :
Proses penjualan yang terjadi pada PT. NASA ini meliputi pembuatan sepatu yang dipesan oleh Buyer. Proses penjualan yang terjadi pada PT. NASA yaitu apabila ada pemesanan dari Buyer, maka Buyer dapat menghubungi PT. NASA dengan menggunakan telepon atau faksimile.
Apabila ada pemesanan dari Buyer terhadap sepatu maka terlebih dahulu
Buyer akan bertemu Bagian Penjualan untuk memberikan model dan spesifikasi
sepatu yang akan diproduksi yang berupa Product Forecast dan bernegosiasi kepada Bagian Penjualan. Setelah mendapatkan spesifikasi sepatu yang akan
dibuat maka Bagian Penjualan akan ke Bagian Gudang untuk melakukan penghitungan Bahan Material yang diperlukan.
Setelah melakukan penghitungan Bahan Material yang diperlukan maka Bagian Gudang akan membuat Product Material. Berdasarkan Product Material maka Bagian Penjualan akan membuat Product Specification dan akan menghubungi Buyer untuk membicarakan waktu dan biaya yang perlu dibayar untuk mengerjakan pemesanan tersebut. Apabila negosiasi berjalan lancar dan telah disetujui oleh Bagian Penjualan dan Buyers maka Bagian Penjualan akan membuat Tr Penjualan.
Sistem Pembelian :
Proses pembelian yang terjadi pada PT. NASA meliputi pembelian Bahan Material untuk proses produksi. PT. Nasa ini mempunyai 3 jenis bahan baku untuk melakukan produksi yang di ambil dari supplier-supplier yang berbeda. Bahan Material yang diperlukan untuk melakukan produksi yaitu Room Material, Semikal dan Accesories. Room Material ini berupa bahan untuk pembuatan upper sepatu, Semikal merupakan Bahan Material untuk pembuatan Outsol dan lem, sedangkan accesories merupakan bahan baku penunjang dalam pemproduksian sepatu, agar sepatu terlihat lebih bagus dan menarik.
Proses pembelian Bahan Material kepada Supplier yaitu PT. NASA melakukan pembelian jumlah bahan baku yang dibutuhkan melalui Production
Bahan Material yang diperlukan maka Bagian Pembelian akan membuat Tr Pembelian kepada Supplier.
Proses Produksi :
Proses produksi yang terjadi pada PT. NASA adalah setelah dilakukan pembelian dan Supplier mengirimkan Bahan Material ke Bagian Gudang PT. NASA. Setelah Bahan Material masuk ke dalam gudang maka Bagian Gudang akan melakukan pengecekan terhadap Bahan Material yang dikirim. Apabila ada Bahan Material yang rusak atau cacat maka bagian gudang akan membuat Surat Retur kepada Supplier. Setelah Supplier mendapatkan Surat Retur dari PT. NASA maka Supplier akan mengirimkan kembali dengan sejumlah Bahan Material yang rusak. Bahan Material yang rusak tidak dikembalikan karena Bahan Material tersebut diberikan supplier kepada PT. NASA. Apabila Bahan Material sudah tidak ada yang cacat atau rusak maka Bagian Gudang akan membuat Jadwal Produksi, Surat Produksi, Bahan Material dan Tr Penjualan ke Bagian Produksi. Setelah Bagian Produksi selesai melakukan produksi maka produk yang telah jadi, surat Production dan Tr Penjualan akan diberikan ke Bagian Quality Control untuk dilakukan pengecekan. Apabila terdapat produk yang gagal maka Bagian Quality Control akan membuat surat production failuer, serta mengembalikan Tr Penjualan dan produk yang gagal ke bagian produksi. Setelah produk yang tercantum pada Tr Penjulan telah lengkap dan tidak ada produk yang cacat maka Bagian Quality Control akan mengirimkan produk serta Tr Penjualan kepada Buyer.
4. Kebutuhan data dan informasi apa yg di butuhkan ? Jawab :
Laporan perusahaan saat ini hanya dapat menampilkan laporan produksi selama 1 tahun maka diperlukan laporan mengenai bagian produksi yang mencakup jumlah produk yang diproduksi, jumlah produksi yang cacat, dan jumlah bahan material, rata-rata rentang waktu dari bahan material masuk hingga sampainya produk di produksi yang dapat dilihat per periode waktu tertentu yang dapat dilihat per produk
Karena laporan perusahaan saat ini hanya dapat menampilkan laporan pembelian selama 1 tahun maka diperlukan laporan mengenai bagian pembelian yang mencakup kuantitas pembelian, total pembelian, penawaran harga terbaik yang diberikan oleh supplier, retur pembelian dan total bahan material yang diretur, rata-rata rentang waktu dari pemesanan bahan material hingga sampainya bahan material ke gudang yang dapat dilihat per periode waktu tertentu yang dapat dilihat per bahan material dan per supplier
Karena laporan perusahaan saat ini hanya dapat menampilkan laporan bagian penjualan selama 1 tahun maka diperlukan laporan mengenai bagian penjualan yang mencakup kuantitas penjualan produk, total penjualan produk, buyer yang paling sering melakukan pemesanan, dan produk yang paling banyak dipesan, rata-rata rentang waktu dari pemesanan produk hingga sampainya produk ke buyer yang dapat dilihat per periode waktu tertentu yang dapat dilihat per produk dan per buyer.
5. Siapa saja yg membutuhkan laporan transaksi penjualan, pembelian, Produksi ?
Jawab :
Yang membutuhkan laporan transaksi penjualan adalah Bagian Penjualan, Bagian Gudng, Buyer
Yang membutuhkan laporan transaksi pembelian adalah Bagian Pembelian, Supplier, Buyer
Yang membutuhkan laporan transaksi Produksi adalah Bagian Produksi, Supplier, Buyer, Bagian Quality Control, dan Bagian Gudang.
6. Masalah apa saja yg terjadi pada sistem penjualan, pembelian, dan Produksi?
Jawab :
Data transaksi penjualan, pembelian dan produksi yang masuk pada setiap minggunya mencapai ribuan transaksi, sehingga menyulitkan eksekutif dalam melakukan analisis untuk pengambilan keputusan. Untuk memudahkan eksekutif melakukan analisis, diperlukan data warehouse yg dapat men-summarized data-data transaksi dan menampilkannya dalam bentuk OLAP Dengan adanya data warehouse yg men-summarized seluruh data perusahaan
selama 5 tahun dan menampilkan laporan penjualan, pembelian, dan produksi dalam bentuk yg lebih dinamis, memungkinkan eksekutif melihat laporan sesuai kebutuhan informasi yang diperlukan dalam mengambil keputusan.
Sehingga data perusahaan yang berumur lebih dari 5 tahun dapat dimanfaatkan dengan lebih optimal
Laporan perusahaan saat ini hanya menampilkan laporan selama 1 tahun, sehingga tidak dapat membantu memberikan informasi yang diperlukan dalam analisa untuk mengambil keputusan. Dengan adanya data warehouse, dpt dihasilkan laporan yang bersifat summarized selama beberapa tahun sehingga dapat memberikan informasi dibutuhkan dalam analisa pengambilan keputusan
Laporan yang dimiliki perusahaan saat ini masih bersifat statis sehingga diperlukan waktu untuk membuat laporan baru jika terjadi perubahan pada laporan. Dengan adanya datawarehouse, laporan yang ditampilkan lebih bersifat dinamis.
7. Apa kendala dlm perusahaan. Sehingga perlu di buatkan data warehouse ? Jawab :
Datanya terlalu banyak, berupa tipe dan style Untuk membantu pengambilan keputusan Bagaimana mendapatkan barang secara ontime
8. Seberapa sering perush akan membuat laporan penjualan, pembelian, Produksi (per hari, minggu, bulan, tahun) ?
Jawab :
Pembuatan laporan penjualan, pembelian, Produksi dilihat per tahun, semester, bulan dan hari.