Tugas Akhir yang berkonsep Azure

Pengembangan Aplikasi dilakukan untuk dikembangkan dilingkungan azure cloud computing

Produk-produk Tugas Akhir Cloud Computing

Terdiri dari aplikasi E-Health, Location Based: Ur-Building, Mobile-Building

Cloud Apps Location Based: UR-Building

Sebuah aplikasi location based, yang berhubungan dengan lokasi atau letak sebuah gedung

Cloud Apps Location Based: Mobile-Building

Sebuah aplikasi mobile yang menghadirkan ratusan informasi gedung di saku anda

Cloud Apps Health

Sebuah Aplikasi kesehatan, yang dapat membantu anda dimana pun anda berada

Thursday, March 21, 2013

Serial Video - Pembuatan Media Konsultasi Forum

Berdasarkan pengamatan langsung di lapangan, forum diskusi antar anggota sangat dibutuhkan. Berdasarkan hal tersebut diambil kesimpulan untuk pengembangan sebuah media konsultasi berup forum. Berdasarkan perumusan maslaah dan kebutuhan sistem. Dikembangkan lah sebuah media konsultasi. Video penjelasan mengenai fitur tersebut adalah

Wednesday, March 20, 2013

Serial Video - Pembuatan Form Upload Video

Salah satu fitur user generated content yang ditawarkan oleh project e-health adalah forum upload video dan upload images. Fitur upload video memberikan kemudahan bagi user untuk sharing content video dengan user lainnya.. Penjelasan mengenai sistem upload video dan player video akan dijelaskan secara gamblang di video series dibawah ini

Tuesday, March 19, 2013

Serial Video - Mapping Database

Database menjadi fundamental aspek dari keseluruhan aspek pengembangan aplikasi. Seluruh kebutuhan dan informasi mengenai aplikasi disimpan disini. Oleh sebab itu dibutuhkan perancangan database yang mampu menghandle request dari client di waktu serempak secara bersamaan. E-Health sendiri memiliki perancangan database yang detail. Untuk melihat video perancangan dan penjelasan mapping database, dapat dilihat pada video dibawah ini

Menampilkan Pemetaan pada Windows Phone dengan Framework Phonegap


Setelah kita dapa membuat aplikasi windows phone dengan framework phonegap. Kita akan belajar menampilkan pemetaan atau maps pada windows phone, service yag kita gunakan adalah dengan pemetaan dari google (gmaps). Pada studi kasus ini kita menggunakan service gmaps versi 2 (gmaps2).

Kita akan mulai dengan memulai dengan mendapatjan file `gmaps.js` yang bias anda dapatkan di internet, kemudian letakkan file tersebut kedalam folder project anda. Kemudian include file tersebut pada file yang akan menampilkan maps dengan menuliskannya seperti ini.

          <script type="text/javascript" src="jquery/gmaps.js"></script>

Kemudian tulislah pada bagian content letak maps akan ditampilkan seperti berikut.

           <div id="map"></div>

Bagian div tersebut yang akan diletakkan pemetaan, id pada tag div tersebut disesuaikan dengan script yang kita gunakan. Kemudian letakkan script berikut.

var map;
map = new GMaps({
el: '#map',
            lat: -12.039321,
            lng: 117.509766
});

Script tersebut akan menampilkan maps sesuai posisi latitude dan longitude yang anda inputkan. Berikut contoh maps yang telah ditampilkan pada windows phone.

Terimakasih, semoga bermanfaat :)

Proses Edit informasi tempat atau Gedung pada UR-Building

Untuk memenuhi konsep UGC (User Generate Content) pada website UR-Building. Maka user yang telah mendaftar dan memposting informasi haruslah dapat mengedit informasi tersebut. Dan salah satu informasi yang di posting user adalah terkait info tempat atau gedung. Langkah ini dapat mengurangai resiko kesalahan terhadap data sehingga data akan terus mengalami perbaikan. berikut adalah contoh penjelasan proses edit gedung yang telah di posting oleh salah seorang user.

Membuat Fungsi Autocomplete pada form search UR-Building

Pada sisi frontend web site Ur-Building terdapat form search tempat atau gedung yang akan memudahkan user dalam proses pencarian tempat. Namun terkadang user kebingungan menuliskan kata kunci dalam pencarian gedung atau tempat. Sehingga kami membuat fungsi tambahan berupa Autocomplete, yang akan menampilkan daftar tempat atau gedung sesuai dengan beberapa huruf yang di inputkan kedalam form. Berikut adalah penjelasan dan tutorial pembuatan form autocomplete pada asp menggunakan bahasa C#..

UR-Review

penjelasan umum tentnag UR-Review pada UR-Building :


Form Login

Video ini menjelaskan tentang form login :


Form Register


Video ini merupakan penjelasan umum Form Register pada manajemen user pada aplikasi informasi website UR-Building  :


Sistem Manajemen User Pada Website E-Health

Website E-Health dilengkapi dengan sistem management user yang membuat role access terbagi menjadi tiga yaitu admin, dokter dan member dimana setiap user dapat dikenali menggunakan sebuah session id yang di enkripsi ketika user melakukan login pertama kali ke dalam website. Berikut adalah pengujian pada seluruh halaman management user yang ditampilkan pula beserta dengan UI yang telah disesuaikan dengan content/fitur-fitur yang terdapat di dalam website : Form Registrasi Untuk dapat masuk dan menjelajahi menu di dalam website E-Health, user yang belum terdaftar diharuskan untuk melakukan registrasi terlebih dahulu seperti yang terlihat pada gambar dibawah ini :

 
Berikut ini adalah program untuk form Registrasi.aspx.cs :
public partial class Registrasi : System.Web.UI.Page


{

protected void Page_Load(object sender, EventArgs e)
 


{

if (IsPostBack)

{
onnection(ConfigurationManager.ConnectionStrings["forumssConnectionString1"].ConnectionString);
            con.Open();
            str

SqlConnection con = new Sql
Cing cmdStr = "Select count(*) from DMG_MEMBERS where MEMBER_USERNAME='" + TextBoxUN.Text + "'";
            SqlCommand userExist = new SqlCommand(cmdStr, con);
esponse.Write("Username already exist");
            }
        }
    }    
  

int temp = Convert.ToInt32(userExist.ExecuteScalar().ToString());
            con.Close();
            if (temp == 1)
            {
                
R  protected void Submit_Click(object sender, EventArgs e)
    {
        /*string pass = TextBoxPass.Text;
        MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
        Byte[] hashedBytes;
mssConnectionString1"].ConnectionString);
        

UTF8Encoding encoder = new UTF8Encoding();
        hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(pass));*/
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["for
ucon.Open();
g insCmd = "Insert into [forumss].[dbo].[DMG_MEMBERS] (MEMBER_USERNAME, MEMBER_PASSWORD,MEMBER_LEVEL,MEMBER_REALNAME,MEMBER_EMAIL, Roles, SessionId,Country) values (@MEMBER_USERNAME, @MEMBER_PASSWORD,@MEMBER_LEVEL,@MEMBER_REALNAME,@MEMBER_EMAIL, @Roles, @SessionId,@Country)";
        SqlC

stri
nommand insertUser = new SqlCommand(insCmd, con);
        insertUser.Parameters.AddWithValue("@MEMBER_USERNAME", TextBoxUN.Text);
        insertUser.Parameters.AddWithValue("@MEMBER_PASSWORD", TextBoxPass.Text);
        insertUser.Parameters.AddWithValue("@MEMBER_LEVEL", "1");
ext);
        insertUser.Parameters.AddWithValue("@Country", DropDownListCountr

insertUser.Parameters.AddWithValue("@MEMBER_REALNAME", TextBoxFN.Text);
        insertUser.Parameters.AddWithValue("@Roles", "members");
        insertUser.Parameters.AddWithValue("@SessionId", "");
        insertUser.Parameters.AddWithValue("@MEMBER_EMAIL", TextBoxEA.
Ty.SelectedValue);

        try
        {
            insertUser.ExecuteNonQuery();
            con.Close();
            Response.Redirect("login.aspx");
        }
        catch (Exception er)
        {
            //Response.Write("Something really bad happenned. Please try again");
            //Response.Write(er.Message);
xEA.Text = "";
        TextBoxFN.Text = "

lblWarning.Text = er.Message;
            clearText();
        }
        finally
        {
            //Boleh ditambahkan action yg lain lagi disini yaa....
        }
    }
    private void clearText()
    {
        TextBoxUN.Text = "";
        TextBoxPass.Text = "";
        TextBoxRPass.Text = "";
        TextB
o";
    }

}
Kemudian data yang diregistrasi akan masuk kedalam database, namun session id yang digunakan sebagai User Identity belum ter-enkripsi dikarenakan user belum melakukan login. Session id akan ter-generate dengan otomatis ketika user melakukan login pada saat pertama kali seperti yang terlihat pada gambar dibawah ini :
 


Berikut ini program Login.aspx.cs :
    protected void BtnLongIn_Click(object sender, EventArgs e)
    {
        if (!Convert.ToBoolean(AuthenticateUsers.ValidateUser(txtUsername.Text, txtPassword.Text, chckRemember.Checked)))
        {
            LtrError.Visible = true;
        }
    }
Berikut ini program AuthenticateUsers.cs
    public class AuthenticateUsers
    {
     
        public static bool ValidateUser(string userName, string passWord, bool rememberMe)
        {

            string userData = ValidateCredential(userName,passWord);

            if (userData == string.Empty)
            {
                return false;
            }


            HttpContext.Current.Session.Abandon();
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2, userName, DateTime.Now, DateTime.Now.AddMinutes(90), rememberMe,userData , FormsAuthentication.FormsCookiePath);
            string hash = FormsAuthentication.Encrypt(ticket);
            HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
            if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
            HttpContext.Current.Response.Cookies.Add(cookie);
            string returnUrl = HttpContext.Current.Request.QueryString["ReturnUrl"];
            if (returnUrl == null) returnUrl = FormsAuthentication.DefaultUrl.ToString();
            HttpContext.Current.Response.Redirect(returnUrl);
            return true;
        }

        private static string ValidateCredential(string userName, string passWord)
        {
           /* MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
            Byte[] pass;
            UTF8Encoding encoder = new UTF8Encoding();

            pass = md5Hasher.ComputeHash(encoder.GetBytes(passWord));*/
            using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["forumssConnectionString1"].ConnectionString))
            {
                using (SqlCommand command = new SqlCommand("DMG_MEMBERS_CheckUser", connection))
                {
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.AddWithValue("@MEMBER_USERNAME", userName);
                    command.Parameters.AddWithValue("@MEMBER_PASSWORD", passWord);
                    connection.Open();
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        if (reader.Read())
                        {   
                            //fungsi ini akan menyimpan roles, userid, fullname dan token di dalam userdata yang kemudian di enkrip menjadi session id
                            return reader["roles"] + "|" + reader["MEMBER_ID"] + "|" + reader["FullName"] + "|" + SingleSession.CreateAndStoreSessionToken(userName); 

                        }
                    }

                }
            }

            return string.Empty;   
        }
    }

Berikut ini program SingleSession.cs :
public static class SingleSession
{
    public static string CreateAndStoreSessionToken(string userName)
    {

        string sessionToken = Guid.NewGuid().ToString(); //fungsi ini untuk mengenerate session secara acak
        using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["forumssConnectionString1"].ConnectionString))
        {
            using (SqlCommand command = new SqlCommand("DMG_MEMBERS_SetSessionId", connection))
            {
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@MEMBER_USERNAME", userName);
                command.Parameters.AddWithValue("@SessionId", sessionToken);
                connection.Open();
                command.ExecuteNonQuery();
                connection.Close();
            }
        }
        return sessionToken;
        
    }

    public static string GetStorSessionToken(string userName)
    {
        string returnStoredSession = string.Empty;
        using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["forumssConnectionString1"].ConnectionString))
        {
            using (System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand("DMG_MEMBERS_GetUserSession", connection))
            {
                command.CommandType = System.Data.CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@MEMBER_USERNAME", userName);
                connection.Open();
                System.Data.SqlClient.SqlDataReader datareader = command.ExecuteReader();
                if (datareader.Read())
                {
                    returnStoredSession = datareader[0].ToString();
                }
                connection.Close();
            }
        }

        return returnStoredSession;
    }
}
Berikut ini program UserIdentity.cs :
public class ExpressionBuilderIdentity : ExpressionBuilder
    {
        public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
        {
            var targetClass = new CodeTypeReferenceExpression(typeof(ExpressionBuilderIdentity));
            const string targetMethod = "GetIdentity";
            CodeExpression methodParameter = new CodePrimitiveExpression(entry.Expression.Trim());
            return new CodeMethodInvokeExpression(targetClass, targetMethod, methodParameter);
        }
        public static object GetIdentity(string param)
        {
            var userId = "-1";
            var name = "Pengunjung!";
            var username = string.Empty;
            var roles = string.Empty;


            if (HttpContext.Current.User != null && HttpContext.Current.User.Identity.IsAuthenticated && HttpContext.Current.User.Identity is FormsIdentity )
            {
               
                        var id = (FormsIdentity)HttpContext.Current.User.Identity;
                        var ticket = id.Ticket;
                        var userData = ticket.UserData;
                        var arrUserdata = userData.Split('|');
                        roles = arrUserdata[0];
                        userId = arrUserdata[1];
                        name = arrUserdata[2];
                        username = HttpContext.Current.User.Identity.Name;

             
            }

            if (param.ToLower().Equals("userid"))
            {
                return userId;

            }

            if (param.ToLower().Equals("name"))
            {
                return name;

            }

            if (param.ToLower().Equals("roles"))
            {
                return roles;

            }
            return param.ToLower().Equals("username") ? username : string.Empty;
        }

    }
Setelah melakukan login, user telah dikenali dengan menggunakan session, kemudian akan ditampilkan halaman user dengan menu-menu sesuai dengan hak aksesnya gambar dibawah ini :

  • Menu Member :
  • Menu Dokter :
  • Menu Admin :
Setelah memasukkan alamat email, dalam beberapa menit password akan dikirimkan ke email user yang telah didaftarkan seperti gambar dibawah ini :




Berikut ini program Form ForgotPassword.aspx.cs :
protected void btnPass_Click(object sender, EventArgs e)
    {
        //Create Connection String And SQL Statement
        string strConnection = ConfigurationManager.ConnectionStrings["forumssConnectionString1"].ConnectionString;
        string strSelect = "SELECT MEMBER_USERNAME,MEMBER_PASSWORD FROM DMG_MEMBERS WHERE MEMBER_EMAIL = @MEMBER_EMAIL";

        SqlConnection connection = new SqlConnection(strConnection);
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        command.CommandType = CommandType.Text;
        command.CommandText = strSelect;

        SqlParameter email = new SqlParameter("@MEMBER_EMAIL", SqlDbType.VarChar, 50);
        email.Value = txtEmail.Text.Trim().ToString();
        command.Parameters.Add(email);

        //Create Dataset to store results and DataAdapter to fill Dataset
        DataSet dsPwd = new DataSet();
        SqlDataAdapter dAdapter = new SqlDataAdapter(command);
        connection.Open();
        dAdapter.Fill(dsPwd);
        connection.Close();
        if (dsPwd.Tables[0].Rows.Count > 0)
        {
            MailMessage loginInfo = new MailMessage();
            loginInfo.To.Add(txtEmail.Text.ToString());
            loginInfo.From = new MailAddress("YourID@gmail.com");
            loginInfo.Subject = "Informasi Forgot Password";

            loginInfo.Body = "Username : " + dsPwd.Tables[0].Rows[0]["MEMBER_USERNAME"] + "

Password : " + dsPwd.Tables[0].Rows[0]["MEMBER_PASSWORD"] + "";
            loginInfo.IsBodyHtml = true;
            SmtpClient smtp = new SmtpClient();
            smtp.Host = "smtp.gmail.com";
            smtp.Port = 587;
            smtp.EnableSsl = true;
            smtp.Credentials = new System.Net.NetworkCredential("kelompokcloudcomputing@gmail.com", "123cloud");
            smtp.Send(loginInfo);
            lblMessage.Text = "Password telah terkirim ke email anda, silahkan login kembali";
            txtEmail.Text = "";
        }
        else
        {
            lblMessage.Text = "Alamat email tidak ter-register";
        }
    }
Untuk user yang ingin merubah password, juga dapat menggunakan form Update Password seperti pada gambar dibawah ini :
 


Berikut ini program UpdatePassword.aspx.cs :
    protected void Page_Load(object sender, EventArgs e)
    {
        this.pnlProfile.Visible = true;
        this.pnlFinish.Visible = false;
    }

    protected void ShowDataInfo()
    {
        SqlConnection objConn = null;
        string strConnString = null;
        StringBuilder strSQL = default(StringBuilder);
        SqlCommand objCmd = null;
        SqlDataReader dtReader = null;


        //*** Open Connection ***'
        strConnString = ConfigurationManager.ConnectionStrings["forumssConnectionString1"].ConnectionString; ;
        objConn = new SqlConnection();
        objConn.ConnectionString = strConnString;
        objConn.Open();

        //*** Get Data ***'
        strSQL = new StringBuilder();
        strSQL.Append(" SELECT * FROM DMG_MEMBERS ");
        strSQL.Append(" WHERE MEMBER_USERNAME = @MEMBER_USERNAME ");
        objCmd = new SqlCommand(strSQL.ToString(), objConn);
        objCmd.Parameters.Add("@MEMBER_USERNAME", SqlDbType.VarChar).Value = Session["MEMBER_USERNAME"];
        dtReader = objCmd.ExecuteReader();

        if (dtReader.HasRows)
        {
            dtReader.Read();
            this.txtFullName.Text = dtReader["MEMBER_REALNAME"].ToString();
            this.txtEmail.Text = dtReader["MEMBER_EMAIL"].ToString();
            this.DropDownListCountry.Text = dtReader["Country"].ToString();
        }

        dtReader.Close();
        objConn.Close();
        objConn = null;

    }

    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        SqlConnection objConn = null;
        string strConnString = null;
        StringBuilder strSQL = default(StringBuilder);
        SqlCommand objCmd = null;
        int intCount = 0;

        //*** Open Connection ***//
        strConnString = ConfigurationManager.ConnectionStrings["forumssConnectionString1"].ConnectionString; ;
        objConn = new SqlConnection();
        objConn.ConnectionString = strConnString;
        objConn.Open();

        //*** Check Email exists ***//
        strSQL = new StringBuilder();
        strSQL.Append(" SELECT COUNT(*) FROM DMG_MEMBERS ");
        strSQL.Append(" WHERE MEMBER_EMAIL = @MEMBER_EMAIL AND MEMBER_USERNAME <> @MEMBER_USERNAME");
        objCmd = new SqlCommand(strSQL.ToString(), objConn);
        objCmd.Parameters.Add("@MEMBER_EMAIL", SqlDbType.VarChar).Value = this.txtEmail.Text;
        objCmd.Parameters.Add("@MEMBER_USERNAME", SqlDbType.VarChar).Value = this.DisplayName.Text;
        //objCmd.Parameters.Add("@MEMBER_USERNAME", SqlDbType.VarChar).Value = Session["MEMBER_USERNAME"];
        intCount = (int)objCmd.ExecuteScalar();
        if (intCount >= 1)
        {
            this.lblStatus.ForeColor = System.Drawing.Color.Red;
            this.lblStatus.Text = "Email already exists!!";
            return;
        }

        /*//Ekripsi Password User
        string pass = txtPassword.Text;
        MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
        Byte[] hashedBytes;
        UTF8Encoding encoder = new UTF8Encoding();
        hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(pass));*/
        
        //'*** Update Profile ***//
        
        try
        {
        strSQL = new StringBuilder();
        strSQL.Append(" UPDATE DMG_MEMBERS");
        strSQL.Append(" SET MEMBER_PASSWORD = @MEMBER_PASSWORD ");
        strSQL.Append(" ,Roles = @Roles");
        strSQL.Append(" ,SessionId = @SessionId");
        strSQL.Append(" ,MEMBER_REALNAME = @MEMBER_REALNAME ");
        strSQL.Append(" ,MEMBER_EMAIL = @MEMBER_EMAIL ");
        strSQL.Append(" ,Country = @Country ");
        strSQL.Append(" WHERE MEMBER_USERNAME = @MEMBER_USERNAME");
        objCmd = new SqlCommand(strSQL.ToString(), objConn);
        objCmd.Parameters.Add("@MEMBER_PASSWORD", SqlDbType.VarChar).Value = this.txtPassword.Text;
        objCmd.Parameters.Add("@Roles", SqlDbType.VarChar).Value = "members";
        objCmd.Parameters.Add("@SessionId", SqlDbType.VarChar).Value = "";
        objCmd.Parameters.Add("@MEMBER_REALNAME", SqlDbType.VarChar).Value = this.txtFullName.Text;
        objCmd.Parameters.Add("@MEMBER_EMAIL", SqlDbType.VarChar).Value = this.txtEmail.Text;
        objCmd.Parameters.Add("@Country", SqlDbType.VarChar).Value = this.DropDownListCountry.Text;
        objCmd.Parameters.Add("@MEMBER_USERNAME", SqlDbType.VarChar).Value = this.DisplayName.Text;
        objCmd.ExecuteNonQuery();
        objConn.Close();
        //Response.Redirect("login.aspx");
        }
        catch (Exception er)
        {
            Response.Write(er.Message);
        }

        objConn.Close();
        objConn = null;

        this.pnlProfile.Visible = false;
        this.pnlFinish.Visible = true;
    }


Monday, March 18, 2013

Sisi Frontend pada Cloud Apps Location Based Ur-Building

Frontend merupakan bagian dari sebuah website yang merupakan halaman yang dapat diakses oleh semua pengunjung. Frontend akan menampilkan informasi-informasi umum untuk pengguna. Informasi yang tersedia pada sisi frontend aplikasi ur-Building adalah halaman utama, top ten recommended building, upcoming events, recommended building, ur-review, dan lain lain. Berikut penjelasan dari masing-masing bagian:

1. Halaman Utama

Harus menarik dan mampu memberikan informasi fitur sebuah website merupakan syarat yang harus dimiliki tampilan utama sebuah website. Pada halaman utama aplikasi Ur-Building terdiri dari slide gambar yang memberikan informasi kegunaan website. Memiliki fitur search, rekomendasi gedung, serta dapat menampilkan acara-acara dan sosial media, menjadi nilai tambah untuk halaman utama aplikasi Ur-Building.
2. Tampilan top recommended building Pengguna tentu nya ingin mengunjungi tempat-tempat yang mempunyai rekomendasi terbaik, untuk itulah aplikasi Ur-Building menyediakan fitur top recommended building agar menjadi rekomendasi bagi pengguna
 3. Tampilan Upcoming Events
Informasi acara pada suatu tempat tentu sangat penting, karena para pengguna tentunya ingin mendatangi tempat tersebut pada saat banyak events atau acara yang berlangsung
4. Tampilan Recommended Building

Rekomendasi menjadi sebuah acuan bagi pengguna dalam melihat gedung tersebut, rekomendasi yang baik tentunya membuat tempat tersebut ingin lebih dikunjungi oleh pengguna. Halaman Recommended Building disediakan untuk menampilkan detail informasi dari gedung yang paling direkomendasikan.   
 5. Tampilan Google Maps pada aplikasi Ur-Building
Peta merupakan alat bantu dalam menyampaikan suatu informasi keruangan. Peta juga digunakan untuk membantu pengguna jika, alamat pada sebuah tempat terlalu susah untuk dicari. Pemilihan Google Maps sendiri berdasarkan data yang dimiliki sudah mencakup seluruh kota besar di indonesia
 6. Tampilan Google directions sbg Penunjuk arah

Melihat peta saja dirasa tidak cukup bagi mereka yang merupakan pendatang didaerah lain. Untuk membantu pengguna menuju sebuah tempat aplikasi Ur-Building juga menggunakan Google Directions untuk membantu pengguna dalam mencapai sebuah tempat.
 

Serial Video - Pengenalan Project E-Health

Serial postingan ini adalah serial dokumentasi dari pengerjaan product e-health

Video ini berisi mengenail pengenalan project E-Health Azure Cloud Computing. Content yang disajikan dalam video summary ini antara lain berisi tujuan, latar belakang pembuatan dan fungsi fungsi nya

Video dapat dilihat melalui menu play dibawah ini

Manajemen User (UR-Review)

Pada Postingan kali ini adalah lanjutan dari postingan pertama Manajemen User(Register dan Login). Dimana postingan kali ini tentang UR-Riview, yang seperti terlihat pada gambar dibawah ini. UR-Review adalah tampilan dimana user melakukan aktifitas berupa komentar tentang gedung atau even sekaligus tentang informasi penting lainnya mengenai gedung yang di tambahkan. Berikut ini adalah UI dari UR-Review : 


Source Code C# : 

 protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Cookies["StudentCookies"] != null)
        {
            string roll = Request.Cookies["StudentCookies"].Value;
            HyperLink1.Visible = true;
            HyperLink1.NavigateUrl = "logout.aspx";
            HyperLink1.Text = "logout";
            HyperLink3.Visible = true;
            HyperLink3.NavigateUrl = "user.aspx";
            HyperLink3.Text = "Hi," + roll;

        }
        else {
            HyperLink3.Visible = false;
            HyperLink1.NavigateUrl = "login.aspx";
            HyperLink1.Text = "Login";
            HyperLink3.Visible = false;
        }
    }


Manajemen User (Registrasi dan Login)

Manajemen user merupakan bagian dimana user atau pengguna melakukan Rergistrasi, Login dan menambahkan informasi tentang User atau gedung yang sudah ditambahkan. Pada Manajemen User ini terdapat beberapa fitut atau content yang terdapat pada UR-Building yaitu ; Registrasi, Login, Review, UR-Review, dan Statik User. Berikut ini adalah penjelasan dari masing bagian-bagiannya :

1. Registrasi


Untuk mengisi atau menambah informasi yang tentang user maupun konten yang ada pada UR-Building, maka user diwajibkan untuk melakukan Registrasi. Pada gambar di bawah ini, user akan  memberikan iformasi tentang dirinya.




Dibawah ini adalah source code C# untuk Register : 



2. Login 

Setelah User terdaftar sebagai member di UR-Building, maka user telah mendapat hak akses untuk menambahkan informasi gedung, even, serta komentar tentang gedung atau even yang ditambahkan baik dari pribadi maupun user lain yang sudah terdaftar. Untuk UI dapat dilihat seperti pada gambar di bawah ini : 



Source Code C# : 


Lanjutan :




Pencarian Data Pasien Dengan Auto Complete

Pencarian data menggunakan auto complete disini memiliki fungsi untuk mempermudah seorang administrator atau dokter mencari berdasarkan nama yang akan dicari. Berikut adalah tampilan dari Pencarian pasien :





Berikut adalah program dari cari data menggunakan auto complete:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Admins_DataPasien : System.Web.UI.Page
{
    private string caripasien;
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
    public static string[] GetCompletionList(string prefixText, int count, string contextKey)
    {
        DataPasienDataContext db = new DataPasienDataContext();
        return db.Riwayats.Where(n => n.namaPasien.StartsWith(prefixText)).OrderBy(n => n.namaPasien).Select(n => n.namaPasien).Take(count).ToArray();        
    }
    protected void btCari_Click(object sender, EventArgs e)
    {
        caripasien = txtCari.Text;
        Response.Redirect("DetailPasien.aspx?namaPasien=" + caripasien);
    }
}
Setelah mendapatkan nama yang dicari maka akan terlihat suatu informasi mengenai pasien tersebut, berikut adalah tampilan dari hasil cari data pasien :




Berikut adalah program untuk detail pasien :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
public partial class Admins_DetailPasien : System.Web.UI.Page
{
    SqlConnection con;
    SqlCommand command;
    SqlDataReader reader;
    private string sub;
    protected void Page_Load(object sender, EventArgs e)
    {
        bindData();
    }
    private void bindData()
    {
        string name = Request.QueryString["namaPasien"];
        lNamaPasien.Text = name;
        sub = ConfigurationManager.ConnectionStrings["forumssConnectionString1"].ConnectionString;
        con = new SqlConnection(sub);
        con.Open();
        command = new SqlCommand("SELECT * FROM [Riwayat] where namaPasien=@namaPasien", con);
        command.Parameters.Add("@namaPasien", SqlDbType.VarChar, 100).Value = name.Trim();
        reader = command.ExecuteReader();

        while (reader.Read())
        {
            //lidPasien.Text = reader["Id_Pasien"].ToString();
            lKeluhanUtama.Text = reader["KeluhanUtama"].ToString();
            lRiwayatSbl.Text = reader["RiwayatSblm"].ToString();
            lRiwayatSkr.Text = reader["RiwayatSkrg"].ToString();
            lTekananDarah.Text = reader["TekananDarah"].ToString();
            lNadi.Text = reader["Nadi"].ToString();
            lRespirasi.Text = reader["Respirasi"].ToString();
            lFisikKepala.Text = reader["FisikKepala"].ToString();
            lFisikMata.Text = reader["FisikMata"].ToString();
            lFisikHidung.Text = reader["FisikHidung"].ToString();
            lFisikTelinga.Text = reader["FisikTelinga"].ToString();
            lFisikMulut.Text = reader["FisikMulut"].ToString();
            lFisikTenggorokan.Text = reader["FisikTenggorokan"].ToString();
            lFisikLeher.Text = reader["FisikLeher"].ToString();
            lFisikDada.Text = reader["FisikDada"].ToString();
            lFisikServiks.Text = reader["FisikServiks"].ToString();
            lFisikBahu.Text = reader["FisikBahu"].ToString();
            lFisikSiku.Text = reader["FisikSiku"].ToString();
            lFisikPTangan.Text = reader["FisikPergelanganTangan"].ToString();
            lFisikPinggul.Text = reader["FisikPinggul"].ToString();
            lFisikLutut.Text = reader["FisikLutut"].ToString();
            lFisikPKaki.Text = reader["FisikPergelanganKaki"].ToString();
            lFisikTulangBlkng.Text = reader["FisikTulangBelakang"].ToString();
            lFisikKardiovoskuler.Text = reader["FisikKardiovoskuler"].ToString();
            lFisikAbdomen.Text = reader["FisikAbdomen"].ToString();
            lKranialServiks.Text = reader["kranialSaraf"].ToString();
        }
        reader.Close();
        con.Close();
        
    }
}

Monday, March 4, 2013

Insert Berita Kesehatan

Seorang administrator atau seorang dokter dapat melakukan penambahan berita kesehatan, disini untuk mempermudah pengguna mengetahui informasi kesehatan. Fungsi penambahan berita dapat dilihat seperti berikut :





















Berikut adalah program untuk menambahkan berita :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Collections;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

public partial class Admins_TambahLokasi : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e) //fungsi ketika program dijalankan
    {
        string selectedValue = DropdownList1.SelectedValue;
        showImages();
        DropdownList1.SelectedValue = selectedValue;
    }
    private void showImages() //fungsi menampilkan gambar pada dropdown
    {
        string[] images = Directory.GetFiles(Server.MapPath("~/App_Themes/Default/GalleryMap/"));
        ArrayList imageList = new ArrayList();

        foreach (string image in images)
        {
            string imageName = image.Substring(image.LastIndexOf(@"\") + 1);
            imageList.Add(imageName);
        }

        DropdownList1.DataSource = imageList;
        DropdownList1.DataBind();
    }
    private void clearText() //fungsi hapus text pada textbox
    {
        txtNama.Text = "";
        txtDeskripsi.Text = "";
        txtAlamat.Text = "";
        txtNotelp.Text = "";
        txtWebsite.Text = "";
    }
    protected void btUpload_Click(object sender, EventArgs e) //fungsi upload gambar
    {
        try
        {
            string filename = Path.GetFileName(FileUpload1.FileName); //membuat variable untuk penyimpanan gambar
            FileUpload1.SaveAs(Server.MapPath("~/App_Themes/Default/GalleryMap/" + filename)); //lokasi penyimpanan gambar
            lblOutput.Text = "image" + filename + "file success upload"; //menampilkan pesan jika sudah berhasil di upload
            Page_Load(sender, e);
        }
        catch (Exception er) //jika proses upload gagal akan menampilkan pesan eror
        {
            lblOutput.Text = "Upload failed";
            lblOutput.Text = er.Message;
        }
    }
    protected void btnSave_Click(object sender, EventArgs e) //fungsi simpan
    {
        string connString = ConfigurationManager.ConnectionStrings["forumssConnectionString1"].ConnectionString;//memanggil koneksi database
        string query = "insert into [forumss].[dbo].[LokasiRS](namaRs,deskripsi,alamatRs,notelp,website,gambar) values(@namaRs,@deskripsi,@alamatRs,@notelp,@website,@gambar)";//membuat variable query yang berisi untuk input data
        using (SqlConnection con = new SqlConnection(connString))
        using (SqlCommand command = new SqlCommand(query, con))
        {
            command.Parameters.Add("@namaRs", SqlDbType.VarChar, 100).Value = txtNama.Text.Trim();
            command.Parameters.Add("@deskripsi", SqlDbType.VarChar, 5000).Value = txtDeskripsi.Text.Trim();
            command.Parameters.Add("@alamatRs", SqlDbType.VarChar, 2000).Value = txtAlamat.Text.Trim();
            command.Parameters.Add("@notelp", SqlDbType.VarChar, 50).Value = txtNotelp.Text.Trim();
            command.Parameters.Add("@website", SqlDbType.VarChar, 50).Value = txtWebsite.Text.Trim();
            command.Parameters.Add("@gambar", SqlDbType.VarChar, 1000).Value = "../App_Themes/Default/GalleryMap/" + DropdownList1.SelectedValue;
            try
            {
                con.Open();
                command.ExecuteNonQuery();
                clearText();
                lblOutput.Text = "Success";
            }
            catch (Exception err)
            {
                con.Close();
                clearText();
                lblOutput.Text = err.Message;

            }
        }
    }
}

Friday, March 1, 2013

Designing Database pada Aplikasi Ur-Building

Membuat aplikasi yang mampu memberikan informasi yang tepat, tak lepas dari perancangan database yang baik. Karena database merupakan media penyimpanan informasi tersebut. Perancangan database yang baik akan mudah menghasilkan query-query informasi yang baik pula. keterkaitan antara satu tabel dengan tabel lain nya sangat penting. Berikut adalah database pada aplikasi ur-Building:
Pada aplikasi ini, kami memiliki 6 buah tabel, yang nanti nya akan dapat berkembang kembali sesuai dengan fitur yang telah kami kembang kan. Berikut penjelasan masing-masing tabel:

1. T_USER
Merupakan sebuah tabel yang menyimpan informasi pengguna, t_user merupakan tabel yang erat kaitan nya dengan manajemen user nantinya.

2. T_BUILDING
Merupakan sebuah tabel yang berfungsi untuk menyimpang informasi-informasi umum pada sebuah gedung, informas-informasti tersebut seperti alamat, deskripsi, nomor telpon, dll.

3. T_REVIEW
Merupakan sebuah yang berfungsi untuk menyimpan semua ulasan atau komentar dan juga menyimpan nilai rating yang diberikan oleh pengguna untuk sebuah gedung, Nilai ini nanti nya akan diolah untuk memberikan rekomendasi tempat yang paling banyak dikunjungi.

4. T_PHOTO
Pada dasarkan database ini untuk menyimpan path foto yang telah di upload oleh user, sehingga nanti nya bisa ditampilkan pada halaman gedung tersebut.

5. T_TRANSPORT
Merupakan sebuah tabel sederhana untuk menyimpan data angkutan umum sederhana, untuk membantu pengguna menuju sebuah tempat.

6. T_EVENT
Merupakan tabel yang menyimpan semua inputan atau informasi pengguna mengenai suatu event di tempat tersebut. Event2 ini nanti nya akan ditampilkan pada halaman ur-Building.

Berita Informasi Kesehatan

Informasi mengenai kesehatan itu sangat diperlukan untuk memudahkan seluruh pengguna mengetahui berbagai jenis penyakit, solusi mengenai kesehatan. Secara sekilas tampilan dari berita adalah seperti berikut:

1. Halaman utama berita
Pada halaman utama berita disini akan tampil beberapa judul berita, sehingga pengguna dapat memilih berita yang akan dibaca seperti berikut :




2. Detail Berita
Detail berita adalah menampilkan informasi mengenai berita yang sudah dipilih pada halaman utama menu pada sebelumnya, berikut adalah tampilan dari detail berita :


Wednesday, February 27, 2013

Fitur Mapping Pada Website E-Health

Pada website e-health dilengkapi dengan fitur mapping yang difungsikan untuk memudahkan user yang ingin mencari lokasi rumah sakit tertentu. untuk lokasi rumah sakit telah disediakan pada halaman cari lokasi seperti gambar berikut :



Fitur dilengkapi pula dengan menu tambah lokasi seperti yang terlihat dibawah ini :

 

Kemudian apabila salah satu list lokasi di klik akan muncul deksripsi alamat rumah sakit dengan peta lokasi yang ditampilkan menggunakan Google API seperti yang terlihat pada gambar dibawah ini :


Demikianlah sedikit penjelasan tentang fitur mapping pada website rekam medik E-Health. Semoga dapat bermanfaat bagi kita semua terima kasih :)