Subscribe RSS Join our Facebook Group Follow us on Twitter!
in Search

Aly Sangadji Blog

Hanya bagi ~ bagi
  • Windows Phone App Submission Free for Student

    Sebagai dukungan dari Microsoft Indonesia kepada Mahasiswa, Microsoft memberikan submission secara GRATIS ke marketplace Windows Phone. Beberapa Mahasiswa Student Partner Indonesia dipilih untuk membantu semua mahasiswa Indonesia memperoleh submission apps gratis ini.

    Saat aplikasi kalian ingin disubmit ke marketplace, ada hal-hal yang perlu diperhatikan:

    1. Deskripsi aplikasi harus menggunakan bahasa english, meskipun aplikasi kamu menggunakan bahasa indonesia.

    2. Image yang dibutuhkan harus berformat .png, dan harus sesuai dengan ukuran image yang akan diupload. ( Large mobile app tile - File type: PNG 173 x 173px, Small mobile app tile - File type: PNG 99 x 99px,  Large PC app tile - File type: PNG 200 x 200px,  Background art - File type: PNG 1000 x 800px,  Screenshots - File type: PNG 480 x 800px),  pengambilan screenshoot harus menggunakan emulator WP7 dengan zoom 100%. Contoh: http://msdn.microsoft.com/en-us/library/gg442300(v=vs.92).aspx

    3. Aplikasi bisa beradaptasi dengan 2 thema (dark dan light), point ini harus dilakukan tahap pengetesan dahulu.

    4. Jika Aplikasi menggunakan resource yang berhubungan dengan privacy pengguna (misalnya lokasi, gps), anda harus membuat policy atau pemberitahuan terlebih dahulu.

    5. Form point-point diatas bisa juga kamu dapatkan pada file https://skydrive.live.com/redir.aspx?cid=3543a916eed05fb8&resid=3543A916EED05FB8!936&parid=undefined

    6. Pada aplikasi kalian, harus di set terlebih dahulu neutral language, contoh: http://blogs.msdn.com/b/madenwal/archive/2011/07/19/windows-phone-app-submission-error-the-neutralresourcelanguage-attribute-is-missing-on-the-entry-assembly-2003.aspx

    7.  Setelah point-point diatas sudah dipenuhi, kamu bisa submit aplikasi secara gratis kirim ke email alysangadji[at]hotmail.com, subject: Submission WP 7 – [nama app].

    Contoh aplikasi dan beberapa yang harus dipersiapkan, bisa didownload disini.

    563 Views, 0 Comment(s), Published on: 05-06-2012 13:00 by alysangadji to Aly Sangadji Blog
    | More
  • Application : Yeah Mahasiswa

    Kita semua tau, khususnya mahasiswa tentang situs http://yeahmahasiswa.com dimana situs tersebut menampilkan judul, gambar-gambar yang unik dan lucu-lucu. Kebanyakan ceritanya diangkat dari kisah mahasiswa. Hingga sekarang situs tersebut tiap harinya memiliki pengunjung sekitar 80 orang.

    image

    Pada kesempatan Nokia Lumia Challenge, saya berkesempatan membuat apps yang berjudul yeahMahasiswa dengan mengambil content dari situs tersebut. Pengguna Windows Phone dapat menikmati content YeahMahasiwa pada app ini dan berbagi bersama teman melewati social networking (facebook).

    dibawah ini merupakan screen shootnya:

    SplashScreenImage

      screenshoot1 

    screenshoot2  screenshoot3

    Aplikasi ini sudah bisa dinikmati pada Windows Phone 7 kamu..

    logoDownload.png (164×54)

    637 Views, 3 Comment(s), Published on: 04-20-2012 16:53 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: ,
  • Congratulation for New Microsoft Students Partner Regional Jabodetabek

    Dear All,

    Tahap 1 dan 2 usai sudah, akhirnya MSP region Jabodetabek memiliki MSP baru. Selamat buat MSP baru, ini merupakan awal dari kesuksesan kalian. masing-masing dari MSP Indonesia memiliki tanggung jawab untuk memberikan yang terbaik bagi dirinya sendiri, orang sekitarnya, dan Negaranya khususnya dalam hal teknologi. Berikut adalah nama-nama Mahasiswa yang menyandang status sebagai Microsoft Students Partner:

    image

    CONGRATULATION…

    1,037 Views, 0 Comment(s), Published on: 04-03-2012 15:16 by alysangadji to Aly Sangadji Blog
    | More
  • Vibration pada Windows Phone 7

    Pengguna saat menggunakan sebuah aplikasi atau games, yang diharapkan adalah umpan balik dari aplikasi terhadap aksi yang dilakukan oleh pengguna tersebut. Misalnya pada sebuah games pengguna mendapatkan skor dari permainan yang dia lakukan, keluarnya suara dari device saat memperbesar atau memperkecil volume handphone, dan lain-lain. Pada semua device wajib memiliki fitur-fitur tersebut dan sebagai pengembang aplikasi kita dapat memanfaatkan banyak fitur yang terdapat pada device.

    Pada post ini, saya akan memberikan contoh bagaimana kita dapat menimbulkan short vibration (getaran pendek) pada sebuah device Windows Phone 7 saat kita melakukan sebuah aksi (menekan sebuah button). Kita dapat menggunakan class VibrateController yang terletak pada namespace Microsoft.Devices. Pada kelas tersebut terdapat dua method yaitu Start dan Stop, dan kita dapat mengambil waktu getaran (Time Span) yang dapat memberitahukan berapa lama device untuk bergetar.

    image

    Code C# :

    //untuk durasi selama 2 detik
    
    //tentukan dulu panjang waktu yang ingin digunakan 
    
    var durattion = new TimeSpan(0, 0, 2);
    
    //Start Vibration
    
    VibrateController.Default.Start(durattion);
    
    //fungsi stop vibration
    
    VibrateController.Default.Stop();
    
    //untuk durasi selama 5 detik
    
    //tentukan dulu panjang waktu yang ingin digunakan 
    
    var durattion = new TimeSpan(0, 0, 5);
    
    VibrateController.Default.Start(durattion);

    Semoga bermanfaat… Open-mouthed smile

    513 Views, 0 Comment(s), Published on: 02-16-2012 19:42 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: ,
  • Mengatasi masalah pergantian light theme pada textbox wp7

    image

     

    Selama ini kita mengetahui bahwa pada Windows Phone 7 kita dapat mengganti backgroud pada theme WP7 yaitu dark atau light. Jika kita ingin mengembangkan aplikasi pada OS mobile tersebut, hal tersebut harus sangat diperhatikan, karena pengguna setiap saat dapat mengganti background tersebut sesukanya. Sehingga developer wajib membuat aplikasi yang dapat mengatasi pergantian background tersebut.

     

     

     

     

    image

    Pada contoh berikutnya, saya akan membuat apps sederhana yang menampilkan 2 buah textblock dan 2 buah textbox dengan beralaskan grid menggunakan backgroud hitam (black). Pada theme dark, aplikasi dapat terlihat seperti biasa-biasa saja, textblock dan textbox pun dapat terlihat semestinya. Tetapi jika theme diganti menggunakan background Light, dapat terlihat pada gambar dibawah:

    image

    textblock dan textbox yang saya gunakan tidak terlihat pada apps tersebut. Ini dikarenakan secara default setiap control yang kita gunakan menyesuaikan dengan thema yang digunakan, jika background pada grid tersebut saya gunakan transparant, kedua control tersebut pasti terlihat karena control tersebut berubah warna hitam sehingga akan terlihat pada theme light, tetapi karena background yang saya gunakan hitam, jadi kedua control tersebut tidak terlihat.

     

     

    Cara mengatasi agar kedua control tersebut dapat terlihat pada grid yang kita tetapkan dengan warna hitam, kita dapat menambahkan sebuah style pada control tersebut atau sebuah nilai warna yang tetap. Pada control textblock, kita dapat menetapkan warna foregroundnya secara tetap dengan warna putih (white):

     <StackPanel Orientation="Vertical">
    
                        <TextBlock Foreground="White" Height="100" Style="{StaticResource PhoneTextTitle2Style}" Text="Input One : "></TextBlock>
    
                        <TextBlock Foreground="White" Style="{StaticResource PhoneTextTitle2Style}" Text="Input Two : "></TextBlock>
    
                    </StackPanel>

    Sedangkan untuk control textbox, anda bisa menambahkan style pada gudang resource yang kita tempatkan pada app.xaml:

     <Application.Resources>
    
            <ControlTemplate x:Key="PhoneDisabledTextBoxTemplate" TargetType="TextBox">
    
                <ContentControl x:Name="ContentElement" BorderThickness="0" HorizontalContentAlignment="Stretch" Margin="{StaticResource PhoneTextBoxInnerMargin}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Stretch"/>
    
            </ControlTemplate>
    
            <Style x:Key="TextBoxStyle1" TargetType="TextBox">
    
                <Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
    
                <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMediumLarge}"/>
    
                <Setter Property="Background" >
    
                    <Setter.Value>
    
                        <SolidColorBrush Color="LightGray"/>
    
                    </Setter.Value>
    
                </Setter>
    
                <Setter Property="Foreground" Value="{StaticResource PhoneTextBoxForegroundBrush}"/>
    
                <Setter Property="BorderBrush" Value="{StaticResource PhoneTextBoxBrush}"/>
    
                <Setter Property="SelectionBackground" Value="{StaticResource PhoneAccentBrush}"/>
    
                <Setter Property="SelectionForeground" Value="{StaticResource PhoneTextBoxSelectionForegroundBrush}"/>
    
                <Setter Property="BorderThickness" Value="{StaticResource PhoneBorderThickness}"/>
    
                <Setter Property="Padding" Value="2"/>
    
                <Setter Property="Template">
    
                    <Setter.Value>
    
                        <ControlTemplate TargetType="TextBox">
    
                            <Grid Background="Transparent">
    
                                <VisualStateManager.VisualStateGroups>
    
                                    <VisualStateGroup x:Name="CommonStates">
    
                                        <VisualState x:Name="Normal"/>
    
                                        <VisualState x:Name="MouseOver"/>
    
                                        <VisualState x:Name="Disabled">
    
                                            <Storyboard>
    
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="EnabledBorder">
    
                                                    <DiscreteObjectKeyFrame KeyTime="0">
    
                                                        <DiscreteObjectKeyFrame.Value>
    
                                                            <Visibility>Collapsed</Visibility>
    
                                                        </DiscreteObjectKeyFrame.Value>
    
                                                    </DiscreteObjectKeyFrame>
    
                                                </ObjectAnimationUsingKeyFrames>
    
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="DisabledOrReadonlyBorder">
    
                                                    <DiscreteObjectKeyFrame KeyTime="0">
    
                                                        <DiscreteObjectKeyFrame.Value>
    
                                                            <Visibility>Visible</Visibility>
    
                                                        </DiscreteObjectKeyFrame.Value>
    
                                                    </DiscreteObjectKeyFrame>
    
                                                </ObjectAnimationUsingKeyFrames>
    
                                            </Storyboard>
    
                                        </VisualState>
    
                                        <VisualState x:Name="ReadOnly">
    
                                            <Storyboard>
    
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="EnabledBorder">
    
                                                    <DiscreteObjectKeyFrame KeyTime="0">
    
                                                        <DiscreteObjectKeyFrame.Value>
    
                                                            <Visibility>Collapsed</Visibility>
    
                                                        </DiscreteObjectKeyFrame.Value>
    
                                                    </DiscreteObjectKeyFrame>
    
                                                </ObjectAnimationUsingKeyFrames>
    
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="DisabledOrReadonlyBorder">
    
                                                    <DiscreteObjectKeyFrame KeyTime="0">
    
                                                        <DiscreteObjectKeyFrame.Value>
    
                                                            <Visibility>Visible</Visibility>
    
                                                        </DiscreteObjectKeyFrame.Value>
    
                                                    </DiscreteObjectKeyFrame>
    
                                                </ObjectAnimationUsingKeyFrames>
    
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="DisabledOrReadonlyBorder">
    
                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxBrush}"/>
    
                                                </ObjectAnimationUsingKeyFrames>
    
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="DisabledOrReadonlyBorder">
    
                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxBrush}"/>
    
                                                </ObjectAnimationUsingKeyFrames>
    
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="DisabledOrReadonlyContent">
    
                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxReadOnlyBrush}"/>
    
                                                </ObjectAnimationUsingKeyFrames>
    
                                            </Storyboard>
    
                                        </VisualState>
    
                                    </VisualStateGroup>
    
                                    <VisualStateGroup x:Name="FocusStates">
    
                                        <VisualState x:Name="Focused">
    
                                            <Storyboard>
    
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="EnabledBorder">
    
                                                    <DiscreteObjectKeyFrame KeyTime="0">
    
                                                        <DiscreteObjectKeyFrame.Value>
    
                                                            <SolidColorBrush Color="White"/>
    
                                                        </DiscreteObjectKeyFrame.Value>
    
                                                    </DiscreteObjectKeyFrame>
    
                                                </ObjectAnimationUsingKeyFrames>
    
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="EnabledBorder">
    
                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxEditBorderBrush}"/>
    
                                                </ObjectAnimationUsingKeyFrames>
    
                                            </Storyboard>
    
                                        </VisualState>
    
                                        <VisualState x:Name="Unfocused"/>
    
                                    </VisualStateGroup>
    
                                </VisualStateManager.VisualStateGroups>
    
                                <Border x:Name="EnabledBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Margin="{StaticResource PhoneTouchTargetOverhang}">
    
                                    <ContentControl x:Name="ContentElement" BorderThickness="0" HorizontalContentAlignment="Stretch" Margin="{StaticResource PhoneTextBoxInnerMargin}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Stretch"/>
    
                                </Border>
    
                                <Border x:Name="DisabledOrReadonlyBorder" BorderBrush="{StaticResource PhoneDisabledBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" Margin="{StaticResource PhoneTouchTargetOverhang}" Visibility="Collapsed">
    
                                    <TextBox x:Name="DisabledOrReadonlyContent" Background="Transparent" Foreground="{StaticResource PhoneDisabledBrush}" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" IsReadOnly="True" SelectionForeground="{TemplateBinding SelectionForeground}" SelectionBackground="{TemplateBinding SelectionBackground}" TextAlignment="{TemplateBinding TextAlignment}" TextWrapping="{TemplateBinding TextWrapping}" Text="{TemplateBinding Text}" Template="{StaticResource PhoneDisabledTextBoxTemplate}"/>
    
                                </Border>
    
                            </Grid>
    
                        </ControlTemplate>
    
                    </Setter.Value>
    
                </Setter>
    
            </Style>
    
        </Application.Resources>

    source style from : http://windowsphonegeek.com

    Pada Page project :

    <StackPanel Orientation="Vertical">
    
                        <StackPanel Height="100">
    
                            <TextBox Style="{StaticResource TextBoxStyle1}" Width="200" ></TextBox>
    
                        </StackPanel>
    
                        <StackPanel Height="100">
    
                            <TextBox Style="{StaticResource TextBoxStyle1}" Width="200" ></TextBox>
    
                        </StackPanel>
    
                    </StackPanel>

    Hasilnya dapat dilihat pada gambar dibawah menggunakan theme light tetapi textblock dan textbox tetap terlihat dan juga pada theme dark, textbox akan menyesuaikan:

    image

    Terima kasih, semoga bermanfaat.. Open-mouthed smile

    483 Views, 0 Comment(s), Published on: 01-30-2012 22:46 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: ,
  • Device Orientation “Windows Phone 7”

    image

    sumber gambar berasal dari buku : PROFESSIONAL WINDOWS® PHONE 7 APPLICATION DEVELOPMENT

    Pada pengembangan aplikasi mobile, bisa dikatakan deteksi orientasi sangat penting. Pada post ini akan fokus membahasa sekilas tentang orientasi pada device mobile, dimana device dapat mendeteksi pergantian orientasi karena device tersebut memiliki accelerometer. Windows phone 7 dapat memperlihatkan perubahan orientasi menggunakan OrienttationChanged. Saat pengguna (menggunakan device mobile) melakukan perubahan orientasi, event OrientedChanged secara langsung dieksekusi. Pada Visual Studio 2010, kita dapat membuat event tersebut dengan cara sendiri (menggunakan event handler) atau dapat menggunakan method class dasar yaitu OnOrientationChanged. Jika anda ingin melampirkan event handler, dapat memilih PhoneApplicationPage pada page project dan pada properties, double klik pada event OrientationChanged. Hasilnya seperti :

    private void PhoneApplicationPage_OrientationChanged(object sender,OrientationChangedEventArgs e)
    { //Code implementasi }

    Alternatif lain adalah mengganti method dasar dan sekelas dengan OnOrientationChanged :
    protected override void OnOrientationChanged(OrientationChangedEventArgs e)
    {
    base.OnOrientationChanged(e);
    //Code implementasi
    }

    Di saat pembuatan project baru, kita dapat membuat aplikasi kita mendukung (support) orientasi landscape dan portrait dengan 2 cara, pertama dengan menggunakan code xaml :
    < phone:PhoneApplicationPage
    x:Class=”ApplicationLayouts.MainPage”
    ...
    SupportedOrientations=”Portrait” >

    atau pada code C# : *pada post ini penulis mencontohkan menggunakan C#.
    SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape;

    Pada contoh dibawah ini, memberikan 5 buttun dengan posisi yang berbeda. Pada saat diubah dari protrait ke landscape, posisi button tersebut semakin mendekat antar button tersebut, sehingga diperlukan ScroolViewer agar posisi tidak berubah:

    *tanpa socrollViewer

    image  image

    *menggunakan scroolViewer (posisi 5 button tersebut dipertahankan tetapi dibutuhkan scrool kebawah untuk melihat button lainnya.

    image  image

    code xaml :

       1: <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
       2:            <ScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto">
       3:                <Grid Height="800">
       4:            <Button Content="TopLeft" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="20,190,0,0" Width="200" />
       5:            <Button Content="TopRight" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,190,20,0" Width="200" />
       6:            <Button Content="BottomLeft" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="20,0,0,20" Width="200" />
       7:            <Button Content="BottomRight" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,20,20" Width="200" />
       8:            <Button Content="Center" Margin="0" Height="200" Width="200" />
       9:                </Grid>
      10:            </ScrollViewer>

    Diatas merupakan sedikit tehnik dalam menangani perubahan orientasi pada aplikasi yang ingin kita kembangkan pada windows phone 7, terima kasih.

    527 Views, 0 Comment(s), Published on: 01-21-2012 18:57 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: ,
  • Sound effect use Xna framework in Windows phone

    Pada windows phone, dasarnya adalah Silverlight, sehingga satu cara untuk memainkan audio dan video menggunakan element Media Element. namun menggunakan element tersebut untuk mengakses suara masih terlalu berat. Ketika kita bermain dan berhenti suara pendek, kita bisa memanfaatkan dukungan xna untuk bermain efek suara. Class pada xna disebut SoundEffect yang terdapat pada Microsoft.Xna.Framework. untuk menggunakan library ini dengan cara menambahkan referensi Microsoft.Xna.Framework pada project.

    Code dibawah dalam penggunaan fitur ini : (pada project sample pada post ini, menggunakan resource sound amb.wav).

    public MainPage()
            {
                InitializeComponent();
                //mendefinisikan resource yang kita gunakan
                StreamResourceInfo info = Application.GetResourceStream(
                    new Uri("source/amb.wav", UriKind.Relative));
     
                amb = SoundEffect.FromStream(info.Stream);
     
                CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
            }
     
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                base.OnNavigatedTo(e);
     
                PhoneApplicationService.Current.UserIdleDetectionMode =
                  IdleDetectionMode.Disabled;
            }
     
            protected override void OnNavigatedFrom(NavigationEventArgs e)
            {
                base.OnNavigatedFrom(e);
     
                PhoneApplicationService.Current.UserIdleDetectionMode =
                  IdleDetectionMode.Enabled;
            }
     
            void CompositionTarget_Rendering(object sender, EventArgs e)
            {
                Microsoft.Xna.Framework.FrameworkDispatcher.Update();
            }
     
            private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                amb.Play();
            }

    Saat pengguna ingin memaikan sound effect ambulance (amb.wav), bisa langsung kaya melakukan “tap” pada layar device tersebut. Sehingga code sample pada desainnya (xaml) :

    <!--ContentPanel - place additional content here-->
           <Grid x:Name="ContentPanel" Margin="12,17,12,49" Grid.RowSpan="2" 
    MouseLeftButtonDown="Grid_MouseLeftButtonDown">
               <Image Source="source/384.png" Stretch="None" Margin="0,-117,0,0" />
           </Grid>

    Hasilnya : Source code dapat didownload disini.

    image

    554 Views, 2 Comment(s), Published on: 12-26-2011 12:58 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: , ,
  • Basic navigation in Windows Phone

    Windows phone application karena dasarnya adalah Silverlight, kita dapat menggunakan page navigation untuk berpindah ke halaman yang berbeda. Banyak hal yang dapat digunakan dengan navigation page ini, selain berpindah halaman kita juga dapat mempengaruhi halaman berikutnya dari code yang teradapat pada halaman pertama. pada post ini saya akan memberikan contoh berpindah halaman dengan memperngaruhi halaman tersebut dengan warna dan perpindahan data memanfaatkan query pada navigation.

    berpindah halaman dapat digunakan code :

    //pada page pertama
    this.NavigationService.Navigate(new Uri("/PageTwo.xaml", UriKind.Relative));
                e.Complete();
                e.Handled = true;
    //pada page kedua
    this.NavigationService.GoBack();
                e.Complete();
                e.Handled = true;

    dasar dari code diatas adalah berpindah halaman dari page pertama ke page kedua :

    image  image

    pada halaman pertama, textblock “go page 2” ditanamkan method yang isinya perintah untuk melakukan navigation service ke url page 2, dan pada “go to page one” dihalaman 2 ditamkan method navgation service tetapi pada halaman ini menggunakan GoBack, akan kembali pada halaman sebelumnya.

    pada contoh ini, terdapat juga method :

    protected override void OnManipulationStarted(ManipulationStartedEventArgs args)
            {
                ContentPanel.Background = new SolidColorBrush(
                Color.FromArgb(255, (byte)rand.Next(255),
                    (byte)rand.Next(255),
                    (byte)rand.Next(255)));
                base.OnManipulationStarted(args);
            }

    method tersebut akan melakukan perubahan warna secara random pada content panel jika kita melakukan “tap” pada layar windows phone. Sekarang bagaimana memberikan sebuah nilai pada halaman kedua dari halaman pertama? misalnya, kita mengisi nama dan usia pada halaman pertama, dan hasilnya akan ditampilkan pada halaman kedua. dasar dari code untuk perpindahan data :

    //pada page pertama
    this.NavigationService.Navigate(new Uri("/PageTwo.xaml?parameter1=value&parameter2=value", UriKind.Relative));
    //pada page kedua, membuat method onNavigatedTo untuk menerima parameter tersebut, misalnya :
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
     
                string Parameter1 = NavigationContext.QueryString["parameter1"];
                string Parameter2 = NavigationContext.QueryString["parameter2"];
    }

    Dari dasar code diatas, sudah dapat membuat perpindahan nilai variabel dari halaman pertama ke halaman berikutnya, nah…sekarang pada project ini akan diperlihatkan caranya :

    //code pada halaman pertama
    private void button1_Click(object sender, RoutedEventArgs e)
            {
                 if (txtNama.Text != "" && txtUsia.Text != "")
                {
                    string Nama = txtNama.Text;
                    string usia = txtUsia.Text;
                    this.NavigationService.Navigate(new Uri("/PageTwo.xaml?nama="+Nama+"&usia="+usia, UriKind.Relative));
                 }
                else
                {
                    MessageBox.Show("Isi nama dan usia");
                }
            }
     
    //code pada halaman kedua
    protected override void OnNavigatedTo(NavigationEventArgs e)
            {
     
                string Nama = NavigationContext.QueryString["nama"];
                string usia = NavigationContext.QueryString["usia"];
     
                nama.Text = Nama;
                Usia.Text = usia;
                
                base.OnNavigatedTo(e);
     
            }
    image  image 

    Source code bisa didowload disini, Semoga bermanfaat.. Open-mouthed smile

    482 Views, 0 Comment(s), Published on: 12-26-2011 9:15 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: ,
  • Mudah membuat aplikasi pada Windows Phone

    Mungkin banyak yang berpikir membuat apps pada mobile device tidak mudah, atau harus belajar lama untuk memahaminya. Menurut saya, membuat apps pada windows phone sangatlah mudah, karena dengan tools yang sangat mendukung dan resource pembelajaran yang sangat mudah didapatkan. Informasi seputar Windows phone bisa dilihat pada situs http://create.msdn.com, dan tools yang dapat anda gunakan untuk membuat apps pada Windows Phone [WP] dapat didownload secara garis disini dan versi offline. Pada tools tersebut sudah tersedia:

    Microsoft Visual Studio 2010 Express for Windows Phone
    Windows Phone Emulator
    Windows Phone SDK 7.1 Assemblies
    Silverlight 4 SDK and DRT
    Windows Phone SDK 7.1 Extensions for XNA Game Studio 4.0
    Microsoft Expression Blend SDK for Windows Phone 7 (Tools Design)
    Microsoft Expression Blend SDK for Windows Phone OS 7.1 (Tools Design)
    WCF Data Services Client for Window Phone
    Microsoft Advertising SDK for Windows Phone

    Sedangkan Resource tentang Windows Phone bisa anda dapatkan disini: http://msdn.microsoft.com/en-us/library/ff431744(v=vs.92).aspx , pada situs tersebut sangat banyak contoh dengan berbagai masalah dan pemanfaatan teknologi pada windows phone yang dapat kita kembangkan. Ada beberapa filosofi pada design Windows phone yang menurut saya penting bagi pengembang aplikasi pada OS tersebut:

    Kenapa tampilan windows phone kelihatan datar banget?
    it's an artistic choice, memang sengaja. Windows phone didesain utk menyampaikan informasi yg dimaksud dengan cepat & jelas, seperti papan-papan petunjuk di airtport, stasiun atau rambu lalu lintas. Oleh Microsoft desain gaya ini disebut Metro design. Biasanya apps di WP menitikberatkan aspek "wow" nya pada animasi, bukan tampilan visual statik. Misalnya animasi transisi antar halaman, kemunculan menu, dan sejenisnya, sehingga memancing user utk mengeksplorasi apps anda lebih dalam.

    kenapa tema defaultnya hitam?
    it's also an artistic choice. Ditambah lagi alasan konsumsi daya. Theme warna hitam sangat-sangat hemat daya.
    Umumnya WP menggunakan teknologi layar OLED. OLED tidak menggunakan backlight seperti LCD. Sehingga jumlah daya yg dikonsumsi OLED tergantung warna dan tingkat kecerahan/brightness yg mau ditampilkan. Untuk tema hitam dg tulisan putih, energi yg dibutuhkan hanya utk menampilkan tulisan saja, bisa dibilang nyaris tdk mengkonsumsi daya. Sebaliknya, kalau tema putih dg tulisan hitam teknologi OLED justru dpt mengkonsumsi daya lebih byk daripada LCD biasa.

    filosofi design WindowsPhone: dari buku "101 Windows Phone 7 Application"

    Pada saat saya menulis post ini, Windows phone pada versi 7.5 atau disebut “mango”. Oke, sekarang bisa dimulai dengan membuka Visual Studio 2010 dan New Project, pilih Silverlight for Windows phone dan akan terlihat beberapa template yang sudah tersedia:

    image

    Program pertama kita akan membuat apps memanfaatkan Event handler dari sebuah control button pada windows Phone, saat sebuah Event Click terjadi akan memanggil sebuah fungsi didalamnya, misalnya Page name kita rubah menjadi Hai, Guest. hampir setiap control memiliki banyak event, sebuah fungsi yang berbeda-beda tergantung kejadian apa yang kita inginkan pada control tersebut.

    image

     
    Code C#: private void 
    btnPush_Click(object sender, RoutedEventArgs e) 
     
     { PageTitle.Text = "Hai, 
    Guest";}
    Code Xaml :  
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
     
    <Button Content="Push Button" x:Name="btnPush" Click="btnPush_Click" 
    Margin="64,104,62,406"></Button> </Grid>
     
    Program kedua kita akan membuat feed sederhana, dimana program ini membaca xml dari sebuah rss feed pada situs kompas.com, data xml yang saya ambil yaitu Liga Indonesia dengan link: http://www.kompas.com/getrss/bolaindonesia. Pada contoh ini saya memanfaatkan webclient sebagai class untuk mengambil data tersebut.

    image

    private void LoadData()
           {
               WebClient webClient = new WebClient();
               webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
               webClient.DownloadStringAsync(new System.Uri("http://www.kompas.com/getrss/bolaindonesia"));
           }
     
           void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
           {
               try
               {
     
                       XElement xmlTwits = XElement.Parse(e.Result);
                       listSimple.ItemsSource = from p in xmlTwits.Descendants("item")
                                                select new RSSItem
                                                {
                                                    Title = p.Element("title").Value,
                                                    Link = p.Element("link").Value,
                                                    Description = p.Element("description").Value
     
                                                };
                  
               }
               catch { }
           }

     


    Beberapa Control page yang tersedia pada Windows Phone

    Pivot Control, yaitu sebuah antarmuka pengguna tab dimana untuk berpindah ke tab berikutnya hanya memilih salah satu header. gaya antar muka ini biasanya menonjol pada Mail built-in, Calender dan beberapa pengaturan aplikasi.

    image

    Panorama Control, Control ini terdapat pada namespace Microsoft.Phone.Controls, panorama nampak sedikit mirip dengan pivot, tetapi Panorama memiliki title pada template tersebut, judul/header setiap content. Untuk Panorama Horizontal memiliki lebar maksimum 2 layar (960 pixel) dan tata letak setiap item bisa kita tentukan sendiri.

    image

    Contoh Panorama:
    image

    Semoga bermanfaat dan terus berkarya…Smile

    bergabung di groups facebook student WP7

    1,250 Views, 1 Comment(s), Published on: 12-04-2011 18:55 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: , , ,
  • Page Transitions in Windows Phone

    Saat kita membuat beberapa page pada Apps Windows phone, terjadi beberapa tahap dalam perpindahan antar page tersebut. Salah satunya adalah sebuah kejadian transisi perpindahan dari page pertama ke page kedua, sebaliknya ataupun ke page lainnnya. Code dibawah ini merupakan perpindahan dari page 1 ke page 2 dengan code C#:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));
    }

    Code diatas hanya mengarahkan kita pada page2, tetapi tidak terjadi sebuah transisi yang cukup untuk memberitahukan kepada pengguna bahwa aplikasi tersebut terjadi aksi dan berpindah halaman. Pada Windows Phone, kita dapat membuat transisi tersebut dengan mudah. Anda membutuhkan sebuah toolkit yang bisa anda download di http://silverlight.codeplex.com/ (disarankan anda mendownload toolkit tersebut pada versi yang paling baru, november 2011).

      
    Sumber gambar: http://www.windowsphonegeek.com (Gambar sebuah transisi perpindahan dari MainPage ke page1 atau Page2).

    Setelah anda mendownload dan menginstall toolkit tersebut, tambahkan reference pada project anda: Microsoft.Phone.Controls.Toolkit. Setiap halaman yang anda inginkan untuk melakukan transisi tambahkan namespace pada code xaml: xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit", dan code dibawah ini:

    <toolkit:TransitionService.NavigationInTransition>
           <toolkit:NavigationInTransition>
               <toolkit:NavigationInTransition.Backward>
                   <toolkit:TurnstileTransition Mode="BackwardIn"/>
               </toolkit:NavigationInTransition.Backward>
               <toolkit:NavigationInTransition.Forward>
                   <toolkit:TurnstileTransition Mode="ForwardIn"/>
               </toolkit:NavigationInTransition.Forward>
           </toolkit:NavigationInTransition>
       </toolkit:TransitionService.NavigationInTransition>
       <toolkit:TransitionService.NavigationOutTransition>
           <toolkit:NavigationOutTransition>
               <toolkit:NavigationOutTransition.Backward>
                   <toolkit:TurnstileTransition Mode="BackwardOut"/>
               </toolkit:NavigationOutTransition.Backward>
               <toolkit:NavigationOutTransition.Forward>
                   <toolkit:TurnstileTransition Mode="ForwardOut"/>
               </toolkit:NavigationOutTransition.Forward>
           </toolkit:NavigationOutTransition>
       </toolkit:TransitionService.NavigationOutTransition>

    Jika code diatas sudah terdapat pada setiap halaman, rubah sebuah baris code C# pada App.xaml.cs:

    awal : RootFrame = new PhoneApplicationFrame(); –--> RootFrame = new TransitionFrame();

    Run Aplikasi anda dan perhatikan perpindahannya..Semoga bermanfaat Smile

    510 Views, 0 Comment(s), Published on: 11-17-2011 23:24 by alysangadji to Aly Sangadji Blog
  • Isolated Storage pada Windows Phone (mango)

    Jika kalian ingin membuat aplikasi pada Windows Phone yang membutuhkan sebuah penyimpanan, Isolated Storage merupakan class setting yang digunakan untuk tujuan tersebut. Isolated Storage terdapat pada namespace System.IO.IsolatedStorage, keseluruhan file penyimpanan yang kalian buat dapat ditulis dan dibaca pada sebuah penyimpanan yang terisolasi. Hal ini bukan hanya terbatas pada halaman tertentu pada aplikasi kalian, tetapi semua halaman (page) dapat melakukan penyimpanan file. Pada bahasa pemrograman C#, anda bisa melihat contoh dibawah ini, dimana kita dapat menyimpan sebuah file dan menyambilnya lagi (Penyimpanan ini bersifat sementara | temporary):

    public void StoreXml(string FileXml, string NamaFile)
            {
                // membuat sebuah penyimpanan
                var storage = IsolatedStorageFile.GetUserStoreForApplication();
     
                if (storage.DirectoryExists("isolatedStorageExample") == false)
                {
                    // jika terdapat directory yang serupa, maka akan dihapus
                    storage.CreateDirectory("isolatedStorageExample");
                }
     
                if (storage.FileExists(NamaFile))
                {
                    // if file already exists, delete it to reset
                    storage.DeleteFile(NamaFile);
                }
                //pada contoh ini saya menyimpan file string dalam format xml
                using (var storageFile = storage.CreateFile("isolatedStorageExample\\" + NamaFile))
                {
                    // create the file and serialize the value
                    // untk XmlSerializer dapat menggunakan namespace System.Xml.Serialization;
                    var xmlSerializer = new XmlSerializer(typeof(string));
                    xmlSerializer.Serialize(storageFile, FileXml);
                }
            }

    Code diatas merupakan sample cara penyimpanan file aplikasi yang kita buat pada window phone, file tersebut akan tersimpan sementara pada penyimpana yang terisolasi pada windows phone.

    public string RetriveXml(string namaFile)
           {
               
               var storage = IsolatedStorageFile.GetUserStoreForApplication();
     
               if (storage.DirectoryExists("isolatedStorageExample")
                       && storage.FileExists("isolatedStorageExample\\" + namaFile))
               {
                   // if file exists in directory, open the file to read
                   using (var storageFile =
                       storage.OpenFile("isolatedStorageExample\\" + namaFile, FileMode.Open))
                   {
                       var xmlSerializer = new XmlSerializer(typeof(string));
     
                       // deserialize and return the value
                       return xmlSerializer.Deserialize(storageFile).ToString();
                   }
               }
     
               return "Guest";

    Code diatas merupakan cara agar kita mengambil lagi file yang telah tersimpan sebelumnya. Setelah kedua fungsi tersebut jadi, maka anda bisa memanggil fungsi tersebut sesuai kebutuhan, contoh:

    mengambil kembali file yang telah tersimpan
    //RetriveXml("[nama file");
    RetriveXml("FileIsolatedStorageExample.xml");
     
    menyimpan file
    //StoreXml([nama string], "[nama file]");
    StoreXml(FileXml, "FileIsolatedStorageExample.xml");

    Terima kasih, semoga bermanfaat Smile

    AlySangadji | alysangadji.kaminewbie.net

    494 Views, 1 Comment(s), Published on: 11-10-2011 15:12 by alysangadji to Aly Sangadji Blog
    | More
  • Report : Workshop HTML5 + Windows 8 Preview Developer

    Workshop sebelumnya "Training Asp.net + Microsoft Virtual Academy” pada tanggal 10 september 2011 yang berjalan sukses, dilanjutkan pada tanggal 24 September 2011 dengan Workshop HTML5 + Windows 8 versi Preview Developer dimana peserta berasal dari mahasiswa Institut Pertanian Bogor dan Universitas pakuan dengan jumlah peserta 65 orang. Pada workshop ini membahas tentang perkembangan HTML 5 dan membuat beberapa animasi menggunakan HTML 5, CSS, dan JavaScript. Peserta langsung mempraktekkan pada laptop masing-masing setiap tahapan dan langsung dapat melihat secara langsung hasilnya pada browser yang tersedia pada laptop mereka. Tidak lupa pada workshop ini disampaikan perkenalan tentang Sistem Operasi versi “beta” dari microsoft yang akan direncanakan rilis pada tahun 2012 yaitu Windows 8, peserta dikenalkan bagaimana mengoperasikan Windows 8 dan beberapa teknologi yang digunakan dalam membangun Sistem Operasi ini, seperti dalam User Interfacenya menggunakan HTML 5 dan javascript. Sebagai pemanis dalam workshop ini, ada beberapa pertanyaan yang ditujukan ke perserta, yang berhasil menjawab mendapatkan beberapa hadiah termasuk kaos Imagine Cup yang diberikan dari Microsoft Indonesia. Dibawah ini merupakan beberapa dokumentasi acara tersebut :

    *Para peserta Workshop

    100_4796  100_4791

    100_4813  100_4816

    *Pemberian Hadiah kepada peserta yang berhasil menjawab pertanyaan

    100_4869  100_4852

    *Para pembicara HTML 5 dan Windows 8 Preview Developer

    100_4828  100_4855

    Kegiatan ini akan terus berlanjut untuk meningkatkan pemahaman bagi mahasiswa tentang teknologi yang selalu berkembang, sehingga kemampuan setiap mahasiswa bertambah dan siap untuk menghadapi dunia kerja, terima kasih Smile

    436 Views, 0 Comment(s), Published on: 09-30-2011 11:18 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: , , ,
  • Workshop .Net 3.0 | Microsoft Virtual Academy & ASP.NET

    Berbagi sangatlah penting dalam dunia teknologi, dengan tujuan ingin berbagi itulah hingga sekarang Himpunan Mahasiswa Ilmu Komputer IPB dan Microsoft Student partner IPB hampir setiap minggunya mengadakan Workshop bagi mahasiswa IT dan Non IT yang ingin lebih mengenal teknologi. Sebelumnya pada Workshop 2.0 | Windows Presentation Foundation (WPF) berjalan sangat sukses, dan pada tanggal 10 september 2011 kemarin kami telah selesai mengadakan workshop .Net 3.0 yang menghadirkan peserta dari Ilmu komputer dan juga non IT lainnya. Workshop tersebut berlangsung selama 5 jam, dari pukul 8 pagi sampai dengan pukul 1 siang. Materi pada Workshop .Net 3.0 melingkupi pengenalan resource pembelajaran local ex : Blog http://students.netindonesia.net/blogs , http://mugi.or.id, http://wss-id.org/, http://geeks.netindonesia.net/, dan beberpa situs lainnya. Pengenalan Microsoft Virtual Academy juga dilakukan pada workshop ini, sehingga mahasiswa dapat belajar mandiri dengan resource yang disediakan oleh microsoft secara gratis. Materi terakhir yaitu training membuat website sederhana dengan memanfaatkan fitur-fitur asp.net yang sudah didukung oleh Visual Studio 2010, ex : Executing Project ASP.NET, Using Control asp.net, Preparing the Sitemap, Using Themes, Skins, and Styles in asp.net, Building the Master Page, Using the Master Page, and etc. Setelah training tersebut selesai, diharapkan peserta dapat memahami konsep pembuatan website dan menggunakan fitur-fitur asp.net.

    Penjelasan tentang resource local dan Microsoft Virtual Academy  (Aly Sangadji)

    image1  image2

    Training ASP.NET (Hanif Amal Robbani)

    image3  image4

    image5  image6

    Kegiatan tersebut mendapat dukungan dari para peserta sehingga workshop ini semoga akan terus berjalan, terima kasih kepada pengurus Himalkom yang mempersiapkan segala sesuatunya (Oki Maulana dan Tedy) yang menunjang segala fasilitasnya. Workshop selanjutnya akan diadakan hari sabtu tanggal 24 september 2011 dengan tema The next Generation Web with HTML 5 + Windows 8 Preview Developer, bagaimana kelanjutan workshop ini akan segera dipost setelah acara selesai, terima kasih.. Smile

    Klik untuk memperbesar gambar

    poster

    603 Views, 0 Comment(s), Published on: 09-18-2011 23:52 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: , , ,
  • Tingkatkan Kemampuan IT anda dengan Microsoft Virtual Academy dan dapatkan hadiahnya!!

    Selain Teknologi yang banyak ditawarkan oleh perusahaan raksasa ini, Microsoft juga memberikan pelatihan secara gratis untuk kita yang ingin menambah pengetahuan Teknologi dan tentunya pengakuan yang berkompeten. Microsoft Virtual Academy tempat dimana kamu bisa mendapatkan hal – hal tersebut secara gratis. Microsoft Virtual Academy ( MVA ) adalah tempat dan pengalaman belajar yang sepenuhnya berbasis teknologi cloud Microsoft. Anda dapat mengakses berbagai pelatihan online dan menjadi salah satu ahli terkenal dalam komunitas IT Profesional di seluruh dunia. Anda dapat memilih track anda sendiri, mempelajari materinya dan kemudian melakukan pengujian diri. Tentu saja anda mendapatkan point dari setiap pengujian tersebut dalam  tingkat Bronze, Silver, Gold atau Platinum. Selain itu, anda juga akan selalu mendapatkan informasi seputar teknologi microsoft.

    Siapapun dapat mengikuti Microsoft Virtual Academy, anda hanya membutuhkan sebuah account Windows Live ID untuk mendaftar dan menikmati semua sumber pelatihan  yang disediakan oleh MVA. Dengan pengetahuan anda tentang teknologi baru Cloud Computing khususnya teknlogi Microsoft, anda secara tidak langsung akan memiliki ketrampilan dalam teknologi ini dan mempunyai bekal untuk menghadapi dunia kerja yang mengarah ke Cloud Computing. Banyak Course yang ditwarkan di MVA berkaitan dengan Teknologi Cloud Microsoft, Segera daftarkan diri anda :

    *klik gambar dibawah untuk mendaftar di Microsoft Virtual Academy

    image

    Pada MVA, terdapat Course Office 365 yang merupakan produk kolaborasi dan perkakas produktivitas Microsoft Office yang sudah anda kenal lama, tapi kali ini tersedia di Cloud. Semua orang dapat bekerja sama dengan mudah melalui akses tanpa batas lokasi untuk menggunakan email, konferensi web, dokumen dan kalender. Di dalamnya tersedia keamanan tingkat bisnis dan didukung oleh Microsoft. Bisnis kecil sampai dengan perusahaan multinasional akan dapat memanfaatkan Office 365 sesuai kebutuhan masing-masing. Course ini terdiri dari tiga pelatihan yaitu : Office 365 for the IT Pro – Platform  (Bachelor), Office 365 for the IT Pro – Exchange Online(Master), dan Office 365 for the IT Pro – Lync Online, SharePoint Online & Deployment (Doctor). Anda ditantang mengikuti Kompetisi Office 365 Heroes Competition untuk menyelesaikan tiga pelatihan tersebut untuk mendapatkan hadiah total jutaan rupiah dengan cara menyelesaikan dan mempelajari pelatihan tentang Office 365, sehingga anda mendapatkan manfaat pengetahuan dan juga hadinya, ayo buktikan kamu bisa :

    *klik gambar dibawah untuk mengetahui informasi lebih lanjut dan mengikuti kompetisi tersebut

    image

    Ikuti pelatihannya, dan dapatkan pengetahun yang luar biasa tentang Cloud bersama teknologi Microsoft serta rebut Hadiahnya!! Semoga bermanfaat Smile

    599 Views, 0 Comment(s), Published on: 09-06-2011 21:05 by alysangadji to Aly Sangadji Blog
    | More
  • Mengenal Algortima MD5 dan implementasi menggunakan C# (C-Sharp)

    Pada saat anda membaca judul post ini, pasti sudah sangat mengenal dengan md5 ? yupz, md5 merupakan fungsi hash satu arah yang dibuat oleh Ron Rivest pada tahun 1991, dimana md5 merupakan perbaikan dari md4 setelah md4 berhasil diserang oleh kriptanalis. Agoritma md5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan message digest yang mempunyai panjang 128 bit.

    Gambaran umum (*gambar ini saya dapatkan dari materi kuliah) :

    *klik gambar untuk melihat lebih jelas

    image

    Langkah – langkah pembuatan  message digest secara garis besar :

    1. Penambahan bit – bit pengganjal (padding bits) : Pesan ditambahkan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. Jika panjang pesan jumlahnya 448 bit, makan pesan tersebut ditambah dengan 512 bit menjadi 960 bit, jadi panjang bit – bit pengganjal adalah antara 1 sampai 512. Bit – bit pengganjal terdiri dari sebuah bit 1 dan diikuti dengan bit 0 yang menjadi sisanya.

    2. Penambahan nilai panjang pesan semula : Pesan yang telah diberi bit – bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Jika panjang pesan >264 maka diambil adalah panjangnya dalam modulo 264.

    3. Inisialisasi penyangga (buffer ) MD : MD5 membutuhkan 4 buah penyangga / buffer yang masing – masing panjangnya 4 x 32 = 128 bit. 4 buffer tersebut menampung hasil antara dan hasil akhir. Setiap penyangga diinisialisasi dengan nilai Hexadesimal, ex : 89ABCDEF.

    4. Pengolahan pesan dalam block berukuran 512 bit : Pesan dibagi menjadi L buah block yang masing – masing memiliki panjang 512 bit (Y0 s.d YL-1). Setiap block diproses dengan penyangga MD menjadi keluaran 128 bit dan hasil ini disebut proses HMD5.

    Pada bahasa pemrograman C#, anda dapat dengan mudah mengkonversi sebuah string menjadi bentuk Hash MD5 dengan menambahkan library Security yang sudah tersedia pada .net framework 4, 3.5, 3.0, 2.0, 1.1 dan 1.0. (Using System.Security.Cryptography) :

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Security.Cryptography;
     
    namespace Md5
    {
        class Program
        {
            //fungsi mengconversi dari string ek bentuk hash md5
            static string ConvertMd5(MD5 md5, string password)
            {
                int i;
                byte[] data = md5.ComputeHash(Encoding.UTF8.GetBytes(password));
                StringBuilder sBuilder = new StringBuilder();
                for (i=0; i<data.Length; i++)
                {
                    sBuilder.Append(data[i].ToString("x2"));
                }
                return sBuilder.ToString();
            }
     
            static void Main(string[] args)
            {
                String password = "IniAdalahPasswordSaya";
                using (MD5 md5 = MD5.Create())
                {
                    string hasilHash = ConvertMd5(md5, password);
                    Console.WriteLine("Real text :" + password + "\n\nHash MD5 :" + hasilHash);
                }
     
     
            }
        }
    }

    Sangat mudah bukan ? fitur ini sangat berguna jika anda membuat website dengan asp.net atau sistem lainnya yang membutuhkan keamanan dan kerahasiaan sebuah password atau user id pada sistem anda.

    Catatan : pada tahun 1996, Dobbertin melaporkan penemuan kolisi pada algoritma MD5 meskipun kecacatan ini bukan kelemahan yang fatal.

    Sumber : Slide kuliah Cryptography dan http://msdn.microsoft.com

    479 Views, 0 Comment(s), Published on: 09-06-2011 10:02 by alysangadji to Aly Sangadji Blog
    | More
    Filed under: ,
More Posts Next page »