Yii Framework Forum: Memotong String Per-Kata [Solved] - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Memotong String Per-Kata [Solved] Rate Topic: ***** 1 Votes

#1 User is offline   cyber1924 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 31-May 13
  • Location:Yogyakarta, ID

Posted 02 June 2013 - 03:45 AM

<?php    
public function cut_words($sentence,$word_count)
  {
         $space_count = 0;
         $print_string = '';
         for($i=0;$i<strlen($sentence);$i++)
         {
          if($sentence[$i]=='')
             $space_count ++;
          $print_string .= $sentence[$i];
          if($space_count == $word_count)
          break;
         }
           echo $print_string;
   }
?>


agan2 senior tolongin saya dong, itu script saya motong kalimat per kata tapi kok nggak jalan di yii ya? pdhl di PHP biasa itu berjalan lancar, apa fungsi strlen tidak berjalan di yii? tolong para agan2 master, butuh ni.. :(
0

#2 User is offline   daudtm 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 85
  • Joined: 25-April 13
  • Location:Malang

Posted 06 June 2013 - 05:29 AM

kesalahannya di logika ente, ber,
bukan di yii-nya, selama pake fungsi2 php (strlen) di yii pasti jalan.
itu baris 8, sebelum space_count++
kok operand pembandingnya kosong? bukan spasi?
if($sentence[$i]=='')
  $space_count ++;


ini versi perbaikannya (nambah spasi doang)
ama test-nya sekalian:
class RandomTest extends CTestCase {
	public function cut_words($sentence,$word_count) {
         $space_count = 0;
         $print_string = '';
         for($i=0;$i<strlen($sentence);$i++)
         {
          if($sentence[$i]==' ')
          	$space_count ++;

          $print_string .= $sentence[$i];
             
          if($space_count == $word_count)
            break;
         }
         
         echo $print_string;
         return trim($print_string);
   }

   public function testKataTerpotongDenganBenar()
   {
   	$testSentence = 'ibu budi sedang memasak';

   	$result1 = $this->cut_words($testSentence, 1);
   	$result2 = $this->cut_words($testSentence, 2);
   	$result3 = $this->cut_words($testSentence, 3);
	$result4 = $this->cut_words($testSentence, 4);
	$result5 = $this->cut_words($testSentence, 5);

   	$this->assertEquals('ibu', $result1);
   	$this->assertEquals('ibu budi', $result2);
   	$this->assertEquals('ibu budi sedang', $result3);
   	$this->assertEquals($testSentence, $result4);
   	$this->assertEquals($testSentence, $result5);
   }
}


hasil testnya sebagai berikut:
$ phpunit unit/RandomTest.php 
PHPUnit 3.6.12 by Sebastian Bergmann.

Configuration read from /home/daud/project/iseng/apps/local/protected/tests/phpunit.xml

.ibu ibu budi ibu budi sedang ibu budi sedang memasakibu budi sedang memasak

Time: 1 second, Memory: 4.25Mb

OK (1 test, 5 assertions)


referensi:
http://www.yiiframew....1/en/test.unit

Attached File(s)


0

#3 User is offline   cyber1924 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 31-May 13
  • Location:Yogyakarta, ID

Posted 07 June 2013 - 02:05 PM

View Postdaudtm, on 06 June 2013 - 05:29 AM, said:

kesalahannya di logika ente, ber,
bukan di yii-nya, selama pake fungsi2 php (strlen) di yii pasti jalan.
itu baris 8, sebelum space_count++
kok operand pembandingnya kosong? bukan spasi?
if($sentence[$i]=='')
  $space_count ++;


ini versi perbaikannya (nambah spasi doang)
ama test-nya sekalian:
class RandomTest extends CTestCase {
	public function cut_words($sentence,$word_count) {
         $space_count = 0;
         $print_string = '';
         for($i=0;$i<strlen($sentence);$i++)
         {
          if($sentence[$i]==' ')
          	$space_count ++;

          $print_string .= $sentence[$i];
             
          if($space_count == $word_count)
            break;
         }
         
         echo $print_string;
         return trim($print_string);
   }

   public function testKataTerpotongDenganBenar()
   {
   	$testSentence = 'ibu budi sedang memasak';

   	$result1 = $this->cut_words($testSentence, 1);
   	$result2 = $this->cut_words($testSentence, 2);
   	$result3 = $this->cut_words($testSentence, 3);
	$result4 = $this->cut_words($testSentence, 4);
	$result5 = $this->cut_words($testSentence, 5);

   	$this->assertEquals('ibu', $result1);
   	$this->assertEquals('ibu budi', $result2);
   	$this->assertEquals('ibu budi sedang', $result3);
   	$this->assertEquals($testSentence, $result4);
   	$this->assertEquals($testSentence, $result5);
   }
}


hasil testnya sebagai berikut:
$ phpunit unit/RandomTest.php 
PHPUnit 3.6.12 by Sebastian Bergmann.

Configuration read from /home/daud/project/iseng/apps/local/protected/tests/phpunit.xml

.ibu ibu budi ibu budi sedang ibu budi sedang memasakibu budi sedang memasak

Time: 1 second, Memory: 4.25Mb

OK (1 test, 5 assertions)


referensi:
http://www.yiiframew....1/en/test.unit


owalaaahhhhhhhh, Syukron om...barakalloh fikum... :wub:
eh tp di php biasa bener2 jalan pake itu :ph34r: Huft...tararengkyu skali lgi om yaa ;D
0

#4 User is offline   cyber1924 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 31-May 13
  • Location:Yogyakarta, ID

Posted 08 June 2013 - 04:45 PM

oiya om tanya lg dong, apa kalo upload web yang dibuat pake yii harus beserta master nya?? lumayan gede jg ya kalo gt? pdhl cuma mau bikin blog :o
0

#5 User is offline   daudtm 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 85
  • Joined: 25-April 13
  • Location:Malang

Posted 09 June 2013 - 05:30 AM

View Postcyber1924, on 08 June 2013 - 04:45 PM, said:

oiya om tanya lg dong, apa kalo upload web yang dibuat pake yii harus beserta master nya?? lumayan gede jg ya kalo gt? pdhl cuma mau bikin blog :o


iya, desainnya kan sebenernya 1 framework bisa dipake beberapa webapp,
tapi bisa diakalin dengan ngapus file2 yg gak perlu dari masternya
http://www.yiiframew...eed-up-copying/

atau saya pernah liat aplikasi yg pake yiilite
http://www.yiiframew...ance#using-x-9x
0

#6 User is offline   cyber1924 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 31-May 13
  • Location:Yogyakarta, ID

Posted 22 June 2013 - 10:59 AM

om tanya lagi dong, itu kan sebenarnya saya ingin membuat blog, nah script diatas untuk memotong text, saya kan inputnya menggunakan editor widget editme jadikan yg kesimpen di database gak cuma text biasa aja tapi ada tag tag html semacam <div>, nah masalah nya muncul lg saat sudah berhasil saya potong tampilan saya kok jadi amburadul, saya kira karena tag - tag html nya ga sempurna, contohnya kan <div> diawal dibuka tapi karna text nya dipotong jadi ga ketutup </div>. biasanya gini solusinya gmn ya om?
0

#7 User is offline   daudtm 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 85
  • Joined: 25-April 13
  • Location:Malang

Posted 23 June 2013 - 07:53 PM

View Postcyber1924, on 22 June 2013 - 10:59 AM, said:

om tanya lagi dong, itu kan sebenarnya saya ingin membuat blog, nah script diatas untuk memotong text, saya kan inputnya menggunakan editor widget editme jadikan yg kesimpen di database gak cuma text biasa aja tapi ada tag tag html semacam <div>, nah masalah nya muncul lg saat sudah berhasil saya potong tampilan saya kok jadi amburadul, saya kira karena tag - tag html nya ga sempurna, contohnya kan <div> diawal dibuka tapi karna text nya dipotong jadi ga ketutup </div>. biasanya gini solusinya gmn ya om?


wah kalo ini mah bukan potong string namanya, tapi html truncate, coba aja searching di google atau github. ini 1 contoh hasilnya.

saya dulu pernah bikin, tapi gak disimpen kodenya (belon ada github), logikanya gini,
  • bikin stack
  • untuk setiap kata pada kalimat lakukan
  • jika "tag" push ke stack
  • jika "kata" simpan posisi akhir karakter "kata" tersebut, dan wordcount++
  • jika wordcount == yg diminta break loop
  • echo substring dari depan sampai posisi tercatat
  • tutup tag dengan ngepop tag satu persatu dari stack lalu bikin tag tutupnya

oya kalo pake cara gini kamu perlu deklarasikan jenis2 tag yg gak pake penutup, misalnya br, hr, dll.

semoga membantu
0

#8 User is offline   cyber1924 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 31-May 13
  • Location:Yogyakarta, ID

Posted 24 June 2013 - 08:28 AM

View Postdaudtm, on 23 June 2013 - 07:53 PM, said:

wah kalo ini mah bukan potong string namanya, tapi html truncate, coba aja searching di google atau github. ini 1 contoh hasilnya.

saya dulu pernah bikin, tapi gak disimpen kodenya (belon ada github), logikanya gini,
  • bikin stack
  • untuk setiap kata pada kalimat lakukan
  • jika "tag" push ke stack
  • jika "kata" simpan posisi akhir karakter "kata" tersebut, dan wordcount++
  • jika wordcount == yg diminta break loop
  • echo substring dari depan sampai posisi tercatat
  • tutup tag dengan ngepop tag satu persatu dari stack lalu bikin tag tutupnya

oya kalo pake cara gini kamu perlu deklarasikan jenis2 tag yg gak pake penutup, misalnya br, hr, dll.

semoga membantu


sumpah om, anda itu keren. makasih banyak om, itu sangat berguna banget. sekali lagi makasih banyak, udah berhasil ni.. :D
0

#9 User is offline   daudtm 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 85
  • Joined: 25-April 13
  • Location:Malang

Posted 01 July 2013 - 09:33 PM

sip, good to hear that,

titlenya ditandai [solved] dong :)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users