kalo beberapa waktu yang lalu sudah dibahas tentang cara membuat algoritma LZW(salah satu algoritma kompresi) di C#. kali ini akan dibahas tentang algoritma Shannon Fano. Shannon fano yang juga merupakan algoritma kompresi, hanya mempunyai cara kerja pengkompresian yang berbeda dengan LZW. oke sekarang kita mulai membuat projectnya
langkah 1 : buat project baru, klik menu file, pilih new project, kotak project name diisi sesuai keinginan (bebas)
langkah 2 : tambahkan componen tiga label, satu tree view, satu textbox, satu button dan satu datagridview.
langkah 3 : atur dan tata sedemikian rupa sehingga tambpilannya seperti pada gambar dibawah ini
Gambar 1. Preview desain aplikasi program Shanon Fano
langkah 4 : pada button1, tambahkan source code berikut ini
string outPut,data;
bool statusTulis;
int indek,jum;
data=textBox1.Text.Trim().ToUpper();
outPut = "";
indek = 0;
jum = 0;
dataGridView1.Rows.Clear();
label1.Text = data.Length.ToString();
label1.Text += " karakter";
for (int i = 0; i < data.Length; i++)
{
if (data.Substring(i, 1) == " ")
{
data=data.Remove(i, 1);
}
statusTulis=true;
for (int j = i+1; j < data.Length; j++)
{
if (data.Substring(i, 1) == data.Substring(j, 1))
{
statusTulis=false;
}
bool statusTulis;
int indek,jum;
data=textBox1.Text.Trim().ToUpper();
outPut = "";
indek = 0;
jum = 0;
dataGridView1.Rows.Clear();
label1.Text = data.Length.ToString();
label1.Text += " karakter";
for (int i = 0; i < data.Length; i++)
{
if (data.Substring(i, 1) == " ")
{
data=data.Remove(i, 1);
}
statusTulis=true;
for (int j = i+1; j < data.Length; j++)
{
if (data.Substring(i, 1) == data.Substring(j, 1))
{
statusTulis=false;
}
}
if (statusTulis==true)
{
dataGridView1.Rows.Add(1);
outPut=outPut+data.Substring(i,1);
dataGridView1.Rows[indek].Cells[0].Value =
if (statusTulis==true)
{
dataGridView1.Rows.Add(1);
outPut=outPut+data.Substring(i,1);
dataGridView1.Rows[indek].Cells[0].Value =
data.Substring(i, 1);
indek = indek + 1;
}
indek = indek + 1;
}
}
//check count each karakter
for (int i=0;i<(dataGridView1.Rows.Count-1);i++)
{
jum = 0;
for (int j = 0; j < data.Length; j++)
{
if (dataGridView1.Rows[i].Cells[0].Value.ToString() ==
//check count each karakter
for (int i=0;i<(dataGridView1.Rows.Count-1);i++)
{
jum = 0;
for (int j = 0; j < data.Length; j++)
{
if (dataGridView1.Rows[i].Cells[0].Value.ToString() ==
data.Substring(j, 1))
{
jum = jum + 1;
}
{
jum = jum + 1;
}
}
dataGridView1.Rows[i].Cells[1].Value = (jum).ToString();
}
treeView1.Nodes.Clear();
root = treeView1.Nodes.Add(data.Length.ToString());
sortData();
//DataGridViewColumn newColumn = dataGridView1.Columns[1];
//dataGridView1.Sort(newColumn, ListSortDirection.Descending);
drawTree();
dataGridView1.Rows[i].Cells[1].Value = (jum).ToString();
}
treeView1.Nodes.Clear();
root = treeView1.Nodes.Add(data.Length.ToString());
sortData();
//DataGridViewColumn newColumn = dataGridView1.Columns[1];
//dataGridView1.Sort(newColumn, ListSortDirection.Descending);
drawTree();
Langkah 5: tambahkan function sortData() dan function drawTree()
untuk sordData() berikut ini adalah source codenya
int temp;
string tempKa;
int k;
k = 0;
ArrayList tempData = new ArrayList();
ArrayList tempKarakter = new ArrayList();
tempData.Clear();
tempKarakter.Clear();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
tempData.Add(Convert.ToInt16(dataGridView1.Rows[i].Cells[1].Value));
tempKarakter.Add(Convert.ToString(dataGridView1.Rows[i].Cells[0].Value));
}
for (int i = 0; i < tempData.Count-1; i++)
{
for (int j = 0; j < tempData.Count-1; j++)
{
if (Convert.ToInt16(tempData[j+1])>Convert.ToInt16(tempData[j]))
{
temp = Convert.ToInt16(tempData[j]);
tempData[j] = Convert.ToInt16(tempData[j+1]);
tempData[j + 1] = temp;
tempKa = tempKarakter[j].ToString();
tempKarakter[j] = tempKarakter[j + 1].ToString();
tempKarakter[j + 1] = tempKa;
}
}
}
for (k = 0; k < tempData.Count; k++)
{
dataGridView1.Rows[k].Cells[1].Value = tempData[k].ToString();
dataGridView1.Rows[k].Cells[0].Value = tempKarakter[k].ToString();
}
dataGridView1.Rows[k-1].Cells[1].Value = "";
string tempKa;
int k;
k = 0;
ArrayList tempData = new ArrayList();
ArrayList tempKarakter = new ArrayList();
tempData.Clear();
tempKarakter.Clear();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
tempData.Add(Convert.ToInt16(dataGridView1.Rows[i].Cells[1].Value));
tempKarakter.Add(Convert.ToString(dataGridView1.Rows[i].Cells[0].Value));
}
for (int i = 0; i < tempData.Count-1; i++)
{
for (int j = 0; j < tempData.Count-1; j++)
{
if (Convert.ToInt16(tempData[j+1])>Convert.ToInt16(tempData[j]))
{
temp = Convert.ToInt16(tempData[j]);
tempData[j] = Convert.ToInt16(tempData[j+1]);
tempData[j + 1] = temp;
tempKa = tempKarakter[j].ToString();
tempKarakter[j] = tempKarakter[j + 1].ToString();
tempKarakter[j + 1] = tempKa;
}
}
}
for (k = 0; k < tempData.Count; k++)
{
dataGridView1.Rows[k].Cells[1].Value = tempData[k].ToString();
dataGridView1.Rows[k].Cells[0].Value = tempKarakter[k].ToString();
}
dataGridView1.Rows[k-1].Cells[1].Value = "";
Sedangkan untuk source code drawTree() sebagai berikut ini
for (int i = 0; i < dataGridView1.Rows.Count - 2; i++)
{
if (i == 0)
{
kiri = root.Nodes.Add("0 " + DataGridView1.Rows[i].Cells[0].Value.ToString().ToUpper() + ":(" + dataGridView1.Rows[i].Cells[1].Value.ToString() + ")");
{
if (i == 0)
{
kiri = root.Nodes.Add("0 " + DataGridView1.Rows[i].Cells[0].Value.ToString().ToUpper() + ":(" + dataGridView1.Rows[i].Cells[1].Value.ToString() + ")");
kanan = root.Nodes.Add("1");
}
else if (i == dataGridView1.Rows.Count - 3)
{
kiri = kanan.Nodes.Add("0 " + dataGridView1.Rows[i].Cells[0].Value.ToString().ToUpper() + ":(" + dataGridView1.Rows[i].Cells[1].Value.ToString() + ")");
kanan = kanan.Nodes.Add("1 " + dataGridView1.Rows[i + 1].Cells[0].Value.ToString().ToUpper() + ":(" + dataGridView1.Rows[i + 1].Cells[1].Value.ToString() + ")");
}
else
{
kiri = kanan.Nodes.Add("0 " + dataGridView1.Rows[i].Cells[0].Value.ToString().ToUpper() + ":(" + dataGridView1.Rows[i].Cells[1].Value.ToString() + ")");
kanan = kanan.Nodes.Add("1");
}
}
}
else if (i == dataGridView1.Rows.Count - 3)
{
kiri = kanan.Nodes.Add("0 " + dataGridView1.Rows[i].Cells[0].Value.ToString().ToUpper() + ":(" + dataGridView1.Rows[i].Cells[1].Value.ToString() + ")");
kanan = kanan.Nodes.Add("1 " + dataGridView1.Rows[i + 1].Cells[0].Value.ToString().ToUpper() + ":(" + dataGridView1.Rows[i + 1].Cells[1].Value.ToString() + ")");
}
else
{
kiri = kanan.Nodes.Add("0 " + dataGridView1.Rows[i].Cells[0].Value.ToString().ToUpper() + ":(" + dataGridView1.Rows[i].Cells[1].Value.ToString() + ")");
kanan = kanan.Nodes.Add("1");
}
}
treeView1.ExpandAll();
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
if (i < dataGridView1.Rows.Count - 2)
{
dataGridView1.Rows[i].Cells[2].Value = "0";
for (int j = 0; j < i; j++)
{
dataGridView1.Rows[i].Cells[2].Value = dataGridView1.Rows[i].Cells[2].Value.ToString() + "1";
}
}
else
{
dataGridView1.Rows[i].Cells[2].Value = "";
for (int j = 0; j < i; j++)
{
dataGridView1.Rows[i].Cells[2].Value = dataGridView1.Rows[i].Cells[2].Value.ToString() + "1";
}
}
}
Langkah 6. Done Program selesai dibuat...
jika keenam langkah diatas dilakukan dengan benar, maka jika program dijalankan hasilnya akan seperti gambar berikut ini
Gambar 2. Preview program yang telah dirunning
untuk labih jelasnya, silahkan download contoh programnya disini, sedangkan untuk mendapatkan full projectnya silahkan tinggalkan email di kotak komentar, full project akan disend ke email tersebut, bingung...??? tinggalkan pertanyaan dikotak komentar
for more information contact on informasi@csharp-indonesia.com
for more information contact on informasi@csharp-indonesia.com
tolong kirim program fullnya... dan klau bisa aplikasi pemrogramannya..trimaksih
BalasHapussaudara ahmad. maaf kami tidak bisa mengirim project shanon fano ke saudara, dikarenakan saudara tidak meninggalkan alamat email yang bisa kami hubungi....
BalasHapusterimakasih....
malem masdab, saya mnt tlg d kimirin yg full nya bs ?, email ane sagasatu90@yahoo.com . makasih ya masdab.
BalasHapusfull project sudah di send ke sagasatu@yahoo.com. silahkan cek inbox saudara. terimakasih.
BalasHapusregard,
okfdan rizal f
mas, saya juga minta.. aplikasinya algoritma shannon fano nya! arsana283@gmail.com
BalasHapusproject sanon fano sudah di send ke email arsana283@gmail.com. Silahkan check inbox
BalasHapusterimakasih banyak
mas, saya minta tolong dong, minta projectnya ya buat saya pelajarin, saya lagi belajar ni tentang teknik kompresi...ke osvari.arsalan@yahoo.co.id
BalasHapusmakasih ya mas ^_^
silahkan cek inbox osvari.arsalan@yahoo.co.id full project sudah di send ke email tersebut.
BalasHapusterimakasih
regard,
www.csharp-indonesia.com
makasih mas buat infonya, boleh minta projectnya buat di pelajarin ?
BalasHapusboleh boleh saja. untuk dikembangkan lebih lanjut juga tidak papa. tapi harus disend kemana ya.?? kuk nggak ada emailnya.?
BalasHapusgan ini yang (root, kiri, kanan) itu deklarasi variabel atau nama komponen ya ?
BalasHapuskalau bisa minta projectnya gan, buat ane pelajari .
alfa.hersyanno@gmail.com
full project sudah di send... silahkan cek inbox alfa.hersyanno@gmail.com
BalasHapussemoga bisa bermanfaat.. amin
this project is very well!
BalasHapuscan you send this priject for me? my mail: caothiniem@gmail.com
BalasHapusSori gan .
BalasHapusItu yang di send untuk project LZW Algorithm .
Yang Shannon Fano ini belum .
:(
Trims .
thanks alot
BalasHapusyang shanon udah disent gan.. pake email yahoo.. coba cek lagi gan..
BalasHapusyes, of course....
BalasHapusthe full project has been delivered to caothiniem@gmail.com, please check your inbox
full project sudah di sent dari dulu gan
BalasHapushi, boleh minta full projectnya? sama LZW juga?? thx b4,.. ane butuh buat perbandingan performa... terima kasih
BalasHapusWaduh maaf ya..
BalasHapussaya bingung. nich mau disend ke mana..?
solanya Ara tidak meningglkan emailnya.
Halo.. Boleh minta full project nya gak? emailnya ruth.schatzhie@gmail.com .. Terimakasih banyak
BalasHapusmas... boleh minta full projectnya..?? kalau boleh emailnya k dens.excel@yahoo.co.id... terima kasih..........
BalasHapushola será que puedes compartirme el programa de Shannon-fano
Hapusfull project sudah disent ke email dens.excel@yahoo.co.id silahkan cek email saudara
BalasHapusterimakasih
full project sudah di sent ke ruth.schatzhie@gmail.com silahkan check email suadari, terimakasih banyak semoga bisa membatu
BalasHapusatau langsung saja download di http://adf.ly/4JBwl
mas, saya mw buat kompresi pad audio. boleh minta full project ny gak ??
BalasHapusemail ny muti_cole@ymail.com
thanks...
untuk full projectnya silahkan download di sini http://adf.ly/4JBwl
BalasHapuskarena mail server selalu bermasalah ketika mengirim.
semoga bisa bermanfaat dan berguna
terimakasih
please send me the full project.....i need it so much
BalasHapusskypiea44@gmail.com
full project sudah di sent ke skypiea44@gmail.com. Silahakan cek inbox saudara.
BalasHapusterimakasih, semoga bisa membantu dan bermanfaat
atau silahkan download langsung dari link berikut ini http://adf.ly/4JBwl
BalasHapusfull project
BalasHapusgelarheyn87@gmail.com
full project sanon fano sudah di sent ke email gelarheyn87@gmail.com. Silahkan cek inbox email tersebut. Semoga bisa bermanfaat dan membantu.
BalasHapusfull project
BalasHapusluthfi_boarding@yahoo.com
bisa minta full project
BalasHapusyongkikurniadi@gmail.com
BalasHapuskok gini ya..
BalasHapusError The name 'kiri' does not exist in the current context
dan eror da pada variable root dan kanan.. mohon pncerahannya.. bs minta project nya?
okie_setiawan@ymail.com
klo boleh saya minta full projectnya secepatnya ke muttaqin.zainal@yahoo.co.id
BalasHapusgak bisa saya buat ini, ada yang : error root, kanan, kiri.. kalau boleh minta projectnya shofanurhanifa@yahoo.com
BalasHapusmakasih.
apiprasta@gmail.com
BalasHapustlong dkirim ya gan,,, cz btuh referensi nich,, :)
ape lapo sunoe programe ws tak tuku iki,,,,zaki
BalasHapusmantab banget, jadi kelar tugas ane.....
BalasHapusI need it.. please send the full project to diyunt92@gmail.com
BalasHapusthanks a lot :)
boleh minta full project nya gan..kirim ke maksi.nirwato@yahoo.com
BalasHapusbutuh referensi nih gan..
thanks..:)
maaf gan emailnya typo..
BalasHapusmaksud nya maksi.nirwanto@yahoo.com
boleh donk full projectnya. kepepet dengan tugas, Pak
BalasHapusroman.moslem@gmail.com
boleh mnta full projectnya mksi.
BalasHapuspw.rudi@yahoo.co.id
please send to this mail
BalasHapuskarengrigoryan@mail.com
bagi full projectnya gan ...
BalasHapusemail : diaandi20@yahoo.co.id
gan tolong dikirim ya full projectnya buat tugas kuliah ni.
BalasHapusthx before
please send me full project
BalasHapusislamicmaster@gmail.com
kirimkan dong
BalasHapuskirimkan dong bang admin
BalasHapuspain_pein74@yahoo.com
mohon di kirim ke email
BalasHapusamirmahmud.siregar@gmail.com
trangmc287@gmail.com
BalasHapusthank you
shoshi.danggo@gmail.com.....thanks gan
BalasHapustolong dikirim ke hindianson@gmail.com ya... makasih
BalasHapuskirimkan dong kak admin...regina_shop@rocketmail.com. makasih
BalasHapusminta tolong dikirim kan project nya ke email saya dong kak, theydi_41@yahoo.com
BalasHapusmau saya gunakan untuk belajar kak, makasiii
ka minta full projectnya ke email jerinogorter@gmail.com terima kasih ka
BalasHapusminta ful projectnya bos ,. chokysaputra92@gmail.com
BalasHapusthankz ,. kita tunggu nii :)
Pemampatan dengan algoritma Shannon-Fano bisa di gunakan pada program Matlab? kalu bisa bagaiman cara serta langkah-langkahnya? mohon bantuannya..
BalasHapuse-mail: darulafandi70@gmail.com
bisa minta full projectnya?
BalasHapussama pakai aplikasi apa ya?
hermawannikolas@gmail.com
Mas tolong kirimkan full projectnya ya,
BalasHapus1990ekalestari@gmail.com
Terima kasih.
chenlina20150916
BalasHapusnike huarache trainers
nike roshe run
p90x workouts
air max 95
rolex watches
nike trainers
barbour uk
nike store uk
polo outlet
nike tn
ralph lauren polos shirts
rolex replica watches
adidas original trainers
ugg sale
ugg boots
hermes belt
supra shoes
celine handbags
ralph lauren
ed hardy clothing
as
qihang1005,insanity workout
BalasHapusreplica watches
air force 1
jordan shoes
mont blanc pens
hollister kids
kobe bryant shoes
adidas superstar
ray ban sunglasses outlet
tommy hilfiger outlet
pandora
ray-ban sunglasses
canada goose outlet
nike cortez
kate spade outlet
fake oakley sunglasses
pandora bracelets
prada
ed hardy clothing
vans shoes
michael kors
nike trainers
michael kors handbags
nike running shoes
ralph lauren outlet
burberry outlet
pandora charms
toms outlet
nike elite socks
instyler curling iron
moncler jackets
louboutin
coach outlet
tod's shoes
mcm outlet
mizuno running shoes
coach outlet canada
q
tolong kirim dong mas.. dang.is0192@gmail.com
BalasHapus2015-11-24 xiaozhengm
BalasHapuscanada gooses
michael kors handbags
nike roshe runs
michael kors outlet
air jordans
longchamp bags
michael kors outlet online
tiffany and co
ugg outlet
canada goose outlet
ray ban sunglasses
nike air max
hermes uk
coach factory outlet
ugg sale
ugg outlet
michael kors handbags
coach outlet
ugg outlet store
juicy couture
burberry outlet
jordan 4 toro
air force 1
north face jackets
north face outlet
ralph lauren uk
new balance outlet
longchamp outlet
kate spade outlet
toms outlet store
hollister uk
north face uk
nike roshe run women
coach outlet
soccer jerseys
coach factory outlet
true religion outlet
gucci outlet
chaussure louboutin
zhengjx20160411
BalasHapuscopy watches
louboutin femme
ed hardy outlet
polo ralph lauren outlet
michael kors handbags
louis vuitton handbags
coach outlet
ray ban outlet
oakley sunglasses
hollister clothing
nike roshe run
burberry handbags
coach outlet store
air max 95
ray ban outlet
jordan retro 4
tory burch flats
michael kors handbags
michael kors outlet clearance
hollister clearance
michael kors outlet
jordan retro 13
michael kors outlet clearance
cheap nfl jerseys
tiffany and co
nike blazers shoes
coach factory outlet
prada handbags
timberlands
michael kors handbags
ray ban sunglasses
gucci handbgs
oakley sunglasses
louis vuitton bags
hollister clothing store
oakley outlet
tiffany and co
gucci belts
jordan 6s
louis vuitton purses
coach factory outlet online
BalasHapusferragamo outlet
ugg australia outlet
birkenstock shoes
nike air force black
louis vuitton handbags
polo ralph lauren outlet
versace sunglasses
nba jerseys wholesale
ferragamo
burberry outlet stores
yeezy boost 350
michael kors outlet
nike shoes for cheap
burberry outlet online
asics running shoes
michael kors outlet online
nike force 1
nike free runs
pandora charms uk
ralph lauren outlet
burberry bags
nike cortez white
sac longchamp pliage
tiffany and co outlet
true religion uk
ralph lauren pas cher
chi flat iron
moncler jackets
nike free flyknit 3.0
polo ralph lauren outlet
hollister kids
nike free 5.0
20160722caiyan
nike blazer pas cher
BalasHapusbengals jersey
san antonio spurs
michael kors handbags
salomon shoes
toms shoes
polo ralph lauren outlet
san francisco 49ers jerseys
nike air force 1
michael kors handbags
under armour shoes
BalasHapuscowboys jerseys
toms outlet
coach outlet store
air jordan uk
saints jerseys
cheap nfl jerseys
michael kors outlet
ray ban sunglasses
michael kors handbags
cheap nhl jerseys
BalasHapusjimmy choo
oakley sunglasses wholesale
nike store
michael kors handbags
coach outlet
nike tn pas cher
michael kors handbags
hermes belt
coach outlet
20170707 leilei3915
BalasHapusmcm outlet
ralph lauren outlet
ray ban sunglasses outlet
cheap ray ban sunglasses
prada outlet store
mont blanc outlet
christian louboutin uk
cheap oakley sunglasses
tory burch outlet
mlb jerseys
klo boleh saya minta full projectnya secepatnya ke : dianrosdiana72@gmail.com
BalasHapusLagi butuh buat tugas mas...
BalasHapusPlaymakeranwar14@gmail.com
kevin durant shoes
BalasHapusjordan shoes
yeezy shoes
supreme clothing
curry shoes
golden goose
off white jordan 1
yeezy boost
curry 7 shoes
kevin durant shoes
replica bags australia replica hermes bag o4e58d5c51 replica bags korea replica zara bags click to read s7x42d7k70 zeal replica bags reviews find h2d64t9p34 replica louis vuitton replica bags paypal accepted
BalasHapus