Well, you could try comparing the same datatypes!
Assuming that
ViewBag.listku
and
listku
are the same thing, the value it contains will be the name of the class - which is going to be along the lines of "System.Linq.Enumerable+<rangeiterator>d__1" rather than the numbers you expect.
Probably you want to do something like this:
var listku = Enumerable.Range(1, 30);
var lispeserta = from item in db.Klaim
select item;
lispeserta = lispeserta.Where(x => listku.Contains(x.NoPeserta));
return View(lispeserta);
[edit]Gah! Markdown again![/edit]